@cwellt_software/cwellt-reactjs-lib 1.2.14 → 1.2.16

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 (272) hide show
  1. package/dist/deprecated/components/MultiSelect_deprecated_.d.ts +24 -0
  2. package/dist/deprecated/components/MultiSelect_deprecated_.d.ts.map +1 -0
  3. package/dist/deprecated/components/dropdown/CwDropdownContainer.d.ts +17 -0
  4. package/dist/deprecated/components/dropdown/CwDropdownContainer.d.ts.map +1 -0
  5. package/dist/deprecated/components/multiselect/CwHeadFilter.d.ts +17 -0
  6. package/dist/deprecated/components/multiselect/CwHeadFilter.d.ts.map +1 -0
  7. package/dist/deprecated/components/multiselect/CwMultiselect.d.ts +13 -0
  8. package/dist/deprecated/components/multiselect/CwMultiselect.d.ts.map +1 -0
  9. package/dist/deprecated/components/multiselect/CwOptionList.d.ts +14 -0
  10. package/dist/deprecated/components/multiselect/CwOptionList.d.ts.map +1 -0
  11. package/dist/deprecated/components/tag/CwTag.d.ts +15 -0
  12. package/dist/deprecated/components/tag/CwTag.d.ts.map +1 -0
  13. package/dist/index.cjs.js +116 -65
  14. package/dist/index.css +1 -1
  15. package/dist/index.d.ts +35 -2
  16. package/dist/index.es.js +116 -66
  17. package/dist/src/components/control/action/button/CwPopoverButton.d.ts +33 -0
  18. package/dist/src/components/control/action/button/CwPopoverButton.d.ts.map +1 -0
  19. package/dist/src/components/control/choice/deprecated/CwDropdown.d.ts +19 -0
  20. package/dist/src/components/control/choice/deprecated/CwDropdown.d.ts.map +1 -0
  21. package/dist/src/components/control/choice/deprecated/CwDropdownNavigation.d.ts +21 -0
  22. package/dist/src/components/control/choice/deprecated/CwDropdownNavigation.d.ts.map +1 -0
  23. package/dist/src/components/control/choice/dropdown/CwPopoverButton.d.ts +35 -0
  24. package/dist/src/components/control/choice/dropdown/CwPopoverButton.d.ts.map +1 -0
  25. package/dist/src/components/control/input/new-dates/CwDateTimePicker2.d.ts +47 -0
  26. package/dist/src/components/control/input/new-dates/CwDateTimePicker2.d.ts.map +1 -0
  27. package/dist/src/components/custom/scheduler-temporal/logic/filtering/filterAndProcessResources.d.ts +1 -12
  28. package/dist/src/components/custom/scheduler-temporal/logic/filtering/filterAndProcessResources.d.ts.map +1 -1
  29. package/dist/src/components/custom/scheduler-temporal/logic/pixels/getPixelsForEvent.d.ts +1 -11
  30. package/dist/src/components/custom/scheduler-temporal/logic/pixels/getPixelsForEvent.d.ts.map +1 -1
  31. package/dist/src/components/custom/scheduler-temporal/logic/pixels/heightScheduler.d.ts +1 -1
  32. package/dist/src/components/custom/scheduler-temporal/logic/pixels/heightScheduler.d.ts.map +1 -1
  33. package/dist/src/components/custom/scheduler-temporal/logic/ui/checkIfSlotAvailable.d.ts +1 -1
  34. package/dist/src/components/custom/scheduler-temporal/logic/ui/checkIfSlotAvailable.d.ts.map +1 -1
  35. package/dist/src/index.d.ts +1 -0
  36. package/dist/src/index.d.ts.map +1 -1
  37. package/package.json +2 -2
  38. package/dist/src/common/classes/CwSelectList.js +0 -12
  39. package/dist/src/common/classes/CwSelectListItems.js +0 -14
  40. package/dist/src/common/functions/collections.js +0 -18
  41. package/dist/src/common/functions/colorManipulation.js +0 -76
  42. package/dist/src/common/functions/dsl/UiEventDSL.js +0 -20
  43. package/dist/src/common/functions/useSingleAndDoubleClicks.js +0 -28
  44. package/dist/src/common/interfaces/CwSelectListProps.js +0 -1
  45. package/dist/src/components/control/action/button/CwButton.js +0 -13
  46. package/dist/src/components/control/action/buttons/CwButtons.js +0 -188
  47. package/dist/src/components/control/action/contextmenu/CwContextMenu.js +0 -43
  48. package/dist/src/components/control/action/contextual-menu/CwContextualMenu.js +0 -55
  49. package/dist/src/components/control/action/search/CwSearch.js +0 -67
  50. package/dist/src/components/control/action/tooltip-dialog/CwTooltipDialog.js +0 -11
  51. package/dist/src/components/control/choice/checkbox/CwCheckbox.js +0 -15
  52. package/dist/src/components/control/choice/deprecated/MultiSelect_deprecated_.js +0 -99
  53. package/dist/src/components/control/choice/dropdown/CwDropdown.js +0 -27
  54. package/dist/src/components/control/choice/dropdown/CwDropdownContainer.js +0 -30
  55. package/dist/src/components/control/choice/dropdown/CwDropdownFilter.js +0 -10
  56. package/dist/src/components/control/choice/multi-filter/CwMultiFilter.js +0 -298
  57. package/dist/src/components/control/choice/multi-filter/components/tag/CwMultiFilterTag.js +0 -17
  58. package/dist/src/components/control/choice/multiselect/CwHeadFilter.js +0 -80
  59. package/dist/src/components/control/choice/multiselect/CwMultiselect.js +0 -393
  60. package/dist/src/components/control/choice/multiselect/CwOptionList.js +0 -36
  61. package/dist/src/components/control/choice/option/CwOption.js +0 -16
  62. package/dist/src/components/control/choice/select/CwSelect.js +0 -36
  63. package/dist/src/components/control/choice/toggle/CwToggle.js +0 -9
  64. package/dist/src/components/control/input/any/CwInput.js +0 -16
  65. package/dist/src/components/control/input/color/CwColorPicker.js +0 -210
  66. package/dist/src/components/control/input/color/CwInputColor.js +0 -142
  67. package/dist/src/components/control/input/date/CwInputDate.js +0 -29
  68. package/dist/src/components/control/input/date-picker/CwInputDatePicker.js +0 -109
  69. package/dist/src/components/control/input/date-text/CwInputDateText.js +0 -90
  70. package/dist/src/components/control/input/datetime/CwInputDatetime.js +0 -29
  71. package/dist/src/components/control/input/digit/CwDigit.js +0 -28
  72. package/dist/src/components/control/input/file/CwFileUpload.js +0 -52
  73. package/dist/src/components/control/input/file/CwFileUploadMultiple.js +0 -148
  74. package/dist/src/components/control/input/image/CwInputImage.js +0 -52
  75. package/dist/src/components/control/input/image-area/CwImageArea.js +0 -113
  76. package/dist/src/components/control/input/new-dates/example.d.ts +0 -2
  77. package/dist/src/components/control/input/new-dates/example.d.ts.map +0 -1
  78. package/dist/src/components/control/input/number/CwInputNumber.js +0 -11
  79. package/dist/src/components/control/input/phone/CwInputPhone.js +0 -24
  80. package/dist/src/components/control/input/text/CwInputText.js +0 -31
  81. package/dist/src/components/control/input/text-area/CwTextArea.js +0 -9
  82. package/dist/src/components/control/input/time/CwTime.js +0 -29
  83. package/dist/src/components/control/input/weekday/CwWeekdaySelector.js +0 -143
  84. package/dist/src/components/custom/find-airport/CwFindAirportComp.js +0 -240
  85. package/dist/src/components/custom/scheduler/CwSchedulerComp.js +0 -211
  86. package/dist/src/components/custom/scheduler/CwSuperSchedulerComp.js +0 -269
  87. package/dist/src/components/custom/scheduler/components/EventRender.js +0 -142
  88. package/dist/src/components/custom/scheduler/components/ResourceListRender.js +0 -12
  89. package/dist/src/components/custom/scheduler/components/ResourceRender.js +0 -26
  90. package/dist/src/components/custom/scheduler/components/day_headers/DayHeader.js +0 -13
  91. package/dist/src/components/custom/scheduler/components/day_headers/MonthHeader.js +0 -12
  92. package/dist/src/components/custom/scheduler/components/day_headers/MyDaysHeader.js +0 -62
  93. package/dist/src/components/custom/scheduler/components/day_headers/WeekHeader.js +0 -13
  94. package/dist/src/components/custom/scheduler/components/resources_title_list/ResourcesTitleList.js +0 -24
  95. package/dist/src/components/custom/scheduler/components/scheduler_content_area/SchedulerContentArea.js +0 -17
  96. package/dist/src/components/custom/scheduler/components/scheduler_header/SchedulerHeader.js +0 -26
  97. package/dist/src/components/custom/scheduler/components/scheduler_timeline/SchedulerTimeLine.js +0 -23
  98. package/dist/src/components/custom/scheduler/components/time_headers/TimeHeader.js +0 -31
  99. package/dist/src/components/custom/scheduler/components/time_headers/TimeHeaderRow.js +0 -16
  100. package/dist/src/components/custom/scheduler/components/time_line/TimeLine.js +0 -12
  101. package/dist/src/components/custom/scheduler/logic/dates/addMinutesToDateFromPx.js +0 -5
  102. package/dist/src/components/custom/scheduler/logic/dates/daysBetweenTwoDates.js +0 -15
  103. package/dist/src/components/custom/scheduler/logic/dates/daysBetweenTwoDatesWithoutCeil.js +0 -5
  104. package/dist/src/components/custom/scheduler/logic/dates/getFormatedTimeForHeader.js +0 -43
  105. package/dist/src/components/custom/scheduler/logic/dates/getMonthHeaderData.js +0 -35
  106. package/dist/src/components/custom/scheduler/logic/dates/getUtcToday.js +0 -6
  107. package/dist/src/components/custom/scheduler/logic/dates/getWeekHeaderDataFromWeekRange.js +0 -20
  108. package/dist/src/components/custom/scheduler/logic/dates/listOfDatesToWeeks.js +0 -55
  109. package/dist/src/components/custom/scheduler/logic/divisions/calculateDivisionType.js +0 -13
  110. package/dist/src/components/custom/scheduler/logic/divisions/calculateDivisions.js +0 -16
  111. package/dist/src/components/custom/scheduler/logic/filtering/filterEvents.js +0 -33
  112. package/dist/src/components/custom/scheduler/logic/filtering/filterResources.js +0 -14
  113. package/dist/src/components/custom/scheduler/logic/filtering/hasSameProperties.js +0 -10
  114. package/dist/src/components/custom/scheduler/logic/onDrop/OnDrop.js +0 -45
  115. package/dist/src/components/custom/scheduler/logic/pixels/getHeightLineScheduler.js +0 -14
  116. package/dist/src/components/custom/scheduler/logic/pixels/getPixelsForEvent.js +0 -32
  117. package/dist/src/components/custom/scheduler/logic/pixels/heightScheduler.js +0 -14
  118. package/dist/src/components/custom/scheduler/logic/pixels/heightSchedulerPinned.js +0 -9
  119. package/dist/src/components/custom/scheduler/logic/state_handle/doubleClickOnResource.js +0 -5
  120. package/dist/src/components/custom/scheduler/logic/state_handle/handleResourceChange.js +0 -11
  121. package/dist/src/components/custom/scheduler/logic/state_handle/onDragOver.js +0 -9
  122. package/dist/src/components/custom/scheduler/logic/state_handle/onDropEventToResource.js +0 -3
  123. package/dist/src/components/custom/scheduler/logic/strings/compareStrings.js +0 -7
  124. package/dist/src/components/custom/scheduler/logic/strings/getGUID.js +0 -7
  125. package/dist/src/components/custom/scheduler/logic/ui/checkIfSlotAvailable.js +0 -8
  126. package/dist/src/components/custom/scheduler/logic/ui/getEventsOfResource.js +0 -45
  127. package/dist/src/components/custom/scheduler/logic/ui/getTimeHeaders.js +0 -35
  128. package/dist/src/components/custom/scheduler/logic/ui/isAllowedToMove.js +0 -19
  129. package/dist/src/components/custom/scheduler/logic/ui/updateResourceVisibility.js +0 -15
  130. package/dist/src/components/custom/scheduler/state/CblDragAndDrop.js +0 -18
  131. package/dist/src/components/custom/scheduler/state/CwSchedulerProps.js +0 -1
  132. package/dist/src/components/custom/scheduler/state/Resource.js +0 -18
  133. package/dist/src/components/custom/scheduler/state/State.js +0 -1
  134. package/dist/src/components/custom/scheduler/state/cblEvent.js +0 -28
  135. package/dist/src/components/custom/scheduler/state/cblEventCompProps.js +0 -1
  136. package/dist/src/components/custom/scheduler/state/resourceCompProps2.js +0 -1
  137. package/dist/src/components/custom/scheduler-new/presentation/NewScheduler.js +0 -123
  138. package/dist/src/components/custom/scheduler-new/presentation/NewSchedulerUiEvents.js +0 -118
  139. package/dist/src/components/custom/scheduler-new/presentation/SchedulerPresenter.js +0 -166
  140. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderDivision.js +0 -26
  141. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderTitle.js +0 -8
  142. package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeader.js +0 -86
  143. package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeaderState.js +0 -1
  144. package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgroundEvent.js +0 -60
  145. package/dist/src/components/custom/scheduler-new/presentation/components/row/DefaultRowHeader.js +0 -24
  146. package/dist/src/components/custom/scheduler-new/presentation/components/row/Event.js +0 -150
  147. package/dist/src/components/custom/scheduler-new/presentation/components/row/EventSideDrag.js +0 -11
  148. package/dist/src/components/custom/scheduler-new/presentation/components/row/SchedulerRow.js +0 -176
  149. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/DivisionLine.js +0 -8
  150. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/TimeLine.js +0 -39
  151. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/WeekEndLine.js +0 -8
  152. package/dist/src/components/custom/scheduler-new/presentation/helpers.js +0 -43
  153. package/dist/src/components/custom/scheduler-new/presentation/logic/WeekendCalc.js +0 -24
  154. package/dist/src/components/custom/scheduler-new/presentation/logic/dateFromPercentage.js +0 -7
  155. package/dist/src/components/custom/scheduler-new/presentation/logic/eventIsVisible.js +0 -7
  156. package/dist/src/components/custom/scheduler-new/presentation/logic/getDefaultDivisions.js +0 -113
  157. package/dist/src/components/custom/scheduler-new/presentation/logic/getDivisions.js +0 -21
  158. package/dist/src/components/custom/scheduler-new/presentation/logic/getEventSizes.js +0 -30
  159. package/dist/src/components/custom/scheduler-new/presentation/logic/getLinesByDivisions.js +0 -13
  160. package/dist/src/components/custom/scheduler-new/presentation/logic/getPercentageFromMouseEvent.js +0 -7
  161. package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsToInnerRows.js +0 -32
  162. package/dist/src/components/custom/scheduler-new/presentation/logic/sortByCategoryAndTitle.js +0 -12
  163. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerState.js +0 -1
  164. package/dist/src/components/custom/scheduler-new/presentation/state/ui/WeekRange.js +0 -1
  165. package/dist/src/components/custom/scheduler-temporal/CwSchedulerComp2.js +0 -267
  166. package/dist/src/components/custom/scheduler-temporal/CwSuperSchedulerComp.js +0 -269
  167. package/dist/src/components/custom/scheduler-temporal/components/EventRender.js +0 -142
  168. package/dist/src/components/custom/scheduler-temporal/components/ResourceListRender.js +0 -12
  169. package/dist/src/components/custom/scheduler-temporal/components/ResourceRender.js +0 -26
  170. package/dist/src/components/custom/scheduler-temporal/components/day_headers/DayHeader.js +0 -13
  171. package/dist/src/components/custom/scheduler-temporal/components/day_headers/MonthHeader.js +0 -12
  172. package/dist/src/components/custom/scheduler-temporal/components/day_headers/MyDaysHeader.js +0 -62
  173. package/dist/src/components/custom/scheduler-temporal/components/day_headers/WeekHeader.js +0 -13
  174. package/dist/src/components/custom/scheduler-temporal/components/resources_title_list/ResourcesTitleList.js +0 -22
  175. package/dist/src/components/custom/scheduler-temporal/components/scheduler_content_area/SchedulerContentArea.js +0 -17
  176. package/dist/src/components/custom/scheduler-temporal/components/scheduler_header/SchedulerHeader.js +0 -26
  177. package/dist/src/components/custom/scheduler-temporal/components/scheduler_timeline/SchedulerTimeLine.js +0 -23
  178. package/dist/src/components/custom/scheduler-temporal/components/time_headers/TimeHeader.js +0 -31
  179. package/dist/src/components/custom/scheduler-temporal/components/time_headers/TimeHeaderRow.js +0 -16
  180. package/dist/src/components/custom/scheduler-temporal/components/time_line/TimeLine.js +0 -12
  181. package/dist/src/components/custom/scheduler-temporal/logic/dates/addMinutesToDateFromPx.js +0 -5
  182. package/dist/src/components/custom/scheduler-temporal/logic/dates/daysBetweenTwoDates.js +0 -15
  183. package/dist/src/components/custom/scheduler-temporal/logic/dates/daysBetweenTwoDatesWithoutCeil.js +0 -5
  184. package/dist/src/components/custom/scheduler-temporal/logic/dates/getFormatedTimeForHeader.js +0 -43
  185. package/dist/src/components/custom/scheduler-temporal/logic/dates/getMonthHeaderData.js +0 -35
  186. package/dist/src/components/custom/scheduler-temporal/logic/dates/getUtcToday.js +0 -6
  187. package/dist/src/components/custom/scheduler-temporal/logic/dates/getWeekHeaderDataFromWeekRange.js +0 -20
  188. package/dist/src/components/custom/scheduler-temporal/logic/dates/listOfDatesToWeeks.js +0 -55
  189. package/dist/src/components/custom/scheduler-temporal/logic/divisions/calculateDivisionType.js +0 -13
  190. package/dist/src/components/custom/scheduler-temporal/logic/divisions/calculateDivisions.js +0 -16
  191. package/dist/src/components/custom/scheduler-temporal/logic/filtering/filterAndProcessResources.js +0 -10
  192. package/dist/src/components/custom/scheduler-temporal/logic/filtering/filterEvents.js +0 -34
  193. package/dist/src/components/custom/scheduler-temporal/logic/filtering/filterResources.js +0 -14
  194. package/dist/src/components/custom/scheduler-temporal/logic/filtering/hasSameProperties.js +0 -10
  195. package/dist/src/components/custom/scheduler-temporal/logic/onDrop/OnDrop.js +0 -36
  196. package/dist/src/components/custom/scheduler-temporal/logic/pixels/getHeightLineScheduler.js +0 -14
  197. package/dist/src/components/custom/scheduler-temporal/logic/pixels/getPixelsForEvent.js +0 -32
  198. package/dist/src/components/custom/scheduler-temporal/logic/pixels/heightScheduler.js +0 -14
  199. package/dist/src/components/custom/scheduler-temporal/logic/pixels/heightSchedulerPinned.js +0 -9
  200. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/doubleClickOnResource.js +0 -5
  201. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/handlePropChanges.js +0 -178
  202. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/handleResourceChange.js +0 -11
  203. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/onDragOver.js +0 -9
  204. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/onDropEventToResource.js +0 -3
  205. package/dist/src/components/custom/scheduler-temporal/logic/state_handle/onResizeEvent.js +0 -3
  206. package/dist/src/components/custom/scheduler-temporal/logic/strings/compareStrings.js +0 -7
  207. package/dist/src/components/custom/scheduler-temporal/logic/strings/getGUID.js +0 -7
  208. package/dist/src/components/custom/scheduler-temporal/logic/ui/checkIfSlotAvailable.js +0 -9
  209. package/dist/src/components/custom/scheduler-temporal/logic/ui/getEventsOfResource.js +0 -92
  210. package/dist/src/components/custom/scheduler-temporal/logic/ui/getHasPropsChanged.js +0 -242
  211. package/dist/src/components/custom/scheduler-temporal/logic/ui/getTimeHeaders.js +0 -35
  212. package/dist/src/components/custom/scheduler-temporal/logic/ui/isAllowedToMove.js +0 -19
  213. package/dist/src/components/custom/scheduler-temporal/logic/ui/shouldTriggerScroll.js +0 -241
  214. package/dist/src/components/custom/scheduler-temporal/logic/ui/updateResourceVisibility.js +0 -15
  215. package/dist/src/components/custom/scheduler-temporal/state/CblDragAndDrop.js +0 -18
  216. package/dist/src/components/custom/scheduler-temporal/state/CwSchedulerProps.js +0 -1
  217. package/dist/src/components/custom/scheduler-temporal/state/Resource.js +0 -18
  218. package/dist/src/components/custom/scheduler-temporal/state/State.js +0 -1
  219. package/dist/src/components/custom/scheduler-temporal/state/cblEvent.js +0 -28
  220. package/dist/src/components/custom/scheduler-temporal/state/cblEventCompProps.js +0 -1
  221. package/dist/src/components/custom/scheduler-temporal/state/resourceCompProps2.js +0 -1
  222. package/dist/src/components/custom/super-scheduler/PinRowHeader.js +0 -53
  223. package/dist/src/components/custom/super-scheduler/SuperScheduler.js +0 -23
  224. package/dist/src/components/custom/super-scheduler/SuperSchedulerEvents.js +0 -15
  225. package/dist/src/components/custom/super-scheduler/SuperSchedulerPresenter.js +0 -45
  226. package/dist/src/components/display/data/accordion/CwAccordionContainer.js +0 -20
  227. package/dist/src/components/display/data/generic_tooltip/CwGenericTooltip.js +0 -138
  228. package/dist/src/components/display/data/table/CwTable.js +0 -203
  229. package/dist/src/components/display/graphics/icon/CwIcon.js +0 -23
  230. package/dist/src/components/display/graphics/loading/CwLoading.js +0 -27
  231. package/dist/src/components/display/graphics/loading-small/CwLoadingSmall.js +0 -20
  232. package/dist/src/components/display/text/heading/CwHeadingMain.js +0 -5
  233. package/dist/src/components/display/text/heading/CwHeadingSecond.js +0 -5
  234. package/dist/src/components/display/text/label/CwLabel.js +0 -13
  235. package/dist/src/components/display/text/message/CwMessage.js +0 -75
  236. package/dist/src/components/display/text/note/CwNote.js +0 -78
  237. package/dist/src/components/display/text/tag/CwChip.js +0 -57
  238. package/dist/src/components/display/text/tag/CwTag.js +0 -21
  239. package/dist/src/components/display/text/tooltip/CwTooltip.js +0 -4
  240. package/dist/src/components/layout/align/CwAlign.js +0 -54
  241. package/dist/src/components/layout/card/CwCard.js +0 -55
  242. package/dist/src/components/layout/card/CwCardList.js +0 -38
  243. package/dist/src/components/layout/dialog/CwDialog.js +0 -255
  244. package/dist/src/components/layout/dialog/CwDialogManager.js +0 -44
  245. package/dist/src/components/layout/list/details/CwExpandable.js +0 -28
  246. package/dist/src/components/layout/list/key-value/CwKeyValueList.js +0 -23
  247. package/dist/src/components/layout/list/sortable/CwSortableList.js +0 -73
  248. package/dist/src/components/layout/list/sortable/useSortableList.js +0 -53
  249. package/dist/src/components/layout/modal/CwModalReportFunctional.js +0 -23
  250. package/dist/src/components/layout/modal/hover/CwModalHover.js +0 -61
  251. package/dist/src/components/layout/modal/legacy/cw_modal.js +0 -44
  252. package/dist/src/components/layout/modal/legacy/cw_modal_confirm.js +0 -39
  253. package/dist/src/components/layout/modal/legacy/cw_modal_iframe.js +0 -44
  254. package/dist/src/components/layout/modal/legacy/cw_modal_report.js +0 -26
  255. package/dist/src/components/layout/table/grouped/CwTableGrouped.js +0 -70
  256. package/dist/src/components/layout/tabs/CwTabs.js +0 -53
  257. package/dist/src/index.js +0 -187
  258. package/dist/test/components/custom/new-scheduler/presentation/logic/getDefaultDivisions.test.js +0 -48
  259. package/dist/test/components/custom/new-scheduler/presentation/logic/hoursBetween.test.js +0 -15
  260. package/dist/test/components/custom/new-scheduler/presentation/logic/monthDivisions.test.js +0 -42
  261. package/dist/test/components/custom/new-scheduler/presentation/logic/weekendCalc.test.js +0 -30
  262. package/dist/test/components/custom/scheduler/addMinutesToDateFromPx.test.js +0 -43
  263. package/dist/test/components/custom/scheduler/checkIfSlotAvailable.test.js +0 -30
  264. package/dist/test/components/custom/scheduler/daysBetweenTwoDates.test.js +0 -61
  265. package/dist/test/components/custom/scheduler/daysBetweenTwoDatesWithoutCeilForEvent.test.js +0 -27
  266. package/dist/test/components/custom/scheduler/getGUID.test.js +0 -30
  267. package/dist/test/components/custom/scheduler/getPixelsForEvent.test.js +0 -38
  268. package/dist/test/components/custom/scheduler/getTimeHeaders.test.js +0 -35
  269. package/dist/test/components/custom/scheduler/hasSameProperties.test.js +0 -51
  270. package/dist/test/components/custom/scheduler/isAllowedToMove.test.js +0 -28
  271. package/dist/test/components/custom/scheduler/listOfDatesToWeeks.test.js +0 -72
  272. package/dist/test/jest.setup.js +0 -1
@@ -1,55 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CwButton } from '../../control/action/button/CwButton';
3
- import { CwLoading } from '../../display/graphics/loading/CwLoading';
4
- import { CwChip } from '../../display/text/tag/CwChip';
5
- import styles from './cw-card.module.css';
6
- /**
7
- * CwCard - A simple card component for displaying content in a contained format
8
- *
9
- * @example
10
- * <CwCard
11
- * title="Card Title"
12
- * subtitle="Card Subtitle"
13
- * onEdit={handleEdit}
14
- * onDelete={confirmDeletion}
15
- * footer="Last updated: 2 days ago"
16
- * chips={[
17
- * { label: 'Important', colorScheme: 'danger' },
18
- * { label: 'Custom', colorScheme: 'custom', customColor: '#8a2be2' }
19
- * ]}
20
- * >
21
- * <p>This is the main content of the card.</p>
22
- * </CwCard>
23
- **/
24
- export const CwCard = ({ id, title, subtitle, alignment = 'center', children, footer, onEdit, onDelete, extraActions, className = '', clickable = false, onClick, isLoading = false, disabled = false, style, chips = [], variant = "border", direction = "column", }) => {
25
- // Construct class names using CSS modules
26
- const cardClassNames = [
27
- 'cw-card',
28
- styles.card,
29
- className,
30
- clickable ? styles.clickable : '',
31
- disabled ? styles.disabled : '',
32
- isLoading ? styles.loading : '',
33
- ].filter(Boolean).join(' ');
34
- // Handle click event when card is clickable
35
- const handleClick = () => {
36
- if (clickable && onClick && !disabled && !isLoading) {
37
- onClick();
38
- }
39
- };
40
- // Determine if actions should be rendered
41
- const hasActions = onEdit || onDelete || extraActions;
42
- // Determine if header should be rendered
43
- const hasHeader = title || subtitle || (hasActions && direction === "column");
44
- // Determine if chips should be rendered
45
- const hasChips = chips.length > 0;
46
- // Determine if footer should be rendered
47
- const hasFooter = hasChips || footer || (hasActions && direction === "row");
48
- // Actions component to reuse
49
- const ActionsComponent = hasActions && !disabled ? (_jsxs("div", { className: styles.actions, children: [extraActions ?? null, onEdit && _jsx(CwButton, { variant: "icon", icon: "edit", onClick: onEdit }), onDelete && _jsx(CwButton, { variant: "icon", icon: "delete", color: "danger", onClick: onDelete })] })) : null;
50
- return (_jsxs("div", { ...(id && { id }), className: cardClassNames, ...(style && { style }), ...(clickable && {
51
- role: 'button',
52
- tabIndex: 0,
53
- onClick: handleClick,
54
- }), "data-variant": variant, "data-direction": direction, children: [hasHeader && (_jsxs("header", { children: [(title || subtitle) && (_jsxs("div", { className: styles.headerContent, "data-alignment": alignment, children: [title && _jsx("h5", { children: title }), subtitle && _jsx("strong", { children: subtitle })] })), direction === "column" && ActionsComponent] })), _jsx("div", { className: styles.content, children: children }), hasFooter && (_jsxs("footer", { children: [hasChips && (_jsx("div", { className: styles.footerTags, children: chips.map((chip, index) => (_jsx(CwChip, { label: chip.label, colorScheme: chip.colorScheme, className: styles.chip, ...(chip.customColor && { customColor: chip.customColor }), ...(chip.variant && { variant: chip.variant }), ...(chip.icon && { icon: chip.icon }) }, index))) })), footer && (_jsx("div", { className: styles.footerContent, children: footer }))] })), direction === "row" && ActionsComponent, isLoading && (_jsx("div", { className: styles.loadingOverlay, children: _jsx(CwLoading, { isLoading: isLoading, size: "small" }) }))] }));
55
- };
@@ -1,38 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useMemo, useState } from 'react';
3
- import { CwLoading } from '../../display/graphics/loading/CwLoading';
4
- import styles from './cw-card-list.module.css';
5
- export function CwCardList({ items, renderCard, pageSize = 10, className = '', layout = 'grid', defaultCardWidth = 320, cardGap = 16, isLoading = false, emptyState, sortOptions = [], defaultSortKey }) {
6
- const [currentPage, setCurrentPage] = useState(1);
7
- const [sortKey, setSortKey] = useState(defaultSortKey || sortOptions[0]?.key || '');
8
- const [sortDirection, setSortDirection] = useState('asc');
9
- // Sort items based on selected criteria
10
- const sortedItems = useMemo(() => {
11
- if (!sortKey || sortOptions.length === 0)
12
- return items;
13
- const sortOption = sortOptions.find(option => option.key === sortKey);
14
- if (!sortOption)
15
- return items;
16
- const sorted = [...items].sort(sortOption.sortFn);
17
- return sortDirection === 'desc' ? sorted.reverse() : sorted;
18
- }, [items, sortKey, sortDirection, sortOptions]);
19
- const totalPages = Math.ceil(sortedItems.length / pageSize);
20
- const startIndex = (currentPage - 1) * pageSize;
21
- const visibleItems = sortedItems.slice(startIndex, startIndex + pageSize);
22
- // Reset to first page when sorting changes
23
- const handleSortChange = (newSortKey) => {
24
- if (newSortKey === sortKey) {
25
- setSortDirection(prev => prev === 'asc' ? 'desc' : 'asc');
26
- }
27
- else {
28
- setSortKey(newSortKey);
29
- setSortDirection('asc');
30
- }
31
- setCurrentPage(1);
32
- };
33
- const gridStyle = {
34
- '--card-width': `${defaultCardWidth}px`,
35
- '--card-gap': `${cardGap}px`
36
- };
37
- return (_jsxs("div", { className: `${className}`, children: [sortOptions.length > 0 && (_jsxs("div", { className: styles.sortControls, children: [_jsx("label", { htmlFor: "cardlist-sort-select", children: "Sort by:" }), _jsx("select", { id: "cardlist-sort-select", value: sortKey, onChange: (e) => handleSortChange(e.target.value), className: styles.sortSelect, children: sortOptions.map(option => (_jsx("option", { value: option.key, children: option.label }, option.key))) }), _jsx("button", { onClick: () => setSortDirection(prev => prev === 'asc' ? 'desc' : 'asc'), className: `cw-button-icon ${sortDirection === 'asc' ? 'cwi-arrow-up' : 'cwi-arrow-down'}`, title: `Sort ${sortDirection === 'asc' ? 'descending' : 'ascending'}` })] })), isLoading ? (_jsx("div", { className: styles.loading, children: _jsx(CwLoading, { isLoading: isLoading }) })) : sortedItems.length === 0 ? (_jsx("div", { className: styles.emptyState, children: emptyState || _jsx("p", { children: "No items to display" }) })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: `${styles.cardContainer}`, "data-layout": layout, style: gridStyle, children: visibleItems.map((item, index) => (_jsx("div", { className: styles.cardWrapper, children: renderCard(item, index) }, index))) }), totalPages > 1 && (_jsxs("div", { className: styles.pagination, children: [_jsx("button", { disabled: currentPage === 1, onClick: () => setCurrentPage(p => Math.max(1, p - 1)), className: "cw-button-icon cwi-chevron-left" }), _jsxs("span", { className: styles.pageInfo, children: [currentPage, " of ", totalPages] }), _jsx("button", { disabled: currentPage === totalPages, onClick: () => setCurrentPage(p => Math.min(totalPages, p + 1)), className: "cw-button-icon cwi-chevron-right" })] }))] }))] }));
38
- }
@@ -1,255 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
3
- import { createPortal } from "react-dom";
4
- import styles from "./cw-dialog.module.css";
5
- // Helper function to parse size values
6
- const parseSize = (size) => {
7
- if (typeof size === 'number')
8
- return { value: size, unit: 'px' };
9
- // Match numeric value and unit
10
- const match = String(size).match(/^([\d.]+)(\D+)$/);
11
- if (match) {
12
- const unit = match[2];
13
- // Only allow px, rem, vw, vh
14
- if (['px', 'rem', 'vw', 'vh'].includes(unit)) {
15
- return { value: parseFloat(match[1]), unit };
16
- }
17
- }
18
- // Default to pixels if no unit specified or unit not supported
19
- return { value: parseFloat(String(size)), unit: 'px' };
20
- };
21
- // Helper to convert size to px for calculations
22
- const convertToPx = (size) => {
23
- switch (size.unit) {
24
- case 'px': return size.value;
25
- case 'rem': return size.value * 16; // Assuming 1rem = 16px
26
- case 'vh': return (window.innerHeight * size.value) / 100;
27
- case 'vw': return (window.innerWidth * size.value) / 100;
28
- default: return size.value; // Default fallback
29
- }
30
- };
31
- // Function to convert from px back to original unit
32
- const convertFromPx = (px, unit) => {
33
- switch (unit) {
34
- case 'px': return px;
35
- case 'rem': return px / 16;
36
- case 'vh': return (px * 100) / window.innerHeight;
37
- case 'vw': return (px * 100) / window.innerWidth;
38
- default: return px;
39
- }
40
- };
41
- export const CwDialog = props => {
42
- const { customFooter, customHeader, headline, width, height, dialogSize, scrim, onSave, onClose, hideFooter, children, open, autoReposition = false, ...domProps } = props;
43
- const dialogRef = useRef(null);
44
- const initialSetup = useMemo(() => {
45
- // Default width and height with units
46
- const defaultWidth = 800;
47
- // Priority: direct props > dialogSize > default values
48
- const initialWidth = width !== undefined
49
- ? width
50
- : dialogSize?.width !== undefined
51
- ? dialogSize.width
52
- : defaultWidth;
53
- const initialHeight = height !== undefined
54
- ? height
55
- : dialogSize?.height !== undefined
56
- ? dialogSize.height
57
- : undefined; // Undefined for autoHeight
58
- // Determine if height is automatic when height is not provided
59
- const isAutoHeight = initialHeight === undefined;
60
- // Parse the sizes to separate value and unit
61
- const parsedWidth = parseSize(initialWidth);
62
- const parsedHeight = isAutoHeight
63
- ? { value: 0, unit: 'auto' }
64
- : parseSize(initialHeight);
65
- // Convert to px for internal calculations
66
- const initialWidthPx = convertToPx(parsedWidth);
67
- const initialHeightPx = isAutoHeight ? 0 : convertToPx(parsedHeight);
68
- // Use estimated height for initial positioning when autoHeight is true
69
- const initialEstimatedHeight = isAutoHeight ? 300 : initialHeightPx;
70
- const initialDialogSize = {
71
- width: initialWidthPx,
72
- height: initialHeightPx,
73
- widthUnit: parsedWidth.unit,
74
- heightUnit: parsedHeight.unit,
75
- autoHeight: isAutoHeight
76
- };
77
- const initialPosition = {
78
- x: window.document.body.clientWidth / 2 - initialWidthPx / 2,
79
- y: window.document.body.clientHeight / 2 - initialEstimatedHeight / 2
80
- };
81
- return { initialDialogSize, initialPosition };
82
- }, [width, height, dialogSize]); // Only recalculate when these props change
83
- const [isDragging, setIsDragging] = useState(false);
84
- const [resizeDirection, setResizeDirection] = useState(null);
85
- const [position, setPosition] = useState(initialSetup.initialPosition);
86
- const [size, setSize] = useState(initialSetup.initialDialogSize);
87
- const [dragStart, setDragStart] = useState({ x: 0, y: 0 });
88
- // scrim is true by default
89
- const hasScrim = scrim !== false;
90
- // Adjust position after the dialog is rendered when using autoHeight
91
- useLayoutEffect(() => {
92
- let resizeObserver = null;
93
- if (size.autoHeight && dialogRef.current && open) {
94
- const recalculatePosition = () => {
95
- const actualHeight = dialogRef.current?.offsetHeight;
96
- if (actualHeight && actualHeight > 0) {
97
- setPosition({
98
- x: Math.max(0, window.document.body.clientWidth / 2 - size.width / 2),
99
- y: Math.max(0, window.document.body.clientHeight / 2 - actualHeight / 2)
100
- });
101
- }
102
- };
103
- setTimeout(recalculatePosition, 0);
104
- // For modals with delayed loading content (inner fetchs and similar)
105
- if (autoReposition) {
106
- resizeObserver = new ResizeObserver(() => {
107
- const dialog = dialogRef.current;
108
- if (!dialog)
109
- return;
110
- const dialogRect = dialog.getBoundingClientRect();
111
- const viewportHeight = window.innerHeight;
112
- const margin = 50;
113
- // Only reposition if modal tries to grow over window limits
114
- const isOverflowingTop = dialogRect.top < margin;
115
- const isOverflowingBottom = dialogRect.bottom > viewportHeight - margin;
116
- if (isOverflowingTop || isOverflowingBottom) {
117
- recalculatePosition();
118
- }
119
- });
120
- resizeObserver.observe(dialogRef.current);
121
- }
122
- }
123
- return () => {
124
- resizeObserver?.disconnect();
125
- };
126
- }, [size.autoHeight, open, autoReposition]);
127
- useEffect(() => {
128
- const handleMouseMove = (e) => {
129
- if (isDragging) {
130
- const parent = dialogRef.current?.parentElement;
131
- if (parent) {
132
- const parentRect = parent.getBoundingClientRect();
133
- const dialogRect = dialogRef.current?.getBoundingClientRect();
134
- if (dialogRect) {
135
- const minVisiblePx = 48;
136
- const newX = e.clientX - dragStart.x;
137
- const newY = e.clientY - dragStart.y;
138
- const clampedX = Math.min(Math.max(newX, minVisiblePx - dialogRect.width), parentRect.width - minVisiblePx);
139
- const clampedY = Math.min(Math.max(newY, minVisiblePx - dialogRect.height), parentRect.height - minVisiblePx);
140
- setPosition({ x: clampedX, y: clampedY });
141
- }
142
- }
143
- }
144
- else if (resizeDirection) {
145
- const parent = dialogRef.current?.parentElement;
146
- if (parent) {
147
- const parentRect = parent.getBoundingClientRect();
148
- const dialogRect = dialogRef.current?.getBoundingClientRect();
149
- if (dialogRect) {
150
- let newWidth = size.width;
151
- let newHeight = size.height;
152
- let newX = position.x;
153
- let newY = position.y;
154
- const minVisiblePx = 64;
155
- const minSize = 100;
156
- // Only allow horizontal resizing if autoHeight is true
157
- if (!size.autoHeight || (!resizeDirection.includes("n") && !resizeDirection.includes("s"))) {
158
- // Logic for horizontal resizing
159
- if (resizeDirection.includes("w")) {
160
- const dx = e.clientX - position.x;
161
- newWidth = Math.max(size.width - dx, minSize);
162
- newX = Math.min(Math.max(position.x + dx, minVisiblePx - newWidth), position.x + size.width - minSize);
163
- }
164
- if (resizeDirection.includes("e")) {
165
- newWidth = Math.min(Math.max(e.clientX - position.x, minSize), parentRect.width - position.x + dialogRect.width - minVisiblePx);
166
- }
167
- }
168
- // Only apply vertical resizing if autoHeight is false
169
- if (!size.autoHeight) {
170
- if (resizeDirection.includes("n")) {
171
- const dy = e.clientY - position.y;
172
- newHeight = Math.max(size.height - dy, minSize);
173
- newY = Math.min(Math.max(position.y + dy, minVisiblePx - newHeight), position.y + size.height - minSize);
174
- }
175
- if (resizeDirection.includes("s")) {
176
- newHeight = Math.min(Math.max(e.clientY - position.y, minSize), parentRect.height - position.y + dialogRect.height - minVisiblePx);
177
- }
178
- }
179
- // Ensure the modal stays within bounds after resizing
180
- newX = Math.min(Math.max(newX, minVisiblePx - newWidth), parentRect.width - minVisiblePx);
181
- newY = Math.min(Math.max(newY, minVisiblePx - newHeight), parentRect.height - minVisiblePx);
182
- // Update state maintaining original units
183
- setSize({
184
- width: newWidth,
185
- height: newHeight,
186
- widthUnit: size.widthUnit,
187
- heightUnit: size.heightUnit,
188
- autoHeight: size.autoHeight
189
- });
190
- setPosition({ x: newX, y: newY });
191
- }
192
- }
193
- }
194
- };
195
- const handleMouseUp = () => {
196
- setIsDragging(false);
197
- setResizeDirection(null);
198
- };
199
- document.addEventListener("mousemove", handleMouseMove);
200
- document.addEventListener("mouseup", handleMouseUp);
201
- return () => {
202
- document.removeEventListener("mousemove", handleMouseMove);
203
- document.removeEventListener("mouseup", handleMouseUp);
204
- };
205
- }, [isDragging, resizeDirection, dragStart, position, size]);
206
- const handleMouseDown = useCallback((e) => {
207
- setIsDragging(true);
208
- setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });
209
- }, [position]);
210
- const handleResizeMouseDown = useCallback((direction) => (e) => {
211
- e.stopPropagation();
212
- setResizeDirection(direction);
213
- }, []);
214
- const handleScrimClick = useCallback((e) => {
215
- if (e.target === e.currentTarget && onClose) {
216
- onClose();
217
- }
218
- }, [onClose]);
219
- const header = useMemo(() => (_jsxs("header", { onMouseDown: handleMouseDown, children: [_jsx("span", { children: headline }), customHeader || (_jsx("button", { className: styles["cw-dialog-button-close"], onClick: onClose }))] })), [handleMouseDown, headline, customHeader, onClose]);
220
- const content = useMemo(() => (_jsx("section", { children: children })), [children]);
221
- const footer = useMemo(() => (_jsx("footer", { children: customFooter || (_jsx("button", { className: "cw-button-icon cwi-save", onClick: onSave })) })), [customFooter, onSave]);
222
- const resizeHandles = useMemo(() => size.autoHeight
223
- ? [
224
- // Only horizontal handles if autoHeight is true
225
- _jsx("div", { "data-handle-e": true, onMouseDown: handleResizeMouseDown("e") }, "handle-e"),
226
- _jsx("div", { "data-handle-w": true, onMouseDown: handleResizeMouseDown("w") }, "handle-w")
227
- ]
228
- : [
229
- // All handles if autoHeight is false
230
- _jsx("div", { "data-handle-n": true, onMouseDown: handleResizeMouseDown("n") }, "handle-n"),
231
- _jsx("div", { "data-handle-s": true, onMouseDown: handleResizeMouseDown("s") }, "handle-s"),
232
- _jsx("div", { "data-handle-e": true, onMouseDown: handleResizeMouseDown("e") }, "handle-e"),
233
- _jsx("div", { "data-handle-w": true, onMouseDown: handleResizeMouseDown("w") }, "handle-w"),
234
- _jsx("div", { "data-handle-ne": true, onMouseDown: handleResizeMouseDown("ne") }, "handle-ne"),
235
- _jsx("div", { "data-handle-nw": true, onMouseDown: handleResizeMouseDown("nw") }, "handle-nw"),
236
- _jsx("div", { "data-handle-se": true, onMouseDown: handleResizeMouseDown("se") }, "handle-se"),
237
- _jsx("div", { "data-handle-sw": true, onMouseDown: handleResizeMouseDown("sw") }, "handle-sw")
238
- ], [size.autoHeight, handleResizeMouseDown]);
239
- const displayDimensions = useMemo(() => {
240
- // Prepare width and height with original units for display
241
- const displayWidth = `${convertFromPx(size.width, size.widthUnit)}${size.widthUnit}`;
242
- // If autoHeight, don't specify height and let it adapt to content
243
- const displayHeight = size.autoHeight
244
- ? 'auto'
245
- : `${convertFromPx(size.height, size.heightUnit)}${size.heightUnit}`;
246
- return { displayWidth, displayHeight };
247
- }, [size.width, size.height, size.widthUnit, size.heightUnit, size.autoHeight]);
248
- const dialogContent = (_jsx("div", { "data-has-scrim": hasScrim, className: styles["cw-dialog-main"], onClick: handleScrimClick, children: _jsxs("dialog", { ...domProps, ref: dialogRef, style: {
249
- left: `${position.x}px`,
250
- top: `${position.y}px`,
251
- width: displayDimensions.displayWidth,
252
- height: displayDimensions.displayHeight
253
- }, children: [header, content, hideFooter !== true && footer, resizeHandles] }) }));
254
- return open ? createPortal(dialogContent, document.body) : null;
255
- };
@@ -1,44 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createRoot } from "react-dom/client";
3
- import { CwDialog } from "./CwDialog";
4
- export class CwDialogManager {
5
- static openDialogs = new Map();
6
- static OpenDialog(id, props) {
7
- if (!CwDialogManager.openDialogs.has(id)) {
8
- const container = document.createElement("div");
9
- document.body.appendChild(container);
10
- const root = createRoot(container);
11
- root.render(_jsx(CwDialog, { ...props }));
12
- CwDialogManager.openDialogs.set(id, { props, container });
13
- }
14
- }
15
- static CloseDialog(id) {
16
- const dialog = CwDialogManager.openDialogs.get(id);
17
- if (dialog) {
18
- const root = createRoot(dialog.container);
19
- root.unmount();
20
- dialog.container.remove();
21
- CwDialogManager.openDialogs.delete(id);
22
- }
23
- }
24
- static CloseAllDialogs() {
25
- CwDialogManager.openDialogs.forEach((_dialog, id) => {
26
- CwDialogManager.CloseDialog(id);
27
- });
28
- }
29
- static CloseLastDialog() {
30
- const lastDialogId = Array.from(CwDialogManager.openDialogs.keys()).pop();
31
- if (lastDialogId) {
32
- CwDialogManager.CloseDialog(lastDialogId);
33
- }
34
- }
35
- static CloseFirstDialog() {
36
- const firstDialogId = Array.from(CwDialogManager.openDialogs.keys())[0];
37
- if (firstDialogId) {
38
- CwDialogManager.CloseDialog(firstDialogId);
39
- }
40
- }
41
- static GetOpenDialogCount() {
42
- return CwDialogManager.openDialogs.size;
43
- }
44
- }
@@ -1,28 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useRef } from "react";
3
- /**
4
- * An expandable element with briefing and children displayed when clicked
5
- * @param briefing Title of the expandable
6
- * @param onToggle Function to run when expandable is toggled open/closed
7
- * @param onClose Function to run when expandable is closed
8
- * @param onOpen Function to run when expandable is opened
9
- * @example
10
- * <CwExpandable briefing="Title here">Contents here</CwExpandable>
11
- */
12
- export const CwExpandable = ({ briefing, onToggle, onOpen, onClose, children, ...detailsProps }) => {
13
- const myRef = useRef(null);
14
- useEffect(() => {
15
- myRef.current?.addEventListener("click", ev => {
16
- const isOpen = ev.currentTarget.open;
17
- onToggle?.(!isOpen);
18
- if (!isOpen)
19
- onOpen?.(ev);
20
- else
21
- onClose?.(ev);
22
- });
23
- }, [onClose, onOpen, onToggle]);
24
- return (_jsx("div", { className: "cw-expandable", children: _jsxs("details", { ref: myRef, ...detailsProps, children: [_jsx("summary", { children: briefing }), children && _jsx("section", { children: children })] }) }));
25
- };
26
- export const _CwExpandableTest = () => {
27
- return _jsx(CwExpandable, { briefing: "a", children: "hola" });
28
- };
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React from "react";
3
- import "./cw-key-value-list.css";
4
- /**
5
- * A component for displaying key-value pairs in a definition list format
6
- * Used for read-only display of structured data
7
- *
8
- * @example
9
- * <CwKeyValueList
10
- * items={[
11
- * { key: "length", label: "Length", value: "10", suffix: "m" },
12
- * { key: "width", label: "Width", value: null, suffix: "m" }
13
- * ]}
14
- * emptyValue="N/A"
15
- * />
16
- */
17
- export const CwKeyValueList = ({ items, className = "", emptyValue = "-", direction = "row" }) => {
18
- return (_jsx("dl", { className: `cw-keyvalue-list ${className}`, children: items.map(item => (_jsxs("div", { className: `cw-keyvalue-list-item cw-flex-${direction}`, children: [_jsx("dt", { children: item.label }), _jsx("dd", { children: item.value !== undefined && item.value !== null && item.value !== ""
19
- ? (React.isValidElement(item.value)
20
- ? item.value
21
- : `${item.value}${item.suffix ? ` ${item.suffix}` : ''}`)
22
- : emptyValue })] }, item.key))) }));
23
- };
@@ -1,73 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import React, { useState } from 'react';
3
- import { CwButton } from '../../../control/action/button/CwButton';
4
- import { CwIcon } from '../../../display/graphics/icon/CwIcon';
5
- import styles from "./cw-sortable-list.module.css";
6
- export function CwSortableList({ items, onReorder, renderItem, className = '', movedItems = new Set(), emptyMessage = "No elements to show", }) {
7
- const [draggedItem, setDraggedItem] = useState(null);
8
- const [dropIndicatorIndex, setDropIndicatorIndex] = useState(null);
9
- const [lastValidDropIndex, setLastValidDropIndex] = useState(null);
10
- const [expandedItems, setExpandedItems] = useState(new Set());
11
- const toggleExpanded = (itemId) => {
12
- setExpandedItems(prev => {
13
- const newSet = new Set(prev);
14
- if (newSet.has(itemId)) {
15
- newSet.delete(itemId);
16
- }
17
- else {
18
- newSet.add(itemId);
19
- }
20
- return newSet;
21
- });
22
- };
23
- const cleanupDragState = () => {
24
- setDraggedItem(null);
25
- setDropIndicatorIndex(null);
26
- setLastValidDropIndex(null);
27
- };
28
- const handleDragStart = (e, item) => {
29
- setDraggedItem(item);
30
- setLastValidDropIndex(null);
31
- e.dataTransfer.effectAllowed = 'move';
32
- };
33
- const handleDragEnd = () => {
34
- if (draggedItem && lastValidDropIndex !== null) {
35
- const dragIndex = items.findIndex(item => item.id === draggedItem.id);
36
- if (dragIndex !== lastValidDropIndex && dragIndex !== lastValidDropIndex - 1) {
37
- const newItems = [...items];
38
- const [draggedElement] = newItems.splice(dragIndex, 1);
39
- let finalIndex = lastValidDropIndex;
40
- if (dragIndex < finalIndex)
41
- finalIndex -= 1;
42
- newItems.splice(finalIndex, 0, draggedElement);
43
- // Ahora pasamos el id del elemento movido al callback
44
- onReorder(newItems, draggedItem.id);
45
- }
46
- }
47
- cleanupDragState();
48
- };
49
- const handleDragOver = (e, index) => {
50
- e.preventDefault();
51
- if (!draggedItem)
52
- return;
53
- const rect = e.currentTarget.getBoundingClientRect();
54
- const mouseY = e.clientY;
55
- const elementCenterY = rect.top + (rect.height / 2);
56
- const dropIndex = mouseY < elementCenterY ? index : index + 1;
57
- setLastValidDropIndex(dropIndex);
58
- if (dropIndicatorIndex !== dropIndex) {
59
- setDropIndicatorIndex(dropIndex);
60
- }
61
- };
62
- if (items.length === 0) {
63
- return (_jsx("div", { className: `${styles.sortableList} ${styles.emptyState} ${className}`, children: _jsx("div", { className: styles.emptyMessage, children: emptyMessage }) }));
64
- }
65
- return (_jsx("div", { className: `${styles.sortableList} ${className}`, children: items.map((item, index) => {
66
- const { title, extraContent, actions, showHandle = true, expandedContent } = renderItem(item);
67
- const isDragging = draggedItem?.id === item.id;
68
- const isMoved = movedItems.has(item.id);
69
- const canExpand = Boolean(expandedContent);
70
- const isExpanded = expandedItems.has(item.id);
71
- return (_jsxs(React.Fragment, { children: [dropIndicatorIndex === index && _jsx("div", { className: styles.dropIndicator }), _jsxs("div", { className: `${styles.sortableItem} ${isDragging ? styles.dragging : ''} ${isMoved ? styles.moved : ''}`, draggable: true, onDragStart: (e) => handleDragStart(e, item), onDragOver: (e) => handleDragOver(e, index), onDragEnd: handleDragEnd, children: [_jsxs("header", { children: [canExpand ? (_jsx(CwButton, { variant: "icon", onClick: () => toggleExpanded(item.id), type: "button", title: isExpanded ? "Collapse" : "Expand", icon: isExpanded ? "chevron-up" : "chevron-down" })) : showHandle ? (_jsx("div", { className: styles.sortableHandle, children: _jsx(CwIcon, { iconId: "grip-dots" }) })) : null, _jsxs("div", { className: styles.sortableContent, children: [_jsx("div", { className: styles.sortableTitle, children: title }), extraContent && _jsx("div", { className: styles.sortableExtraContent, children: extraContent })] }), _jsx("div", { className: styles.sortableActions, children: actions })] }), isExpanded && expandedContent && (_jsx("div", { className: styles.expandedContent, children: expandedContent }))] }), dropIndicatorIndex === items.length && index === items.length - 1 && (_jsx("div", { className: styles.dropIndicator }))] }, item.id));
72
- }) }));
73
- }
@@ -1,53 +0,0 @@
1
- import { useCallback, useState } from "react";
2
- export function useSortableList(initialItems) {
3
- const [items, setItems] = useState(initialItems);
4
- const [originalItems, setOriginalItems] = useState(initialItems);
5
- const [hasChanges, setHasChanges] = useState(false);
6
- const [movedItems, setMovedItems] = useState(new Set());
7
- const [resetKey, setResetKey] = useState(0);
8
- const handleReorder = useCallback((newItems, movedId) => {
9
- setItems(newItems);
10
- if (movedId !== undefined) {
11
- setMovedItems(prev => new Set(prev).add(movedId));
12
- }
13
- setHasChanges(true);
14
- }, []);
15
- const addItem = (newItem) => {
16
- setItems(prev => [...prev, newItem]);
17
- setHasChanges(true);
18
- };
19
- const removeItem = (id) => {
20
- setItems(prev => prev.filter(item => item.id !== id));
21
- setHasChanges(true);
22
- };
23
- const handleSave = async (onSave) => {
24
- await onSave(items);
25
- setOriginalItems(items);
26
- setMovedItems(new Set());
27
- setHasChanges(false);
28
- setResetKey(prev => prev + 1);
29
- };
30
- const updateItems = (newItems) => {
31
- setItems(newItems);
32
- setOriginalItems(newItems); // Keep original items in sync
33
- setHasChanges(true);
34
- };
35
- const handleDiscard = () => {
36
- setItems(originalItems);
37
- setMovedItems(new Set());
38
- setHasChanges(false);
39
- setResetKey(prev => prev + 1);
40
- };
41
- return {
42
- items,
43
- setItems: updateItems,
44
- handleReorder,
45
- handleSave,
46
- handleDiscard,
47
- addItem,
48
- movedItems,
49
- removeItem,
50
- hasChanges,
51
- resetKey,
52
- };
53
- }
@@ -1,23 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { CwDialog } from "../dialog/CwDialog";
4
- export const CwModalReportFunctional = (props) => {
5
- const [isModal, _setIsModal] = useState(props.isModal !== undefined && props.isModal !== null ? props.isModal : true);
6
- const renderContentModal = () => {
7
- if (props.name !== "Empty.pdf") {
8
- return (_jsx("div", { style: { width: "100%", height: "100%", overflowX: "auto", overflowY: "auto" }, children: _jsx("embed", { src: `data:application/pdf;base64,${props.content}`, type: "application/pdf", style: { width: "100%", height: "100%", display: "block" } }) }));
9
- }
10
- else {
11
- return (_jsx("div", { children: _jsxs("h1", { style: { marginLeft: "2em" }, children: ["Please add a(n) ", props.reportName, " report in ", props.moduleSettings, " Settings"] }) }));
12
- }
13
- };
14
- const renderContentNotModal = () => {
15
- if (props.name !== "Empty.pdf") {
16
- return (_jsx("embed", { src: "data:application/pdf;base64," + props.content, type: "application/pdf", width: "100%", height: "600px" }));
17
- }
18
- else {
19
- return (_jsxs("div", { children: ["Please add a(n) ", props.reportName, " report in ", props.moduleSettings, " Settings"] }));
20
- }
21
- };
22
- return (_jsx("div", { id: "cwelltModalReportContent", children: isModal ? (_jsx(CwDialog, { open: props.visible, width: props.width, height: props.height, headline: props.title, onClose: props.onCloseModal, hideFooter: true, children: renderContentModal() })) : (_jsx("div", { children: renderContentNotModal() })) }));
23
- };