@siemens/ix 1.0.0-beta.5 → 1.1.0-beta.0

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 (181) hide show
  1. package/README.md +4 -0
  2. package/dist/cjs/ix-application-header.cjs.entry.js +11 -0
  3. package/dist/cjs/ix-blind.cjs.entry.js +1 -1
  4. package/dist/cjs/ix-breadcrumb_2.cjs.entry.js +1 -1
  5. package/dist/cjs/ix-button.cjs.entry.js +1 -1
  6. package/dist/cjs/ix-category-filter.cjs.entry.js +1 -1
  7. package/dist/cjs/ix-chip.cjs.entry.js +1 -1
  8. package/dist/cjs/ix-date-picker_2.cjs.entry.js +214 -56
  9. package/dist/cjs/ix-date-time-card.cjs.entry.js +1 -1
  10. package/dist/cjs/ix-datetime-picker.cjs.entry.js +79 -10
  11. package/dist/cjs/ix-drawer.cjs.entry.js +1 -1
  12. package/dist/cjs/ix-dropdown_2.cjs.entry.js +1 -1
  13. package/dist/cjs/ix-event-list_2.cjs.entry.js +3 -3
  14. package/dist/cjs/ix-expanding-search.cjs.entry.js +2 -1
  15. package/dist/cjs/ix-filter-chip.cjs.entry.js +1 -1
  16. package/dist/cjs/ix-input-group.cjs.entry.js +1 -1
  17. package/dist/cjs/ix-map-navigation_2.cjs.entry.js +0 -25
  18. package/dist/cjs/ix-menu_9.cjs.entry.js +32 -16
  19. package/dist/cjs/ix-select_2.cjs.entry.js +1 -1
  20. package/dist/cjs/ix-tile.cjs.entry.js +1 -1
  21. package/dist/cjs/ix-toast_2.cjs.entry.js +4 -0
  22. package/dist/cjs/ix-tree_2.cjs.entry.js +1 -1
  23. package/dist/cjs/ix-validation-tooltip.cjs.entry.js +1 -1
  24. package/dist/cjs/{ix-workflow-step.cjs.entry.js → ix-workflow-step_2.cjs.entry.js} +77 -0
  25. package/dist/cjs/loader.cjs.js +1 -1
  26. package/dist/cjs/siemens-ix.cjs.js +1 -1
  27. package/dist/collection/collection-manifest.json +6 -0
  28. package/dist/collection/components/application-header/application-header.js +12 -1
  29. package/dist/collection/components/blind/blind.css +1 -1
  30. package/dist/collection/components/breadcrumb/breadcrumb.css +1 -1
  31. package/dist/collection/components/button/button.css +3 -0
  32. package/dist/collection/components/button/button.js +1 -1
  33. package/dist/collection/components/category-filter/category-filter.css +2 -3
  34. package/dist/collection/components/chip/chip.css +8 -8
  35. package/dist/collection/components/date-picker/date-picker.css +51 -49
  36. package/dist/collection/components/date-picker/date-picker.js +371 -57
  37. package/dist/collection/components/date-picker/events.js +1 -0
  38. package/dist/collection/components/date-time-card/date-time-card.css +3 -1
  39. package/dist/collection/components/datetime-picker/datetime-picker.css +12 -3
  40. package/dist/collection/components/datetime-picker/datetime-picker.js +361 -21
  41. package/dist/collection/components/datetime-picker/event.js +9 -0
  42. package/dist/collection/components/drawer/drawer.js +1 -1
  43. package/dist/collection/components/dropdown/dropdown.css +1 -1
  44. package/dist/collection/components/event-list/event-list.css +2 -2
  45. package/dist/collection/components/event-list-item/event-list-item.css +36 -19
  46. package/dist/collection/components/event-list-item/event-list-item.js +2 -2
  47. package/dist/collection/components/expanding-search/expanding-search.css +6 -3
  48. package/dist/collection/components/expanding-search/expanding-search.js +1 -0
  49. package/dist/collection/components/filter-chip/filter-chip.css +2 -2
  50. package/dist/collection/components/icon/icon.js +1 -1
  51. package/dist/collection/components/input-group/input-group.js +1 -1
  52. package/dist/collection/components/map-navigation/map-navigation.js +1 -28
  53. package/dist/collection/components/menu/menu.js +36 -17
  54. package/dist/collection/components/menu-about/menu-about.js +13 -34
  55. package/dist/collection/components/menu-item/menu-item.css +2 -2
  56. package/dist/collection/components/menu-settings/menu-settings.js +1 -1
  57. package/dist/collection/components/select/select.css +1 -1
  58. package/dist/collection/components/tile/tile.css +1 -1
  59. package/dist/collection/components/time-picker/time-picker.js +188 -31
  60. package/dist/collection/components/toast/toast.js +6 -1
  61. package/dist/collection/components/tree-item/tree-item.css +9 -3
  62. package/dist/collection/components/validation-tooltip/validation-tooltip.css +2 -1
  63. package/dist/collection/exports.js +2 -0
  64. package/dist/components/application-header.js +11 -0
  65. package/dist/components/button.js +2 -2
  66. package/dist/components/date-picker.js +162 -45
  67. package/dist/components/date-time-card.js +1 -1
  68. package/dist/components/dropdown.js +1 -1
  69. package/dist/components/filter-chip.js +1 -1
  70. package/dist/components/ix-blind.js +1 -1
  71. package/dist/components/ix-breadcrumb.js +1 -1
  72. package/dist/components/ix-category-filter.js +1 -1
  73. package/dist/components/ix-chip.js +1 -1
  74. package/dist/components/ix-datetime-picker.js +90 -11
  75. package/dist/components/ix-drawer.js +1 -1
  76. package/dist/components/ix-event-list-item.js +2 -2
  77. package/dist/components/ix-event-list.js +1 -1
  78. package/dist/components/ix-expanding-search.js +2 -1
  79. package/dist/components/ix-input-group.js +1 -1
  80. package/dist/components/ix-map-navigation.js +6 -51
  81. package/dist/components/ix-menu-about.js +115 -1
  82. package/dist/components/ix-menu.js +20 -2
  83. package/dist/components/ix-select.js +1 -1
  84. package/dist/components/ix-tile.js +1 -1
  85. package/dist/components/ix-validation-tooltip.js +1 -1
  86. package/dist/components/menu-item.js +1 -1
  87. package/dist/components/time-picker.js +70 -17
  88. package/dist/components/toast.js +4 -0
  89. package/dist/components/tree-item.js +1 -1
  90. package/dist/esm/ix-application-header.entry.js +12 -1
  91. package/dist/esm/ix-blind.entry.js +1 -1
  92. package/dist/esm/ix-breadcrumb_2.entry.js +1 -1
  93. package/dist/esm/ix-button.entry.js +1 -1
  94. package/dist/esm/ix-category-filter.entry.js +1 -1
  95. package/dist/esm/ix-chip.entry.js +1 -1
  96. package/dist/esm/ix-date-picker_2.entry.js +214 -56
  97. package/dist/esm/ix-date-time-card.entry.js +1 -1
  98. package/dist/esm/ix-datetime-picker.entry.js +79 -10
  99. package/dist/esm/ix-drawer.entry.js +1 -1
  100. package/dist/esm/ix-dropdown_2.entry.js +1 -1
  101. package/dist/esm/ix-event-list_2.entry.js +3 -3
  102. package/dist/esm/ix-expanding-search.entry.js +2 -1
  103. package/dist/esm/ix-filter-chip.entry.js +1 -1
  104. package/dist/esm/ix-input-group.entry.js +1 -1
  105. package/dist/esm/ix-map-navigation_2.entry.js +0 -25
  106. package/dist/esm/ix-menu_9.entry.js +32 -16
  107. package/dist/esm/ix-select_2.entry.js +1 -1
  108. package/dist/esm/ix-tile.entry.js +1 -1
  109. package/dist/esm/ix-toast_2.entry.js +4 -0
  110. package/dist/esm/ix-tree_2.entry.js +1 -1
  111. package/dist/esm/ix-validation-tooltip.entry.js +1 -1
  112. package/dist/esm/{ix-workflow-step.entry.js → ix-workflow-step_2.entry.js} +78 -2
  113. package/dist/esm/loader.js +1 -1
  114. package/dist/esm/siemens-ix.js +1 -1
  115. package/dist/siemens-ix/p-02501b64.entry.js +1 -0
  116. package/dist/siemens-ix/p-03ef9fe5.entry.js +1 -0
  117. package/dist/siemens-ix/{p-03d95feb.entry.js → p-1d56d9b6.entry.js} +1 -1
  118. package/dist/siemens-ix/p-2b7ed5d4.entry.js +1 -0
  119. package/dist/siemens-ix/p-334b7d5c.entry.js +1 -0
  120. package/dist/siemens-ix/{p-cde8f20e.entry.js → p-4287bd7e.entry.js} +1 -1
  121. package/dist/siemens-ix/{p-7ec8a00e.entry.js → p-52d99490.entry.js} +1 -1
  122. package/dist/siemens-ix/{p-2cda7278.entry.js → p-5fed62f8.entry.js} +1 -1
  123. package/dist/siemens-ix/p-71de6498.entry.js +1 -0
  124. package/dist/siemens-ix/p-77823732.entry.js +1 -0
  125. package/dist/siemens-ix/p-893b7bf6.entry.js +1 -0
  126. package/dist/siemens-ix/{p-2ce29bcd.entry.js → p-94b86dec.entry.js} +1 -1
  127. package/dist/siemens-ix/{p-40842bea.entry.js → p-a49005f3.entry.js} +1 -1
  128. package/dist/siemens-ix/{p-e1f54836.entry.js → p-a8396077.entry.js} +1 -1
  129. package/dist/siemens-ix/{p-504927a0.entry.js → p-b93c2fab.entry.js} +1 -1
  130. package/dist/siemens-ix/p-bf5513a0.entry.js +1 -0
  131. package/dist/siemens-ix/p-c0c9fb81.entry.js +1 -0
  132. package/dist/siemens-ix/p-c792adb4.entry.js +1 -0
  133. package/dist/siemens-ix/{p-7a4c744e.entry.js → p-c9a5d942.entry.js} +1 -1
  134. package/dist/siemens-ix/p-cb6e62ff.entry.js +1 -0
  135. package/dist/siemens-ix/p-cbd0f8a7.entry.js +1 -0
  136. package/dist/siemens-ix/p-d2fc562a.entry.js +1 -0
  137. package/dist/siemens-ix/p-fa44655a.entry.js +1 -0
  138. package/dist/siemens-ix/siemens-ix.css +13 -13
  139. package/dist/siemens-ix/siemens-ix.esm.js +1 -1
  140. package/dist/types/components/application-header/application-header.d.ts +3 -0
  141. package/dist/types/components/date-picker/date-picker.d.ts +93 -13
  142. package/dist/types/components/date-picker/events.d.ts +5 -0
  143. package/dist/types/components/datetime-picker/datetime-picker.d.ts +106 -9
  144. package/dist/types/components/datetime-picker/event.d.ts +5 -0
  145. package/dist/types/components/icon/icon.d.ts +1 -1
  146. package/dist/types/components/map-navigation/map-navigation.d.ts +0 -8
  147. package/dist/types/components/menu/menu.d.ts +2 -0
  148. package/dist/types/components/menu-about/menu-about.d.ts +1 -4
  149. package/dist/types/components/time-picker/time-picker.d.ts +42 -8
  150. package/dist/types/components.d.ts +276 -40
  151. package/dist/types/exports.d.ts +2 -0
  152. package/package.json +10 -1
  153. package/scss/components/_buttons.scss +15 -5
  154. package/scss/components/_checkboxes.scss +26 -14
  155. package/scss/components/_dropdown.scss +1 -1
  156. package/scss/components/_forms.scss +2 -1
  157. package/scss/components/_radiobuttons.scss +26 -14
  158. package/scss/mixins/_hover.scss +0 -1
  159. package/src/components/date-picker/readme.md +31 -10
  160. package/src/components/datetime-picker/readme.md +23 -10
  161. package/src/components/icon/readme.md +5 -5
  162. package/src/components/menu-about/readme.md +5 -6
  163. package/src/components/time-picker/readme.md +25 -8
  164. package/dist/cjs/ix-workflow-steps.cjs.entry.js +0 -83
  165. package/dist/components/menu-about.js +0 -120
  166. package/dist/esm/ix-workflow-steps.entry.js +0 -79
  167. package/dist/siemens-ix/p-1e111d1d.entry.js +0 -1
  168. package/dist/siemens-ix/p-240d22b6.entry.js +0 -1
  169. package/dist/siemens-ix/p-3613be96.entry.js +0 -1
  170. package/dist/siemens-ix/p-5990f0cb.entry.js +0 -1
  171. package/dist/siemens-ix/p-59c81e2a.entry.js +0 -1
  172. package/dist/siemens-ix/p-61b032bf.entry.js +0 -1
  173. package/dist/siemens-ix/p-662d756f.entry.js +0 -1
  174. package/dist/siemens-ix/p-74c2e0e7.entry.js +0 -1
  175. package/dist/siemens-ix/p-9d9b8ad1.entry.js +0 -1
  176. package/dist/siemens-ix/p-bbcee9fb.entry.js +0 -1
  177. package/dist/siemens-ix/p-ca71538c.entry.js +0 -1
  178. package/dist/siemens-ix/p-caf856f2.entry.js +0 -1
  179. package/dist/siemens-ix/p-d31bf6db.entry.js +0 -1
  180. package/dist/siemens-ix/p-e4d1a964.entry.js +0 -1
  181. package/dist/siemens-ix/p-fe020fa3.entry.js +0 -1
@@ -8582,41 +8582,123 @@ exports.Zone = Zone;
8582
8582
  //# sourceMappingURL=luxon.js.map
8583
8583
  });
8584
8584
 
8585
- const datePickerCss = ".header.sc-ix-date-picker{display:flex;align-items:center;justify-content:space-between}.selector.sc-ix-date-picker{flex-basis:100%;display:flex;align-items:center;justify-content:center;padding:0.25rem 1rem}.selector.sc-ix-date-picker .dropdown.sc-ix-date-picker{color:var(--theme-menu-item--color);font-size:14px;line-height:20px}.selector.sc-ix-date-picker .fontSize.sc-ix-date-picker{font-size:16px}.selector.sc-ix-date-picker .capitalize.sc-ix-date-picker{text-transform:capitalize}.selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker{display:flex;position:relative;padding:0.75rem 2rem;align-items:center;cursor:pointer}.selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker:hover{background-color:var(--theme-select-list-item--background--hover)}.selector.sc-ix-date-picker .arrowYear.selected.sc-ix-date-picker{background-color:var(--theme-select-list-item--background--selected)}.selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .arrowPosition.sc-ix-date-picker{position:absolute;left:calc(1rem - 6px);top:calc(50% - 6px)}.selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .checkPosition.sc-ix-date-picker{position:absolute;left:calc(1rem - 6px);top:calc(50% - 8px)}.selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .monthMargin.sc-ix-date-picker{margin-left:10px}.wrapper.sc-ix-date-picker{display:flex}.wrapper.sc-ix-date-picker .overflow.sc-ix-date-picker{overflow-y:scroll;max-height:250px}.grid.sc-ix-date-picker{display:grid;grid-template-columns:repeat(8, 40px);grid-template-rows:repeat(7, 40px);align-items:center;justify-items:center;justify-content:center;color:var(--theme-datepicker-today--color)}.grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker{position:relative;display:flex;justify-content:center;align-items:center;background-color:var(--theme-datepicker-day--background);border:1px solid var(--theme-datepicker-day--background);width:40px;height:40px;cursor:pointer}.grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker{border:1px solid var(--theme-datepicker-today--border-color)}.grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--hover)}.grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--active)}.grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker{box-shadow:inset 0 0 0 1px white}.grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}.grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--selected-active)}.grid.sc-ix-date-picker .calendar-item.today.selected.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--selected-disabled);border:1px solid var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}.grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range);border:1px solid var(--theme-datepicker-today--border-color--range);box-shadow:inset 0 0 0 1px white}.grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--range-hover);border:1px solid var(--theme-datepicker-today--border-color--range-hover)}.grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--range-active);border:1px solid var(--theme-datepicker-today--border-color--range-active)}.grid.sc-ix-date-picker .calendar-item.today.range.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled);border:1px solid var(--theme-datepicker-today--border-color--range-disabled)}.grid.sc-ix-date-picker .calendar-item.today.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled)}.grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--hover)}.grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--active)}.grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--selected);color:var(--theme-datepicker-day--color--selected);border:1px solid var(--theme-datepicker-day--background--selected)}.grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}.grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--selected-active)}.grid.sc-ix-date-picker .calendar-item.selected.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}.grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range)}.grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--range-hover)}.grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--range-active)}.grid.sc-ix-date-picker .calendar-item.range.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled)}.grid.sc-ix-date-picker .calendar-item.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled)}.grid.sc-ix-date-picker .calendar-item.week-day.sc-ix-date-picker{color:var(--theme-datepicker-weekday--color);font-size:12px;line-height:20px;border:none;background:none;cursor:initial}.grid.sc-ix-date-picker .calendar-item.empty-day.sc-ix-date-picker{border:none;background:none;cursor:initial}.grid.sc-ix-date-picker .calendar-item.week-number.sc-ix-date-picker{font-size:10px;line-height:14px;color:var(--theme-datepicker-ix--color);border:none;background:none;cursor:initial}.grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:focus-visible{background-color:var(--theme-datepicker-day--background--selected);border:inset 1px solid var(--theme-datepicker-day--border-color--selected);color:var(--theme-datepicker-day--color--selected);font-size:14px;line-height:20px;letter-spacing:0}.button.sc-ix-date-picker{display:flex;justify-content:flex-end}.hidden.sc-ix-date-picker{display:none}";
8585
+ const datePickerCss = ".sc-ix-date-picker-h .header.sc-ix-date-picker{display:flex;align-items:center;justify-content:space-between}.sc-ix-date-picker-h .selector.sc-ix-date-picker{flex-basis:100%;display:flex;align-items:center;justify-content:center;padding:0.25rem 1rem}.sc-ix-date-picker-h .selector.sc-ix-date-picker .dropdown.sc-ix-date-picker{color:var(--theme-menu-item--color);font-size:14px;line-height:20px}.sc-ix-date-picker-h .selector.sc-ix-date-picker .fontSize.sc-ix-date-picker{font-size:16px}.sc-ix-date-picker-h .selector.sc-ix-date-picker .capitalize.sc-ix-date-picker{text-transform:capitalize}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker{display:flex;position:relative;padding:0.75rem 2rem;align-items:center;cursor:pointer}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker:hover{background-color:var(--theme-select-list-item--background--hover)}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.selected.sc-ix-date-picker{background-color:var(--theme-select-list-item--background--selected)}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .arrowPosition.sc-ix-date-picker{position:absolute;left:calc(1rem - 6px);top:calc(50% - 6px)}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .checkPosition.sc-ix-date-picker{position:absolute;left:calc(1rem - 6px);top:calc(50% - 8px)}.sc-ix-date-picker-h .selector.sc-ix-date-picker .arrowYear.sc-ix-date-picker .monthMargin.sc-ix-date-picker{margin-left:10px}.sc-ix-date-picker-h .wrapper.sc-ix-date-picker{display:flex}.sc-ix-date-picker-h .wrapper.sc-ix-date-picker .overflow.sc-ix-date-picker{overflow-y:scroll;max-height:250px}.sc-ix-date-picker-h .grid.sc-ix-date-picker{display:grid;grid-template-columns:repeat(8, 40px);grid-template-rows:repeat(7, 40px);align-items:center;justify-items:center;justify-content:center;color:var(--theme-datepicker-today--color)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker{position:relative;display:flex;justify-content:center;align-items:center;background-color:var(--theme-datepicker-day--background);border:1px solid var(--theme-datepicker-day--background);width:40px;height:40px;cursor:pointer}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker{border:1px solid var(--theme-datepicker-today--border-color)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker{box-shadow:inset 0 0 0 1px white}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.selected.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--selected-active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.selected.disabled.sc-ix-date-picker{pointer-events:none;background-color:var(--theme-datepicker-day--background--selected-disabled);border:1px solid var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range);border:1px solid var(--theme-datepicker-today--border-color--range);box-shadow:inset 0 0 0 1px white}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--range-hover);border:1px solid var(--theme-datepicker-today--border-color--range-hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.range.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--range-active);border:1px solid var(--theme-datepicker-today--border-color--range-active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.range.disabled.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled);border:1px solid var(--theme-datepicker-today--border-color--range-disabled)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.today.disabled.sc-ix-date-picker{pointer-events:none;background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled);cursor:default;pointer-events:none}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--selected);color:var(--theme-datepicker-day--color--selected);border:1px solid var(--theme-datepicker-day--background--selected)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--selected-hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.selected.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--selected-active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.selected.disabled.sc-ix-date-picker{pointer-events:none;background-color:var(--theme-datepicker-day--background--selected-disabled);color:var(--theme-datepicker-day--color--selected-disabled)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker{background-color:var(--theme-datepicker-day--background--range);color:var(--theme-datepicker-day--color--range)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker:hover{background-color:var(--theme-datepicker-day--background--range-hover)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.range.sc-ix-date-picker:active{background-color:var(--theme-datepicker-day--background--range-active)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.range.disabled.sc-ix-date-picker{pointer-events:none;background-color:var(--theme-datepicker-day--background--range-disabled);color:var(--theme-datepicker-day--color--range-disabled)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.disabled.sc-ix-date-picker{pointer-events:none;background-color:var(--theme-datepicker-day--background--disabled);color:var(--theme-datepicker-day--color--disabled)}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.week-day.sc-ix-date-picker{color:var(--theme-datepicker-weekday--color);font-size:12px;line-height:20px;border:none;background:none;cursor:initial}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.empty-day.sc-ix-date-picker{border:none;background:none;cursor:initial}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.week-number.sc-ix-date-picker{font-size:10px;line-height:14px;color:var(--theme-datepicker-ix--color);border:none;background:none;cursor:initial}.sc-ix-date-picker-h .grid.sc-ix-date-picker .calendar-item.sc-ix-date-picker:focus-visible{background-color:var(--theme-datepicker-day--background--selected);border:inset 1px solid var(--theme-datepicker-day--border-color--selected);color:var(--theme-datepicker-day--color--selected);font-size:14px;line-height:20px;letter-spacing:0}.sc-ix-date-picker-h .button.sc-ix-date-picker{display:flex;justify-content:flex-end}.sc-ix-date-picker-h .hidden.sc-ix-date-picker{display:none}";
8586
8586
 
8587
8587
  const DatePicker = class {
8588
8588
  constructor(hostRef) {
8589
8589
  registerInstance(this, hostRef);
8590
8590
  this.dateChange = createEvent(this, "dateChange", 7);
8591
+ this.dateRangeChange = createEvent(this, "dateRangeChange", 7);
8591
8592
  this.done = createEvent(this, "done", 7);
8593
+ this.dateSelect = createEvent(this, "dateSelect", 7);
8594
+ this.daysInWeek = 7;
8595
+ this.dayNames = luxon.Info.weekdays();
8596
+ this.monthNames = luxon.Info.months();
8592
8597
  /**
8593
- * output date format
8598
+ * Date format string.
8599
+ * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.
8594
8600
  */
8595
8601
  this.format = 'yyyy/LL/dd';
8596
8602
  /**
8597
- * Set range size
8603
+ * If true a range of dates can be selected.
8598
8604
  */
8599
8605
  this.range = true;
8600
8606
  /**
8601
- * set styles
8607
+ * @deprecated - will get removed with next major release
8602
8608
  */
8603
8609
  this.individual = true;
8604
8610
  /**
8605
- * Set corners style
8611
+ * Corner style
8606
8612
  */
8607
8613
  this.corners = 'rounded';
8608
- this.daysInWeek = 7;
8609
- this.dayNames = luxon.Info.weekdays();
8610
- this.monthNames = luxon.Info.months();
8611
- this.year = luxon.DateTime.now().year;
8612
- this.month = luxon.DateTime.now().month;
8613
- this.calendar = [];
8614
+ /**
8615
+ * Picker date. If the picker is in range mode this property is the start date.
8616
+ *
8617
+ * Format is based on `format`
8618
+ *
8619
+ * @since 1.1.0
8620
+ */
8621
+ this.from = luxon.DateTime.now().toFormat(this.format);
8622
+ /**
8623
+ * Picker date. If the picker is in range mode this property is the end date.
8624
+ * If the picker is not in range mode leave this value `null`
8625
+ *
8626
+ * Format is based on `format`
8627
+ *
8628
+ * @since 1.1.0
8629
+ */
8630
+ this.to = null;
8631
+ /**
8632
+ * Default behavior of the done event is to join the two events (date and time) into one combined string output.
8633
+ * This combination can be configured over the delimiter
8634
+ *
8635
+ * @since 1.1.0
8636
+ */
8637
+ this.eventDelimiter = ' - ';
8638
+ /**
8639
+ * Text of date select button
8640
+ *
8641
+ * @since 1.1.0
8642
+ */
8643
+ this.textSelectDate = 'Done';
8644
+ this.yearValue = this.year;
8614
8645
  this.today = luxon.DateTime.now();
8615
- this.years = [...Array(10).keys()].map((year) => year + luxon.DateTime.now().year - 5);
8616
- this.tempYear = this.year;
8617
- this.tempMonth = this.month;
8618
- this.start = null;
8619
- this.end = null;
8646
+ this.monthValue = this.month;
8647
+ this.calendar = [];
8648
+ this.years = [...Array(10).keys()].map((year) => year + this.year - 5);
8649
+ this.tempYear = this.yearValue;
8650
+ this.tempMonth = this.monthValue;
8651
+ this.start = luxon.DateTime.fromObject({
8652
+ year: this.year,
8653
+ month: this.month,
8654
+ day: this.day,
8655
+ });
8656
+ this.end = this.to
8657
+ ? luxon.DateTime.fromFormat(this.to, this.format)
8658
+ : null;
8659
+ }
8660
+ get year() {
8661
+ return luxon.DateTime.fromFormat(this.from, this.format).year;
8662
+ }
8663
+ get day() {
8664
+ return luxon.DateTime.fromFormat(this.from, this.format).day;
8665
+ }
8666
+ get month() {
8667
+ return luxon.DateTime.fromFormat(this.from, this.format).month;
8668
+ }
8669
+ onDone() {
8670
+ var _a;
8671
+ this.done.emit(this.getOutputFormat());
8672
+ this.dateSelect.emit({
8673
+ from: this.start.toFormat(this.format),
8674
+ to: (_a = this.end) === null || _a === void 0 ? void 0 : _a.toFormat(this.format),
8675
+ });
8676
+ }
8677
+ onDateChange() {
8678
+ var _a, _b, _c, _d;
8679
+ if (this.eventDelimiter) {
8680
+ this.dateChange.emit(this.getOutputFormat());
8681
+ }
8682
+ else {
8683
+ this.dateChange.emit({
8684
+ from: (_a = this.start) === null || _a === void 0 ? void 0 : _a.toFormat(this.format),
8685
+ to: (_b = this.end) === null || _b === void 0 ? void 0 : _b.toFormat(this.format),
8686
+ });
8687
+ }
8688
+ if (this.range) {
8689
+ this.dateRangeChange.emit({
8690
+ from: (_c = this.start) === null || _c === void 0 ? void 0 : _c.toFormat(this.format),
8691
+ to: (_d = this.end) === null || _d === void 0 ? void 0 : _d.toFormat(this.format),
8692
+ });
8693
+ }
8694
+ }
8695
+ selectionProps() {
8696
+ if (this.year !== null) {
8697
+ this.yearValue = this.year;
8698
+ }
8699
+ if (this.month !== null) {
8700
+ this.monthValue = this.month;
8701
+ }
8620
8702
  }
8621
8703
  getStartOfMonth(year = luxon.DateTime.local().get('year'), month = luxon.DateTime.local().get('month')) {
8622
8704
  return luxon.DateTime.local(year, month).startOf('month');
@@ -8628,8 +8710,9 @@ const DatePicker = class {
8628
8710
  return Math.ceil(end.diff(start, 'days').days);
8629
8711
  }
8630
8712
  calculateCalendar() {
8631
- const start = this.getStartOfMonth(this.year, this.month);
8632
- const end = this.getEndOfMonth(this.year, this.month);
8713
+ this.selectionProps();
8714
+ const start = this.getStartOfMonth(this.yearValue, this.monthValue);
8715
+ const end = this.getEndOfMonth(this.yearValue, this.monthValue);
8633
8716
  const totalDays = this.getDaysInMonth(start, end);
8634
8717
  const totalWeeks = 6;
8635
8718
  const totalDaysInWeeks = totalWeeks * this.daysInWeek;
@@ -8657,30 +8740,29 @@ const DatePicker = class {
8657
8740
  const week = weekdays[index - 1];
8658
8741
  const firstWeekDay = week.find((day) => day !== undefined);
8659
8742
  const weekNumber = firstWeekDay
8660
- ? luxon.DateTime.local(this.year, this.month, weekdays[index - 1][0])
8661
- .weekNumber
8743
+ ? luxon.DateTime.local(this.yearValue, this.monthValue, weekdays[index - 1][0]).weekNumber
8662
8744
  : undefined;
8663
8745
  calendar.push([weekNumber, week]);
8664
8746
  }
8665
8747
  this.calendar = calendar;
8666
8748
  }
8667
8749
  changeMonth(number) {
8668
- if (this.month + number < 1) {
8669
- this.year--;
8670
- this.month = 12;
8750
+ if (this.monthValue + number < 1) {
8751
+ this.yearValue--;
8752
+ this.monthValue = 12;
8671
8753
  }
8672
- else if (this.month + number > 12) {
8673
- this.year++;
8674
- this.month = 1;
8754
+ else if (this.monthValue + number > 12) {
8755
+ this.yearValue++;
8756
+ this.monthValue = 1;
8675
8757
  }
8676
8758
  else {
8677
- this.month += number;
8759
+ this.monthValue += number;
8678
8760
  }
8679
8761
  this.calculateCalendar();
8680
8762
  }
8681
8763
  selectMonth(month) {
8682
- this.month = month;
8683
- this.year = this.tempYear;
8764
+ this.monthValue = month;
8765
+ this.yearValue = this.tempYear;
8684
8766
  this.tempMonth = month;
8685
8767
  }
8686
8768
  infiniteScrollYears() {
@@ -8713,7 +8795,7 @@ const DatePicker = class {
8713
8795
  }
8714
8796
  todayClass(day) {
8715
8797
  const today = luxon.DateTime.local();
8716
- const daaay = luxon.DateTime.local(this.year, this.month, day);
8798
+ const daaay = luxon.DateTime.local(this.yearValue, this.monthValue, day);
8717
8799
  const isToday = Math.ceil(daaay.diff(today, 'days').days) === 0;
8718
8800
  return {
8719
8801
  'calendar-item': true,
@@ -8725,14 +8807,15 @@ const DatePicker = class {
8725
8807
  this.end &&
8726
8808
  daaay.toISO() > this.start.toISO() &&
8727
8809
  daaay.toISO() < this.end.toISO(),
8728
- disabled: this.start &&
8729
- daaay.toISO() < this.start.toISO() &&
8730
- this.end === null &&
8731
- this.range,
8810
+ disabled: !this.isWithinMinMax(daaay) ||
8811
+ (this.start &&
8812
+ daaay.toISO() < this.start.toISO() &&
8813
+ this.end === null &&
8814
+ this.range),
8732
8815
  };
8733
8816
  }
8734
8817
  selectDay(day) {
8735
- const date = luxon.DateTime.local(this.year, this.month, day);
8818
+ const date = luxon.DateTime.local(this.yearValue, this.monthValue, day);
8736
8819
  const isNotDay = day === undefined;
8737
8820
  const isFirstDay = this.start === null;
8738
8821
  const isLastDay = this.end === null;
@@ -8743,7 +8826,7 @@ const DatePicker = class {
8743
8826
  return;
8744
8827
  if (isSameDay) {
8745
8828
  this.start = null;
8746
- this.dateChange.emit(this.getOutputFormat());
8829
+ this.onDateChange();
8747
8830
  return;
8748
8831
  }
8749
8832
  if (!this.range) {
@@ -8759,18 +8842,45 @@ const DatePicker = class {
8759
8842
  this.start = date;
8760
8843
  this.end = null;
8761
8844
  }
8762
- this.dateChange.emit(this.getOutputFormat());
8845
+ this.onDateChange();
8763
8846
  }
8764
8847
  getOutputFormat() {
8765
- if (!this.end)
8848
+ if (!this.start) {
8849
+ return null;
8850
+ }
8851
+ if (!this.end) {
8766
8852
  return this.start.toFormat(this.format);
8767
- return (this.start.toFormat(this.format) + ' - ' + this.end.toFormat(this.format));
8853
+ }
8854
+ return [
8855
+ this.start.toFormat(this.format),
8856
+ this.end.toFormat(this.format),
8857
+ ].join(this.eventDelimiter);
8858
+ }
8859
+ isWithinMinMax(date) {
8860
+ const dateIso = date.toISO();
8861
+ const _minDate = this.minDate
8862
+ ? luxon.DateTime.fromFormat(this.minDate, this.format)
8863
+ : null;
8864
+ const _maxDate = this.maxDate
8865
+ ? luxon.DateTime.fromFormat(this.maxDate, this.format)
8866
+ : null;
8867
+ return ((!_minDate || _minDate.toISO() <= dateIso) &&
8868
+ (!_maxDate || _maxDate.toISO() >= dateIso));
8768
8869
  }
8769
8870
  componentWillRender() {
8770
8871
  this.calculateCalendar();
8771
8872
  }
8873
+ /**
8874
+ * Get the current DateTime
8875
+ */
8876
+ async getCurrentDate() {
8877
+ return {
8878
+ start: this.start,
8879
+ end: this.end,
8880
+ };
8881
+ }
8772
8882
  render() {
8773
- return (h(Host, null, h("ix-date-time-card", { individual: this.individual, corners: this.corners }, h("div", { class: "header", slot: "header" }, h("ix-icon-button", { onClick: () => this.changeMonth(-1), ghost: true, icon: "chevron-left", variant: "Primary", class: "arrows" }), h("div", { class: "selector" }, h("ix-button", { ghost: true, ref: (ref) => (this.dropdownButtonRef = ref) }, h("span", { class: "fontSize capitalize" }, this.monthNames[this.month - 1], " ", this.year)), h("ix-dropdown", { class: "dropdown", trigger: this.dropdownButtonRef, placement: "bottom" }, h("div", { class: "wrapper" }, h("div", { class: "overflow", onScroll: () => this.infiniteScrollYears(), ref: (ref) => (this.yearContainerRef = ref) }, this.years.map((year) => (h("div", { class: { arrowYear: true }, onClick: (event) => this.selectTempYear(event, year) }, h("ix-icon", { class: {
8883
+ return (h(Host, null, h("ix-date-time-card", { individual: this.individual, corners: this.corners }, h("div", { class: "header", slot: "header" }, h("ix-icon-button", { onClick: () => this.changeMonth(-1), ghost: true, icon: "chevron-left", variant: "Primary", class: "arrows" }), h("div", { class: "selector" }, h("ix-button", { ghost: true, ref: (ref) => (this.dropdownButtonRef = ref) }, h("span", { class: "fontSize capitalize" }, this.monthNames[this.monthValue - 1], " ", this.yearValue)), h("ix-dropdown", { class: "dropdown", trigger: this.dropdownButtonRef, placement: "bottom" }, h("div", { class: "wrapper" }, h("div", { class: "overflow", onScroll: () => this.infiniteScrollYears(), ref: (ref) => (this.yearContainerRef = ref) }, this.years.map((year) => (h("div", { class: { arrowYear: true }, onClick: (event) => this.selectTempYear(event, year) }, h("ix-icon", { class: {
8774
8884
  hidden: this.tempYear !== year,
8775
8885
  arrowPosition: true,
8776
8886
  }, name: "chevron-right", size: "12" }), h("div", { style: { 'min-width': 'max-content' } }, `${year}`))))), h("div", { class: "overflow" }, this.monthNames.map((month, index) => (h("div", { class: {
@@ -8781,7 +8891,7 @@ const DatePicker = class {
8781
8891
  checkPosition: true,
8782
8892
  }, name: "single-check", size: "16" }), h("div", null, h("span", { class: { capitalize: true, monthMargin: true } }, `${month} ${this.tempYear}`))))))))), h("ix-icon-button", { onClick: () => this.changeMonth(1), ghost: true, icon: "chevron-right", variant: "Primary", class: "arrows" })), h("div", { class: "grid" }, h("div", { class: "calendar-item week-day" }), this.dayNames.map((name) => (h("div", { class: "calendar-item week-day" }, name.slice(0, 3)))), this.calendar.map((week) => {
8783
8893
  return (h(Fragment, null, h("div", { class: "calendar-item week-number" }, week[0]), week[1].map((day) => (h("div", { class: this.todayClass(day), onClick: () => this.selectDay(day) }, day)))));
8784
- })), h("div", { class: { button: true, hidden: !this.individual } }, h("ix-button", { onClick: () => this.done.emit(this.getOutputFormat()) }, "Done")))));
8894
+ })), h("div", { class: { button: true, hidden: !this.individual } }, h("ix-button", { onClick: () => this.onDone() }, this.textSelectDate)))));
8785
8895
  }
8786
8896
  };
8787
8897
  DatePicker.style = datePickerCss;
@@ -8794,30 +8904,63 @@ const TimePicker = class {
8794
8904
  this.done = createEvent(this, "done", 7);
8795
8905
  this.timeChange = createEvent(this, "timeChange", 7);
8796
8906
  /**
8797
- * Set corners style
8907
+ * Format of time string
8908
+ *
8909
+ * @since 1.1.0
8910
+ */
8911
+ this.format = 'TT';
8912
+ /**
8913
+ * Corner style
8798
8914
  */
8799
8915
  this.corners = 'rounded';
8800
8916
  /**
8801
- * set styles
8917
+ * @deprecated - will get removed with next major release
8802
8918
  */
8803
8919
  this.individual = true;
8804
8920
  /**
8805
- * Show Hour Input
8921
+ * Show hour input
8806
8922
  */
8807
8923
  this.showHour = false;
8808
8924
  /**
8809
- * Show Minutes Input
8925
+ * Show minutes input
8810
8926
  */
8811
8927
  this.showMinutes = false;
8812
8928
  /**
8813
- * Show Seconds Input
8929
+ * Show seconds input
8814
8930
  */
8815
8931
  this.showSeconds = false;
8816
8932
  /**
8817
- * Show Time Reference Input
8933
+ * Select time with format string
8934
+ *
8935
+ * @since 1.1.0
8818
8936
  */
8819
- this.showTimeReference = false;
8820
- this.time = luxon.DateTime.fromFormat('00:00:00 AM', 'tt');
8937
+ this.time = luxon.DateTime.now().toFormat(this.format);
8938
+ /**
8939
+ * Show time reference input
8940
+ *
8941
+ * @since 1.1.0 time reference is default aligned with formt tt
8942
+ */
8943
+ this.showTimeReference = undefined;
8944
+ /**
8945
+ * Set time reference
8946
+ */
8947
+ this.timeReference = luxon.DateTime.fromFormat(this.time, this.format).toFormat('a');
8948
+ /**
8949
+ * Text of date select button
8950
+ *
8951
+ * @since 1.1.0
8952
+ */
8953
+ this.textSelectTime = 'Done';
8954
+ this._time = luxon.DateTime.fromFormat(this.time, this.format);
8955
+ }
8956
+ get hour() {
8957
+ return this._time.hour;
8958
+ }
8959
+ get minutes() {
8960
+ return this._time.minute;
8961
+ }
8962
+ get seconds() {
8963
+ return this._time.second;
8821
8964
  }
8822
8965
  updateInput(step, { hours = undefined, minutes = undefined, seconds = undefined }) {
8823
8966
  if (hours)
@@ -8830,25 +8973,40 @@ const TimePicker = class {
8830
8973
  step === 'up'
8831
8974
  ? this.secondInputRef.stepUp()
8832
8975
  : this.secondInputRef.stepDown();
8833
- this.time = this.time.set({
8976
+ this._time = this._time.set({
8834
8977
  hour: Number(this.hourInputRef.value),
8835
8978
  minute: Number(this.minuteInputRef.value),
8836
8979
  second: Number(this.secondInputRef.value),
8837
8980
  });
8838
- this.setHourAccordingToReference();
8839
- this.timeChange.emit(this.time.toFormat('TT'));
8981
+ this.emitTimeChange();
8840
8982
  }
8841
8983
  changeReference() {
8842
8984
  this.referenceInputRef.value =
8843
8985
  this.referenceInputRef.value === 'PM' ? 'AM' : 'PM';
8844
8986
  this.setHourAccordingToReference();
8845
- this.timeChange.emit(this.time.toFormat('TT'));
8987
+ this.emitTimeChange();
8846
8988
  }
8847
8989
  setHourAccordingToReference() {
8848
8990
  let hour = Number(this.hourInputRef.value);
8849
8991
  if (this.referenceInputRef.value === 'PM')
8850
8992
  hour += 12;
8851
- this.time = this.time.set({ hour });
8993
+ this._time = this._time.set({ hour });
8994
+ }
8995
+ emitTimeChange() {
8996
+ const time = this._time.toFormat(this.format);
8997
+ this.timeChange.emit(time);
8998
+ }
8999
+ componentWillLoad() {
9000
+ if (this.showTimeReference === undefined) {
9001
+ const matchedKeys = Object.keys(luxon.DateTime.fromFormatExplain(this.time, this.format).matches);
9002
+ this.showTimeReference = matchedKeys.includes('a');
9003
+ }
9004
+ }
9005
+ /**
9006
+ * Get current time
9007
+ */
9008
+ async getCurrentTime() {
9009
+ return this._time;
8852
9010
  }
8853
9011
  render() {
8854
9012
  let hideHour = !this.showHour;
@@ -8863,11 +9021,11 @@ const TimePicker = class {
8863
9021
  }
8864
9022
  const hideHourSeperator = hideMinutes || hideHour;
8865
9023
  const hideMinutesSeperator = hideSeconds || hideMinutes;
8866
- return (h(Host, null, h("ix-date-time-card", { individual: this.individual, corners: this.corners }, h("div", { class: "header", slot: "header" }, h("div", { class: "title" }, "Time")), h("div", { class: "clock" }, h("div", { class: { columns: true, hidden: hideHour } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { hours: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "hours", type: "number", placeholder: "00", min: "0", disabled: true, max: this.showTimeReference === true ? 11 : 23, ref: (ref) => (this.hourInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { hours: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: { 'column-seperator': true, hidden: hideHourSeperator } }, ":"), h("div", { class: { columns: true, hidden: hideMinutes } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { minutes: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "minutes", type: "number", placeholder: "00", min: "0", max: "59", disabled: true, ref: (ref) => (this.minuteInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { minutes: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: { 'column-seperator': true, hidden: hideMinutesSeperator } }, ":"), h("div", { class: { columns: true, hidden: hideSeconds } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { seconds: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "seconds", type: "number", placeholder: "00", disabled: true, min: "0", max: "59", ref: (ref) => (this.secondInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { seconds: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: {
9024
+ return (h(Host, null, h("ix-date-time-card", { individual: this.individual, corners: this.corners }, h("div", { class: "header", slot: "header" }, h("div", { class: "title" }, "Time")), h("div", { class: "clock" }, h("div", { class: { columns: true, hidden: hideHour } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { hours: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "hours", type: "number", placeholder: "00", value: this.hour, min: "0", disabled: true, max: this.showTimeReference === true ? 11 : 23, ref: (ref) => (this.hourInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { hours: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: { 'column-seperator': true, hidden: hideHourSeperator } }, ":"), h("div", { class: { columns: true, hidden: hideMinutes } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { minutes: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "minutes", type: "number", placeholder: "00", value: this.minutes, min: "0", max: "59", disabled: true, ref: (ref) => (this.minuteInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { minutes: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: { 'column-seperator': true, hidden: hideMinutesSeperator } }, ":"), h("div", { class: { columns: true, hidden: hideSeconds } }, h("ix-icon-button", { size: "16", onClick: () => this.updateInput('up', { seconds: true }), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "seconds", type: "number", placeholder: "00", value: this.seconds, disabled: true, min: "0", max: "59", ref: (ref) => (this.secondInputRef = ref) }), h("ix-icon-button", { size: "16", onClick: () => this.updateInput('down', { seconds: true }), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" })), h("div", { class: {
8867
9025
  columns: true,
8868
9026
  'default-space': true,
8869
9027
  hidden: hideTimeReference,
8870
- } }, h("ix-icon-button", { size: "16", onClick: () => this.changeReference(), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "reference", type: "text", ref: (ref) => (this.referenceInputRef = ref), value: "AM", disabled: true, class: "text-align" }), h("ix-icon-button", { size: "16", onClick: () => this.changeReference(), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" }))), h("div", { class: { button: true, hidden: hideIndividual } }, h("ix-button", { onClick: () => this.done.emit(this.time.toFormat('TT')) }, "Done")))));
9028
+ } }, h("ix-icon-button", { size: "16", onClick: () => this.changeReference(), ghost: true, icon: "chevron-up", variant: "Primary", class: "arrows" }), h("input", { name: "reference", type: "text", ref: (ref) => (this.referenceInputRef = ref), value: this.timeReference, disabled: true, class: "text-align" }), h("ix-icon-button", { size: "16", onClick: () => this.changeReference(), ghost: true, icon: "chevron-down", variant: "Primary", class: "arrows" }))), h("div", { class: { button: true, hidden: hideIndividual } }, h("ix-button", { onClick: () => this.done.emit(this._time.toFormat(this.format)) }, this.textSelectTime)))));
8871
9029
  }
8872
9030
  get hostElement() { return getElement(this); }
8873
9031
  };
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-55cfd20d.js';
2
2
 
3
- const dateTimeCardCss = ".card.sc-ix-date-time-card{background-color:var(--theme-menu--background);width:100%;box-shadow:none;border:none;border-radius:unset}.card.individual.sc-ix-date-time-card{box-shadow:0 0 2px 0 var(--theme-input--border-color-bottom--disabled), 0 4px 8px 0 var(--theme-input--border-color-bottom--disabled), 0 12px 18px 0px var(--theme-input--border-color-bottom--disabled);border:1px solid var(--theme-menu--border-color);border-radius:4px}.card.left.sc-ix-date-time-card{border-radius:4px 0 0 4px}.card.right.sc-ix-date-time-card{border-radius:0 4px 4px 0}.card.sc-ix-date-time-card .header.sc-ix-date-time-card{padding:1rem}.card.sc-ix-date-time-card .separator.sc-ix-date-time-card{border:1px solid var(--theme-datepicker-separator--background);width:100%}.card.sc-ix-date-time-card .content.sc-ix-date-time-card{height:100%;padding:0px 1rem 1rem 1rem}";
3
+ const dateTimeCardCss = ".card.sc-ix-date-time-card{background-color:var(--theme-menu--background);width:100%;box-shadow:none;border:none;border-radius:unset}.card.individual.sc-ix-date-time-card{box-shadow:0 0 2px 0 rgba(0, 0, 0, 0.1), 0 4px 8px 0 rgba(0, 0, 0, 0.1), 0 12px 18px 0px rgba(0, 0, 0, 0.1);border:1px solid var(--theme-menu--border-color);border-radius:4px}.card.left.sc-ix-date-time-card{border-radius:4px 0 0 4px;height:100%}.card.right.sc-ix-date-time-card{border-radius:0 4px 4px 0;height:100%}.card.sc-ix-date-time-card .header.sc-ix-date-time-card{padding:1rem}.card.sc-ix-date-time-card .separator.sc-ix-date-time-card{border:1px solid var(--theme-datepicker-separator--background);width:100%}.card.sc-ix-date-time-card .content.sc-ix-date-time-card{height:100%;padding:0px 1rem 1rem 1rem}";
4
4
 
5
5
  const DateTimeCard = class {
6
6
  constructor(hostRef) {
@@ -1,38 +1,107 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-55cfd20d.js';
2
2
 
3
- const datetimePickerCss = ".sc-ix-datetime-picker-h{background-color:var(--theme-menu--background);box-shadow:0 0 2px 0 var(--theme-input--border-color-bottom--disabled), 0 4px 8px 0 var(--theme-input--border-color-bottom--disabled), 0 12px 18px 0px var(--theme-input--border-color-bottom--disabled);border-radius:4px}.flex.sc-ix-datetime-picker{display:flex}.done.sc-ix-datetime-picker{display:flex;justify-content:flex-end;margin:0 1rem 1rem 0}";
3
+ const datetimePickerCss = ".sc-ix-datetime-picker-h{display:block;background-color:var(--theme-menu--background);border-radius:4px}.flex.sc-ix-datetime-picker{display:flex;justify-content:center}.done.sc-ix-datetime-picker{display:inline-flex;justify-content:flex-end;padding:1rem;width:100%}.separator.sc-ix-datetime-picker{border:1px solid var(--theme-datepicker-separator--background);width:100%;margin-top:72px;height:1px}";
4
4
 
5
5
  const DatePicker = class {
6
6
  constructor(hostRef) {
7
7
  registerInstance(this, hostRef);
8
8
  this.done = createEvent(this, "done", 7);
9
+ this.timeChange = createEvent(this, "timeChange", 7);
10
+ this.dateChange = createEvent(this, "dateChange", 7);
11
+ this.dateSelect = createEvent(this, "dateSelect", 7);
9
12
  /**
10
13
  * Set range size
11
14
  */
12
15
  this.range = true;
13
16
  /**
14
- * Show Hour Input
17
+ * Show hour input
15
18
  */
16
19
  this.showHour = false;
17
20
  /**
18
- * Show Minutes Input
21
+ * Show minutes input
19
22
  */
20
23
  this.showMinutes = false;
21
24
  /**
22
- * Show Seconds Input
25
+ * Show seconds input
23
26
  */
24
27
  this.showSeconds = false;
25
28
  /**
26
- * Show Time Reference Input
29
+ * Date format string.
30
+ * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.
31
+ *
32
+ * @since 1.1.0
27
33
  */
28
- this.showTimeReference = false;
34
+ this.dateFormat = 'yyyy/LL/dd';
35
+ /**
36
+ * Time format string.
37
+ * See {@link https://moment.github.io/luxon/#/formatting?id=table-of-tokens} for all available tokens.
38
+ *
39
+ * @since 1.1.0
40
+ */
41
+ this.timeFormat = 'TT';
42
+ /**
43
+ * Picker date. If the picker is in range mode this property is the end date.
44
+ * If the picker is not in range mode leave this value `null`
45
+ *
46
+ * Format is based on `format`
47
+ *
48
+ * @since 1.1.0
49
+ */
50
+ this.to = null;
51
+ /**
52
+ * Show time reference input
53
+ *
54
+ * @since 1.1.0 time reference is default aligned with formt tt
55
+ */
56
+ this.showTimeReference = undefined;
57
+ /**
58
+ * Default behavior of the done event is to join the two events (date and time) into one combined string output.
59
+ * This combination can be configured over the delimiter
60
+ *
61
+ * @since 1.1.0
62
+ */
63
+ this.eventDelimiter = ' - ';
64
+ /**
65
+ * Text of date select button
66
+ *
67
+ * @since 1.1.0
68
+ */
69
+ this.textSelectDate = 'Done';
70
+ }
71
+ onDone() {
72
+ var _a;
73
+ this.done.emit([this._from, (_a = this._to) !== null && _a !== void 0 ? _a : '', this._time].join(this.eventDelimiter));
74
+ this.dateSelect.emit({
75
+ from: this._from,
76
+ to: this._to,
77
+ time: this._time,
78
+ });
79
+ }
80
+ async onDateChange(event) {
81
+ var _a, _b;
82
+ event.preventDefault();
83
+ event.stopPropagation();
84
+ const { detail: date } = event;
85
+ this.dateChange.emit(date);
86
+ const currentDateTime = await this.datePickerElement.getCurrentDate();
87
+ this._from = (_a = currentDateTime.start) === null || _a === void 0 ? void 0 : _a.toFormat(this.dateFormat);
88
+ this._to = (_b = currentDateTime.end) === null || _b === void 0 ? void 0 : _b.toFormat(this.dateFormat);
89
+ }
90
+ async onTimeChange(event) {
91
+ event.preventDefault();
92
+ event.stopPropagation();
93
+ const { detail: time } = event;
94
+ this.timeChange.emit(time);
95
+ const currentDateTime = await this.timePickerElement.getCurrentTime();
96
+ this._time = currentDateTime.toFormat(this.timeFormat);
29
97
  }
30
- doneEvent() {
31
- console.log(this.date + ' ' + this.time);
32
- this.done.emit(this.date + ' ' + this.time);
98
+ componentDidLoad() {
99
+ this._from = this.from;
100
+ this._to = this.to;
101
+ this._time = this.time;
33
102
  }
34
103
  render() {
35
- return (h(Host, null, h("div", { class: "flex" }, h("ix-date-picker", { corners: "left", individual: false, range: this.range, onDateChange: (date) => (this.date = date.detail) }), h("ix-time-picker", { corners: "right", individual: false, showHour: this.showHour, showMinutes: this.showMinutes, showSeconds: this.showSeconds, showTimeReference: this.showTimeReference, onTimeChange: (time) => (this.time = time.detail) })), h("div", { class: "done" }, h("ix-button", { onClick: () => this.doneEvent() }, "Done"))));
104
+ return (h(Host, null, h("div", { class: "flex" }, h("div", { class: "separator" }), h("ix-date-picker", { ref: (ref) => (this.datePickerElement = ref), corners: "left", individual: false, range: this.range, onDateChange: (event) => this.onDateChange(event), from: this.from, to: this.to, format: this.dateFormat, minDate: this.minDate, maxDate: this.maxDate, eventDelimiter: this.eventDelimiter }), h("ix-time-picker", { ref: (ref) => (this.timePickerElement = ref), corners: "right", individual: false, showHour: this.showHour, showMinutes: this.showMinutes, showSeconds: this.showSeconds, showTimeReference: this.showTimeReference, onTimeChange: (event) => this.onTimeChange(event), time: this.time, format: this.timeFormat, timeReference: this.timeReference }), h("div", { class: "separator" })), h("div", { class: "done" }, h("ix-button", { onClick: () => this.onDone() }, this.textSelectDate))));
36
105
  }
37
106
  };
38
107
  DatePicker.style = datetimePickerCss;
@@ -68,7 +68,7 @@ const Drawer = class {
68
68
  const target = evt.target;
69
69
  const closestElement = target.closest('#div-container');
70
70
  const btn = target.closest('#drawer-btn');
71
- if (closestElement !== this.divElement && target !== btn) {
71
+ if (evt.target.type !== "button" && closestElement !== this.divElement && target !== btn) {
72
72
  this.show = false;
73
73
  }
74
74
  }