@cwellt_software/cwellt-reactjs-lib 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/dist/assets/asset-Boimp3FS +46 -0
  2. package/dist/assets/asset-CIKjURuf +48 -0
  3. package/dist/assets/asset-DO0cv1ff +51 -0
  4. package/dist/assets/asset-DitoBYw6 +51 -0
  5. package/dist/common/classes/CwSelectList.d.ts +8 -0
  6. package/dist/common/classes/CwSelectList.d.ts.map +1 -0
  7. package/dist/common/classes/CwSelectListItems.d.ts +9 -0
  8. package/dist/common/classes/CwSelectListItems.d.ts.map +1 -0
  9. package/dist/common/functions/collections.d.ts +5 -0
  10. package/dist/common/functions/collections.d.ts.map +1 -0
  11. package/dist/common/functions/reactor.d.ts +2 -0
  12. package/dist/common/functions/reactor.d.ts.map +1 -0
  13. package/dist/common/interfaces/CwSelectListProps.d.ts +9 -0
  14. package/dist/common/interfaces/CwSelectListProps.d.ts.map +1 -0
  15. package/dist/components/control/action/button/CwButton.d.ts +7 -0
  16. package/dist/components/control/action/button/CwButton.d.ts.map +1 -0
  17. package/dist/components/control/action/buttons/CwButtons.d.ts +326 -0
  18. package/dist/components/control/action/buttons/CwButtons.d.ts.map +1 -0
  19. package/dist/components/control/action/contextmenu/CwContextMenu.d.ts +33 -0
  20. package/dist/components/control/action/contextmenu/CwContextMenu.d.ts.map +1 -0
  21. package/dist/components/control/action/search/CwSearch.d.ts +18 -0
  22. package/dist/components/control/action/search/CwSearch.d.ts.map +1 -0
  23. package/dist/components/control/action/tooltip-dialog/CwTooltipDialog.d.ts +21 -0
  24. package/dist/components/control/action/tooltip-dialog/CwTooltipDialog.d.ts.map +1 -0
  25. package/dist/components/control/choice/checkbox/CwCheckbox.d.ts +19 -0
  26. package/dist/components/control/choice/checkbox/CwCheckbox.d.ts.map +1 -0
  27. package/dist/components/control/choice/deprecated/MultiSelect_deprecated_.d.ts +24 -0
  28. package/dist/components/control/choice/deprecated/MultiSelect_deprecated_.d.ts.map +1 -0
  29. package/dist/components/control/choice/dropdown/CwDropdown.d.ts +21 -0
  30. package/dist/components/control/choice/dropdown/CwDropdown.d.ts.map +1 -0
  31. package/dist/components/control/choice/dropdown/CwDropdownContainer.d.ts +19 -0
  32. package/dist/components/control/choice/dropdown/CwDropdownContainer.d.ts.map +1 -0
  33. package/dist/components/control/choice/dropdown/CwDropdownFilter.d.ts +32 -0
  34. package/dist/components/control/choice/dropdown/CwDropdownFilter.d.ts.map +1 -0
  35. package/dist/components/control/choice/dropdown/CwDropdownNavigation.d.ts +23 -0
  36. package/dist/components/control/choice/dropdown/CwDropdownNavigation.d.ts.map +1 -0
  37. package/dist/components/control/choice/multi-filter/CwMultiFilter.d.ts +68 -0
  38. package/dist/components/control/choice/multi-filter/CwMultiFilter.d.ts.map +1 -0
  39. package/dist/components/control/choice/multi-filter/components/tag/CwMultiFilterTag.d.ts +34 -0
  40. package/dist/components/control/choice/multi-filter/components/tag/CwMultiFilterTag.d.ts.map +1 -0
  41. package/dist/components/control/choice/multiselect/CwHeadFilter.d.ts +18 -0
  42. package/dist/components/control/choice/multiselect/CwHeadFilter.d.ts.map +1 -0
  43. package/dist/components/control/choice/multiselect/CwMultiselect.d.ts +15 -0
  44. package/dist/components/control/choice/multiselect/CwMultiselect.d.ts.map +1 -0
  45. package/dist/components/control/choice/multiselect/CwOptionList.d.ts +17 -0
  46. package/dist/components/control/choice/multiselect/CwOptionList.d.ts.map +1 -0
  47. package/dist/components/control/choice/option/CwOption.d.ts +17 -0
  48. package/dist/components/control/choice/option/CwOption.d.ts.map +1 -0
  49. package/dist/components/control/choice/select/CwSelect.d.ts +49 -0
  50. package/dist/components/control/choice/select/CwSelect.d.ts.map +1 -0
  51. package/dist/components/control/choice/toggle/CwToggle.d.ts +36 -0
  52. package/dist/components/control/choice/toggle/CwToggle.d.ts.map +1 -0
  53. package/dist/components/control/input/any/CwInput.d.ts +19 -0
  54. package/dist/components/control/input/any/CwInput.d.ts.map +1 -0
  55. package/dist/components/control/input/chipper/CwChip.d.ts +16 -0
  56. package/dist/components/control/input/chipper/CwChip.d.ts.map +1 -0
  57. package/dist/components/control/input/date/CwInputDate.d.ts +40 -0
  58. package/dist/components/control/input/date/CwInputDate.d.ts.map +1 -0
  59. package/dist/components/control/input/date-picker/CwInputDatePicker.d.ts +7 -0
  60. package/dist/components/control/input/date-picker/CwInputDatePicker.d.ts.map +1 -0
  61. package/dist/components/control/input/date-text/CwInputDateText.d.ts +39 -0
  62. package/dist/components/control/input/date-text/CwInputDateText.d.ts.map +1 -0
  63. package/dist/components/control/input/datetime/CwInputDatetime.d.ts +40 -0
  64. package/dist/components/control/input/datetime/CwInputDatetime.d.ts.map +1 -0
  65. package/dist/components/control/input/digit/CwDigit.d.ts +40 -0
  66. package/dist/components/control/input/digit/CwDigit.d.ts.map +1 -0
  67. package/dist/components/control/input/file/CwFileUpload.d.ts +20 -0
  68. package/dist/components/control/input/file/CwFileUpload.d.ts.map +1 -0
  69. package/dist/components/control/input/image/CwInputImage.d.ts +11 -0
  70. package/dist/components/control/input/image/CwInputImage.d.ts.map +1 -0
  71. package/dist/components/control/input/image-area/CwImageArea.d.ts +58 -0
  72. package/dist/components/control/input/image-area/CwImageArea.d.ts.map +1 -0
  73. package/dist/components/control/input/number/CwInputNumber.d.ts +22 -0
  74. package/dist/components/control/input/number/CwInputNumber.d.ts.map +1 -0
  75. package/dist/components/control/input/phone/CwInputPhone.d.ts +36 -0
  76. package/dist/components/control/input/phone/CwInputPhone.d.ts.map +1 -0
  77. package/dist/components/control/input/text/CwInputText.d.ts +40 -0
  78. package/dist/components/control/input/text/CwInputText.d.ts.map +1 -0
  79. package/dist/components/control/input/text-area/CwTextArea.d.ts +25 -0
  80. package/dist/components/control/input/text-area/CwTextArea.d.ts.map +1 -0
  81. package/dist/components/control/input/time/CwTime.d.ts +40 -0
  82. package/dist/components/control/input/time/CwTime.d.ts.map +1 -0
  83. package/dist/components/custom/find-airport/CwFindAirportComp.d.ts +32 -0
  84. package/dist/components/custom/find-airport/CwFindAirportComp.d.ts.map +1 -0
  85. package/dist/components/custom/scheduler/CwSchedulerComp.d.ts +39 -0
  86. package/dist/components/custom/scheduler/CwSchedulerComp.d.ts.map +1 -0
  87. package/dist/components/custom/scheduler/CwSuperSchedulerComp.d.ts +101 -0
  88. package/dist/components/custom/scheduler/CwSuperSchedulerComp.d.ts.map +1 -0
  89. package/dist/components/custom/scheduler/components/ClearSchedulerButton.d.ts +7 -0
  90. package/dist/components/custom/scheduler/components/ClearSchedulerButton.d.ts.map +1 -0
  91. package/dist/components/custom/scheduler/components/EventRender.d.ts +3 -0
  92. package/dist/components/custom/scheduler/components/EventRender.d.ts.map +1 -0
  93. package/dist/components/custom/scheduler/components/ResourceListRender.d.ts +17 -0
  94. package/dist/components/custom/scheduler/components/ResourceListRender.d.ts.map +1 -0
  95. package/dist/components/custom/scheduler/components/ResourceRender.d.ts +15 -0
  96. package/dist/components/custom/scheduler/components/ResourceRender.d.ts.map +1 -0
  97. package/dist/components/custom/scheduler/components/day_headers/DayHeader.d.ts +10 -0
  98. package/dist/components/custom/scheduler/components/day_headers/DayHeader.d.ts.map +1 -0
  99. package/dist/components/custom/scheduler/components/day_headers/MonthHeader.d.ts +10 -0
  100. package/dist/components/custom/scheduler/components/day_headers/MonthHeader.d.ts.map +1 -0
  101. package/dist/components/custom/scheduler/components/day_headers/MyDaysHeader.d.ts +10 -0
  102. package/dist/components/custom/scheduler/components/day_headers/MyDaysHeader.d.ts.map +1 -0
  103. package/dist/components/custom/scheduler/components/day_headers/WeekHeader.d.ts +10 -0
  104. package/dist/components/custom/scheduler/components/day_headers/WeekHeader.d.ts.map +1 -0
  105. package/dist/components/custom/scheduler/components/resources_title_list/ResourcesTitleList.d.ts +14 -0
  106. package/dist/components/custom/scheduler/components/resources_title_list/ResourcesTitleList.d.ts.map +1 -0
  107. package/dist/components/custom/scheduler/components/scheduler_content_area/SchedulerContentArea.d.ts +24 -0
  108. package/dist/components/custom/scheduler/components/scheduler_content_area/SchedulerContentArea.d.ts.map +1 -0
  109. package/dist/components/custom/scheduler/components/scheduler_header/SchedulerHeader.d.ts +8 -0
  110. package/dist/components/custom/scheduler/components/scheduler_header/SchedulerHeader.d.ts.map +1 -0
  111. package/dist/components/custom/scheduler/components/scheduler_timeline/SchedulerTimeLine.d.ts +11 -0
  112. package/dist/components/custom/scheduler/components/scheduler_timeline/SchedulerTimeLine.d.ts.map +1 -0
  113. package/dist/components/custom/scheduler/components/time_headers/TimeHeader.d.ts +11 -0
  114. package/dist/components/custom/scheduler/components/time_headers/TimeHeader.d.ts.map +1 -0
  115. package/dist/components/custom/scheduler/components/time_headers/TimeHeaderRow.d.ts +10 -0
  116. package/dist/components/custom/scheduler/components/time_headers/TimeHeaderRow.d.ts.map +1 -0
  117. package/dist/components/custom/scheduler/components/time_line/TimeLine.d.ts +7 -0
  118. package/dist/components/custom/scheduler/components/time_line/TimeLine.d.ts.map +1 -0
  119. package/dist/components/custom/scheduler/logic/dates/addMinutesToDateFromPx.d.ts +2 -0
  120. package/dist/components/custom/scheduler/logic/dates/addMinutesToDateFromPx.d.ts.map +1 -0
  121. package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDates.d.ts +2 -0
  122. package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDates.d.ts.map +1 -0
  123. package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDatesWithoutCeil.d.ts +2 -0
  124. package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDatesWithoutCeil.d.ts.map +1 -0
  125. package/dist/components/custom/scheduler/logic/dates/getFormatedTimeForHeader.d.ts +11 -0
  126. package/dist/components/custom/scheduler/logic/dates/getFormatedTimeForHeader.d.ts.map +1 -0
  127. package/dist/components/custom/scheduler/logic/dates/getMonthHeaderData.d.ts +10 -0
  128. package/dist/components/custom/scheduler/logic/dates/getMonthHeaderData.d.ts.map +1 -0
  129. package/dist/components/custom/scheduler/logic/dates/getUtcToday.d.ts +2 -0
  130. package/dist/components/custom/scheduler/logic/dates/getUtcToday.d.ts.map +1 -0
  131. package/dist/components/custom/scheduler/logic/dates/getWeekHeaderDataFromWeekRange.d.ts +11 -0
  132. package/dist/components/custom/scheduler/logic/dates/getWeekHeaderDataFromWeekRange.d.ts.map +1 -0
  133. package/dist/components/custom/scheduler/logic/dates/listOfDatesToWeeks.d.ts +8 -0
  134. package/dist/components/custom/scheduler/logic/dates/listOfDatesToWeeks.d.ts.map +1 -0
  135. package/dist/components/custom/scheduler/logic/divisions/calculateDivisionType.d.ts +2 -0
  136. package/dist/components/custom/scheduler/logic/divisions/calculateDivisionType.d.ts.map +1 -0
  137. package/dist/components/custom/scheduler/logic/divisions/calculateDivisions.d.ts +2 -0
  138. package/dist/components/custom/scheduler/logic/divisions/calculateDivisions.d.ts.map +1 -0
  139. package/dist/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts +19 -0
  140. package/dist/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts.map +1 -0
  141. package/dist/components/custom/scheduler/logic/filtering/filterEvents.d.ts +10 -0
  142. package/dist/components/custom/scheduler/logic/filtering/filterEvents.d.ts.map +1 -0
  143. package/dist/components/custom/scheduler/logic/filtering/filterResources.d.ts +10 -0
  144. package/dist/components/custom/scheduler/logic/filtering/filterResources.d.ts.map +1 -0
  145. package/dist/components/custom/scheduler/logic/filtering/hasSameProperties.d.ts +3 -0
  146. package/dist/components/custom/scheduler/logic/filtering/hasSameProperties.d.ts.map +1 -0
  147. package/dist/components/custom/scheduler/logic/onDrop/OnDrop.d.ts +14 -0
  148. package/dist/components/custom/scheduler/logic/onDrop/OnDrop.d.ts.map +1 -0
  149. package/dist/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts +7 -0
  150. package/dist/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts.map +1 -0
  151. package/dist/components/custom/scheduler/logic/pixels/getPixelsForEvent.d.ts +8 -0
  152. package/dist/components/custom/scheduler/logic/pixels/getPixelsForEvent.d.ts.map +1 -0
  153. package/dist/components/custom/scheduler/logic/pixels/heightScheduler.d.ts +6 -0
  154. package/dist/components/custom/scheduler/logic/pixels/heightScheduler.d.ts.map +1 -0
  155. package/dist/components/custom/scheduler/logic/pixels/heightSchedulerPinned.d.ts +6 -0
  156. package/dist/components/custom/scheduler/logic/pixels/heightSchedulerPinned.d.ts.map +1 -0
  157. package/dist/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts +10 -0
  158. package/dist/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts.map +1 -0
  159. package/dist/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts +11 -0
  160. package/dist/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts.map +1 -0
  161. package/dist/components/custom/scheduler/logic/state_handle/handleResourceChange.d.ts +10 -0
  162. package/dist/components/custom/scheduler/logic/state_handle/handleResourceChange.d.ts.map +1 -0
  163. package/dist/components/custom/scheduler/logic/strings/compareStrings.d.ts +2 -0
  164. package/dist/components/custom/scheduler/logic/strings/compareStrings.d.ts.map +1 -0
  165. package/dist/components/custom/scheduler/logic/strings/getGUID.d.ts +2 -0
  166. package/dist/components/custom/scheduler/logic/strings/getGUID.d.ts.map +1 -0
  167. package/dist/components/custom/scheduler/logic/ui/checkIfSlotAvailable.d.ts +3 -0
  168. package/dist/components/custom/scheduler/logic/ui/checkIfSlotAvailable.d.ts.map +1 -0
  169. package/dist/components/custom/scheduler/logic/ui/getEventsOfResource.d.ts +13 -0
  170. package/dist/components/custom/scheduler/logic/ui/getEventsOfResource.d.ts.map +1 -0
  171. package/dist/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts +8 -0
  172. package/dist/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts.map +1 -0
  173. package/dist/components/custom/scheduler/logic/ui/getTimeHeaders.d.ts +2 -0
  174. package/dist/components/custom/scheduler/logic/ui/getTimeHeaders.d.ts.map +1 -0
  175. package/dist/components/custom/scheduler/logic/ui/isAllowedToMove.d.ts +3 -0
  176. package/dist/components/custom/scheduler/logic/ui/isAllowedToMove.d.ts.map +1 -0
  177. package/dist/components/custom/scheduler/state/CblDragAndDrop.d.ts +19 -0
  178. package/dist/components/custom/scheduler/state/CblDragAndDrop.d.ts.map +1 -0
  179. package/dist/components/custom/scheduler/state/CwSchedulerProps.d.ts +48 -0
  180. package/dist/components/custom/scheduler/state/CwSchedulerProps.d.ts.map +1 -0
  181. package/dist/components/custom/scheduler/state/EventProps.d.ts +7 -0
  182. package/dist/components/custom/scheduler/state/EventProps.d.ts.map +1 -0
  183. package/dist/components/custom/scheduler/state/Resource.d.ts +14 -0
  184. package/dist/components/custom/scheduler/state/Resource.d.ts.map +1 -0
  185. package/dist/components/custom/scheduler/state/State.d.ts +25 -0
  186. package/dist/components/custom/scheduler/state/State.d.ts.map +1 -0
  187. package/dist/components/custom/scheduler/state/cblEvent.d.ts +26 -0
  188. package/dist/components/custom/scheduler/state/cblEvent.d.ts.map +1 -0
  189. package/dist/components/custom/scheduler/state/cblEventCompProps.d.ts +7 -0
  190. package/dist/components/custom/scheduler/state/cblEventCompProps.d.ts.map +1 -0
  191. package/dist/components/custom/scheduler/state/resourceCompProps2.d.ts +6 -0
  192. package/dist/components/custom/scheduler/state/resourceCompProps2.d.ts.map +1 -0
  193. package/dist/components/display/data/accordion/CwAccordionContainer.d.ts +16 -0
  194. package/dist/components/display/data/accordion/CwAccordionContainer.d.ts.map +1 -0
  195. package/dist/components/display/data/table/CwTable.d.ts +130 -0
  196. package/dist/components/display/data/table/CwTable.d.ts.map +1 -0
  197. package/dist/components/display/graphics/icon/CwIcon.d.ts +14 -0
  198. package/dist/components/display/graphics/icon/CwIcon.d.ts.map +1 -0
  199. package/dist/components/display/graphics/loading/CwLoading.d.ts +19 -0
  200. package/dist/components/display/graphics/loading/CwLoading.d.ts.map +1 -0
  201. package/dist/components/display/graphics/loading-small/CwLoadingSmall.d.ts +8 -0
  202. package/dist/components/display/graphics/loading-small/CwLoadingSmall.d.ts.map +1 -0
  203. package/dist/components/display/text/heading/CwHeadingMain.d.ts +5 -0
  204. package/dist/components/display/text/heading/CwHeadingMain.d.ts.map +1 -0
  205. package/dist/components/display/text/heading/CwHeadingSecond.d.ts +5 -0
  206. package/dist/components/display/text/heading/CwHeadingSecond.d.ts.map +1 -0
  207. package/dist/components/display/text/label/CwLabel.d.ts +28 -0
  208. package/dist/components/display/text/label/CwLabel.d.ts.map +1 -0
  209. package/dist/components/display/text/message/CwMessage.d.ts +31 -0
  210. package/dist/components/display/text/message/CwMessage.d.ts.map +1 -0
  211. package/dist/components/display/text/tag/CwTag.d.ts +16 -0
  212. package/dist/components/display/text/tag/CwTag.d.ts.map +1 -0
  213. package/dist/components/display/text/tooltip/CwTooltip.d.ts +10 -0
  214. package/dist/components/display/text/tooltip/CwTooltip.d.ts.map +1 -0
  215. package/dist/components/layout/align/CwAlign.d.ts +53 -0
  216. package/dist/components/layout/align/CwAlign.d.ts.map +1 -0
  217. package/dist/components/layout/list/details/CwExpandable.d.ts +23 -0
  218. package/dist/components/layout/list/details/CwExpandable.d.ts.map +1 -0
  219. package/dist/components/layout/modal/hover/CwModalHover.d.ts +19 -0
  220. package/dist/components/layout/modal/hover/CwModalHover.d.ts.map +1 -0
  221. package/dist/components/layout/modal/legacy/cw_modal.d.ts +24 -0
  222. package/dist/components/layout/modal/legacy/cw_modal.d.ts.map +1 -0
  223. package/dist/components/layout/modal/legacy/cw_modal_confirm.d.ts +19 -0
  224. package/dist/components/layout/modal/legacy/cw_modal_confirm.d.ts.map +1 -0
  225. package/dist/components/layout/modal/legacy/cw_modal_iframe.d.ts +21 -0
  226. package/dist/components/layout/modal/legacy/cw_modal_iframe.d.ts.map +1 -0
  227. package/dist/components/layout/modal/legacy/cw_modal_report.d.ts +35 -0
  228. package/dist/components/layout/modal/legacy/cw_modal_report.d.ts.map +1 -0
  229. package/dist/components/layout/table/grouped/CwTableGrouped.d.ts +80 -0
  230. package/dist/components/layout/table/grouped/CwTableGrouped.d.ts.map +1 -0
  231. package/dist/components/layout/tabs/CwTabs.d.ts +37 -0
  232. package/dist/components/layout/tabs/CwTabs.d.ts.map +1 -0
  233. package/dist/content/icons/new-cw-icons/NewCwIcons.html +2 -2
  234. package/dist/content/icons/new-cw-icons/NewCwIcons.json +1 -1
  235. package/dist/content/icons/new-cw-icons/css/new-cw-icons.css +3 -1
  236. package/dist/content/icons/new-cw-icons/fonts/NewCwIcons.woff +0 -0
  237. package/dist/index.cjs.js +687 -514
  238. package/dist/index.cjs.js.map +1 -1
  239. package/dist/index.css +2 -4
  240. package/dist/index.css.map +1 -1
  241. package/dist/index.d.ts +206 -192
  242. package/dist/index.es.js +688 -515
  243. package/dist/index.es.js.map +1 -0
  244. package/dist/index.esm.js +621 -693
  245. package/dist/index.esm.js.map +1 -0
  246. package/dist/src/common/functions/colorManipulation.d.ts +6 -0
  247. package/dist/src/common/functions/colorManipulation.d.ts.map +1 -0
  248. package/dist/src/common/functions/reactor.d.ts +0 -1
  249. package/dist/src/common/functions/useSingleAndDoubleClicks.d.ts.map +1 -1
  250. package/dist/src/components/control/action/button/CwButton.d.ts +1 -1
  251. package/dist/src/components/control/action/button/CwButton.d.ts.map +1 -1
  252. package/dist/src/components/control/choice/multi-filter/CwMultiFilter.d.ts +5 -5
  253. package/dist/src/components/control/choice/option/CwOption.d.ts +1 -1
  254. package/dist/src/components/control/choice/option/CwOption.d.ts.map +1 -1
  255. package/dist/src/components/control/choice/select/CwSelect.d.ts +11 -11
  256. package/dist/src/components/control/choice/select/CwSelect.d.ts.map +1 -1
  257. package/dist/src/components/control/choice/toggle/CwToggle.d.ts +8 -8
  258. package/dist/src/components/control/choice/toggle/CwToggle.d.ts.map +1 -1
  259. package/dist/src/components/control/input/chipper/CwChip.d.ts +4 -4
  260. package/dist/src/components/control/input/chipper/CwChip.d.ts.map +1 -1
  261. package/dist/src/components/control/input/date/CwInputDate.d.ts +11 -11
  262. package/dist/src/components/control/input/date/CwInputDate.d.ts.map +1 -1
  263. package/dist/src/components/control/input/date-text/CwInputDateText.d.ts +8 -8
  264. package/dist/src/components/control/input/date-text/CwInputDateText.d.ts.map +1 -1
  265. package/dist/src/components/control/input/datetime/CwInputDatetime.d.ts +11 -11
  266. package/dist/src/components/control/input/datetime/CwInputDatetime.d.ts.map +1 -1
  267. package/dist/src/components/control/input/digit/CwDigit.d.ts +11 -11
  268. package/dist/src/components/control/input/digit/CwDigit.d.ts.map +1 -1
  269. package/dist/src/components/control/input/file/CwFileUpload.d.ts.map +1 -1
  270. package/dist/src/components/control/input/image/CwInputImage.d.ts +1 -1
  271. package/dist/src/components/control/input/image/CwInputImage.d.ts.map +1 -1
  272. package/dist/src/components/control/input/image-area/CwImageArea.d.ts +7 -7
  273. package/dist/src/components/control/input/image-area/CwImageArea.d.ts.map +1 -1
  274. package/dist/src/components/control/input/phone/CwInputPhone.d.ts +9 -9
  275. package/dist/src/components/control/input/phone/CwInputPhone.d.ts.map +1 -1
  276. package/dist/src/components/control/input/text/CwInputText.d.ts +11 -11
  277. package/dist/src/components/control/input/text/CwInputText.d.ts.map +1 -1
  278. package/dist/src/components/control/input/text-area/CwTextArea.d.ts +9 -9
  279. package/dist/src/components/control/input/text-area/CwTextArea.d.ts.map +1 -1
  280. package/dist/src/components/control/input/time/CwTime.d.ts +11 -11
  281. package/dist/src/components/control/input/time/CwTime.d.ts.map +1 -1
  282. package/dist/src/components/custom/scheduler/CwSchedulerComp.d.ts +1 -0
  283. package/dist/src/components/custom/scheduler/CwSchedulerComp.d.ts.map +1 -1
  284. package/dist/src/components/custom/scheduler/components/ClearSchedulerButton.d.ts +2 -2
  285. package/dist/src/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts.map +1 -1
  286. package/dist/src/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts +0 -1
  287. package/dist/src/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts +0 -1
  288. package/dist/src/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts.map +1 -1
  289. package/dist/src/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts.map +1 -1
  290. package/dist/src/components/custom/scheduler/logic/ui/shouldTriggerScroll.d.ts.map +1 -1
  291. package/dist/src/components/custom/scheduler/state/EventProps.d.ts +0 -1
  292. package/dist/src/components/custom/scheduler-new/presentation/NewScheduler.d.ts +6 -4
  293. package/dist/src/components/custom/scheduler-new/presentation/NewScheduler.d.ts.map +1 -1
  294. package/dist/src/components/custom/scheduler-new/presentation/SchedulerPresenter.d.ts +1 -1
  295. package/dist/src/components/custom/scheduler-new/presentation/SchedulerPresenter.d.ts.map +1 -1
  296. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderDivision.d.ts +4 -0
  297. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderDivision.d.ts.map +1 -1
  298. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderTitle.d.ts +1 -1
  299. package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderTitle.d.ts.map +1 -1
  300. package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeader.d.ts.map +1 -1
  301. package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeaderState.d.ts +3 -1
  302. package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeaderState.d.ts.map +1 -1
  303. package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgrounEvent.d.ts +7 -0
  304. package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgrounEvent.d.ts.map +1 -1
  305. package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgroundEvent.d.ts +2 -3
  306. package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgroundEvent.d.ts.map +1 -1
  307. package/dist/src/components/custom/scheduler-new/presentation/components/row/DefaultRowHeader.d.ts +3 -3
  308. package/dist/src/components/custom/scheduler-new/presentation/components/row/DefaultRowHeader.d.ts.map +1 -1
  309. package/dist/src/components/custom/scheduler-new/presentation/components/row/Event.d.ts +4 -2
  310. package/dist/src/components/custom/scheduler-new/presentation/components/row/Event.d.ts.map +1 -1
  311. package/dist/src/components/custom/scheduler-new/presentation/components/row/SchedulerRow.d.ts +2 -1
  312. package/dist/src/components/custom/scheduler-new/presentation/components/row/SchedulerRow.d.ts.map +1 -1
  313. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/TimeLine.d.ts +3 -1
  314. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/TimeLine.d.ts.map +1 -1
  315. package/dist/src/components/custom/scheduler-new/presentation/components/timeline/WeekEndLine.d.ts.map +1 -1
  316. package/dist/src/components/custom/scheduler-new/presentation/helpers.d.ts +1 -1
  317. package/dist/src/components/custom/scheduler-new/presentation/logic/getDefaultDivisions.d.ts.map +1 -1
  318. package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsToInnerRows.d.ts.map +1 -1
  319. package/dist/src/components/custom/scheduler-new/presentation/logic/sortByCategoryAndTitle.d.ts +1 -1
  320. package/dist/src/components/custom/scheduler-new/presentation/logic/sortByCategoryAndTitle.d.ts.map +1 -1
  321. package/dist/src/components/custom/scheduler-new/presentation/state/external/Event.d.ts +0 -1
  322. package/dist/src/components/custom/scheduler-new/presentation/state/external/Row.d.ts +0 -1
  323. package/dist/src/components/custom/scheduler-new/presentation/state/ui/EventSideDragState.d.ts +0 -1
  324. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerEventState.d.ts +3 -2
  325. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerHeaderState.d.ts +2 -5
  326. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerHeaderState.d.ts.map +1 -1
  327. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerRow.d.ts +0 -1
  328. package/dist/src/components/custom/scheduler-temporal/CwSchedulerComp2.d.ts +5 -0
  329. package/dist/src/components/custom/scheduler-temporal/CwSchedulerComp2.d.ts.map +1 -1
  330. package/dist/src/components/custom/super-scheduler/PinRowHeader.d.ts.map +1 -1
  331. package/dist/src/components/custom/super-scheduler/SuperScheduler.d.ts +5 -5
  332. package/dist/src/components/custom/super-scheduler/SuperScheduler.d.ts.map +1 -1
  333. package/dist/src/components/display/data/generic_tooltip/CwGenericTooltip.d.ts +3 -2
  334. package/dist/src/components/display/data/generic_tooltip/CwGenericTooltip.d.ts.map +1 -1
  335. package/dist/src/components/display/graphics/icon/CwIcon.d.ts +2 -2
  336. package/dist/src/components/display/graphics/icon/CwIcon.d.ts.map +1 -1
  337. package/dist/src/components/display/text/label/CwLabel.d.ts +9 -9
  338. package/dist/src/components/display/text/label/CwLabel.d.ts.map +1 -1
  339. package/dist/src/components/display/text/message/CwMessage.d.ts +5 -5
  340. package/dist/src/components/display/text/message/CwMessage.d.ts.map +1 -1
  341. package/dist/src/components/layout/align/CwAlign.d.ts +24 -24
  342. package/dist/src/components/layout/align/CwAlign.d.ts.map +1 -1
  343. package/dist/src/components/layout/dialog/CwDialog.d.ts +8 -8
  344. package/dist/src/components/layout/dialog/CwDialog.d.ts.map +1 -1
  345. package/dist/src/components/layout/list/details/CwExpandable.d.ts +9 -9
  346. package/dist/src/components/layout/list/details/CwExpandable.d.ts.map +1 -1
  347. package/dist/src/components/layout/modal/hover/CwModalHover.d.ts +5 -5
  348. package/dist/src/components/layout/modal/hover/CwModalHover.d.ts.map +1 -1
  349. package/dist/src/index.d.ts +5 -5
  350. package/dist/src/index.d.ts.map +1 -1
  351. package/dist/test/components/custom/scheduler/calculateMaxPxFromDateRange.test.d.ts +0 -1
  352. package/package.json +2 -2
  353. package/dist/src/components/custom/scheduler-new/presentation/TestScheduler.d.ts +0 -1
  354. package/dist/src/components/custom/scheduler-new/presentation/components/row/cancellablePromise.d.ts +0 -7
  355. package/dist/src/components/custom/scheduler-new/presentation/components/row/cancellablePromise.d.ts.map +0 -1
  356. package/dist/src/components/custom/scheduler-new/presentation/components/row/useCancellablePromise.d.ts +0 -7
  357. package/dist/src/components/custom/scheduler-new/presentation/components/row/useCancellablePromise.d.ts.map +0 -1
  358. package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsByResource.d.ts +0 -5
  359. package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsByResource.d.ts.map +0 -1
  360. package/dist/src/components/custom/scheduler-new/presentation/state/external/Event.d.ts.map +0 -1
  361. package/dist/src/components/custom/scheduler-new/presentation/state/external/Row.d.ts.map +0 -1
  362. package/dist/src/components/custom/scheduler-new/presentation/state/ui/EventSideDragState.d.ts.map +0 -1
  363. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerEventState.d.ts.map +0 -1
  364. package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerRow.d.ts.map +0 -1
  365. package/dist/test/components/custom/newScheduler/presentation/logic/getDefaultDivisions.test.d.ts.map +0 -1
package/dist/index.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
- import React__default, { useEffect, useState, useRef, forwardRef, useImperativeHandle, useCallback, useMemo, createElement, Fragment, createRef } from 'react';
3
+ import React__default, { useEffect, useState, useRef, useMemo, forwardRef, useImperativeHandle, useCallback, createElement, Fragment, createRef } from 'react';
4
4
  import { createRoot } from 'react-dom/client';
5
5
  import { Tooltip, Modal, InputNumber, Select, Tag, Dropdown, Menu } from 'antd';
6
6
  import Draggable from 'react-draggable';
@@ -358,10 +358,120 @@ class CwModalIframe extends React.Component {
358
358
  }
359
359
  }
360
360
 
361
+ var styles$3 = {"cw-dialog-main":"cw-dialog-module_cw-dialog-main__cHxHt","cw-dialog-button-close":"cw-dialog-module_cw-dialog-button-close__9GRd8","cw-dialog-button-save":"cw-dialog-module_cw-dialog-button-save__eZ9SI"};
362
+
363
+ const CwDialog = props => {
364
+ const dialogRef = useRef(null);
365
+ const initialDialogSize = { width: props.$size?.width ?? 800, height: props.$size?.height ?? 600 };
366
+ const [isDragging, setIsDragging] = useState(false);
367
+ const [resizeDirection, setResizeDirection] = useState(null);
368
+ const [position, setPosition] = useState({
369
+ x: window.document.body.clientWidth / 2 - initialDialogSize.width / 2,
370
+ y: window.document.body.clientHeight / 2 - initialDialogSize.height / 2
371
+ });
372
+ const [size, setSize] = useState(initialDialogSize);
373
+ const [dragStart, setDragStart] = useState({ x: 0, y: 0 });
374
+ useEffect(() => {
375
+ const handleMouseMove = (e) => {
376
+ if (isDragging) {
377
+ const parent = dialogRef.current?.parentElement;
378
+ if (parent) {
379
+ const parentRect = parent.getBoundingClientRect();
380
+ const dialogRect = dialogRef.current?.getBoundingClientRect();
381
+ if (dialogRect) {
382
+ const minVisiblePx = 48;
383
+ const newX = e.clientX - dragStart.x;
384
+ const newY = e.clientY - dragStart.y;
385
+ const clampedX = Math.min(Math.max(newX, minVisiblePx - dialogRect.width), parentRect.width - minVisiblePx);
386
+ const clampedY = Math.min(Math.max(newY, minVisiblePx - dialogRect.height), parentRect.height - minVisiblePx);
387
+ setPosition({ x: clampedX, y: clampedY });
388
+ }
389
+ }
390
+ }
391
+ else if (resizeDirection) {
392
+ const parent = dialogRef.current?.parentElement;
393
+ if (parent) {
394
+ const parentRect = parent.getBoundingClientRect();
395
+ const dialogRect = dialogRef.current?.getBoundingClientRect();
396
+ if (dialogRect) {
397
+ let newWidth = size.width;
398
+ let newHeight = size.height;
399
+ let newX = position.x;
400
+ let newY = position.y;
401
+ const minVisiblePx = 64;
402
+ const minSize = 100;
403
+ if (resizeDirection.includes("w")) {
404
+ const dx = e.clientX - position.x;
405
+ newWidth = Math.max(size.width - dx, minSize);
406
+ newX = Math.min(Math.max(position.x + dx, minVisiblePx - newWidth), position.x + size.width - minSize);
407
+ }
408
+ if (resizeDirection.includes("e")) {
409
+ newWidth = Math.min(Math.max(e.clientX - position.x, minSize), parentRect.width - position.x + dialogRect.width - minVisiblePx);
410
+ }
411
+ if (resizeDirection.includes("n")) {
412
+ const dy = e.clientY - position.y;
413
+ newHeight = Math.max(size.height - dy, minSize);
414
+ newY = Math.min(Math.max(position.y + dy, minVisiblePx - newHeight), position.y + size.height - minSize);
415
+ }
416
+ if (resizeDirection.includes("s")) {
417
+ newHeight = Math.min(Math.max(e.clientY - position.y, minSize), parentRect.height - position.y + dialogRect.height - minVisiblePx);
418
+ }
419
+ // Ensure the modal stays within bounds after resizing
420
+ newX = Math.min(Math.max(newX, minVisiblePx - newWidth), parentRect.width - minVisiblePx);
421
+ newY = Math.min(Math.max(newY, minVisiblePx - newHeight), parentRect.height - minVisiblePx);
422
+ setSize({ width: newWidth, height: newHeight });
423
+ setPosition({ x: newX, y: newY });
424
+ }
425
+ }
426
+ }
427
+ };
428
+ const handleMouseUp = () => {
429
+ setIsDragging(false);
430
+ setResizeDirection(null);
431
+ };
432
+ document.addEventListener("mousemove", handleMouseMove);
433
+ document.addEventListener("mouseup", handleMouseUp);
434
+ return () => {
435
+ document.removeEventListener("mousemove", handleMouseMove);
436
+ document.removeEventListener("mouseup", handleMouseUp);
437
+ };
438
+ }, [isDragging, resizeDirection, dragStart, position, size]);
439
+ const handleMouseDown = (e) => {
440
+ setIsDragging(true);
441
+ setDragStart({ x: e.clientX - position.x, y: e.clientY - position.y });
442
+ };
443
+ const handleResizeMouseDown = (direction) => (e) => {
444
+ e.stopPropagation();
445
+ setResizeDirection(direction);
446
+ };
447
+ const header = (jsxs("header", { onMouseDown: handleMouseDown, children: [jsx("span", { children: props.$headline }), props.$customHeader || (jsx("button", { className: styles$3["cw-dialog-button-close"], onClick: props.$onClose, children: "\u2A2F" }))] }));
448
+ const content = (jsx("section", { style: { flex: 1, overflowX: "auto", overflowY: "auto", width: "100%" }, children: props.children }));
449
+ const footer = (jsx("footer", { style: { width: "100%" }, children: props.$customFooter || (jsx("button", { className: styles$3["cw-dialog-button-save"], onClick: props.$onSave, children: "\uD83D\uDDAB" })) }));
450
+ const resizeHandles = [
451
+ jsx("div", { "data-handle-n": true, onMouseDown: handleResizeMouseDown("n") }, "handle-n"),
452
+ jsx("div", { "data-handle-s": true, onMouseDown: handleResizeMouseDown("s") }, "handle-s"),
453
+ jsx("div", { "data-handle-e": true, onMouseDown: handleResizeMouseDown("e") }, "handle-e"),
454
+ jsx("div", { "data-handle-w": true, onMouseDown: handleResizeMouseDown("w") }, "handle-w"),
455
+ jsx("div", { "data-handle-ne": true, onMouseDown: handleResizeMouseDown("ne") }, "handle-ne"),
456
+ jsx("div", { "data-handle-nw": true, onMouseDown: handleResizeMouseDown("nw") }, "handle-nw"),
457
+ jsx("div", { "data-handle-se": true, onMouseDown: handleResizeMouseDown("se") }, "handle-se"),
458
+ jsx("div", { "data-handle-sw": true, onMouseDown: handleResizeMouseDown("sw") }, "handle-sw")
459
+ ];
460
+ return (props.open && (jsx("div", { "data-has-scrim": props.$scrim, className: styles$3["cw-dialog-main"], children: jsxs("dialog", { ...props, ref: dialogRef, style: {
461
+ left: `${position.x}px`,
462
+ top: `${position.y}px`,
463
+ width: `${size.width}px`,
464
+ height: `${size.height}px`,
465
+ zIndex: props.$zIndex,
466
+ minWidth: "200px", // Set an appropriate minimum size
467
+ minHeight: "200px", // Set an appropriate minimum size
468
+ display: "flex",
469
+ flexDirection: "column"
470
+ }, children: [header, content, props.isReport !== true && footer, resizeHandles] }) })));
471
+ };
472
+
361
473
  class CwReportModal extends React.Component {
362
474
  formRef = React.createRef();
363
- // For draggable modal
364
- draggableRef = React.createRef();
365
475
  constructor(props) {
366
476
  super(props);
367
477
  this.state = {
@@ -376,44 +486,53 @@ class CwReportModal extends React.Component {
376
486
  isModal: props.isModal !== undefined && props.isModal !== null ? props.isModal : true
377
487
  };
378
488
  }
379
- // Drag [ limit positions ]
380
- onStart = (_event, uiData) => {
381
- const { clientWidth, clientHeight } = window.document.documentElement;
382
- const targetRect = this.draggableRef.current?.getBoundingClientRect();
383
- if (!targetRect) {
384
- return;
385
- }
386
- this.setState({
387
- modalPosition: {
388
- top: -targetRect.top + uiData.y,
389
- left: -targetRect.left + uiData.x,
390
- right: clientWidth - (targetRect.right - uiData.x),
391
- bottom: clientHeight - (targetRect.bottom - uiData.y)
392
- }
393
- });
394
- };
395
489
  render() {
396
- const { disabled } = this.state;
397
- const { modalPosition } = this.state;
398
- return (jsx("div", { id: "cwelltModalReportContent", children: this.state.isModal === true ? (jsxs(Modal, { className: "CwelltModal CwelltModalCrewDetailsReport",
399
- //title={this.props.title}
400
- title: jsx("div", { style: {
401
- width: "100%",
402
- cursor: "move"
403
- }, onMouseOver: () => {
404
- if (this.state.disabled) {
405
- this.setState({
406
- disabled: false
407
- });
408
- }
409
- }, onMouseOut: () => {
410
- this.setState({
411
- disabled: true
412
- });
413
- }, children: this.props.title }), visible: this.props.visible, width: this.props.width, footer: false, onCancel: () => {
490
+ return (jsx("div", { id: "cwelltModalReportContent", children: this.state.isModal === true ? (jsxs(CwDialog, { open: this.props.visible, "$size": { width: this.props.width, height: this.props.height }, "$headline": this.props.title, "$customFooter": new Array(jsx("div", {})), "$onClose": () => {
414
491
  this.formRef?.current?.resetFields();
415
492
  this.props.SET_MODAL_REPORT_VISIBLE(false);
416
- }, destroyOnClose: true, modalRender: modal => (jsx(Draggable, { disabled: disabled, onStart: (event, uiData) => this.onStart(event, uiData), bounds: modalPosition, children: jsxs("div", { ref: this.draggableRef, children: [" ", modal] }) })), children: [this.props.name !== "Empty.pdf" && (jsx("embed", { src: "data:application/pdf;base64," + this.props.content, type: "application/pdf", width: "100%", height: "600px" })), this.props.name === "Empty.pdf" && (jsx("div", { children: jsxs("h1", { style: { marginLeft: "2em" }, children: [" ", "Please add a(n) ", this.props.reportName, " report in ", this.props.moduleSettings, " Settings"] }) }))] })) : (jsxs("div", { children: [this.props.name !== "Empty.pdf" && (jsx("embed", { src: "data:application/pdf;base64," + this.props.content, type: "application/pdf", width: "100%", height: "600px" })), this.props.name === "Empty.pdf" && (jsxs("div", { children: ["Please add a(n) ", this.props.reportName, " report in ", this.props.moduleSettings, " Settings"] }))] })) }));
493
+ }, isReport: true, children: [this.props.name !== "Empty.pdf" && (jsx("div", { style: { width: "100%", height: "100%", overflowX: "auto", overflowY: "auto" }, children: jsx("embed", { src: "data:application/pdf;base64," + this.props.content, type: "application/pdf", style: { width: "100%", height: "100%", display: "block" } }) })), this.props.name === "Empty.pdf" && (jsx("div", { children: jsxs("h1", { style: { marginLeft: "2em" }, children: [" ", "Please add a(n) ", this.props.reportName, " report in ", this.props.moduleSettings, " Settings"] }) }))] })) : (jsxs("div", { children: [this.props.name !== "Empty.pdf" && (jsx("embed", { src: "data:application/pdf;base64," + this.props.content, type: "application/pdf", width: "100%", height: "600px" })), this.props.name === "Empty.pdf" && (jsxs("div", { children: ["Please add a(n) ", this.props.reportName, " report in ", this.props.moduleSettings, " Settings"] }))] })) }));
494
+ }
495
+ }
496
+
497
+ class CwDialogManager {
498
+ static openDialogs = new Map();
499
+ static OpenDialog(id, props) {
500
+ if (!CwDialogManager.openDialogs.has(id)) {
501
+ const container = document.createElement("div");
502
+ document.body.appendChild(container);
503
+ const root = createRoot(container);
504
+ root.render(jsx(CwDialog, { ...props }));
505
+ CwDialogManager.openDialogs.set(id, { props, container });
506
+ }
507
+ }
508
+ static CloseDialog(id) {
509
+ const dialog = CwDialogManager.openDialogs.get(id);
510
+ if (dialog) {
511
+ const root = createRoot(dialog.container);
512
+ root.unmount();
513
+ dialog.container.remove();
514
+ CwDialogManager.openDialogs.delete(id);
515
+ }
516
+ }
517
+ static CloseAllDialogs() {
518
+ CwDialogManager.openDialogs.forEach((_dialog, id) => {
519
+ CwDialogManager.CloseDialog(id);
520
+ });
521
+ }
522
+ static CloseLastDialog() {
523
+ const lastDialogId = Array.from(CwDialogManager.openDialogs.keys()).pop();
524
+ if (lastDialogId) {
525
+ CwDialogManager.CloseDialog(lastDialogId);
526
+ }
527
+ }
528
+ static CloseFirstDialog() {
529
+ const firstDialogId = Array.from(CwDialogManager.openDialogs.keys())[0];
530
+ if (firstDialogId) {
531
+ CwDialogManager.CloseDialog(firstDialogId);
532
+ }
533
+ }
534
+ static GetOpenDialogCount() {
535
+ return CwDialogManager.openDialogs.size;
417
536
  }
418
537
  }
419
538
 
@@ -508,7 +627,7 @@ function CwAccordionContainer(CwelltAccordionContainerProps) {
508
627
  * title: 'Age',
509
628
  * dataIndex: 'age',
510
629
  * key: 'age',
511
- * render: (age) => <span>{age} años</span>, // Ejemplo de renderización personalizada
630
+ * render: (age) => <span>{age} years</span>, // Example of custom rendering
512
631
  * },
513
632
  * {
514
633
  * title: 'Address',
@@ -518,7 +637,7 @@ function CwAccordionContainer(CwelltAccordionContainerProps) {
518
637
  * <a href={`https://maps.google.com/?q=${encodeURIComponent(address)}`} target="_blank">
519
638
  * {address}
520
639
  * </a>
521
- * ), // Ejemplo de renderización personalizada con un enlace
640
+ * ), // Example of custom link rendering
522
641
  * },
523
642
  * ];
524
643
  *
@@ -543,7 +662,7 @@ function CwAccordionContainer(CwelltAccordionContainerProps) {
543
662
  * },
544
663
  * {
545
664
  * key: '4',
546
- * name: 'Gabri',
665
+ * name: 'Gabriel',
547
666
  * age: 22,
548
667
  * address: '10 Downing Street',
549
668
  * },
@@ -574,7 +693,7 @@ function CwAccordionContainer(CwelltAccordionContainerProps) {
574
693
  *
575
694
  * <CwTable
576
695
  * columns={columns}
577
- * data={data}
696
+ * data={data} // WTF whatever array of objects you add here, make sure each has a key otherwise everything will expand
578
697
  * itemsPerPage={3}
579
698
  * pagination={true}
580
699
  * expandedRowRender={generateExpandedContent}
@@ -582,7 +701,7 @@ function CwAccordionContainer(CwelltAccordionContainerProps) {
582
701
  * />
583
702
  * @returns React component
584
703
  */
585
- function CwTable({ columns, data, pagination, itemsPerPage, expandedRowRender, onExpand, className, classNameHeader, classNameTr_row, style, classNameContainer, id }) {
704
+ function CwTable({ columns, data, pagination, itemsPerPage, expandedRowRender, onExpand, className, classNameHeader, classNameTr_row, style, classNameContainer, id, textNoData }) {
586
705
  const [currentPage, setCurrentPage] = useState(1);
587
706
  const [expandedRowKey, setExpandedRowKey] = useState(null);
588
707
  const [sortConfig, setSortConfig] = useState({
@@ -609,40 +728,47 @@ function CwTable({ columns, data, pagination, itemsPerPage, expandedRowRender, o
609
728
  }
610
729
  setSortConfig({ key: columnKey, direction });
611
730
  };
612
- // Create a sorted copy of the data based on the sorting configuration
613
- const sortedData = [...data];
614
- if (sortConfig.key !== null) {
615
- sortedData.sort((a, b) => {
616
- const aValue = a[sortConfig.key];
617
- const bValue = b[sortConfig.key];
618
- if (aValue < bValue) {
619
- return sortConfig.direction === "asc" ? -1 : 1;
620
- }
621
- if (aValue > bValue) {
622
- return sortConfig.direction === "asc" ? 1 : -1;
623
- }
624
- return 0;
625
- });
626
- }
627
- // Calculate the start and end index for pagination
628
- const startIndex = itemsPerPage !== undefined ? (currentPage - 1) * itemsPerPage : (currentPage - 1) * 0;
629
- const endIndex = itemsPerPage !== undefined ? startIndex + itemsPerPage : startIndex + 0;
630
- const paginatedData = sortedData.slice(startIndex, endIndex);
731
+ // Use useMemo to calculate sortedData
732
+ const sortedData = useMemo(() => {
733
+ if (!data || data.length === 0)
734
+ return null;
735
+ const dataCopy = [...data];
736
+ if (sortConfig.key !== null) {
737
+ dataCopy.sort((a, b) => {
738
+ const aValue = a[sortConfig.key];
739
+ const bValue = b[sortConfig.key];
740
+ if (aValue < bValue) {
741
+ return sortConfig.direction === "asc" ? -1 : 1;
742
+ }
743
+ if (aValue > bValue) {
744
+ return sortConfig.direction === "asc" ? 1 : -1;
745
+ }
746
+ return 0;
747
+ });
748
+ }
749
+ return dataCopy;
750
+ }, [data, sortConfig]);
751
+ // Calculate paged data only if sortedData is not null
752
+ const paginatedData = useMemo(() => {
753
+ if (!sortedData)
754
+ return null;
755
+ const startIndex = itemsPerPage !== undefined ? (currentPage - 1) * itemsPerPage : 0;
756
+ const endIndex = itemsPerPage !== undefined ? startIndex + itemsPerPage : sortedData.length;
757
+ return sortedData.slice(startIndex, endIndex);
758
+ }, [sortedData, currentPage, itemsPerPage]);
631
759
  // Calculate the total number of pages for pagination
632
- const totalPages = itemsPerPage !== undefined ? Math.ceil(sortedData.length / itemsPerPage) : Math.ceil(sortedData.length / 0);
760
+ const totalPages = useMemo(() => {
761
+ if (!sortedData)
762
+ return 0;
763
+ return itemsPerPage !== undefined ? Math.ceil(sortedData.length / itemsPerPage) : 1;
764
+ }, [sortedData, itemsPerPage]);
633
765
  // Function to handle page change
634
766
  const handlePageChange = (newPage) => {
635
767
  if (newPage >= 1 && newPage <= totalPages) {
636
768
  setCurrentPage(newPage);
637
769
  }
638
770
  };
639
- return (jsxs("div", { id: id, className: classNameContainer + " " + "cwTableComp", children: [jsxs("table", { className: className + " " + "cw_table", style: style, children: [jsx("thead", { className: classNameHeader + " " + "cw_thead", children: jsxs("tr", { className: "cw_thead_tr", children: [expandedRowRender && jsx("th", { className: "cw_thead_th cw_thead_th_expand" }), columns.map(column => (jsx("th", { onClick: () => handleSort(column.dataIndex), className: sortConfig.key === column.dataIndex
640
- ? sortConfig.direction + " cw_thead_th" + " " + column.className
641
- : "cw_thead_th" + " " + column.className, children: column.title }, column.key)))] }) }), pagination === true ? (jsx("tbody", { className: "cw_tbody", children: paginatedData.map(item => (
642
- // !TODO: Ask sergio which tag place [ key ={ ite.key }]
643
- jsxs(React__default.Fragment, { children: [jsxs("tr", { className: classNameTr_row + " " + "cw_tbody_tr", children: [expandedRowRender && (jsx("td", { className: "cw_tbody_td", children: jsx("button", { onClick: () => handleRowExpand(item), className: expandedRowKey === item.key
644
- ? "cwellt_flex cwellt_justify_center cwellt_align_items_center cw_button_expanded_collapse cw_button_expanded"
645
- : "cwellt_flex cwellt_justify_center cwellt_align_items_center cw_button_expanded_collapse cw_button_collapse" }) })), columns.map(column => (jsx("td", { className: "cw_tbody_td", children: column.render ? column.render(item) : item[column.dataIndex] }, `${item.key}_${column.key}`)))] }), expandedRowKey === item.key && (jsx("tr", { children: jsx("td", { colSpan: columns.length + 1, children: expandedRowRender ? expandedRowRender(item) : null }) }))] }, item.key))) })) : (jsx("tbody", { className: "cw_tbody", children: sortedData.map(item => (jsxs(React__default.Fragment, { children: [jsxs("tr", { className: "cw_tbody_tr", children: [columns.map(column => (jsx("td", { className: "cw_tbody_td", children: column.render ? column.render(item) : item[column.dataIndex] }, `${item.key}_${column.key}`))), expandedRowRender && (jsx("td", { children: jsx("button", { onClick: () => handleRowExpand(item), children: expandedRowKey === item.key ? "-" : "+" }) }))] }), expandedRowKey === item.key && (jsx("tr", { children: jsx("td", { colSpan: columns.length + 1, children: expandedRowRender ? expandedRowRender(item) : null }) }))] }, item.key))) }))] }), pagination === true ? (jsxs("div", { className: "cw_table_pagination cwellt_flex cwellt_align-items-start cwellt_align_items_center", children: [jsx("button", { onClick: () => handlePageChange(currentPage - 1), disabled: currentPage === 1, className: "cw_tb_button_pag cw_tb_button_prev cwellt_flex cwellt_justify_center cwellt_align_items_center" }), jsxs("span", { className: "cw_table_pag_desc", children: ["Page ", currentPage, " of ", totalPages] }), jsx("button", { onClick: () => handlePageChange(currentPage + 1), disabled: currentPage === totalPages, className: "cw_tb_button_pag cw_tb_button_next cwellt_flex cwellt_justify_center cwellt_align_items_center" })] })) : (jsx("div", {}))] }));
771
+ return (jsxs("div", { id: id, className: classNameContainer + " " + "cwTableComp", children: [jsxs("table", { className: className + " " + "cw_table", style: style, children: [jsx("thead", { className: `${classNameHeader} cw_thead`, children: jsxs("tr", { className: "cw_thead_tr", children: [expandedRowRender && jsx("th", { className: "cw_thead_th cw_thead_th_expand" }), columns.map(column => (jsx("th", { onClick: () => handleSort(column.dataIndex), className: `cw_thead_th ${column.className} ${sortConfig.key === column.dataIndex ? sortConfig.direction : ""}`, children: column.title }, column.key)))] }) }), jsx("tbody", { className: "cw_tbody", children: !paginatedData || paginatedData.length === 0 ? (jsx("tr", { children: jsx("td", { colSpan: columns.length + (expandedRowRender ? 1 : 0), style: { textAlign: "center" }, children: textNoData !== undefined && textNoData !== "" ? textNoData : "No data" }) })) : (paginatedData.map(item => (jsxs(React__default.Fragment, { children: [jsxs("tr", { className: `${classNameTr_row} cw_tbody_tr`, children: [expandedRowRender && (jsx("td", { className: "cw_tbody_td", children: jsx("button", { onClick: () => handleRowExpand(item), className: `cwellt_flex cwellt_justify_center cwellt_align_items_center cw_button_expanded_collapse ${expandedRowKey === item.key ? "cw_button_expanded" : "cw_button_collapse"}` }) })), columns.map(column => (jsx("td", { className: "cw_tbody_td", children: column.render ? column.render(item) : item[column.dataIndex] }, `${item.key}_${column.key}`)))] }), expandedRowKey === item.key && expandedRowRender && (jsx("tr", { children: jsx("td", { colSpan: columns.length + 1, children: expandedRowRender(item) }) }))] }, item.key)))) })] }), pagination && totalPages > 1 && (jsxs("div", { className: "cw_table_pagination cwellt_flex cwellt_align-items-start cwellt_align_items_center", children: [jsx("button", { onClick: () => handlePageChange(currentPage - 1), disabled: currentPage === 1, className: "cw_tb_button_pag cw_tb_button_prev cwellt_flex cwellt_justify_center cwellt_align_items_center" }), jsxs("span", { className: "cw_table_pag_desc", children: ["Page ", currentPage, " of ", totalPages] }), jsx("button", { onClick: () => handlePageChange(currentPage + 1), disabled: currentPage === totalPages, className: "cw_tb_button_pag cw_tb_button_next cwellt_flex cwellt_justify_center cwellt_align_items_center" })] }))] }));
646
772
  }
647
773
 
648
774
  /**
@@ -671,7 +797,7 @@ function CwTabs(CwTabsProps) {
671
797
  CwTabsProps.onTabClick(tab);
672
798
  }
673
799
  };
674
- return (jsxs("div", { id: CwTabsProps.id, className: "cwellt_flex cwellt_flex_column cwTab", children: [jsx("ul", { className: "cw_tab_container cwellt_flex cwellt_flex_row cwellt_flex_wrap", children: CwTabsProps.tabs.map(tab => (jsxs("li", { className: `cw_tab cwellt_flex cwellt_align_items_center cwellt_justify_center ${tab.key === activeTab ? "cw_tab_active" : ""}`, onClick: () => handleTabClick(tab), children: [tab.icon, tab.title] }, tab.key))) }), jsx("div", { className: "cw_tab_content cwellt_flex cwellt_align_items_center cwellt_justify_center", children: jsx("div", { className: "cw_tab_container_holder", children: activeTab !== null && CwTabsProps.tabs.find(tab => tab.key === activeTab)?.content }) })] }));
800
+ return (jsxs("div", { id: CwTabsProps.id, className: "cwellt_flex cwellt_flex_column cwTab", children: [jsx("ul", { className: "cw_tab_container", children: CwTabsProps.tabs.map(tab => (jsxs("li", { className: `cw_tab cwellt_flex cwellt_align_items_center cwellt_justify_center ${tab.key === activeTab ? "cw_tab_active" : ""}`, onClick: () => handleTabClick(tab), children: [tab.icon, tab.title] }, tab.key))) }), jsx("div", { className: "cw_tab_content cwellt_flex cwellt_align_items_center cwellt_justify_center", children: jsx("div", { className: "cw_tab_container_holder", children: activeTab !== null && CwTabsProps.tabs.find(tab => tab.key === activeTab)?.content }) })] }));
675
801
  }
676
802
 
677
803
  /**
@@ -793,7 +919,6 @@ function CwFileUpload(fileUploadProps) {
793
919
  if (typeof reader.result === "string") {
794
920
  const hexContent = arrayBufferToHex(reader.result);
795
921
  setCurrentHexContent(hexContent);
796
- // eslint-disable-next-line no-debugger
797
922
  debugger;
798
923
  // fileUploadProps.onChange({
799
924
  // ...file,
@@ -1356,6 +1481,149 @@ const CwImageArea = forwardRef((props, ref) => {
1356
1481
  });
1357
1482
  CwImageArea.displayName = "CwImageArea";
1358
1483
 
1484
+ var styles$2 = {"cw-weekday-selector":"cw-weekday-selector-module_cw-weekday-selector__Iz4GZ"};
1485
+
1486
+ /**
1487
+ * This class represents a week where days can be selected or unselected
1488
+ * @remark Selected days are in UPPERCASE, unselected days are in lowercase
1489
+ * ```
1490
+ * Monday = "M" | "m"
1491
+ * Tuesday = "T" | "t"
1492
+ * Wendnesday = "W" | "w"
1493
+ * thuRsday = "R" | "r"
1494
+ * Friday = "F" | "f"
1495
+ * Saturday = "S" | "s"
1496
+ * sUnday = "U" | "u"
1497
+ * ```
1498
+ */
1499
+ class Weekdays {
1500
+ static WEEKDAYS_STANDARD_ARRAY_FULL = ["M", "T", "W", "R", "F", "S", "U"];
1501
+ static WEEKDAYS_STANDARD_ARRAY_EMPTY = ["m", "t", "w", "r", "f", "s", "u"];
1502
+ static WEEKDAYS_STANDARD_STRING_FULL = "MTWRFSU";
1503
+ static WEEKDAYS_STANDARD_STRING_EMPTY = "mtwrfsu";
1504
+ static WEEKDAYS_TO_USA_LETTER_FORMAT = new Map([
1505
+ ["M", "M"],
1506
+ ["T", "T"],
1507
+ ["W", "W"],
1508
+ ["R", "T"],
1509
+ ["F", "F"],
1510
+ ["S", "S"],
1511
+ ["U", "S"]
1512
+ ]);
1513
+ static WEEKDAYS_TO_USA_SHORT_FORMAT = new Map([
1514
+ ["M", "Mon"],
1515
+ ["T", "Tue"],
1516
+ ["W", "Wen"],
1517
+ ["R", "Thu"],
1518
+ ["F", "Fri"],
1519
+ ["S", "Sat"],
1520
+ ["U", "Sun"]
1521
+ ]);
1522
+ static WEEKDAY_MAP = {
1523
+ 0: "U",
1524
+ 1: "M",
1525
+ 2: "T",
1526
+ 3: "W",
1527
+ 4: "R",
1528
+ 5: "F",
1529
+ 6: "S"
1530
+ };
1531
+ days;
1532
+ constructor(days = Weekdays.WEEKDAYS_STANDARD_ARRAY_FULL) {
1533
+ if (typeof days === "string")
1534
+ this.days = this.normalize(days.split(""));
1535
+ else
1536
+ this.days = this.normalize(days);
1537
+ }
1538
+ includes(day) {
1539
+ return this.days.includes(day);
1540
+ }
1541
+ static fromString(value) {
1542
+ return new Weekdays(value.split(""));
1543
+ }
1544
+ static isValidToday(validFrom, validUntil, validWeekdays) {
1545
+ const today = new Date();
1546
+ // Check if today is within the validity period
1547
+ if (today < validFrom || today > validUntil) {
1548
+ return false;
1549
+ }
1550
+ // Convert today's weekday to Weekday type
1551
+ const todayWeekday = Weekdays.WEEKDAY_MAP[today.getDay()];
1552
+ // Check if today's weekday is in the validWeekdays array
1553
+ return validWeekdays.includes(todayWeekday);
1554
+ }
1555
+ normalize(weekdays) {
1556
+ const uniqueWeekdays = new Set(weekdays);
1557
+ if (uniqueWeekdays.size != 7)
1558
+ throw Error(`Illegal weekday string ${Array.from(uniqueWeekdays).join("")}`);
1559
+ return Weekdays.WEEKDAYS_STANDARD_STRING_FULL.split("").map(day => {
1560
+ if (uniqueWeekdays.has(day)) {
1561
+ return day;
1562
+ }
1563
+ else if (uniqueWeekdays.has(day.toLowerCase())) {
1564
+ return day.toLowerCase();
1565
+ }
1566
+ else {
1567
+ throw Error(`Illegal weekday string ${weekdays.join("")}`);
1568
+ }
1569
+ });
1570
+ }
1571
+ toString() {
1572
+ return this.days.join("").trim();
1573
+ }
1574
+ toStringFormatted(limiters = { startExistingDay: "{", endExsitingDay: "}", startMissingDay: "(", endMissingDay: ")", separator: " " }, format = Weekdays.WEEKDAYS_TO_USA_SHORT_FORMAT) {
1575
+ const result = new Array();
1576
+ [...this.days].forEach((letter, index) => {
1577
+ if (letter === letter.toUpperCase()) {
1578
+ result.push(limiters.startExistingDay + format.get(letter) + limiters.endExsitingDay);
1579
+ }
1580
+ else if (letter === letter.toLowerCase()) {
1581
+ result.push(limiters.startMissingDay +
1582
+ format.get(Weekdays.WEEKDAYS_STANDARD_STRING_FULL.charAt(index)) +
1583
+ limiters.endMissingDay);
1584
+ }
1585
+ });
1586
+ return result.join(limiters.separator).trim();
1587
+ }
1588
+ toArray() {
1589
+ return [...this.days];
1590
+ }
1591
+ isEmpty() {
1592
+ return this.toString() === Weekdays.WEEKDAYS_STANDARD_STRING_EMPTY;
1593
+ }
1594
+ isFull() {
1595
+ return this.toString() === Weekdays.WEEKDAYS_STANDARD_STRING_FULL;
1596
+ }
1597
+ static getFullWeek() {
1598
+ return Weekdays.WEEKDAYS_STANDARD_ARRAY_FULL;
1599
+ }
1600
+ static getEmptyWeek() {
1601
+ return Weekdays.WEEKDAYS_STANDARD_ARRAY_EMPTY;
1602
+ }
1603
+ }
1604
+ const CwWeekdaySelector = ({ value = "", onChange, disabled = false }) => {
1605
+ const [selectedDays, setSelectedDays] = useState(Weekdays.fromString(value));
1606
+ useEffect(() => {
1607
+ setSelectedDays(Weekdays.fromString(value));
1608
+ }, [value]);
1609
+ const handleChange = (day, checked) => {
1610
+ const currentDays = selectedDays.toArray();
1611
+ let updated;
1612
+ if (checked) {
1613
+ updated = currentDays.filter(d => d !== day.toLowerCase());
1614
+ updated.push(day);
1615
+ }
1616
+ else {
1617
+ updated = currentDays.filter(d => d !== day);
1618
+ updated.push(day.toLowerCase());
1619
+ }
1620
+ const newWeekdays = new Weekdays(updated);
1621
+ setSelectedDays(newWeekdays);
1622
+ onChange?.(newWeekdays.toString());
1623
+ };
1624
+ return (jsx("div", { className: styles$2["cw-weekday-selector"], children: Weekdays.getFullWeek().map(day => (jsx("input", { type: "checkbox", "data-day": day, checked: selectedDays.toArray().includes(day), onChange: (e) => handleChange(day, e.target.checked), disabled: disabled }, day))) }));
1625
+ };
1626
+
1359
1627
  function CwCheckbox(CwCheckboxProps) {
1360
1628
  const handleChange = (e) => {
1361
1629
  CwCheckboxProps.onChange(e.target.checked);
@@ -2308,6 +2576,21 @@ function CwMultiselect(CwelltCustomFilterTabProps) {
2308
2576
  }) }) }, "_" + i))) })] }) }) }));
2309
2577
  }
2310
2578
 
2579
+ function itemsToMultiFilterTags(items, nameKey, valueKey, category, primaryColor, onPrimaryColor) {
2580
+ const result = new Set();
2581
+ items.forEach((item, index) => {
2582
+ result.add({
2583
+ ID: `${category}_${index}`,
2584
+ Name: item[nameKey] || index,
2585
+ Value: item[valueKey] || index,
2586
+ Category: category || "Missing Category",
2587
+ PrimaryColor: primaryColor || { r: 0, g: 0, b: 0 },
2588
+ OnPrimaryColor: onPrimaryColor || { r: 255, g: 255, b: 255 }
2589
+ });
2590
+ });
2591
+ return result;
2592
+ }
2593
+
2311
2594
  var styles$1 = {"cw-multifilter-tag":"cw-multi-filter-tag-module_cw-multifilter-tag__Epda-"};
2312
2595
 
2313
2596
  const CwMultiFilterTag = props => {
@@ -2347,6 +2630,7 @@ var styles = {"cw-multi-filter-catalog-container":"cw-multi-filter-module_cw-mul
2347
2630
  * ```
2348
2631
  * /// Use setSelectedTags to set the initial selected tags or to add/remove them after an action.
2349
2632
  * const [selectedTags, setSelectedTags] = useState(new Set<CwMultiFilterTagProps>());
2633
+ * const [selectedCategory, setSelectedCategory] = useState("");
2350
2634
  *
2351
2635
  * <CwMultiFilter
2352
2636
  * $id="multifilter"
@@ -2354,6 +2638,8 @@ var styles = {"cw-multi-filter-catalog-container":"cw-multi-filter-module_cw-mul
2354
2638
  * console.log("This will get called every time the selected filters change");
2355
2639
  * }}
2356
2640
  * $selectedTags={selectedTags} // Selected filters, in case you want to modify them manually
2641
+ * selectedCategory={selectedCategory}
2642
+ * onChangeCategory={setSelectedCategory}
2357
2643
  * $allTags={
2358
2644
  * new Set([
2359
2645
  * {
@@ -2378,48 +2664,48 @@ var styles = {"cw-multi-filter-catalog-container":"cw-multi-filter-module_cw-mul
2378
2664
  * @param {CwMultiFilterProps} props
2379
2665
  * @returns Set the `$onChange` callback to a function to check for changes in the selected filters
2380
2666
  */
2381
- const CwMultiFilter = ({ $onChange, $allTags, $selectedTags, $id, style }) => {
2667
+ const CwMultiFilter = ({ allTags, id, onChangeSelectedTags, selectedTags, style }) => {
2668
+ const [filteredTags, setFilteredTags] = useState(new Set());
2382
2669
  const [inputTextValue, setInputTextValue] = useState("");
2383
- const [selectedCategory, setSelectedCategory] = useState("");
2384
2670
  const [inputIsFocussed, setInputIsFocussed] = useState(false);
2385
- const categoriesMappedToTags = useMemo(() => {
2671
+ const [selectedCategory, setSelectedCategory] = useState("All");
2672
+ const categoriesMappedToTags = () => {
2386
2673
  const categoriesMap = new Map();
2387
- $allTags.forEach(tag => {
2674
+ allTags.forEach(tag => {
2388
2675
  const category = categoriesMap.get(tag.Category) || new Set();
2389
2676
  category.add(tag);
2390
2677
  categoriesMap.set(tag.Category, category);
2391
2678
  });
2392
2679
  return categoriesMap;
2393
- }, [$allTags]);
2394
- const filteredTags = useMemo(() => {
2395
- let tags = selectedCategory ? categoriesMappedToTags.get(selectedCategory) || new Set() : $allTags;
2396
- if (inputTextValue) {
2397
- tags = new Set(Array.from(tags).filter(tag => !Array.from($selectedTags).some(t => t.ID === tag.ID) &&
2398
- tag.Name.replaceAll(" ", "").toLowerCase().includes(inputTextValue.replaceAll(" ", "").toLowerCase())));
2399
- }
2400
- return tags;
2401
- }, [$allTags, selectedCategory, inputTextValue, $selectedTags, categoriesMappedToTags]);
2402
- const handleClickCategory = useCallback((category) => {
2680
+ };
2681
+ const handleClickCategory = (category) => {
2403
2682
  setSelectedCategory(category);
2404
- }, []);
2405
- const handleInputText = useCallback((input) => {
2683
+ setFilteredTags(category != "All" ? (categoriesMappedToTags().get(category) ?? new Set()) : allTags);
2684
+ };
2685
+ const handleInputText = (input) => {
2686
+ if (selectedCategory !== "All")
2687
+ setSelectedCategory("All");
2406
2688
  setInputTextValue(input);
2407
- }, []);
2408
- const addTag = useCallback((newTag) => {
2689
+ const newFilterTags = Array.from(allTags).filter(tag => !Array.from(selectedTags).some(t => t.ID === tag.ID) &&
2690
+ tag.Name.replaceAll(" ", "").toLowerCase().includes(input.replaceAll(" ", "").toLowerCase()));
2691
+ setFilteredTags(new Set(newFilterTags));
2692
+ };
2693
+ const addTag = (newTag) => {
2409
2694
  newTag.Selected = true;
2410
2695
  newTag.Removable = true;
2411
2696
  newTag.Selectable = false;
2412
- if ($selectedTags.has(newTag) || Array.from($selectedTags).some(t => t.ID === newTag.ID)) {
2697
+ if (selectedTags.has(newTag) || Array.from(selectedTags).some(t => t.ID === newTag.ID)) {
2413
2698
  return;
2414
2699
  }
2415
2700
  else {
2416
- const updatedTags = new Set($selectedTags).add(newTag);
2417
- $onChange?.(updatedTags);
2701
+ const updatedTags = new Set(selectedTags).add(newTag);
2702
+ onChangeSelectedTags?.(updatedTags);
2418
2703
  setInputTextValue("");
2704
+ setFilteredTags(allTags);
2419
2705
  }
2420
- }, [$selectedTags, $onChange]);
2421
- const removeTag = useCallback((id) => {
2422
- const updatedTags = new Set($selectedTags);
2706
+ };
2707
+ const removeTag = (id) => {
2708
+ const updatedTags = new Set(selectedTags);
2423
2709
  const toDelete = Array.from(updatedTags).find(i => i.ID === id);
2424
2710
  if (toDelete) {
2425
2711
  toDelete.Selected = false;
@@ -2427,15 +2713,18 @@ const CwMultiFilter = ({ $onChange, $allTags, $selectedTags, $id, style }) => {
2427
2713
  toDelete.Removable = false;
2428
2714
  updatedTags.delete(toDelete);
2429
2715
  }
2430
- $onChange?.(updatedTags);
2431
- }, [$selectedTags, $onChange]);
2716
+ onChangeSelectedTags?.(updatedTags);
2717
+ };
2432
2718
  useEffect(() => {
2433
- handleClickCategory("");
2434
- // eslint-disable-next-line react-hooks/exhaustive-deps
2435
- }, [$allTags]);
2436
- return (jsxs("form", { id: $id, className: styles["cw-multi-filter"], style: style, onSubmit: (e) => {
2719
+ // force to load all tags on first render
2720
+ if (selectedCategory === "All" && filteredTags.size === 0)
2721
+ setFilteredTags(new Set(allTags));
2722
+ // else if (selectedCategory !== "All")
2723
+ // setFilteredTags(new Set([...(categoriesMappedToTags().get(selectedCategory) ?? [])]));
2724
+ }, [allTags]);
2725
+ return (jsxs("form", { id: id, className: styles["cw-multi-filter"], style: style, onSubmit: (e) => {
2437
2726
  e.preventDefault();
2438
- }, children: [jsxs("div", { className: styles["cw-multi-filter-search"], children: [jsx("ul", { id: $id + "_selected_filters", children: Array.from($selectedTags).map(tag => (createElement(CwMultiFilterTag, { ...tag, key: tag.ID, Selectable: false, Removable: true, OnRemove: () => removeTag(tag.ID) }))) }), jsx("input", { autoComplete: "off", type: "text", id: $id + "_input", value: inputTextValue, spellCheck: false, onFocus: () => setInputIsFocussed(true), onBlur: () => setInputIsFocussed(false), onChange: e => handleInputText(e.target.value), onKeyDown: e => {
2727
+ }, children: [jsxs("div", { className: styles["cw-multi-filter-search"], children: [jsx("ul", { id: id + "_selected_filters", children: Array.from(selectedTags).map(tag => (createElement(CwMultiFilterTag, { ...tag, key: tag.ID, Selectable: false, Removable: true, OnRemove: () => removeTag(tag.ID) }))) }), jsx("input", { type: "text", id: id + "_input", value: inputTextValue, spellCheck: false, onFocus: () => setInputIsFocussed(true), onBlur: () => setInputIsFocussed(false), onChange: e => handleInputText(e.target.value), autoComplete: "off", onKeyDown: e => {
2439
2728
  switch (e.key) {
2440
2729
  case "Enter":
2441
2730
  case "Tab":
@@ -2447,33 +2736,29 @@ const CwMultiFilter = ({ $onChange, $allTags, $selectedTags, $id, style }) => {
2447
2736
  }
2448
2737
  break;
2449
2738
  case "Backspace": {
2450
- if (inputTextValue === "" && $selectedTags.size > 0) {
2451
- removeTag(Array.from($selectedTags).toReversed()[0].ID);
2739
+ if (inputTextValue === "" && selectedTags.size > 0) {
2740
+ removeTag(Array.from(selectedTags).toReversed()[0].ID);
2452
2741
  }
2453
2742
  break;
2454
2743
  }
2455
2744
  }
2456
- } }), $selectedTags.size > 0 ? (jsx("input", { type: "reset", value: "\u00D7", onClick: e => {
2745
+ } }), selectedTags.size > 0 ? (jsx("input", { type: "reset", value: "\u00D7", onClick: e => {
2457
2746
  e.preventDefault();
2458
- $onChange?.(new Set());
2459
- } })) : null] }), jsxs("section", { className: styles["cw-multi-filter-catalog-container"], "data-display-none": !inputIsFocussed, children: [jsxs("nav", { children: [jsx("button", { style: !selectedCategory
2747
+ onChangeSelectedTags?.(new Set());
2748
+ } })) : null] }), jsxs("section", { className: styles["cw-multi-filter-catalog-container"], "data-display-none": !inputIsFocussed, children: [jsxs("nav", { children: [jsx("button", { style: selectedCategory === "All"
2460
2749
  ? {
2461
2750
  backgroundColor: "var(--cw-color-primary)",
2462
2751
  color: "var(--cw-color-on-primary)",
2463
2752
  fontWeight: 400
2464
2753
  }
2465
- : {}, onClick: () => {
2466
- handleClickCategory("");
2467
- }, children: "All" }), Array.from(categoriesMappedToTags.keys()).map(category => (jsx("button", { style: selectedCategory === category
2754
+ : {}, onClick: () => handleClickCategory("All"), children: "All" }), Array.from(categoriesMappedToTags().keys()).map(category => (jsx("button", { style: selectedCategory === category
2468
2755
  ? {
2469
2756
  backgroundColor: "var(--cw-color-primary)",
2470
2757
  color: "var(--cw-color-on-primary)",
2471
2758
  fontWeight: 400
2472
2759
  }
2473
- : {}, onClick: () => {
2474
- handleClickCategory(category);
2475
- }, children: category }, category)))] }), jsx("ul", { children: Array.from(filteredTags).map((props) => (jsx(CwMultiFilterTag, { ...props, Selectable: true, Removable: false, Selected: Array.from($selectedTags).some(p => p.ID === props.ID), OnSelect: () => {
2476
- if (Array.from($selectedTags).some(p => p.ID === props.ID))
2760
+ : {}, onClick: () => handleClickCategory(category), children: category }, category)))] }), jsx("ul", { children: Array.from(filteredTags).map((props) => (jsx(CwMultiFilterTag, { ...props, Selectable: true, Removable: false, Selected: Array.from(selectedTags).some(p => p.ID === props.ID), OnSelect: () => {
2761
+ if (Array.from(selectedTags).some(p => p.ID === props.ID))
2477
2762
  removeTag(props.ID);
2478
2763
  else
2479
2764
  addTag(props);
@@ -2590,184 +2875,170 @@ function CwFloatingButton() {
2590
2875
  const cwScheduler = document.getElementById("CwelltScheduler");
2591
2876
  cwScheduler?.classList.toggle("CwelltSchedulerActive");
2592
2877
  };
2593
- return jsx("button", { className: "cw_btnFloatingButton", onClick: cwShowElement, id: "cw_btnFloatingButton" });
2594
- }
2595
- // Button for expand and collapase
2596
- function CwButtonExpandAndCollapse() {
2597
- const cwExpandCollapseButton = () => {
2598
- // cwellt_btnExpandCollapse
2599
- const cw_btnExpandCollapse = document.getElementById("cw_btnExpandCollapse");
2600
- cw_btnExpandCollapse?.classList.toggle("cw_btnExpandCollapseActive");
2601
- // text of tooltip
2602
- // Switches
2603
- const cwSwitches = document.getElementsByClassName("CwSwitches")[0];
2604
- cwSwitches.classList.toggle("cwSwitchesActive");
2605
- // ContentButton
2606
- };
2607
- return jsx("button", { className: "cw_btnExpandCollapse", onClick: cwExpandCollapseButton, id: "cw_btnExpandCollapse" });
2878
+ return jsx("button", { className: "cw-button cw_btnFloatingButton", onClick: cwShowElement, id: "cw_btnFloatingButton" });
2608
2879
  }
2609
2880
  // Primary button => CwButtonDef
2610
2881
  // CwButtonDef
2611
2882
  function CwButtonDef({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2612
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_primary", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2883
+ return (jsx("button", { className: "cw-button cw_btn_primary", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2613
2884
  }
2614
2885
  // CwButtonDefOutline
2615
2886
  function CwButtonDefOutline({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2616
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_primaryOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2887
+ return (jsx("button", { className: "cw-button cw_btn_primaryOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2617
2888
  }
2618
2889
  // Primary button => CwButtonSecondary
2619
2890
  // CweButtonSec
2620
2891
  function CwButtonSec({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2621
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_secondary", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2892
+ return (jsx("button", { className: "cw-button cw_btn_secondary", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2622
2893
  }
2623
2894
  // CwButtonSecOutline
2624
2895
  function CwButtonSecOutline({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2625
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_secondaryOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2896
+ return (jsx("button", { className: "cw-button cw_btn_secondaryOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2626
2897
  }
2627
2898
  // Primary button => cwelltButton_danger
2628
2899
  // CwButton_danger
2629
2900
  function CwButtonDanger({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2630
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_danger", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2901
+ return (jsx("button", { className: "cw-button cw_btn_danger", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2631
2902
  }
2632
2903
  // CwButtonDangerOutline
2633
2904
  function CwButtonDangerOutline({ cw_btn_desc, cw_btnOnclick, cw_btn_disabled }) {
2634
- return (jsx("button", { className: "cw_btn_df_desc cw_btn_dangerOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2905
+ return (jsx("button", { className: "cw-button cw_btn_dangerOutline", onClick: cw_btnOnclick, disabled: cw_btn_disabled, children: cw_btn_desc }));
2635
2906
  }
2636
2907
  // Cw add button
2637
2908
  function CwBtnAdd({ cw_btnOnclick, cw_btn_disabled }) {
2638
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_add", disabled: cw_btn_disabled }));
2909
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_add", disabled: cw_btn_disabled });
2639
2910
  }
2640
2911
  // Cw Save button
2641
2912
  function CwBtnSave({ cw_btnOnclick, cw_btn_disabled }) {
2642
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_save", disabled: cw_btn_disabled }));
2913
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_save", disabled: cw_btn_disabled });
2643
2914
  }
2644
2915
  // Cw edit button
2645
2916
  function CwBtnEdit({ cw_btnOnclick, cw_btn_disabled }) {
2646
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_edit", disabled: cw_btn_disabled }));
2917
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_edit", disabled: cw_btn_disabled });
2647
2918
  }
2648
2919
  // Cw search button
2649
2920
  function CwBtnSearch({ cw_btnOnclick, cw_btn_disabled }) {
2650
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_search", disabled: cw_btn_disabled }));
2921
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_search", disabled: cw_btn_disabled });
2651
2922
  }
2652
2923
  // Cw download button
2653
2924
  function CwBtnDownload({ cw_btnOnclick, cw_btn_disabled }) {
2654
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_download", disabled: cw_btn_disabled }));
2925
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_download", disabled: cw_btn_disabled });
2655
2926
  }
2656
2927
  // Cw view button
2657
2928
  function CwBtnView({ cw_btnOnclick, cw_btn_disabled }) {
2658
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_view", disabled: cw_btn_disabled }));
2929
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_view", disabled: cw_btn_disabled });
2659
2930
  }
2660
2931
  // Cw Print button
2661
2932
  function CwBtnPrint({ cw_btnOnclick, cw_btn_disabled }) {
2662
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_print", disabled: cw_btn_disabled }));
2933
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_print", disabled: cw_btn_disabled });
2663
2934
  }
2664
2935
  // Cw cancel button
2665
2936
  function CwBtnCancel({ cw_btnOnclick, cw_btn_disabled }) {
2666
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_cancel", disabled: cw_btn_disabled }));
2937
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_cancel", disabled: cw_btn_disabled });
2667
2938
  }
2668
2939
  // Cw Delete button
2669
2940
  function CwBtnDelete({ cw_btnOnclick, cw_btn_disabled }) {
2670
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_delete", disabled: cw_btn_disabled }));
2941
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_delete", disabled: cw_btn_disabled });
2671
2942
  }
2672
2943
  // Cw Select save
2673
2944
  function CwBtnSelectedSave({ cw_btnOnclick, cw_btn_disabled }) {
2674
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_saveSelected", disabled: cw_btn_disabled }));
2945
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_saveSelected", disabled: cw_btn_disabled });
2675
2946
  }
2676
2947
  // CwUndo
2677
2948
  function CwBtnUndo({ cw_btnOnclick, cw_btn_disabled }) {
2678
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_undo", disabled: cw_btn_disabled }));
2949
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_undo", disabled: cw_btn_disabled });
2679
2950
  }
2680
2951
  // Cw
2681
2952
  function CwBtnRefresh({ cw_btnOnclick, cw_btn_disabled }) {
2682
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_refresh", disabled: cw_btn_disabled }));
2953
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_refresh", disabled: cw_btn_disabled });
2683
2954
  }
2684
2955
  // Cw hide
2685
2956
  function CwBtnHide({ cw_btnOnclick, cw_btn_disabled }) {
2686
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_hide", disabled: cw_btn_disabled }));
2957
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_hide", disabled: cw_btn_disabled });
2687
2958
  }
2688
2959
  // Cw Select
2689
2960
  function CwBtnSelect({ cw_btnOnclick, cw_btn_disabled }) {
2690
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_select", disabled: cw_btn_disabled }));
2961
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_select", disabled: cw_btn_disabled });
2691
2962
  }
2692
2963
  // Cw copy
2693
2964
  function CwBtnCopy({ cw_btnOnclick, cw_btn_disabled }) {
2694
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_copy", disabled: cw_btn_disabled }));
2965
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_copy", disabled: cw_btn_disabled });
2695
2966
  }
2696
2967
  // Cw Pin
2697
2968
  function CwBtnPin({ cw_btnOnclick, cw_btn_disabled }) {
2698
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_pin", disabled: cw_btn_disabled }));
2969
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_pin", disabled: cw_btn_disabled });
2699
2970
  }
2700
2971
  // Cw Info
2701
2972
  function CwBtnInfo({ cw_btnOnclick, cw_btn_disabled }) {
2702
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_info", disabled: cw_btn_disabled }));
2973
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_info", disabled: cw_btn_disabled });
2703
2974
  }
2704
2975
  // Cw Warning
2705
2976
  function CwBtnWarning({ cw_btnOnclick, cw_btn_disabled }) {
2706
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_warning", disabled: cw_btn_disabled }));
2977
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_warning", disabled: cw_btn_disabled });
2707
2978
  }
2708
2979
  // Cw Share
2709
2980
  function CwBtnShare({ cw_btnOnclick, cw_btn_disabled }) {
2710
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_share", disabled: cw_btn_disabled }));
2981
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_share", disabled: cw_btn_disabled });
2711
2982
  }
2712
2983
  // Cw Files
2713
2984
  function CwBtnFiles({ cw_btnOnclick, cw_btn_disabled }) {
2714
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_files", disabled: cw_btn_disabled }));
2985
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_files", disabled: cw_btn_disabled });
2715
2986
  }
2716
2987
  // Cw Users
2717
2988
  function CwBtnUsers({ cw_btnOnclick, cw_btn_disabled }) {
2718
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_users", disabled: cw_btn_disabled }));
2989
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_users", disabled: cw_btn_disabled });
2719
2990
  }
2720
2991
  // Cw Airport
2721
2992
  function CwBtnAirport({ cw_btnOnclick, cw_btn_disabled }) {
2722
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_airport", disabled: cw_btn_disabled }));
2993
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_airport", disabled: cw_btn_disabled });
2723
2994
  }
2724
2995
  // OneDrive
2725
2996
  function CwBtnOneDrive({ cw_btnOnclick, cw_btn_disabled }) {
2726
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_oneDrive", disabled: cw_btn_disabled }));
2997
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_oneDrive", disabled: cw_btn_disabled });
2727
2998
  }
2728
2999
  // userFolder
2729
3000
  function CwBtnUserFolder({ cw_btnOnclick, cw_btn_disabled }) {
2730
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_userFolder", disabled: cw_btn_disabled }));
3001
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_userFolder", disabled: cw_btn_disabled });
2731
3002
  }
2732
3003
  // CloudFolder
2733
3004
  function CwBtnCloudFolder({ cw_btnOnclick, cw_btn_disabled }) {
2734
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_cloudFolder", disabled: cw_btn_disabled }));
3005
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_cloudFolder", disabled: cw_btn_disabled });
2735
3006
  }
2736
3007
  // PictureFolder
2737
3008
  function CwBtnPictureFolder({ cw_btnOnclick, cw_btn_disabled }) {
2738
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_pictureFolder", disabled: cw_btn_disabled }));
3009
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_pictureFolder", disabled: cw_btn_disabled });
2739
3010
  }
2740
3011
  // FolderIn
2741
3012
  function CwBtnFolderIn({ cw_btnOnclick, cw_btn_disabled }) {
2742
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_folderIn", disabled: cw_btn_disabled }));
3013
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_folderIn", disabled: cw_btn_disabled });
2743
3014
  }
2744
3015
  // DownLoadFolder
2745
3016
  function CwBtnDownLoadFolder({ cw_btnOnclick, cw_btn_disabled }) {
2746
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_downloadFolder", disabled: cw_btn_disabled }));
3017
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_downloadFolder", disabled: cw_btn_disabled });
2747
3018
  }
2748
3019
  // DownLoadAllInfo
2749
3020
  function CwBtnDownLoadAllInfo({ cw_btnOnclick, cw_btn_disabled }) {
2750
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_downLoadAllInfo", disabled: cw_btn_disabled }));
3021
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_downLoadAllInfo", disabled: cw_btn_disabled }));
2751
3022
  }
2752
3023
  // PropertyFolder
2753
3024
  function CwBtnPropertyFolder({ cw_btnOnclick, cw_btn_disabled }) {
2754
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_propertiFolder", disabled: cw_btn_disabled }));
3025
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_propertiFolder", disabled: cw_btn_disabled });
2755
3026
  }
2756
3027
  // AddFolder
2757
3028
  function CwBtnAddFolder({ cw_btnOnclick, cw_btn_disabled }) {
2758
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_addFolder", disabled: cw_btn_disabled }));
3029
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_addFolder", disabled: cw_btn_disabled });
2759
3030
  }
2760
3031
  // EditFolder
2761
3032
  function CwBtnEditFolder({ cw_btnOnclick, cw_btn_disabled }) {
2762
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_editFolder", disabled: cw_btn_disabled }));
3033
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_editFolder", disabled: cw_btn_disabled });
2763
3034
  }
2764
3035
  // PropertyFolder
2765
3036
  function CwBtnSelectedFolder({ cw_btnOnclick, cw_btn_disabled }) {
2766
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_selectedFolder", disabled: cw_btn_disabled }));
3037
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_selectedFolder", disabled: cw_btn_disabled });
2767
3038
  }
2768
3039
  // UploadFiles
2769
3040
  function CwBtnUploadFiles({ cw_btnOnclick, cw_btn_disabled }) {
2770
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_uploadFiles", disabled: cw_btn_disabled }));
3041
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_uploadFiles", disabled: cw_btn_disabled });
2771
3042
  }
2772
3043
  // GoBackSection [ Emanual ]
2773
3044
  function CwBtnGoBackFolder({ cw_btnOnclick, cw_btn_disabled }) {
@@ -2775,139 +3046,139 @@ function CwBtnGoBackFolder({ cw_btnOnclick, cw_btn_disabled }) {
2775
3046
  }
2776
3047
  // BookMark [ Emanual ]
2777
3048
  function CwBtnBookMark({ cw_btnOnclick, cw_btn_disabled }) {
2778
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_bookMark", disabled: cw_btn_disabled }));
3049
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_bookMark", disabled: cw_btn_disabled });
2779
3050
  }
2780
3051
  // Restore trash
2781
3052
  function CwBtnRestoreTrash({ cw_btnOnclick, cw_btn_disabled }) {
2782
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_restoreTrash", disabled: cw_btn_disabled }));
3053
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_restoreTrash", disabled: cw_btn_disabled });
2783
3054
  }
2784
3055
  // Empty trash
2785
3056
  function CwBtnEmptytrash({ cw_btnOnclick, cw_btn_disabled }) {
2786
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_emptyTrash", disabled: cw_btn_disabled }));
3057
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_emptyTrash", disabled: cw_btn_disabled });
2787
3058
  }
2788
3059
  // Full trash
2789
3060
  function CwBtnFulltrash({ cw_btnOnclick, cw_btn_disabled }) {
2790
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_fullTrash", disabled: cw_btn_disabled }));
3061
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_fullTrash", disabled: cw_btn_disabled });
2791
3062
  }
2792
3063
  // Marked
2793
3064
  function CwBtnMarked({ cw_btnOnclick, cw_btn_disabled }) {
2794
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnMarked", disabled: cw_btn_disabled }));
3065
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnMarked", disabled: cw_btn_disabled });
2795
3066
  }
2796
3067
  // Marked solid
2797
3068
  function CwBtnMarkedSolid({ cw_btnOnclick, cw_btn_disabled }) {
2798
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnMarkedSolid", disabled: cw_btn_disabled }));
3069
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnMarkedSolid", disabled: cw_btn_disabled });
2799
3070
  }
2800
3071
  // Add marked
2801
3072
  function CwBtnAddMarked({ cw_btnOnclick, cw_btn_disabled }) {
2802
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnAddMarked", disabled: cw_btn_disabled }));
3073
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnAddMarked", disabled: cw_btn_disabled });
2803
3074
  }
2804
3075
  // Add marked solid
2805
3076
  function CwBtnAddMarkedSolid({ cw_btnOnclick, cw_btn_disabled }) {
2806
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnAddMarkedSolid", disabled: cw_btn_disabled }));
3077
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnAddMarkedSolid", disabled: cw_btn_disabled });
2807
3078
  }
2808
3079
  // Restore trash right
2809
3080
  function CwBtnRestoreTrashRight({ cw_btnOnclick, cw_btn_disabled }) {
2810
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btn_restoreTrashRight", disabled: cw_btn_disabled }));
3081
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btn_restoreTrashRight", disabled: cw_btn_disabled }));
2811
3082
  }
2812
3083
  // Archive
2813
3084
  function CwBtnArchive({ cw_btnOnclick, cw_btn_disabled }) {
2814
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnArchive", disabled: cw_btn_disabled }));
3085
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnArchive", disabled: cw_btn_disabled });
2815
3086
  }
2816
3087
  // Archive
2817
3088
  function CwBtnArchiveRestore({ cw_btnOnclick, cw_btn_disabled }) {
2818
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnArchiveRestore", disabled: cw_btn_disabled }));
3089
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnArchiveRestore", disabled: cw_btn_disabled });
2819
3090
  }
2820
3091
  // Publish
2821
3092
  function CwBtnPublish({ cw_btnOnclick, cw_btn_disabled }) {
2822
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnPublish", disabled: cw_btn_disabled }));
3093
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnPublish", disabled: cw_btn_disabled });
2823
3094
  }
2824
3095
  // Approve
2825
3096
  function CwBtnApprove({ cw_btnOnclick, cw_btn_disabled }) {
2826
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnApprove", disabled: cw_btn_disabled }));
3097
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnApprove", disabled: cw_btn_disabled });
2827
3098
  }
2828
3099
  // BookMarkLinkPag
2829
3100
  function CwBtnBookMarkLinkPage({ cw_btnOnclick, cw_btn_disabled }) {
2830
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnBookMarkLinkPage", disabled: cw_btn_disabled }));
3101
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnBookMarkLinkPage", disabled: cw_btn_disabled }));
2831
3102
  }
2832
3103
  // BookReadedLine
2833
3104
  function CwBtnBookReadedLine({ cw_btnOnclick, cw_btn_disabled }) {
2834
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnBookReadedLine", disabled: cw_btn_disabled }));
3105
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnBookReadedLine", disabled: cw_btn_disabled });
2835
3106
  }
2836
3107
  // BookReadedSolid
2837
3108
  function CwBtnBookReadedSolid({ cw_btnOnclick, cw_btn_disabled }) {
2838
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnBookReadedSolid", disabled: cw_btn_disabled }));
3109
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnBookReadedSolid", disabled: cw_btn_disabled });
2839
3110
  }
2840
3111
  // DocumentChecked
2841
3112
  function CwBtnDocumentChecked({ cw_btnOnclick, cw_btn_disabled }) {
2842
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnDocumentChecked", disabled: cw_btn_disabled }));
3113
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnDocumentChecked", disabled: cw_btn_disabled });
2843
3114
  }
2844
3115
  // DocumentPublished
2845
3116
  function CwBtnDocumentPublished({ cw_btnOnclick, cw_btn_disabled }) {
2846
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnDocumentPublished", disabled: cw_btn_disabled }));
3117
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnDocumentPublished", disabled: cw_btn_disabled }));
2847
3118
  }
2848
3119
  // Bulk duty
2849
3120
  function CwBtnBulkDuty({ cw_btnOnclick, cw_btn_disabled }) {
2850
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnBulkDuty", disabled: cw_btn_disabled }));
3121
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnBulkDuty", disabled: cw_btn_disabled });
2851
3122
  }
2852
3123
  // DropDownButtonCrewControl
2853
3124
  function CwBtnDropDownMenu({ cw_btnOnclick, cw_btn_disabled }) {
2854
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnDropDownMenu", disabled: cw_btn_disabled }));
3125
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnDropDownMenu", disabled: cw_btn_disabled });
2855
3126
  }
2856
3127
  // DropDownButtonCrewControl
2857
3128
  function CwBtnAlert({ cw_btnOnclick, cw_btn_disabled, cw_name }) {
2858
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnAlert", disabled: cw_btn_disabled, id: cw_name }));
3129
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnAlert", disabled: cw_btn_disabled, id: cw_name }));
2859
3130
  }
2860
3131
  // BtnNavFirstItemView
2861
3132
  function CwBtnNavFirstItemView({ cw_btnOnclick, cw_btn_disabled }) {
2862
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnNavFirstItemView", disabled: cw_btn_disabled }));
3133
+ return (jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnNavFirstItemView", disabled: cw_btn_disabled }));
2863
3134
  }
2864
3135
  // BtnNavLastItemView
2865
3136
  function CwBtnNavLastItemView({ cw_btnOnclick, cw_btn_disabled }) {
2866
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnNavLastItemView", disabled: cw_btn_disabled }));
3137
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnNavLastItemView", disabled: cw_btn_disabled });
2867
3138
  }
2868
3139
  // BtnNavbreviewItem
2869
3140
  function CwBtnNavPreviewItem({ cw_btnOnclick, cw_btn_disabled }) {
2870
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnNavPreviewItem", disabled: cw_btn_disabled }));
3141
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnNavPreviewItem", disabled: cw_btn_disabled });
2871
3142
  }
2872
3143
  // BtnNavNextDay
2873
3144
  function CwBtnNavNextDay({ cw_btnOnclick, cw_btn_disabled }) {
2874
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnNavNextDay", disabled: cw_btn_disabled }));
3145
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnNavNextDay", disabled: cw_btn_disabled });
2875
3146
  }
2876
3147
  // BtnNavNextDay
2877
3148
  function CwBtnStatistic({ cw_btnOnclick, cw_btn_disabled }) {
2878
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnStatistic", disabled: cw_btn_disabled }));
3149
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnStatistic", disabled: cw_btn_disabled });
2879
3150
  }
2880
3151
  // BtnNavNextDay
2881
3152
  function CwBtnCrewPlanning({ cw_btnOnclick, cw_btn_disabled }) {
2882
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnCrewPlanning", disabled: cw_btn_disabled }));
3153
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnCrewPlanning", disabled: cw_btn_disabled });
2883
3154
  }
2884
3155
  // BtnReleasePeriod
2885
3156
  function CwBtnReleasePeriod({ cw_btnOnclick, cw_btn_disabled }) {
2886
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnReleasePeriod", disabled: cw_btn_disabled }));
3157
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnReleasePeriod", disabled: cw_btn_disabled });
2887
3158
  }
2888
3159
  // BtnReleasePeriod
2889
3160
  function CwBtnGeneratePairing({ cw_btnOnclick, cw_btn_disabled }) {
2890
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnGeneratePairing", disabled: cw_btn_disabled }));
3161
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnGeneratePairing", disabled: cw_btn_disabled });
2891
3162
  }
2892
3163
  // BtnImportRequests
2893
3164
  function CwBtnImportRequests({ cw_btnOnclick, cw_btn_disabled }) {
2894
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnImportRequests", disabled: cw_btn_disabled }));
3165
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnImportRequests", disabled: cw_btn_disabled });
2895
3166
  }
2896
3167
  // BtnPairing
2897
3168
  function CwBtnPairing({ cw_btnOnclick, cw_btn_disabled }) {
2898
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnPairing", disabled: cw_btn_disabled }));
3169
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnPairing", disabled: cw_btn_disabled });
2899
3170
  }
2900
3171
  // BtnVacations
2901
3172
  function CwBtnVacations({ cw_btnOnclick, cw_btn_disabled }) {
2902
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnVacations", disabled: cw_btn_disabled }));
3173
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnVacations", disabled: cw_btn_disabled });
2903
3174
  }
2904
3175
  // BtnMVT
2905
3176
  function CwBtnMVT({ cw_btnOnclick, cw_btn_disabled }) {
2906
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnMVT", disabled: cw_btn_disabled }));
3177
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnMVT", disabled: cw_btn_disabled });
2907
3178
  }
2908
3179
  // BtnDelay
2909
3180
  function CwBtnDelay({ cw_btnOnclick, cw_btn_disabled }) {
2910
- return (jsx("button", { onClick: cw_btnOnclick, className: "cw_btn_act cw_btn_act_df cw_btn_Nbg cw_btnDelay", disabled: cw_btn_disabled }));
3181
+ return jsx("button", { onClick: cw_btnOnclick, className: "cw-button-icon cw_btnDelay", disabled: cw_btn_disabled });
2911
3182
  }
2912
3183
 
2913
3184
  const ResourcesTitleList = ({ resources, canBePinned, includesPinned, onCrewPinning, onClickResourceContextMenu, ResourceTitleComponent }) => {
@@ -2992,7 +3263,7 @@ const getEventStyle = (event, reslTime) => {
2992
3263
  borderRadius: "0px",
2993
3264
  backgroundColor: event.data.category.color || "grey",
2994
3265
  opacity: 0.3,
2995
- borderBottom: event.data.eventType === 20 ? "solid 1px rgba(0, 0, 0, 0.4)" : ""
3266
+ borderBottom: event.data.eventType === DUTY_REGULATION ? "solid 1px rgba(0, 0, 0, 0.4)" : ""
2996
3267
  };
2997
3268
  }
2998
3269
  return {
@@ -3035,8 +3306,9 @@ const EventRender = ({ event, t: schedulerState }) => {
3035
3306
  [].forEach.call(document.querySelectorAll(".ant-tooltip"), function (el) {
3036
3307
  el.style.visibility = "hidden";
3037
3308
  });
3309
+ // We don't know in which case is necessary
3038
3310
  if (e.target !== e.currentTarget) {
3039
- // e.preventDetault();
3311
+ // e.preventDefault();
3040
3312
  return;
3041
3313
  }
3042
3314
  const isResize = isResizeFromStart || isResizeFromEnd;
@@ -3069,9 +3341,11 @@ const EventRender = ({ event, t: schedulerState }) => {
3069
3341
  }
3070
3342
  };
3071
3343
  const renderBirthdayEvent = () => (jsxs("div", { className: `fc-timeline-event cwellt_timeline_event cwellt_event_bday ${event.selected ? "cblEventSelected" : ""}`, style: eventStyle, children: [jsx("span", { className: "cbl-birthday", style: { visibility: "visible" } }), event.data.subject && jsx("span", { style: { lineHeight: "1em" }, children: event.data.subject })] }, event.id));
3072
- const renderRegularEvent = () => (jsxs("div", { draggable: ![10, 11, 16, 17, 20].includes(event.data.eventType), className: "fc-timeline-event cwellt_timeline_event " +
3344
+ const renderRegularEvent = () => (jsxs("div", { draggable: ![10, 11, 16, 20, 21].includes(event.data.eventType), className: "fc-timeline-event cwellt_timeline_event " +
3073
3345
  (event.selected === true ? "cblEventSelected " : "") +
3074
- (event.data.eventType === 10 || event.data.eventType === 11 || event.data.eventType === 20
3346
+ (event.data.eventType === REST_TIME ||
3347
+ event.data.eventType === MAX_FLIGHT_DUTY_PERIOD ||
3348
+ event.data.eventType === DUTY_REGULATION
3075
3349
  ? " cwellt_event_bhnd_appt "
3076
3350
  : " "), style: eventStyle, onClick: onClickEvent, onContextMenu: onRightClickEvent, onDragStart: e => safeHandleDragStart(e, false, false), onDoubleClick: handleDoubleClick, children: [schedulerState.props.scheduler_handleCblEventResize && !unHandleableEvents.includes(event.data.eventType) && (jsx("span", { draggable: true, onDragStart: e => handleDragStart(e, true, false), style: {
3077
3351
  position: "absolute",
@@ -3087,7 +3361,8 @@ const EventRender = ({ event, t: schedulerState }) => {
3087
3361
  border: "solid 1px rgba(46,49,49,0.5)",
3088
3362
  marginTop: "-25px"
3089
3363
  }, children: "\u200B" }))] }, event.id));
3090
- return (jsx("div", { style: { position: "initial" }, children: event.data.eventType === BIRTHDATE ? renderBirthdayEvent() : renderRegularEvent() }));
3364
+ const render = event.data.eventType === BIRTHDATE ? renderBirthdayEvent() : renderRegularEvent();
3365
+ return render;
3091
3366
  };
3092
3367
 
3093
3368
  const addMinutesToDateFromPx = (originalDate, leftPx, minutesPerPx) => {
@@ -3114,7 +3389,8 @@ const isAllowedToMove = (data, resData, cblDragNDrop) => {
3114
3389
  { from: "opstoolScheduler", to: "opstoolScheduler" },
3115
3390
  { from: "opstoolScheduler", to: "opstoolSchedulerVirtual" },
3116
3391
  { from: "opstoolSchedulerVirtual", to: "opstoolScheduler" },
3117
- { from: "opstoolSchedulerVirtual", to: "opstoolSchedulerVirtual" }
3392
+ { from: "opstoolSchedulerVirtual", to: "opstoolSchedulerVirtual" },
3393
+ { from: "vacationsScheduler", to: "vacationsScheduler" }
3118
3394
  ];
3119
3395
  const crewControllAllowedMove = allowedMoves.some(move => move.from === cblDragNDrop.fromId && move.to === cblDragNDrop.toId);
3120
3396
  if (crewControllAllowedMove) {
@@ -3180,19 +3456,14 @@ class ResourceRender extends React__default.Component {
3180
3456
  // res = true;
3181
3457
  return res;
3182
3458
  }
3183
- showStyles() {
3184
- let style = {};
3185
- style = {
3186
- backgroundColor: "#F9F8F8",
3187
- height: this.props.res.maxTop,
3188
- width: "100%",
3189
- position: "relative",
3190
- borderBottom: "1px solid rgb(255,255,255)"
3191
- };
3192
- return style;
3193
- }
3194
3459
  render() {
3195
- return (jsx("div", { style: this.showStyles(), onDragOver: e => onDragOver(e), onDrop: e => {
3460
+ return (jsx("div", { style: {
3461
+ backgroundColor: "#F9F8F8",
3462
+ height: this.props.res.maxTop,
3463
+ width: "100%",
3464
+ position: "relative",
3465
+ borderBottom: "1px solid rgb(255,255,255)"
3466
+ }, onDragOver: e => onDragOver(e), onDrop: e => {
3196
3467
  OnDrop({
3197
3468
  e: e,
3198
3469
  resource: this.props.res,
@@ -3201,8 +3472,6 @@ class ResourceRender extends React__default.Component {
3201
3472
  state: this.props.t.state,
3202
3473
  schedulerProps: this.props.t.props
3203
3474
  });
3204
- }, onMouseDown: _e => {
3205
- // (e.button === 2) ? alert("rightClick resource") : alert("leftClick resource")
3206
3475
  }, className: "cwellt_divRow_schContent", children: this.props.res.events.map((evnt, _i) => (jsx(EventRender, { event: evnt, t: this.props.t }, evnt.id))) }, this.props.res.uid));
3207
3476
  }
3208
3477
  }
@@ -3225,8 +3494,8 @@ const TimeLine = ({ toolTipTitle, marginLeft }) => {
3225
3494
  } }) }));
3226
3495
  };
3227
3496
 
3228
- const SchedulerContentArea = ({ maxPx, schedulerId, showTimeline, now, lineStyle, resources, scheduler, contextMenuContents, onEmptyClick, setContentArea, onClickContextMenu }) => {
3229
- return (jsxs("td", { className: "contentArea", style: { width: maxPx, overflow: "hidden" }, ref: n => setContentArea(n), children: [showTimeline && (jsx(TimeLine, { toolTipTitle: now
3497
+ const SchedulerContentArea = ({ schedulerId, showTimeline, now, lineStyle, resources, scheduler, contextMenuContents, onEmptyClick, setContentArea, onClickContextMenu }) => {
3498
+ return (jsxs("td", { className: "contentArea", style: { width: "100%", overflow: "hidden" }, ref: n => setContentArea(n), children: [showTimeline && (jsx(TimeLine, { toolTipTitle: now
3230
3499
  ? schedulerId.includes("crewAssignmentsScheduler")
3231
3500
  ? moment(now).format("HH:mm")
3232
3501
  : now.toDateString()
@@ -3577,7 +3846,7 @@ const filterEvents = (events, start, end, id, resId, module = undefined) => {
3577
3846
  if (id !== "flightWatchScheduler") {
3578
3847
  eventsFiltered = sortByDate(eventsFiltered);
3579
3848
  }
3580
- if (id !== "crewAssignmentsScheduler") {
3849
+ if (id !== "crewAssignmentsScheduler" && id !== "vacationsScheduler") {
3581
3850
  return eventsFiltered;
3582
3851
  }
3583
3852
  eventsFiltered = setNotFullHeightEventsFirst(eventsFiltered);
@@ -3587,6 +3856,9 @@ const filterEvents = (events, start, end, id, resId, module = undefined) => {
3587
3856
  if (module === "CrewScheduling") {
3588
3857
  eventsFiltered = removeDuplicated(eventsFiltered, "AssignmentID");
3589
3858
  }
3859
+ if (module === "CrewSchedulingVacations") {
3860
+ eventsFiltered = removeDuplicated(eventsFiltered, "ID");
3861
+ }
3590
3862
  return eventsFiltered;
3591
3863
  };
3592
3864
  const sortByDate = (events) => events.sort((a, b) => +new Date(a.start) - +new Date(b.start));
@@ -3623,31 +3895,18 @@ const getRightPixels = (eventEnd, newEnd, dayPx) => {
3623
3895
  const pixelsPerDay = dayPx ?? 0;
3624
3896
  return calculatePixels(adjustedEvent, adjustedReference, pixelsPerDay);
3625
3897
  };
3626
- const getResourcesWithPixels = (resources, _nextProps, dayPx, hasSideBar) => {
3627
- return resources.map(resource => {
3628
- const events = resource.events;
3629
- const mappedEvents = events.map(event => {
3630
- return {
3631
- ...event,
3632
- leftPx: getLeftPixels(event.start, _nextProps.startDate, dayPx),
3633
- rightPx: getRightPixels(event.end, _nextProps.endDate, dayPx) - (hasSideBar ? 17 : 0)
3634
- };
3635
- });
3636
- return {
3637
- ...resource,
3638
- events: mappedEvents
3639
- };
3640
- });
3641
- };
3642
3898
 
3643
3899
  const checkIfSlotAvailable = (events, event) => {
3644
3900
  const lastElement = events.length - 1;
3645
3901
  if (events.length == 0)
3646
3902
  return true;
3647
- return events[lastElement].end <= event.start || events[lastElement].isFullHeight;
3903
+ const collide = events.some(existent => {
3904
+ return !(existent.end <= event.start || event.end <= existent.start);
3905
+ });
3906
+ return !collide || events[lastElement].isFullHeight;
3648
3907
  };
3649
3908
 
3650
- const getEventsOfResource = (res, events, state, id, module, start, end, hasSideBar) => {
3909
+ const getEventsOfResource = (res, events, state, id, module, start, end) => {
3651
3910
  let maxTop = 0;
3652
3911
  const tops = [];
3653
3912
  tops[0] = new Array();
@@ -3685,7 +3944,7 @@ const getEventsOfResource = (res, events, state, id, module, start, end, hasSide
3685
3944
  }
3686
3945
  const sideBarSize = 17;
3687
3946
  event.leftPx = getLeftPixels(event.start, start, state.dayPx);
3688
- event.rightPx = getRightPixels(event.end, end, state.dayPx) - (hasSideBar ? sideBarSize : 0);
3947
+ event.rightPx = getRightPixels(event.end, end, state.dayPx) - sideBarSize;
3689
3948
  });
3690
3949
  let OrderedArray = new Array();
3691
3950
  for (let h = 0; h < tops.length; h++) {
@@ -3699,6 +3958,48 @@ const getEventsOfResource = (res, events, state, id, module, start, end, hasSide
3699
3958
  }
3700
3959
  return OrderedArray;
3701
3960
  };
3961
+ const getEventsInInnerRows = (res, state, start, end) => {
3962
+ let maxTop = 0;
3963
+ const tops = [];
3964
+ tops[0] = new Array();
3965
+ res.events.forEach((event, i) => {
3966
+ if (i === 0 || event.isFullHeight) {
3967
+ event.top = 0;
3968
+ tops[0].push(event);
3969
+ }
3970
+ else {
3971
+ let found = false;
3972
+ for (let j = 0; j < tops.length && found === false; j++) {
3973
+ found = checkIfSlotAvailable(tops[j], event);
3974
+ if (found === true || event.isFullHeight) {
3975
+ event.top = j * state.eventHeight;
3976
+ tops[j].push(event);
3977
+ }
3978
+ }
3979
+ if (found === false && !event.isFullHeight) {
3980
+ maxTop++;
3981
+ tops[maxTop] = new Array();
3982
+ event.top = maxTop * state.eventHeight;
3983
+ tops[maxTop].push(event);
3984
+ }
3985
+ else {
3986
+ // This is for flightwatch
3987
+ if (found === true && event.data.order === 2 && maxTop < 1) {
3988
+ maxTop++;
3989
+ tops[maxTop] = new Array();
3990
+ event.top = maxTop * state.eventHeight;
3991
+ tops[maxTop].push(event);
3992
+ maxTop--;
3993
+ }
3994
+ }
3995
+ }
3996
+ const sideBarSize = 17;
3997
+ const rightPx = getRightPixels(event.end, end, state.dayPx) - sideBarSize;
3998
+ event.leftPx = getLeftPixels(event.start, start, state.dayPx);
3999
+ event.rightPx = rightPx < 0 ? 0 : rightPx;
4000
+ });
4001
+ return tops;
4002
+ };
3702
4003
 
3703
4004
  const compareStrings = (str1, str2) => {
3704
4005
  if (str1 > str2)
@@ -3709,7 +4010,8 @@ const compareStrings = (str1, str2) => {
3709
4010
  };
3710
4011
 
3711
4012
  const filterResources = (module, resourceName, resources, groupByFunction, endDate, startDate) => {
3712
- if ((module === "CrewControl" || module === "CrewScheduling") && resourceName === "Employees") {
4013
+ if ((module === "CrewControl" || module === "CrewScheduling" || module === "CrewSchedulingVacations") &&
4014
+ resourceName === "Employees") {
3713
4015
  resources = resources.filter(c => (c.data.Eintritt === null || (c.data.Eintritt !== null && moment(c.data.Eintritt).toDate() <= endDate)) &&
3714
4016
  (c.data.Austritt === null || (c.data.Austritt !== null && moment(c.data.Austritt).toDate() >= startDate)));
3715
4017
  }
@@ -3723,13 +4025,9 @@ const filterResources = (module, resourceName, resources, groupByFunction, endDa
3723
4025
  const filterAndProcessResources = (id, props, state) => {
3724
4026
  const events = [...props.events];
3725
4027
  const filteredResources = filterResources(props.module, props.resourceName, [...props.resources], props.groupByFunction, props.endDate, props.startDate);
3726
- if (filteredResources.length > 0) {
3727
- console.log("is not empty");
3728
- }
3729
- const hasSideBar = !props.id.toLowerCase().includes("pinned");
3730
4028
  return filteredResources.map(r => ({
3731
4029
  ...r,
3732
- events: getEventsOfResource(r, events, state, id, props.module, props.startDate, props.endDate, hasSideBar)
4030
+ events: getEventsOfResource(r, events, state, id, props.module, props.startDate, props.endDate)
3733
4031
  }));
3734
4032
  };
3735
4033
 
@@ -3768,394 +4066,6 @@ const handleDateChange = (nextProps, currentProps, showLogs, initOutside) => {
3768
4066
  return;
3769
4067
  };
3770
4068
 
3771
- const hasSameProperties = (event1, other) => {
3772
- const areDifferent = event1.resourceId !== other.resourceId ||
3773
- event1.start !== other.start ||
3774
- event1.end !== other.end ||
3775
- event1.selected !== other.selected ||
3776
- event1.data !== other.data;
3777
- // TODO: event1.data !== other.data is making a bad compare, we should use
3778
- // JSON.stringify(this.data) === JSON.stringify(other.data)
3779
- return !areDifferent;
3780
- };
3781
-
3782
- const handlePropChanges = (_nextProps, currentProps, state, setState) => {
3783
- let eventsPropDic = Object.assign({}, ..._nextProps.events.map(x => ({ [x.id]: x })));
3784
- let resourcesPropDic = Object.assign({}, ..._nextProps.resources.map(x => ({
3785
- [x.data.fullName !== undefined ? x.data.fullName : x.name]: x
3786
- })));
3787
- let eventsStateDic = Object.assign({}, ...state.events.map(x => ({ [x.id]: x })));
3788
- let resourcesStateDic = Object.assign({}, ...state.resources.map(x => ({ [x.id]: x })));
3789
- let state_resources_copy = [...state.resources];
3790
- let propEvents = [];
3791
- let stateEvents = [];
3792
- if (state.events.length !== _nextProps.events.length) {
3793
- if (currentProps.id === "crewPinnedScheduler" || currentProps.id === "crewAssignmentsScheduler") {
3794
- // WHEN IS AN INSERT:
3795
- // Get the inserted events
3796
- propEvents = lodash.differenceWith(_nextProps.events, state.events, function (o1, o2) {
3797
- return o1.data.Crew_Id === o2.data.Crew_Id;
3798
- });
3799
- eventsPropDic = Object.assign({}, ...propEvents.map(x => ({ [x.id]: x })));
3800
- // WHEN IS A DELETE:
3801
- // Get the deleted events
3802
- stateEvents = lodash.differenceWith(state.events, _nextProps.events, function (o1, o2) {
3803
- return o1.data.Crew_Id === o2.data.Crew_Id;
3804
- });
3805
- eventsStateDic = Object.assign({}, ...stateEvents.map(x => ({ [x.id]: x })));
3806
- }
3807
- }
3808
- if (propEvents.length === 0) {
3809
- eventsPropDic = Object.assign({}, ..._nextProps.events.map(x => ({ [x.id]: x })));
3810
- eventsStateDic = Object.assign({}, ...state.events.map(x => ({ [x.id]: x })));
3811
- }
3812
- let propResources = [];
3813
- let stateResources = [];
3814
- if (state.resources.length !== _nextProps.resources.length &&
3815
- state.resources.length > 0 &&
3816
- _nextProps.resources.length > 0) {
3817
- if (currentProps.id === "crewPinnedScheduler" || currentProps.id === "crewAssignmentsScheduler") {
3818
- // WHEN IS AN INSERT:
3819
- // Get the inserted events
3820
- propResources = lodash.differenceWith(_nextProps.resources, state.resources, function (o1, o2) {
3821
- return o1.data.Crewmember_Id === o2.data.Crewmember_Id;
3822
- });
3823
- resourcesPropDic = Object.assign({}, ...propResources.map(x => ({ [x.id]: x })));
3824
- // WHEN IS A DELETE:
3825
- // Get the deleted events
3826
- stateResources = lodash.differenceWith(state.resources, _nextProps.resources, function (o1, o2) {
3827
- return o1.data.Crewmember_Id === o2.data.Crewmember_Id;
3828
- });
3829
- resourcesStateDic = Object.assign({}, ...stateResources.map(x => ({ [x.id]: x })));
3830
- }
3831
- }
3832
- if (propResources.length === 0) {
3833
- resourcesPropDic = Object.assign({}, ..._nextProps.resources.map(x => ({ [x.id]: x })));
3834
- resourcesStateDic = Object.assign({}, ...state.resources.map(x => ({ [x.id]: x })));
3835
- }
3836
- const eventsKeys = Array.from(new Set([...Object.keys(eventsPropDic), ...Object.keys(eventsStateDic)]));
3837
- let resourcesToRecalculate = [];
3838
- const state_events_copy = [...state.events];
3839
- eventsKeys.forEach(eventKey => {
3840
- const eventInPropsDic = eventsPropDic[eventKey];
3841
- const eventInStateDic = eventsStateDic[eventKey];
3842
- const createNewEvent = (eventProps, eventInDictionary) => Object.assign(new eventProps.constructor(), eventInDictionary);
3843
- if (eventInPropsDic && !eventInStateDic) {
3844
- const newEvent = createNewEvent(eventsPropDic[eventKey], eventInPropsDic);
3845
- state_events_copy.push(newEvent);
3846
- resourcesToRecalculate.push(eventInPropsDic.resourceId);
3847
- }
3848
- else if (!eventInPropsDic && eventInStateDic) {
3849
- const index = state_events_copy.indexOf(eventInStateDic);
3850
- state_events_copy.splice(index, 1);
3851
- resourcesToRecalculate.push(eventInStateDic.resourceId);
3852
- }
3853
- else if (eventInPropsDic && eventInStateDic) {
3854
- const hasSameProps = hasSameProperties(eventsPropDic[eventKey], eventsStateDic[eventKey]);
3855
- if (!hasSameProps) {
3856
- const newEvent = createNewEvent(eventsPropDic[eventKey], eventInPropsDic);
3857
- const eventInStateCopyIndex = state_events_copy.findIndex(sec => sec.id === newEvent.id);
3858
- state_events_copy[eventInStateCopyIndex] = newEvent;
3859
- resourcesToRecalculate.push(eventInPropsDic.resourceId);
3860
- resourcesToRecalculate.push(eventInStateDic.resourceId);
3861
- }
3862
- }
3863
- });
3864
- const resourceKeys = Array.from(new Set([...Object.keys(resourcesPropDic), ...Object.keys(resourcesStateDic)]));
3865
- resourceKeys.forEach(resourceKey => {
3866
- const resourceInPropsDic1 = resourcesPropDic[resourceKey];
3867
- const resourceInStateDic1 = resourcesStateDic[resourceKey];
3868
- if (resourceInPropsDic1 &&
3869
- resourceInStateDic1 &&
3870
- (resourceInPropsDic1.isLoading !== resourceInStateDic1.isLoading ||
3871
- resourceInPropsDic1.data.hasFunctionChangeInPeriod !== resourceInStateDic1.data.hasFunctionChangeInPeriod ||
3872
- resourceInPropsDic1.data.hasTyperatingChangeInPeriod !== resourceInStateDic1.data.hasTyperatingChangeInPeriod)) {
3873
- resourcesToRecalculate.push(resourceInPropsDic1.id);
3874
- }
3875
- });
3876
- resourcesToRecalculate = Array.from(new Set(resourcesToRecalculate)).map(m => Number(m));
3877
- const hasSideBar = checkScrollBar(currentProps.id);
3878
- resourceKeys.forEach(resourceKey => {
3879
- const resourceInPropsDic = resourcesPropDic[resourceKey];
3880
- const resourceInStateDic = resourcesStateDic[resourceKey];
3881
- if (resourceInPropsDic && !resourceInStateDic) {
3882
- const newResource = Object.assign(new resourcesPropDic[resourceKey].constructor(), resourceInPropsDic);
3883
- newResource.events = getEventsOfResource(newResource, state_events_copy, state, currentProps.id, currentProps.module, _nextProps.startDate, _nextProps.endDate, hasSideBar);
3884
- state_resources_copy.push(newResource);
3885
- }
3886
- else if (!resourceInPropsDic && resourceInStateDic) {
3887
- const index = state_resources_copy.indexOf(resourceInStateDic);
3888
- state_resources_copy.splice(index, 1);
3889
- }
3890
- else if (resourceInPropsDic && resourceInStateDic && resourcesToRecalculate.includes(resourceInPropsDic.id)) {
3891
- const newResource2 = Object.assign(new resourcesPropDic[resourceKey].constructor(), resourceInPropsDic);
3892
- newResource2.events = getEventsOfResource(newResource2, state_events_copy, state, currentProps.id, currentProps.module, _nextProps.startDate, _nextProps.endDate, hasSideBar);
3893
- const resourceInStateCopyIndex = state_resources_copy.findIndex(src => src.id === newResource2.id);
3894
- state_resources_copy[resourceInStateCopyIndex] = newResource2;
3895
- }
3896
- });
3897
- if (currentProps.id === "crewPinnedScheduler" || currentProps.id === "crewAssignmentsScheduler") {
3898
- state_resources_copy = state_resources_copy.sort((a, b) => {
3899
- if (a.data.C3_LC > b.data.C3_LC) {
3900
- return 1;
3901
- }
3902
- if (a.data.C3_LC < b.data.C3_LC) {
3903
- return -1;
3904
- }
3905
- return 0;
3906
- });
3907
- }
3908
- if (resourcesToRecalculate.length > 0 ||
3909
- _nextProps.resources.length !== state.resources.length ||
3910
- _nextProps.events.length !== state.events.length) {
3911
- setState(state_events_copy, state_resources_copy);
3912
- }
3913
- if (state.showConsoleLogs) {
3914
- console.log("Schedule - componentWillReceiveProps - print on schedule, end: ", moment(new Date()).toString());
3915
- console.log("Schedule - componentWillReceiveProps, end: ", moment(new Date()).toString());
3916
- }
3917
- };
3918
- const checkScrollBar = (id) => {
3919
- const schedulerElement = document.getElementById(id);
3920
- const resources = schedulerElement?.firstChild?.lastChild;
3921
- const schedulerHasScroll = checkScrollBarExists(schedulerElement);
3922
- const resourcesHaveScroll = checkScrollBarExists(resources);
3923
- return schedulerHasScroll || resourcesHaveScroll;
3924
- };
3925
- const checkScrollBarExists = (element) => {
3926
- if (element === null) {
3927
- return false;
3928
- }
3929
- let res = element.scrollTop > 0;
3930
- if (!res) {
3931
- element.scrollTop = 1;
3932
- res = element.scrollTop > 0;
3933
- element.scrollTop = 0;
3934
- }
3935
- return res;
3936
- };
3937
-
3938
- const handleResourceChange = (nextProps, showLogs, dayPx, setState) => {
3939
- const props_events_copy = [...nextProps.events];
3940
- const props_resources_copy = [...nextProps.resources];
3941
- const hasSideBar = checkScrollBar(nextProps.id);
3942
- setState(props_events_copy, getResourcesWithPixels(props_resources_copy, nextProps, dayPx, hasSideBar));
3943
- if (showLogs) {
3944
- console.log("Schedule - componentWillReceiveProps - print on schedule, end: ", moment(new Date()).toString());
3945
- console.log("Schedule - componentWillReceiveProps, end: ", moment(new Date()).toString());
3946
- }
3947
- };
3948
-
3949
- const getHasPropsChanges = (props, state, _nextProps) => {
3950
- let propHasChanges = false;
3951
- if (state.startDate.getTime() !== _nextProps.startDate.getTime()) {
3952
- propHasChanges = true;
3953
- }
3954
- if (state.endDate.getTime() !== _nextProps.endDate.getTime()) {
3955
- propHasChanges = true;
3956
- }
3957
- if (state.groupByFunction !== _nextProps.groupByFunction && _nextProps.groupByFunction !== undefined) {
3958
- propHasChanges = true;
3959
- }
3960
- if (props.events && _nextProps.events && props.events.length !== _nextProps.events.length) {
3961
- propHasChanges = true;
3962
- }
3963
- if (state.events && _nextProps.events && state.events.length !== _nextProps.events.length) {
3964
- propHasChanges = true;
3965
- }
3966
- if (state.events && _nextProps.events && state.events.length > 0 && _nextProps.events.length > 0) {
3967
- // When an event has been updated.
3968
- if (state.events.length === _nextProps.events.length) {
3969
- for (let i = 0; i < props.events.length; i++) {
3970
- if (state.events[i].selected !== _nextProps.events[i].selected) {
3971
- propHasChanges = true;
3972
- }
3973
- if (props.events[i].data.state !== undefined &&
3974
- props.events[i].data.state !== _nextProps.events[i].data.state) {
3975
- propHasChanges = true;
3976
- }
3977
- if (props.events[i].data.start !== undefined &&
3978
- props.events[i].data.start !== _nextProps.events[i].data.start) {
3979
- propHasChanges = true;
3980
- }
3981
- if (props.events[i].data.end !== undefined && props.events[i].data.end !== _nextProps.events[i].data.end) {
3982
- propHasChanges = true;
3983
- }
3984
- if (props.events[i].data.remark !== undefined &&
3985
- props.events[i].data.remark !== _nextProps.events[i].data.remark) {
3986
- propHasChanges = true;
3987
- }
3988
- if (props.events[i].data.highPrio !== undefined &&
3989
- props.events[i].data.highPrio !== _nextProps.events[i].data.highPrio) {
3990
- propHasChanges = true;
3991
- }
3992
- if (props.events[i].data.VacID !== undefined &&
3993
- props.events[i].data.VacID !== _nextProps.events[i].data.VacID) {
3994
- propHasChanges = true;
3995
- }
3996
- if (props.events[i].data.Crew_Id !== undefined &&
3997
- props.events[i].data.Crew_Id !== _nextProps.events[i].data.Crew_Id) {
3998
- propHasChanges = true;
3999
- }
4000
- if (props.events[i].data.CrewComp !== undefined &&
4001
- props.events[i].data.CrewComp !== _nextProps.events[i].data.CrewComp) {
4002
- propHasChanges = true;
4003
- }
4004
- if (props.events[i].data.crewCompString !== undefined &&
4005
- props.events[i].data.crewCompString !== _nextProps.events[i].data.crewCompString) {
4006
- propHasChanges = true;
4007
- }
4008
- if (props.events[i].data.SplitDuty !== undefined &&
4009
- props.events[i].data.SplitDuty !== _nextProps.events[i].data.SplitDuty) {
4010
- propHasChanges = true;
4011
- }
4012
- if (props.events[i].data.firstNumber !== undefined &&
4013
- props.events[i].data.firstNumber !== _nextProps.events[i].data.firstNumber) {
4014
- propHasChanges = true;
4015
- }
4016
- if (props.events[i].data.CompRectList !== undefined &&
4017
- props.events[i].data.CompRectList !== _nextProps.events[i].data.CompRectList) {
4018
- propHasChanges = true;
4019
- }
4020
- if (props.events[i].data.Jumpseats !== undefined &&
4021
- props.events[i].data.Jumpseats !== _nextProps.events[i].data.Jumpseats) {
4022
- propHasChanges = true;
4023
- }
4024
- if (props.events[i].data.openJumpSeatsString !== undefined &&
4025
- props.events[i].data.openJumpSeatsString !== _nextProps.events[i].data.openJumpSeatsString) {
4026
- propHasChanges = true;
4027
- }
4028
- if (props.events[i].data.IsCrewchange !== undefined &&
4029
- props.events[i].data.IsCrewchange !== _nextProps.events[i].data.IsCrewchange) {
4030
- propHasChanges = true;
4031
- }
4032
- if (props.events[i].data.SStartApt !== undefined &&
4033
- props.events[i].data.SStartApt !== _nextProps.events[i].data.SStartApt) {
4034
- propHasChanges = true;
4035
- }
4036
- if (props.events[i].data.SEndApt !== undefined &&
4037
- props.events[i].data.SEndApt !== _nextProps.events[i].data.SEndApt) {
4038
- propHasChanges = true;
4039
- }
4040
- if (props.events[i].data.Instructor !== undefined &&
4041
- props.events[i].data.Instructor !== _nextProps.events[i].data.Instructor) {
4042
- propHasChanges = true;
4043
- }
4044
- if (props.events[i].data.Trainee !== undefined &&
4045
- props.events[i].data.Trainee !== _nextProps.events[i].data.Trainee) {
4046
- propHasChanges = true;
4047
- }
4048
- if (props.events[i].data.LineCheck !== undefined &&
4049
- props.events[i].data.LineCheck !== _nextProps.events[i].data.LineCheck) {
4050
- propHasChanges = true;
4051
- }
4052
- if (props.events[i].data.IsObserver !== undefined &&
4053
- props.events[i].data.IsObserver !== _nextProps.events[i].data.IsObserver) {
4054
- propHasChanges = true;
4055
- }
4056
- if (props.events[i].data.IsSplitDuty !== undefined &&
4057
- props.events[i].data.IsSplitDuty !== _nextProps.events[i].data.IsSplitDuty) {
4058
- propHasChanges = true;
4059
- }
4060
- if (props.events[i].data.Comment !== undefined &&
4061
- props.events[i].data.Comment !== _nextProps.events[i].data.Comment) {
4062
- propHasChanges = true;
4063
- }
4064
- if (props.events[i].data.InternalRemark !== undefined &&
4065
- props.events[i].data.InternalRemark !== _nextProps.events[i].data.InternalRemark) {
4066
- propHasChanges = true;
4067
- }
4068
- if (props.events[i].data.ExternalRemark !== undefined &&
4069
- props.events[i].data.ExternalRemark !== _nextProps.events[i].data.ExternalRemark) {
4070
- propHasChanges = true;
4071
- }
4072
- if (props.events[i].data.inserted !== undefined &&
4073
- props.events[i].data.inserted !== _nextProps.events[i].data.inserted) {
4074
- propHasChanges = true;
4075
- }
4076
- if (props.events[i].data.edited !== undefined &&
4077
- props.events[i].data.edited !== _nextProps.events[i].data.edited) {
4078
- propHasChanges = true;
4079
- }
4080
- if (props.events[i].data.deleted !== undefined &&
4081
- props.events[i].data.deleted !== _nextProps.events[i].data.deleted) {
4082
- propHasChanges = true;
4083
- }
4084
- if (props.events[i].data.MissingFunc !== undefined &&
4085
- props.events[i].data.MissingFunc !== _nextProps.events[i].data.MissingFunc) {
4086
- propHasChanges = true;
4087
- }
4088
- if (props.events[i].data.crewComposition_CompositionName !== undefined &&
4089
- props.events[i].data.crewComposition_CompositionName !==
4090
- _nextProps.events[i].data.crewComposition_CompositionName) {
4091
- propHasChanges = true;
4092
- }
4093
- if (props.events[i].data.subject !== undefined &&
4094
- props.events[i].data.subject !== _nextProps.events[i].data.subject) {
4095
- propHasChanges = true;
4096
- }
4097
- if (props.events[i].data.ACFTID !== undefined &&
4098
- props.events[i].data.ACFTID !== _nextProps.events[i].data.ACFTID) {
4099
- propHasChanges = true;
4100
- }
4101
- if (props.events[i].data.allAcftId !== undefined &&
4102
- props.events[i].data.allAcftId !== _nextProps.events[i].data.allAcftId) {
4103
- propHasChanges = true;
4104
- }
4105
- if (props.events[i].data.SCDcrew !== undefined &&
4106
- props.events[i].data.SCDcrew !== _nextProps.events[i].data.SCDcrew) {
4107
- propHasChanges = true;
4108
- }
4109
- if (props.events[i].data.C3_LC !== undefined &&
4110
- props.events[i].data.C3_LC !== _nextProps.events[i].data.C3_LC) {
4111
- propHasChanges = true;
4112
- }
4113
- }
4114
- }
4115
- }
4116
- if (state.showConsoleLogs) {
4117
- console.log("Schedule - componentWillReceiveProps - has changes, end: ", moment(new Date()).toString());
4118
- console.log("Schedule - componentWillReceiveProps - print on schedule, start: ", moment(new Date()).toString());
4119
- }
4120
- if (props.height !== _nextProps.height) {
4121
- propHasChanges = true;
4122
- }
4123
- if (props.pinnedResources !== _nextProps.pinnedResources) {
4124
- propHasChanges = true;
4125
- }
4126
- if (props.resources && _nextProps.resources && props.resources.length !== _nextProps.resources.length) {
4127
- propHasChanges = true;
4128
- }
4129
- if (props.resources && _nextProps.resources && props.resources.length > 0 && _nextProps.resources.length > 0) {
4130
- if (props.resources.length === _nextProps.resources.length) {
4131
- for (let i = 0; i < props.resources.length; i++) {
4132
- if (props.resources[i].isLoading !== _nextProps.resources[i].isLoading) {
4133
- propHasChanges = true;
4134
- }
4135
- if (props.resources[i].isInViewport !== _nextProps.resources[i].isInViewport) {
4136
- propHasChanges = true;
4137
- }
4138
- if (props.resources[i].data.isGroupedByFunction !== _nextProps.resources[i].data.isGroupedByFunction) {
4139
- propHasChanges = true;
4140
- }
4141
- if (props.resources[i].data.hasFunctionChangeInPeriod !== _nextProps.resources[i].data.hasFunctionChangeInPeriod) {
4142
- propHasChanges = true;
4143
- }
4144
- if (props.resources[i].data.hasTyperatingChangeInPeriod !==
4145
- _nextProps.resources[i].data.hasTyperatingChangeInPeriod) {
4146
- propHasChanges = true;
4147
- }
4148
- }
4149
- if (props.module === "CrewScheduling" && props.resourceName === "Employees") {
4150
- if (props.groupByFunction !== _nextProps.groupByFunction) {
4151
- propHasChanges = true;
4152
- }
4153
- }
4154
- }
4155
- }
4156
- return propHasChanges && _nextProps.resources.length > 0 && _nextProps.events.length > 0;
4157
- };
4158
-
4159
4069
  const getTimeHeaders = (startDate, endDate) => {
4160
4070
  const dateArray = new Array();
4161
4071
  const currentDate = new Date(startDate);
@@ -4208,7 +4118,6 @@ class CwScheduler extends React.Component {
4208
4118
  const dayPx = maxPx / Math.floor(daysBetweenTwoDates(props.startDate, props.endDate));
4209
4119
  const hourPx = dayPx / 24;
4210
4120
  const minutePx = dayPx / 1440;
4211
- // eslint-disable-next-line react/no-direct-mutation-state
4212
4121
  this.state = {
4213
4122
  startDate: props.startDate,
4214
4123
  endDate: props.endDate,
@@ -4241,12 +4150,10 @@ class CwScheduler extends React.Component {
4241
4150
  const minutePx = dayPx / 1440;
4242
4151
  const eventHeight = 30;
4243
4152
  resources = filterResources(this.props.module, this.props.resourceName, this.props.resources, this.props.groupByFunction, endDate, startDate);
4244
- const hasScrollBar = checkScrollBar(this.props.id);
4245
- console.log(this.props.id + "");
4246
4153
  resources = resources.map(resource => {
4247
4154
  return {
4248
4155
  ...resource,
4249
- events: getEventsOfResource(resource, events, this.state, this.props.id, this.props.module, startDate, endDate, hasScrollBar)
4156
+ events: getEventsOfResource(resource, events, this.state, this.props.id, this.props.module, startDate, endDate)
4250
4157
  };
4251
4158
  });
4252
4159
  const groupByFunction = this.props.groupByFunction ?? false;
@@ -4294,7 +4201,6 @@ class CwScheduler extends React.Component {
4294
4201
  window.addEventListener("resize", this.handleResize);
4295
4202
  };
4296
4203
  handleResize = () => { };
4297
- // eslint-disable-next-line react/no-deprecated
4298
4204
  componentWillReceiveProps(_nextProps) {
4299
4205
  if (this.state.showConsoleLogs) {
4300
4206
  console.log("Schedule - componentWillReceiveProps, start: ", moment(new Date()).toString());
@@ -4308,25 +4214,43 @@ class CwScheduler extends React.Component {
4308
4214
  });
4309
4215
  return;
4310
4216
  }
4311
- const hasOnlyResourcesChanged = _nextProps.resources.length !== this.state.resources.length && _nextProps.events.length === 0;
4312
- if (hasOnlyResourcesChanged) {
4313
- handleResourceChange(_nextProps, this.state.showConsoleLogs, this.state.dayPx, (events, resources) => {
4314
- this.setState({
4315
- events: events,
4316
- resources: resources
4317
- });
4318
- });
4319
- return;
4320
- }
4321
- if (getHasPropsChanges(this.props, this.state, _nextProps)) {
4322
- handlePropChanges(_nextProps, this.props, this.state, (events, resources) => {
4323
- this.setState({
4324
- events: events,
4325
- resources: resources
4326
- });
4327
- });
4328
- return;
4329
- }
4217
+ const mappedEvents = _nextProps.events
4218
+ .map(event => {
4219
+ return {
4220
+ ...event,
4221
+ leftPx: getLeftPixels(event.start, _nextProps.startDate, this.state.dayPx),
4222
+ rightPx: getRightPixels(event.end, _nextProps.endDate, this.state.dayPx) - 17
4223
+ };
4224
+ })
4225
+ .filter(event => {
4226
+ const outOfRange = event.end <= this.props.startDate || event.start >= this.props.endDate;
4227
+ // console.log(event.id + " is out of range" + outOfRange);
4228
+ return !outOfRange;
4229
+ });
4230
+ const newResources = _nextProps.resources
4231
+ .map(resource => {
4232
+ return {
4233
+ ...resource,
4234
+ events: mappedEvents.filter(event => event.resourceId === resource.id)
4235
+ };
4236
+ })
4237
+ .map(resource => {
4238
+ const tops = getEventsInInnerRows(resource, this.state, _nextProps.startDate, _nextProps.endDate);
4239
+ const height = tops.length === 0 ? this.state.eventHeight : tops.length * this.state.eventHeight;
4240
+ let flatMapEvents = [];
4241
+ for (let h = 0; h < tops.length; h++) {
4242
+ flatMapEvents = flatMapEvents.concat(tops[h]);
4243
+ }
4244
+ return {
4245
+ ...resource,
4246
+ maxTop: height,
4247
+ events: flatMapEvents
4248
+ };
4249
+ });
4250
+ this.setState({
4251
+ events: mappedEvents,
4252
+ resources: newResources
4253
+ });
4330
4254
  }
4331
4255
  handleOnClickContextMenuResourceScheduler = (_clickEvent, _resource) => {
4332
4256
  let datetime = new Date();
@@ -4364,9 +4288,9 @@ class CwScheduler extends React.Component {
4364
4288
  endDate: this.state.endDate,
4365
4289
  headerName: this.props.resourceName
4366
4290
  }, descriptionColumn: this.props.descriptionColumn })), jsx("tbody", { style: {
4367
- overflowY: isPinnedTable ? "hidden" : "scroll",
4291
+ overflowY: "scroll",
4368
4292
  maxHeight: isPinnedTable ? undefined : schedulerHeight
4369
- }, className: this.props.id.toLowerCase().includes("pinned") ? "fc-body cw-fc-body-pinned" : "fc-body", children: jsxs("tr", { className: "fc_body_row", ref: this.refRowResourceArea, children: [jsx(ResourcesTitleList, { resources: this.state.resources, canBePinned: this.props.canBePinned ?? false, includesPinned: this.props.id.toLowerCase().includes("pinned"), onCrewPinning: this.handleCrewPinning, onClickResourceContextMenu: this.handleOnClickResourceContextMenu, ResourceTitleComponent: this.props.resourceComp }), jsx("td", { className: "dividerArea" }), jsx(SchedulerContentArea, { maxPx: this.state.maxPx, schedulerId: this.id, showTimeline: showTimeline, now: this.state.nowUtc, lineStyle: this.state.lineStyle, resources: this.state.resources, contextMenuContents: this.props.resourceContextMenuContents, scheduler: this, onEmptyClick: this.props.scheduler_handleEmptyClick, setContentArea: n => (this.contentArea = n), onClickContextMenu: this.handleOnClickContextMenuResourceScheduler })] }) })] }) }));
4293
+ }, className: isPinnedTable ? "fc-body cw-fc-body-pinned" : "fc-body", children: jsxs("tr", { className: "fc_body_row", ref: this.refRowResourceArea, children: [jsx(ResourcesTitleList, { resources: this.state.resources, canBePinned: this.props.canBePinned ?? false, includesPinned: this.props.id.toLowerCase().includes("pinned"), onCrewPinning: this.handleCrewPinning, onClickResourceContextMenu: this.handleOnClickResourceContextMenu, ResourceTitleComponent: this.props.resourceComp }), jsx("td", { className: "dividerArea" }), jsx(SchedulerContentArea, { maxPx: this.state.maxPx, schedulerId: this.id, showTimeline: showTimeline, now: this.state.nowUtc, lineStyle: this.state.lineStyle, resources: this.state.resources, contextMenuContents: this.props.resourceContextMenuContents, scheduler: this, onEmptyClick: this.props.scheduler_handleEmptyClick, setContentArea: n => (this.contentArea = n), onClickContextMenu: this.handleOnClickContextMenuResourceScheduler })] }) })] }) }));
4370
4294
  }
4371
4295
  }
4372
4296
 
@@ -4603,13 +4527,17 @@ class SuperScheduler extends React.Component {
4603
4527
  }
4604
4528
  render() {
4605
4529
  const havePinnedResources = this.state.pinnedResources?.length > 0;
4606
- return (jsxs("div", { className: "cwelltSuperScheduler_content", children: [jsx(CwScheduler, { id: "crewPinnedScheduler", events: this.props.pinnedEvents !== undefined
4607
- ? this.props.pinnedEvents.filter(x => this.state.pinnedResources.includes(x.resourceId))
4608
- : new Array(), resources: havePinnedResources
4609
- ? this.props.resourcesToPin.filter(x => this.state.pinnedResources.includes(x.id))
4610
- : new Array(), height: this.state.height, startDate: this.props.startDate, endDate: this.props.endDate, scheduler_handleCblEventClick: this.props.scheduler_handleCblEventClick, scheduler_handleCblEventClickRight: this.props.scheduler_handleCblEventClickRight, scheduler_handleCblEventDoubleClick: this.props.scheduler_handleCblEventDoubleClick, scheduler_handleOnDropCblEventsOnResource: this.props.scheduler_handleOnDropCblEventsOnResource, parent: this.props.parent, cblEventComp: this.props.cblEventComp, scheduler_handleOnClickEventContextMenu: this.props.scheduler_handleOnClickEventContextMenu, resourceComp: this.props.resourceComp, scheduler_handleOnClickContextMenuResource: this.props.scheduler_handleOnClickContextMenuResource, resourceContextMenuContents: this.props.resourceContextMenuContents, scheduler_handleDblClickOnResourceInScheduler: this.props.scheduler_handleDblClickOnResourceInScheduler, scheduler_handleEmptyClick: this.props.scheduler_handleEmptyClick, canBePinned: false, scheduler_handlePinned: this.scheduler_handlePinnedClick, resourceName: this.props.resourceName, descriptionColumn: this.props.descriptionColumn, scheduler_handleOnClickResourceContextMenu: this.props.scheduler_handleOnClickResourceContextMenu, groupByFunction: this.props.groupByFunction }), havePinnedResources && (jsx("div", { style: { padding: "0.5rem" }, children: jsx(CwButton, { "$text": "Clear", onClick: () => {
4530
+ const firstSchedulerResources = havePinnedResources
4531
+ ? this.props.resourcesToPin.filter(x => this.state.pinnedResources.includes(x.id))
4532
+ : new Array();
4533
+ const secondSchedulerResources = this.props.resources.filter(x => !this.state.pinnedResources.includes(x.id));
4534
+ const pinnedEvents = this.props.pinnedEvents !== undefined
4535
+ ? this.props.pinnedEvents.filter(x => this.state.pinnedResources.includes(x.resourceId))
4536
+ : new Array();
4537
+ const notPinnedEvents = this.props.events.filter(x => !this.props.pinnedResources?.includes(x.resourceId));
4538
+ return (jsxs("div", { className: "cwelltSuperScheduler_content", children: [jsx(CwScheduler, { id: "crewPinnedScheduler", events: pinnedEvents, resources: firstSchedulerResources, height: this.state.height, startDate: this.props.startDate, endDate: this.props.endDate, scheduler_handleCblEventClick: this.props.scheduler_handleCblEventClick, scheduler_handleCblEventClickRight: this.props.scheduler_handleCblEventClickRight, scheduler_handleCblEventDoubleClick: this.props.scheduler_handleCblEventDoubleClick, scheduler_handleOnDropCblEventsOnResource: this.props.scheduler_handleOnDropCblEventsOnResource, parent: this.props.parent, cblEventComp: this.props.cblEventComp, scheduler_handleOnClickEventContextMenu: this.props.scheduler_handleOnClickEventContextMenu, resourceComp: this.props.resourceComp, scheduler_handleOnClickContextMenuResource: this.props.scheduler_handleOnClickContextMenuResource, resourceContextMenuContents: this.props.resourceContextMenuContents, scheduler_handleDblClickOnResourceInScheduler: this.props.scheduler_handleDblClickOnResourceInScheduler, scheduler_handleEmptyClick: this.props.scheduler_handleEmptyClick, canBePinned: false, scheduler_handlePinned: this.scheduler_handlePinnedClick, resourceName: this.props.resourceName, descriptionColumn: this.props.descriptionColumn, scheduler_handleOnClickResourceContextMenu: this.props.scheduler_handleOnClickResourceContextMenu, groupByFunction: this.props.groupByFunction }), havePinnedResources && (jsx("div", { style: { padding: "0.5rem" }, children: jsx(CwButton, { "$text": "Clear", onClick: () => {
4611
4539
  this.props.scheduler_handleClearPinnedOnParent();
4612
- } }) })), jsx(CwScheduler, { id: "crewAssignmentsScheduler", events: this.props.events.filter(x => !this.props.pinnedResources?.includes(x.resourceId)), resources: this.props.resources.filter(x => !this.state.pinnedResources.includes(x.id)), height: this.props.height, startDate: this.props.startDate, endDate: this.props.endDate, scheduler_handleCblEventClick: this.props.scheduler_handleCblEventClick, scheduler_handleCblEventClickRight: this.props.scheduler_handleCblEventClickRight, scheduler_handleCblEventDoubleClick: this.props.scheduler_handleCblEventDoubleClick, scheduler_handleOnDropCblEventsOnResource: this.props.scheduler_handleOnDropCblEventsOnResource, parent: this.props.parent, cblEventComp: this.props.cblEventComp, scheduler_handleOnClickEventContextMenu: this.props.scheduler_handleOnClickEventContextMenu, resourceComp: this.props.resourceComp, scheduler_handleOnClickContextMenuResource: this.handleOnClickContextMenuResource, resourceContextMenuContents: this.props.resourceContextMenuContents, scheduler_handleDblClickOnResourceInScheduler: this.props.scheduler_handleDblClickOnResourceInScheduler, scheduler_handleEmptyClick: this.props.scheduler_handleEmptyClick, canBePinned: true, scheduler_handlePinned: this.scheduler_handlePinnedClick, scheduler_handleCblEventResize: this.props.scheduler_handleCblEventResize, resourceName: this.props.resourceName, descriptionColumn: this.props.descriptionColumn, scheduler_handleOnClickResourceContextMenu: this.props.scheduler_handleOnClickResourceContextMenu, airportSelected: this.props.airportSelected, module: this.props.module, groupByFunction: this.props.groupByFunction })] }));
4540
+ } }) })), jsx(CwScheduler, { id: "crewAssignmentsScheduler", events: notPinnedEvents, resources: secondSchedulerResources, height: this.props.height, startDate: this.props.startDate, endDate: this.props.endDate, scheduler_handleCblEventClick: this.props.scheduler_handleCblEventClick, scheduler_handleCblEventClickRight: this.props.scheduler_handleCblEventClickRight, scheduler_handleCblEventDoubleClick: this.props.scheduler_handleCblEventDoubleClick, scheduler_handleOnDropCblEventsOnResource: this.props.scheduler_handleOnDropCblEventsOnResource, parent: this.props.parent, cblEventComp: this.props.cblEventComp, scheduler_handleOnClickEventContextMenu: this.props.scheduler_handleOnClickEventContextMenu, resourceComp: this.props.resourceComp, scheduler_handleOnClickContextMenuResource: this.handleOnClickContextMenuResource, resourceContextMenuContents: this.props.resourceContextMenuContents, scheduler_handleDblClickOnResourceInScheduler: this.props.scheduler_handleDblClickOnResourceInScheduler, scheduler_handleEmptyClick: this.props.scheduler_handleEmptyClick, canBePinned: true, scheduler_handlePinned: this.scheduler_handlePinnedClick, scheduler_handleCblEventResize: this.props.scheduler_handleCblEventResize, resourceName: this.props.resourceName, descriptionColumn: this.props.descriptionColumn, scheduler_handleOnClickResourceContextMenu: this.props.scheduler_handleOnClickResourceContextMenu, airportSelected: this.props.airportSelected, module: this.props.module, groupByFunction: this.props.groupByFunction })] }));
4613
4541
  }
4614
4542
  }
4615
4543
  class CblDragAndDrop {
@@ -4786,26 +4714,6 @@ const generateSegment = (includeHyphens) => {
4786
4714
  return includeHyphens ? "-" + p.substring(0, 4) + "-" + p.substring(4, 8) : p;
4787
4715
  };
4788
4716
 
4789
- class Resource {
4790
- uid = "";
4791
- id;
4792
- name;
4793
- maxTop;
4794
- events = [];
4795
- isInViewport = false;
4796
- schedulerResourceDisplay;
4797
- isLoading = false;
4798
- data = null;
4799
- constructor(id, name, eventHeight, data = null, schedulerResourceDisplay = null) {
4800
- this.id = id;
4801
- this.name = name;
4802
- this.maxTop = eventHeight;
4803
- this.data = data;
4804
- this.schedulerResourceDisplay = schedulerResourceDisplay || this.name;
4805
- this.uid = getGUID();
4806
- }
4807
- }
4808
-
4809
4717
  class cblEvent {
4810
4718
  id = "";
4811
4719
  start;
@@ -4833,4 +4741,24 @@ class cblEvent {
4833
4741
  }
4834
4742
  }
4835
4743
 
4836
- export { CblDragAndDrop, CwAccordionContainer, CwAlign, CwBtnAdd, CwBtnAddFolder, CwBtnAddMarked, CwBtnAddMarkedSolid, CwBtnAirport, CwBtnAlert, CwBtnApprove, CwBtnArchive, CwBtnArchiveRestore, CwBtnBookMark, CwBtnBookMarkLinkPage, CwBtnBookReadedLine, CwBtnBookReadedSolid, CwBtnBulkDuty, CwBtnCancel, CwBtnCloudFolder, CwBtnCopy, CwBtnCrewPlanning, CwBtnDelay, CwBtnDelete, CwBtnDocumentChecked, CwBtnDocumentPublished, CwBtnDownLoadAllInfo, CwBtnDownLoadFolder, CwBtnDownload, CwBtnDropDownMenu, CwBtnEdit, CwBtnEditFolder, CwBtnEmptytrash, CwBtnFiles, CwBtnFolderIn, CwBtnFulltrash, CwBtnGeneratePairing, CwBtnGoBackFolder, CwBtnHide, CwBtnImportRequests, CwBtnInfo, CwBtnMVT, CwBtnMarked, CwBtnMarkedSolid, CwBtnNavFirstItemView, CwBtnNavLastItemView, CwBtnNavNextDay, CwBtnNavPreviewItem, CwBtnOneDrive, CwBtnPairing, CwBtnPictureFolder, CwBtnPin, CwBtnPrint, CwBtnPropertyFolder, CwBtnPublish, CwBtnRefresh, CwBtnReleasePeriod, CwBtnRestoreTrash, CwBtnRestoreTrashRight, CwBtnSave, CwBtnSearch, CwBtnSelect, CwBtnSelectedFolder, CwBtnSelectedSave, CwBtnShare, CwBtnStatistic, CwBtnUndo, CwBtnUploadFiles, CwBtnUserFolder, CwBtnUsers, CwBtnVacations, CwBtnView, CwBtnWarning, CwButton, CwButtonDanger, CwButtonDangerOutline, CwButtonDef, CwButtonDefOutline, CwButtonExpandAndCollapse, CwButtonSec, CwButtonSecOutline, CwCheckbox, CwContextMenu, CwDigit, CwDisplayMessage, CwDropdown, CwDropdownContainer, CwDropdownFilter, CwDropdownNavigation, CwExpandable, CwFileUpload, CwFindAirport, CwFloatingButton, CwHeadFilter, CwHeadingMain, CwHeadingSecond, CwIcon, CwImageArea, CwInput, CwInputDate$1 as CwInputDate, CwInputDatePicker, CwInputDateText, CwInputDate as CwInputDatetime, CwInputImage, CwInputNumber, CwInputPhone, CwInputText, CwLabel, CwLoading, CwLoadingSmall, CwMessage, CwMessageManager, CwMessageType, CwModal, CwModalConfirm, CwModalHover, CwModalIframe, CwMultiFilter, CwMultiFilterTag, CwMultiselect, CwOption, CwOptionList, CwReportModal, CwScheduler, CwSearch as CwSearchInput, CwSelect, CwSelectList, CwSelectListItems, SuperScheduler as CwSuperScheduler, CwTable, CwTableGrouped, CwTabs, CwTag, CwTextArea, CwTime, CwToggle, CwTooltip, MultiSelect, Resource, cblEvent, useCwMessage };
4744
+ class Resource {
4745
+ uid = "";
4746
+ id;
4747
+ name;
4748
+ maxTop;
4749
+ events = [];
4750
+ isInViewport = false;
4751
+ schedulerResourceDisplay;
4752
+ isLoading = false;
4753
+ data = null;
4754
+ constructor(id, name, eventHeight, data = null, schedulerResourceDisplay = null) {
4755
+ this.id = id;
4756
+ this.name = name;
4757
+ this.maxTop = eventHeight;
4758
+ this.data = data;
4759
+ this.schedulerResourceDisplay = schedulerResourceDisplay || this.name;
4760
+ this.uid = getGUID();
4761
+ }
4762
+ }
4763
+
4764
+ export { CblDragAndDrop, CwAccordionContainer, CwAlign, CwBtnAdd, CwBtnAddFolder, CwBtnAddMarked, CwBtnAddMarkedSolid, CwBtnAirport, CwBtnAlert, CwBtnApprove, CwBtnArchive, CwBtnArchiveRestore, CwBtnBookMark, CwBtnBookMarkLinkPage, CwBtnBookReadedLine, CwBtnBookReadedSolid, CwBtnBulkDuty, CwBtnCancel, CwBtnCloudFolder, CwBtnCopy, CwBtnCrewPlanning, CwBtnDelay, CwBtnDelete, CwBtnDocumentChecked, CwBtnDocumentPublished, CwBtnDownLoadAllInfo, CwBtnDownLoadFolder, CwBtnDownload, CwBtnDropDownMenu, CwBtnEdit, CwBtnEditFolder, CwBtnEmptytrash, CwBtnFiles, CwBtnFolderIn, CwBtnFulltrash, CwBtnGeneratePairing, CwBtnGoBackFolder, CwBtnHide, CwBtnImportRequests, CwBtnInfo, CwBtnMVT, CwBtnMarked, CwBtnMarkedSolid, CwBtnNavFirstItemView, CwBtnNavLastItemView, CwBtnNavNextDay, CwBtnNavPreviewItem, CwBtnOneDrive, CwBtnPairing, CwBtnPictureFolder, CwBtnPin, CwBtnPrint, CwBtnPropertyFolder, CwBtnPublish, CwBtnRefresh, CwBtnReleasePeriod, CwBtnRestoreTrash, CwBtnRestoreTrashRight, CwBtnSave, CwBtnSearch, CwBtnSelect, CwBtnSelectedFolder, CwBtnSelectedSave, CwBtnShare, CwBtnStatistic, CwBtnUndo, CwBtnUploadFiles, CwBtnUserFolder, CwBtnUsers, CwBtnVacations, CwBtnView, CwBtnWarning, CwButton, CwButtonDanger, CwButtonDangerOutline, CwButtonDef, CwButtonDefOutline, CwButtonSec, CwButtonSecOutline, CwCheckbox, CwContextMenu, CwDialog, CwDialogManager, CwDigit, CwDisplayMessage, CwDropdown, CwDropdownContainer, CwDropdownFilter, CwDropdownNavigation, CwExpandable, CwFileUpload, CwFindAirport, CwFloatingButton, CwHeadFilter, CwHeadingMain, CwHeadingSecond, CwIcon, CwImageArea, CwInput, CwInputDate$1 as CwInputDate, CwInputDatePicker, CwInputDateText, CwInputDate as CwInputDatetime, CwInputImage, CwInputNumber, CwInputPhone, CwInputText, CwLabel, CwLoading, CwLoadingSmall, CwMessage, CwMessageManager, CwMessageType, CwModal, CwModalConfirm, CwModalHover, CwModalIframe, CwMultiFilter, CwMultiFilterTag, CwMultiselect, CwOption, CwOptionList, CwReportModal, CwScheduler, CwSearch as CwSearchInput, CwSelect, CwSelectList, CwSelectListItems, SuperScheduler as CwSuperScheduler, CwTable, CwTableGrouped, CwTabs, CwTag, CwTextArea, CwTime, CwToggle, CwTooltip, CwWeekdaySelector, MultiSelect, Resource, Weekdays, cblEvent, itemsToMultiFilterTags, useCwMessage };