@cwellt_software/cwellt-reactjs-lib 1.0.0 → 1.0.3
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.
- package/dist/assets/asset-Boimp3FS +46 -0
- package/dist/assets/asset-CIKjURuf +48 -0
- package/dist/assets/asset-DO0cv1ff +51 -0
- package/dist/assets/asset-DitoBYw6 +51 -0
- package/dist/common/classes/CwSelectList.d.ts +8 -0
- package/dist/common/classes/CwSelectList.d.ts.map +1 -0
- package/dist/common/classes/CwSelectListItems.d.ts +9 -0
- package/dist/common/classes/CwSelectListItems.d.ts.map +1 -0
- package/dist/common/functions/collections.d.ts +5 -0
- package/dist/common/functions/collections.d.ts.map +1 -0
- package/dist/common/functions/reactor.d.ts +2 -0
- package/dist/common/functions/reactor.d.ts.map +1 -0
- package/dist/common/interfaces/CwSelectListProps.d.ts +9 -0
- package/dist/common/interfaces/CwSelectListProps.d.ts.map +1 -0
- package/dist/components/control/action/button/CwButton.d.ts +7 -0
- package/dist/components/control/action/button/CwButton.d.ts.map +1 -0
- package/dist/components/control/action/buttons/CwButtons.d.ts +326 -0
- package/dist/components/control/action/buttons/CwButtons.d.ts.map +1 -0
- package/dist/components/control/action/contextmenu/CwContextMenu.d.ts +33 -0
- package/dist/components/control/action/contextmenu/CwContextMenu.d.ts.map +1 -0
- package/dist/components/control/action/search/CwSearch.d.ts +18 -0
- package/dist/components/control/action/search/CwSearch.d.ts.map +1 -0
- package/dist/components/control/action/tooltip-dialog/CwTooltipDialog.d.ts +21 -0
- package/dist/components/control/action/tooltip-dialog/CwTooltipDialog.d.ts.map +1 -0
- package/dist/components/control/choice/checkbox/CwCheckbox.d.ts +19 -0
- package/dist/components/control/choice/checkbox/CwCheckbox.d.ts.map +1 -0
- package/dist/components/control/choice/deprecated/MultiSelect_deprecated_.d.ts +24 -0
- package/dist/components/control/choice/deprecated/MultiSelect_deprecated_.d.ts.map +1 -0
- package/dist/components/control/choice/dropdown/CwDropdown.d.ts +21 -0
- package/dist/components/control/choice/dropdown/CwDropdown.d.ts.map +1 -0
- package/dist/components/control/choice/dropdown/CwDropdownContainer.d.ts +19 -0
- package/dist/components/control/choice/dropdown/CwDropdownContainer.d.ts.map +1 -0
- package/dist/components/control/choice/dropdown/CwDropdownFilter.d.ts +32 -0
- package/dist/components/control/choice/dropdown/CwDropdownFilter.d.ts.map +1 -0
- package/dist/components/control/choice/dropdown/CwDropdownNavigation.d.ts +23 -0
- package/dist/components/control/choice/dropdown/CwDropdownNavigation.d.ts.map +1 -0
- package/dist/components/control/choice/multi-filter/CwMultiFilter.d.ts +68 -0
- package/dist/components/control/choice/multi-filter/CwMultiFilter.d.ts.map +1 -0
- package/dist/components/control/choice/multi-filter/components/tag/CwMultiFilterTag.d.ts +34 -0
- package/dist/components/control/choice/multi-filter/components/tag/CwMultiFilterTag.d.ts.map +1 -0
- package/dist/components/control/choice/multiselect/CwHeadFilter.d.ts +18 -0
- package/dist/components/control/choice/multiselect/CwHeadFilter.d.ts.map +1 -0
- package/dist/components/control/choice/multiselect/CwMultiselect.d.ts +15 -0
- package/dist/components/control/choice/multiselect/CwMultiselect.d.ts.map +1 -0
- package/dist/components/control/choice/multiselect/CwOptionList.d.ts +17 -0
- package/dist/components/control/choice/multiselect/CwOptionList.d.ts.map +1 -0
- package/dist/components/control/choice/option/CwOption.d.ts +17 -0
- package/dist/components/control/choice/option/CwOption.d.ts.map +1 -0
- package/dist/components/control/choice/select/CwSelect.d.ts +49 -0
- package/dist/components/control/choice/select/CwSelect.d.ts.map +1 -0
- package/dist/components/control/choice/toggle/CwToggle.d.ts +36 -0
- package/dist/components/control/choice/toggle/CwToggle.d.ts.map +1 -0
- package/dist/components/control/input/any/CwInput.d.ts +19 -0
- package/dist/components/control/input/any/CwInput.d.ts.map +1 -0
- package/dist/components/control/input/chipper/CwChip.d.ts +16 -0
- package/dist/components/control/input/chipper/CwChip.d.ts.map +1 -0
- package/dist/components/control/input/date/CwInputDate.d.ts +40 -0
- package/dist/components/control/input/date/CwInputDate.d.ts.map +1 -0
- package/dist/components/control/input/date-picker/CwInputDatePicker.d.ts +7 -0
- package/dist/components/control/input/date-picker/CwInputDatePicker.d.ts.map +1 -0
- package/dist/components/control/input/date-text/CwInputDateText.d.ts +39 -0
- package/dist/components/control/input/date-text/CwInputDateText.d.ts.map +1 -0
- package/dist/components/control/input/datetime/CwInputDatetime.d.ts +40 -0
- package/dist/components/control/input/datetime/CwInputDatetime.d.ts.map +1 -0
- package/dist/components/control/input/digit/CwDigit.d.ts +40 -0
- package/dist/components/control/input/digit/CwDigit.d.ts.map +1 -0
- package/dist/components/control/input/file/CwFileUpload.d.ts +20 -0
- package/dist/components/control/input/file/CwFileUpload.d.ts.map +1 -0
- package/dist/components/control/input/image/CwInputImage.d.ts +11 -0
- package/dist/components/control/input/image/CwInputImage.d.ts.map +1 -0
- package/dist/components/control/input/image-area/CwImageArea.d.ts +58 -0
- package/dist/components/control/input/image-area/CwImageArea.d.ts.map +1 -0
- package/dist/components/control/input/number/CwInputNumber.d.ts +22 -0
- package/dist/components/control/input/number/CwInputNumber.d.ts.map +1 -0
- package/dist/components/control/input/phone/CwInputPhone.d.ts +36 -0
- package/dist/components/control/input/phone/CwInputPhone.d.ts.map +1 -0
- package/dist/components/control/input/text/CwInputText.d.ts +40 -0
- package/dist/components/control/input/text/CwInputText.d.ts.map +1 -0
- package/dist/components/control/input/text-area/CwTextArea.d.ts +25 -0
- package/dist/components/control/input/text-area/CwTextArea.d.ts.map +1 -0
- package/dist/components/control/input/time/CwTime.d.ts +40 -0
- package/dist/components/control/input/time/CwTime.d.ts.map +1 -0
- package/dist/components/custom/find-airport/CwFindAirportComp.d.ts +32 -0
- package/dist/components/custom/find-airport/CwFindAirportComp.d.ts.map +1 -0
- package/dist/components/custom/scheduler/CwSchedulerComp.d.ts +39 -0
- package/dist/components/custom/scheduler/CwSchedulerComp.d.ts.map +1 -0
- package/dist/components/custom/scheduler/CwSuperSchedulerComp.d.ts +101 -0
- package/dist/components/custom/scheduler/CwSuperSchedulerComp.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/ClearSchedulerButton.d.ts +7 -0
- package/dist/components/custom/scheduler/components/ClearSchedulerButton.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/EventRender.d.ts +3 -0
- package/dist/components/custom/scheduler/components/EventRender.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/ResourceListRender.d.ts +17 -0
- package/dist/components/custom/scheduler/components/ResourceListRender.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/ResourceRender.d.ts +15 -0
- package/dist/components/custom/scheduler/components/ResourceRender.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/day_headers/DayHeader.d.ts +10 -0
- package/dist/components/custom/scheduler/components/day_headers/DayHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/day_headers/MonthHeader.d.ts +10 -0
- package/dist/components/custom/scheduler/components/day_headers/MonthHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/day_headers/MyDaysHeader.d.ts +10 -0
- package/dist/components/custom/scheduler/components/day_headers/MyDaysHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/day_headers/WeekHeader.d.ts +10 -0
- package/dist/components/custom/scheduler/components/day_headers/WeekHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/resources_title_list/ResourcesTitleList.d.ts +14 -0
- package/dist/components/custom/scheduler/components/resources_title_list/ResourcesTitleList.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/scheduler_content_area/SchedulerContentArea.d.ts +24 -0
- package/dist/components/custom/scheduler/components/scheduler_content_area/SchedulerContentArea.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/scheduler_header/SchedulerHeader.d.ts +8 -0
- package/dist/components/custom/scheduler/components/scheduler_header/SchedulerHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/scheduler_timeline/SchedulerTimeLine.d.ts +11 -0
- package/dist/components/custom/scheduler/components/scheduler_timeline/SchedulerTimeLine.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/time_headers/TimeHeader.d.ts +11 -0
- package/dist/components/custom/scheduler/components/time_headers/TimeHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/time_headers/TimeHeaderRow.d.ts +10 -0
- package/dist/components/custom/scheduler/components/time_headers/TimeHeaderRow.d.ts.map +1 -0
- package/dist/components/custom/scheduler/components/time_line/TimeLine.d.ts +7 -0
- package/dist/components/custom/scheduler/components/time_line/TimeLine.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/addMinutesToDateFromPx.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/dates/addMinutesToDateFromPx.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDates.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDates.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDatesWithoutCeil.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/dates/daysBetweenTwoDatesWithoutCeil.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/getFormatedTimeForHeader.d.ts +11 -0
- package/dist/components/custom/scheduler/logic/dates/getFormatedTimeForHeader.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/getMonthHeaderData.d.ts +10 -0
- package/dist/components/custom/scheduler/logic/dates/getMonthHeaderData.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/getUtcToday.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/dates/getUtcToday.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/getWeekHeaderDataFromWeekRange.d.ts +11 -0
- package/dist/components/custom/scheduler/logic/dates/getWeekHeaderDataFromWeekRange.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/dates/listOfDatesToWeeks.d.ts +8 -0
- package/dist/components/custom/scheduler/logic/dates/listOfDatesToWeeks.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/divisions/calculateDivisionType.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/divisions/calculateDivisionType.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/divisions/calculateDivisions.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/divisions/calculateDivisions.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts +19 -0
- package/dist/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/filtering/filterEvents.d.ts +10 -0
- package/dist/components/custom/scheduler/logic/filtering/filterEvents.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/filtering/filterResources.d.ts +10 -0
- package/dist/components/custom/scheduler/logic/filtering/filterResources.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/filtering/hasSameProperties.d.ts +3 -0
- package/dist/components/custom/scheduler/logic/filtering/hasSameProperties.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/onDrop/OnDrop.d.ts +14 -0
- package/dist/components/custom/scheduler/logic/onDrop/OnDrop.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts +7 -0
- package/dist/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/pixels/getPixelsForEvent.d.ts +8 -0
- package/dist/components/custom/scheduler/logic/pixels/getPixelsForEvent.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/pixels/heightScheduler.d.ts +6 -0
- package/dist/components/custom/scheduler/logic/pixels/heightScheduler.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/pixels/heightSchedulerPinned.d.ts +6 -0
- package/dist/components/custom/scheduler/logic/pixels/heightSchedulerPinned.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts +10 -0
- package/dist/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts +11 -0
- package/dist/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/state_handle/handleResourceChange.d.ts +10 -0
- package/dist/components/custom/scheduler/logic/state_handle/handleResourceChange.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/strings/compareStrings.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/strings/compareStrings.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/strings/getGUID.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/strings/getGUID.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/ui/checkIfSlotAvailable.d.ts +3 -0
- package/dist/components/custom/scheduler/logic/ui/checkIfSlotAvailable.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/ui/getEventsOfResource.d.ts +13 -0
- package/dist/components/custom/scheduler/logic/ui/getEventsOfResource.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts +8 -0
- package/dist/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/ui/getTimeHeaders.d.ts +2 -0
- package/dist/components/custom/scheduler/logic/ui/getTimeHeaders.d.ts.map +1 -0
- package/dist/components/custom/scheduler/logic/ui/isAllowedToMove.d.ts +3 -0
- package/dist/components/custom/scheduler/logic/ui/isAllowedToMove.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/CblDragAndDrop.d.ts +19 -0
- package/dist/components/custom/scheduler/state/CblDragAndDrop.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/CwSchedulerProps.d.ts +48 -0
- package/dist/components/custom/scheduler/state/CwSchedulerProps.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/EventProps.d.ts +7 -0
- package/dist/components/custom/scheduler/state/EventProps.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/Resource.d.ts +14 -0
- package/dist/components/custom/scheduler/state/Resource.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/State.d.ts +25 -0
- package/dist/components/custom/scheduler/state/State.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/cblEvent.d.ts +26 -0
- package/dist/components/custom/scheduler/state/cblEvent.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/cblEventCompProps.d.ts +7 -0
- package/dist/components/custom/scheduler/state/cblEventCompProps.d.ts.map +1 -0
- package/dist/components/custom/scheduler/state/resourceCompProps2.d.ts +6 -0
- package/dist/components/custom/scheduler/state/resourceCompProps2.d.ts.map +1 -0
- package/dist/components/display/data/accordion/CwAccordionContainer.d.ts +16 -0
- package/dist/components/display/data/accordion/CwAccordionContainer.d.ts.map +1 -0
- package/dist/components/display/data/table/CwTable.d.ts +130 -0
- package/dist/components/display/data/table/CwTable.d.ts.map +1 -0
- package/dist/components/display/graphics/icon/CwIcon.d.ts +14 -0
- package/dist/components/display/graphics/icon/CwIcon.d.ts.map +1 -0
- package/dist/components/display/graphics/loading/CwLoading.d.ts +19 -0
- package/dist/components/display/graphics/loading/CwLoading.d.ts.map +1 -0
- package/dist/components/display/graphics/loading-small/CwLoadingSmall.d.ts +8 -0
- package/dist/components/display/graphics/loading-small/CwLoadingSmall.d.ts.map +1 -0
- package/dist/components/display/text/heading/CwHeadingMain.d.ts +5 -0
- package/dist/components/display/text/heading/CwHeadingMain.d.ts.map +1 -0
- package/dist/components/display/text/heading/CwHeadingSecond.d.ts +5 -0
- package/dist/components/display/text/heading/CwHeadingSecond.d.ts.map +1 -0
- package/dist/components/display/text/label/CwLabel.d.ts +28 -0
- package/dist/components/display/text/label/CwLabel.d.ts.map +1 -0
- package/dist/components/display/text/message/CwMessage.d.ts +31 -0
- package/dist/components/display/text/message/CwMessage.d.ts.map +1 -0
- package/dist/components/display/text/tag/CwTag.d.ts +16 -0
- package/dist/components/display/text/tag/CwTag.d.ts.map +1 -0
- package/dist/components/display/text/tooltip/CwTooltip.d.ts +10 -0
- package/dist/components/display/text/tooltip/CwTooltip.d.ts.map +1 -0
- package/dist/components/layout/align/CwAlign.d.ts +53 -0
- package/dist/components/layout/align/CwAlign.d.ts.map +1 -0
- package/dist/components/layout/list/details/CwExpandable.d.ts +23 -0
- package/dist/components/layout/list/details/CwExpandable.d.ts.map +1 -0
- package/dist/components/layout/modal/hover/CwModalHover.d.ts +19 -0
- package/dist/components/layout/modal/hover/CwModalHover.d.ts.map +1 -0
- package/dist/components/layout/modal/legacy/cw_modal.d.ts +24 -0
- package/dist/components/layout/modal/legacy/cw_modal.d.ts.map +1 -0
- package/dist/components/layout/modal/legacy/cw_modal_confirm.d.ts +19 -0
- package/dist/components/layout/modal/legacy/cw_modal_confirm.d.ts.map +1 -0
- package/dist/components/layout/modal/legacy/cw_modal_iframe.d.ts +21 -0
- package/dist/components/layout/modal/legacy/cw_modal_iframe.d.ts.map +1 -0
- package/dist/components/layout/modal/legacy/cw_modal_report.d.ts +35 -0
- package/dist/components/layout/modal/legacy/cw_modal_report.d.ts.map +1 -0
- package/dist/components/layout/table/grouped/CwTableGrouped.d.ts +80 -0
- package/dist/components/layout/table/grouped/CwTableGrouped.d.ts.map +1 -0
- package/dist/components/layout/tabs/CwTabs.d.ts +37 -0
- package/dist/components/layout/tabs/CwTabs.d.ts.map +1 -0
- package/dist/content/icons/new-cw-icons/NewCwIcons.html +2 -2
- package/dist/content/icons/new-cw-icons/NewCwIcons.json +1 -1
- package/dist/content/icons/new-cw-icons/css/new-cw-icons.css +3 -1
- package/dist/content/icons/new-cw-icons/fonts/NewCwIcons.woff +0 -0
- package/dist/index.cjs.js +687 -514
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +2 -4
- package/dist/index.css.map +1 -1
- package/dist/index.d.ts +206 -192
- package/dist/index.es.js +688 -515
- package/dist/index.es.js.map +1 -0
- package/dist/index.esm.js +621 -693
- package/dist/index.esm.js.map +1 -0
- package/dist/src/common/functions/colorManipulation.d.ts +6 -0
- package/dist/src/common/functions/colorManipulation.d.ts.map +1 -0
- package/dist/src/common/functions/reactor.d.ts +0 -1
- package/dist/src/common/functions/useSingleAndDoubleClicks.d.ts.map +1 -1
- package/dist/src/components/control/action/button/CwButton.d.ts +1 -1
- package/dist/src/components/control/action/button/CwButton.d.ts.map +1 -1
- package/dist/src/components/control/choice/multi-filter/CwMultiFilter.d.ts +5 -5
- package/dist/src/components/control/choice/option/CwOption.d.ts +1 -1
- package/dist/src/components/control/choice/option/CwOption.d.ts.map +1 -1
- package/dist/src/components/control/choice/select/CwSelect.d.ts +11 -11
- package/dist/src/components/control/choice/select/CwSelect.d.ts.map +1 -1
- package/dist/src/components/control/choice/toggle/CwToggle.d.ts +8 -8
- package/dist/src/components/control/choice/toggle/CwToggle.d.ts.map +1 -1
- package/dist/src/components/control/input/chipper/CwChip.d.ts +4 -4
- package/dist/src/components/control/input/chipper/CwChip.d.ts.map +1 -1
- package/dist/src/components/control/input/date/CwInputDate.d.ts +11 -11
- package/dist/src/components/control/input/date/CwInputDate.d.ts.map +1 -1
- package/dist/src/components/control/input/date-text/CwInputDateText.d.ts +8 -8
- package/dist/src/components/control/input/date-text/CwInputDateText.d.ts.map +1 -1
- package/dist/src/components/control/input/datetime/CwInputDatetime.d.ts +11 -11
- package/dist/src/components/control/input/datetime/CwInputDatetime.d.ts.map +1 -1
- package/dist/src/components/control/input/digit/CwDigit.d.ts +11 -11
- package/dist/src/components/control/input/digit/CwDigit.d.ts.map +1 -1
- package/dist/src/components/control/input/file/CwFileUpload.d.ts.map +1 -1
- package/dist/src/components/control/input/image/CwInputImage.d.ts +1 -1
- package/dist/src/components/control/input/image/CwInputImage.d.ts.map +1 -1
- package/dist/src/components/control/input/image-area/CwImageArea.d.ts +7 -7
- package/dist/src/components/control/input/image-area/CwImageArea.d.ts.map +1 -1
- package/dist/src/components/control/input/phone/CwInputPhone.d.ts +9 -9
- package/dist/src/components/control/input/phone/CwInputPhone.d.ts.map +1 -1
- package/dist/src/components/control/input/text/CwInputText.d.ts +11 -11
- package/dist/src/components/control/input/text/CwInputText.d.ts.map +1 -1
- package/dist/src/components/control/input/text-area/CwTextArea.d.ts +9 -9
- package/dist/src/components/control/input/text-area/CwTextArea.d.ts.map +1 -1
- package/dist/src/components/control/input/time/CwTime.d.ts +11 -11
- package/dist/src/components/control/input/time/CwTime.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/CwSchedulerComp.d.ts +1 -0
- package/dist/src/components/custom/scheduler/CwSchedulerComp.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/components/ClearSchedulerButton.d.ts +2 -2
- package/dist/src/components/custom/scheduler/logic/filtering/filterAndProcessResources.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/logic/pixels/calculateMaxPxFromDateRange.d.ts +0 -1
- package/dist/src/components/custom/scheduler/logic/state_handle/handleDateChange.d.ts +0 -1
- package/dist/src/components/custom/scheduler/logic/state_handle/handlePropChanges.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/logic/ui/getHasPropsChanged.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/logic/ui/shouldTriggerScroll.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler/state/EventProps.d.ts +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/NewScheduler.d.ts +6 -4
- package/dist/src/components/custom/scheduler-new/presentation/NewScheduler.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/SchedulerPresenter.d.ts +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/SchedulerPresenter.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderDivision.d.ts +4 -0
- package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderDivision.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderTitle.d.ts +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/HeaderTitle.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeader.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeaderState.d.ts +3 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/header/SchedulerHeaderState.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgrounEvent.d.ts +7 -0
- package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgrounEvent.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgroundEvent.d.ts +2 -3
- package/dist/src/components/custom/scheduler-new/presentation/components/row/BackgroundEvent.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/DefaultRowHeader.d.ts +3 -3
- package/dist/src/components/custom/scheduler-new/presentation/components/row/DefaultRowHeader.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/Event.d.ts +4 -2
- package/dist/src/components/custom/scheduler-new/presentation/components/row/Event.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/SchedulerRow.d.ts +2 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/SchedulerRow.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/timeline/TimeLine.d.ts +3 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/timeline/TimeLine.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/timeline/WeekEndLine.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/helpers.d.ts +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/logic/getDefaultDivisions.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsToInnerRows.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/logic/sortByCategoryAndTitle.d.ts +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/logic/sortByCategoryAndTitle.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/external/Event.d.ts +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/external/Row.d.ts +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/EventSideDragState.d.ts +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerEventState.d.ts +3 -2
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerHeaderState.d.ts +2 -5
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerHeaderState.d.ts.map +1 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerRow.d.ts +0 -1
- package/dist/src/components/custom/scheduler-temporal/CwSchedulerComp2.d.ts +5 -0
- package/dist/src/components/custom/scheduler-temporal/CwSchedulerComp2.d.ts.map +1 -1
- package/dist/src/components/custom/super-scheduler/PinRowHeader.d.ts.map +1 -1
- package/dist/src/components/custom/super-scheduler/SuperScheduler.d.ts +5 -5
- package/dist/src/components/custom/super-scheduler/SuperScheduler.d.ts.map +1 -1
- package/dist/src/components/display/data/generic_tooltip/CwGenericTooltip.d.ts +3 -2
- package/dist/src/components/display/data/generic_tooltip/CwGenericTooltip.d.ts.map +1 -1
- package/dist/src/components/display/graphics/icon/CwIcon.d.ts +2 -2
- package/dist/src/components/display/graphics/icon/CwIcon.d.ts.map +1 -1
- package/dist/src/components/display/text/label/CwLabel.d.ts +9 -9
- package/dist/src/components/display/text/label/CwLabel.d.ts.map +1 -1
- package/dist/src/components/display/text/message/CwMessage.d.ts +5 -5
- package/dist/src/components/display/text/message/CwMessage.d.ts.map +1 -1
- package/dist/src/components/layout/align/CwAlign.d.ts +24 -24
- package/dist/src/components/layout/align/CwAlign.d.ts.map +1 -1
- package/dist/src/components/layout/dialog/CwDialog.d.ts +8 -8
- package/dist/src/components/layout/dialog/CwDialog.d.ts.map +1 -1
- package/dist/src/components/layout/list/details/CwExpandable.d.ts +9 -9
- package/dist/src/components/layout/list/details/CwExpandable.d.ts.map +1 -1
- package/dist/src/components/layout/modal/hover/CwModalHover.d.ts +5 -5
- package/dist/src/components/layout/modal/hover/CwModalHover.d.ts.map +1 -1
- package/dist/src/index.d.ts +5 -5
- package/dist/src/index.d.ts.map +1 -1
- package/dist/test/components/custom/scheduler/calculateMaxPxFromDateRange.test.d.ts +0 -1
- package/package.json +2 -2
- package/dist/src/components/custom/scheduler-new/presentation/TestScheduler.d.ts +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/cancellablePromise.d.ts +0 -7
- package/dist/src/components/custom/scheduler-new/presentation/components/row/cancellablePromise.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/components/row/useCancellablePromise.d.ts +0 -7
- package/dist/src/components/custom/scheduler-new/presentation/components/row/useCancellablePromise.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsByResource.d.ts +0 -5
- package/dist/src/components/custom/scheduler-new/presentation/logic/separateEventsByResource.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/external/Event.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/external/Row.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/EventSideDragState.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerEventState.d.ts.map +0 -1
- package/dist/src/components/custom/scheduler-new/presentation/state/ui/SchedulerRow.d.ts.map +0 -1
- 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,
|
|
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
|
-
|
|
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
|
-
},
|
|
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}
|
|
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
|
-
* ), //
|
|
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: '
|
|
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
|
-
//
|
|
613
|
-
const sortedData =
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
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 =
|
|
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
|
|
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
|
|
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 = ({
|
|
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
|
|
2671
|
+
const [selectedCategory, setSelectedCategory] = useState("All");
|
|
2672
|
+
const categoriesMappedToTags = () => {
|
|
2386
2673
|
const categoriesMap = new Map();
|
|
2387
|
-
|
|
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
|
-
}
|
|
2394
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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(
|
|
2417
|
-
|
|
2701
|
+
const updatedTags = new Set(selectedTags).add(newTag);
|
|
2702
|
+
onChangeSelectedTags?.(updatedTags);
|
|
2418
2703
|
setInputTextValue("");
|
|
2704
|
+
setFilteredTags(allTags);
|
|
2419
2705
|
}
|
|
2420
|
-
}
|
|
2421
|
-
const removeTag =
|
|
2422
|
-
const updatedTags = new Set(
|
|
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
|
-
|
|
2431
|
-
}
|
|
2716
|
+
onChangeSelectedTags?.(updatedTags);
|
|
2717
|
+
};
|
|
2432
2718
|
useEffect(() => {
|
|
2433
|
-
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
|
|
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:
|
|
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 === "" &&
|
|
2451
|
-
removeTag(Array.from(
|
|
2739
|
+
if (inputTextValue === "" && selectedTags.size > 0) {
|
|
2740
|
+
removeTag(Array.from(selectedTags).toReversed()[0].ID);
|
|
2452
2741
|
}
|
|
2453
2742
|
break;
|
|
2454
2743
|
}
|
|
2455
2744
|
}
|
|
2456
|
-
} }),
|
|
2745
|
+
} }), selectedTags.size > 0 ? (jsx("input", { type: "reset", value: "\u00D7", onClick: e => {
|
|
2457
2746
|
e.preventDefault();
|
|
2458
|
-
|
|
2459
|
-
} })) : null] }), jsxs("section", { className: styles["cw-multi-filter-catalog-container"], "data-display-none": !inputIsFocussed, children: [jsxs("nav", { children: [jsx("button", { style:
|
|
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
|
-
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
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
|
|
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
|
|
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: "
|
|
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: "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 ===
|
|
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.
|
|
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,
|
|
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 ===
|
|
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
|
-
|
|
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:
|
|
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 = ({
|
|
3229
|
-
return (jsxs("td", { className: "contentArea", style: { width:
|
|
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
|
-
|
|
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
|
|
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) -
|
|
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"
|
|
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
|
|
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
|
|
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
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4315
|
-
|
|
4316
|
-
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
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:
|
|
4291
|
+
overflowY: "scroll",
|
|
4368
4292
|
maxHeight: isPinnedTable ? undefined : schedulerHeight
|
|
4369
|
-
}, className:
|
|
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
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
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:
|
|
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
|
-
|
|
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 };
|