pds-dev-kit-web-test 2.5.494 → 2.5.496
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/index.d.ts +4 -4
- package/dist/index.js +6 -3
- package/dist/src/common/assets/icons/fill/Translate.d.ts +4 -0
- package/dist/src/common/assets/icons/fill/Translate.js +30 -0
- package/dist/src/common/assets/icons/fill/index.d.ts +1 -0
- package/dist/src/common/assets/icons/fill/index.js +2 -0
- package/dist/src/common/assets/icons/line/Translate.d.ts +4 -0
- package/dist/src/common/assets/icons/line/Translate.js +30 -0
- package/dist/src/common/assets/icons/line/index.d.ts +1 -0
- package/dist/src/common/assets/icons/line/index.js +2 -0
- package/dist/src/common/hooks/useTooltip.js +1 -1
- package/dist/src/common/services/i18n/resources/en.json +44 -1
- package/dist/src/common/services/i18n/resources/es.json +43 -1
- package/dist/src/common/services/i18n/resources/fil.json +43 -1
- package/dist/src/common/services/i18n/resources/index.d.ts +299 -0
- package/dist/src/common/services/i18n/resources/ja.json +44 -1
- package/dist/src/common/services/i18n/resources/ko.json +44 -1
- package/dist/src/common/services/i18n/resources/zh-cn.json +44 -1
- package/dist/src/common/services/i18n/resources/zh-tw.json +44 -1
- package/dist/src/common/styles/colorSet/index.d.ts +2 -2
- package/dist/src/common/styles/colorSet/index.js +2 -2
- package/dist/src/common/types/components.d.ts +9 -0
- package/dist/src/common/types/components.js +8 -0
- package/dist/src/common/types/index.d.ts +0 -1
- package/dist/src/common/types/index.js +0 -1
- package/dist/src/common/utils/SystemUIPositionGenerator/hoverTypeSystemUICssGenerator.js +1 -1
- package/dist/src/common/utils/dateHelper.d.ts +3 -0
- package/dist/src/common/utils/dateHelper.js +37 -0
- package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.d.ts +2 -1
- package/dist/src/desktop/common/components/TextFieldBase/TextFieldBase.js +20 -16
- package/dist/src/desktop/components/BasicButtonGroup/BasicButtonGroup.js +1 -1
- package/dist/src/desktop/components/BasicFormGroup/BasicFormGroup.d.ts +20 -2
- package/dist/src/desktop/components/BasicFormGroup/BasicFormGroup.js +47 -5
- package/dist/src/desktop/components/BoxItem/BoxItem.d.ts +62 -0
- package/dist/src/desktop/components/BoxItem/BoxItem.js +104 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/Checkbox.d.ts +7 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/Checkbox.js +9 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/Image.d.ts +11 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/Image.js +9 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/LeftBox.d.ts +11 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/LeftBox.js +36 -0
- package/dist/src/desktop/components/BoxItem/LeftBox/index.d.ts +2 -0
- package/dist/src/{sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner → desktop/components/BoxItem/LeftBox}/index.js +3 -3
- package/dist/src/desktop/components/BoxItem/index.d.ts +1 -0
- package/dist/src/desktop/components/BoxItem/index.js +8 -0
- package/dist/src/desktop/components/Calendar/AllDaySchedulesSection.d.ts +13 -0
- package/dist/src/desktop/components/Calendar/AllDaySchedulesSection.js +132 -0
- package/dist/src/desktop/components/Calendar/Calendar.d.ts +4 -0
- package/dist/src/desktop/components/Calendar/Calendar.js +394 -0
- package/dist/src/desktop/components/Calendar/CurrentTimeIndicator.d.ts +7 -0
- package/dist/src/desktop/components/Calendar/CurrentTimeIndicator.js +48 -0
- package/dist/src/desktop/components/Calendar/DailyView.d.ts +17 -0
- package/dist/src/desktop/components/Calendar/DailyView.js +64 -0
- package/dist/src/desktop/components/Calendar/MonthlyView.d.ts +29 -0
- package/dist/src/desktop/components/Calendar/MonthlyView.js +313 -0
- package/dist/src/desktop/components/Calendar/MultiWeekSchedulesLayer.d.ts +20 -0
- package/dist/src/desktop/components/Calendar/MultiWeekSchedulesLayer.js +155 -0
- package/dist/src/desktop/components/Calendar/ScheduleItem.d.ts +17 -0
- package/dist/src/desktop/components/Calendar/ScheduleItem.js +56 -0
- package/dist/src/desktop/components/Calendar/TimeBasedScheduleItem.d.ts +9 -0
- package/dist/src/desktop/components/Calendar/TimeBasedScheduleItem.js +170 -0
- package/dist/src/desktop/components/Calendar/WeeklyView.d.ts +21 -0
- package/dist/src/desktop/components/Calendar/WeeklyView.js +91 -0
- package/dist/src/desktop/components/Calendar/YearlyView.d.ts +12 -0
- package/dist/src/desktop/components/Calendar/YearlyView.js +76 -0
- package/dist/src/desktop/components/Calendar/calendarUtils.d.ts +24 -0
- package/dist/src/desktop/components/Calendar/calendarUtils.js +87 -0
- package/dist/src/desktop/components/Calendar/constants.d.ts +1 -0
- package/dist/src/desktop/components/Calendar/constants.js +31 -0
- package/dist/src/desktop/components/Calendar/index.d.ts +10 -0
- package/dist/src/desktop/components/Calendar/index.js +37 -0
- package/dist/src/desktop/components/Calendar/timeFormatUtils.d.ts +16 -0
- package/dist/src/desktop/components/Calendar/timeFormatUtils.js +45 -0
- package/dist/src/desktop/components/Calendar/types.d.ts +61 -0
- package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +2 -3
- package/dist/src/desktop/components/ChatBubbleListItem/ChatBubbleListItem.js +3 -8
- package/dist/src/desktop/components/ChatList/Body.d.ts +1 -1
- package/dist/src/desktop/components/index.d.ts +3 -1
- package/dist/src/desktop/components/index.js +6 -1
- package/dist/src/desktop/index.d.ts +1 -1
- package/dist/src/desktop/index.js +4 -2
- package/dist/src/desktop/panels/DesktopHeadlessModal/DesktopHeadlessModal.d.ts +17 -2
- package/dist/src/desktop/panels/DesktopHeadlessModal/DesktopHeadlessModal.js +37 -6
- package/dist/src/desktop/panels/MultilingualModal/MultilingualModal.d.ts +11 -0
- package/dist/src/desktop/panels/MultilingualModal/MultilingualModal.js +199 -0
- package/dist/src/desktop/panels/MultilingualModal/index.d.ts +1 -0
- package/dist/src/{sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList → desktop/panels/MultilingualModal}/index.js +3 -3
- package/dist/src/desktop/panels/index.d.ts +2 -1
- package/dist/src/desktop/panels/index.js +6 -1
- package/dist/src/hybrid/components/Divider/Divider.d.ts +3 -1
- package/dist/src/hybrid/components/Divider/Divider.js +9 -7
- package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.d.ts +2 -1
- package/dist/src/mobile/common/components/TextFieldBase/TextFieldBase.js +20 -16
- package/dist/src/mobile/components/BoxItem/BoxItem.d.ts +62 -0
- package/dist/src/mobile/components/BoxItem/BoxItem.js +104 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/Checkbox.d.ts +7 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/Checkbox.js +9 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/Image.d.ts +11 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/Image.js +9 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/LeftBox.d.ts +11 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/LeftBox.js +36 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/index.d.ts +2 -0
- package/dist/src/mobile/components/BoxItem/LeftBox/index.js +8 -0
- package/dist/src/mobile/components/BoxItem/index.d.ts +1 -0
- package/dist/src/mobile/components/BoxItem/index.js +8 -0
- package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.d.ts +2 -3
- package/dist/src/mobile/components/ChatBubbleListItem/ChatBubbleListItem.js +3 -8
- package/dist/src/mobile/components/ChatList/Body.d.ts +1 -1
- package/dist/src/mobile/components/index.d.ts +2 -1
- package/dist/src/mobile/components/index.js +3 -1
- package/dist/src/mobile/index.d.ts +1 -1
- package/dist/src/mobile/index.js +3 -2
- package/dist/src/sub/DynamicLayout/CompositionRenderer/ComponentBlockMatcher.js +1 -4
- package/dist/src/sub/DynamicLayout/CompositionRenderer/Composition.d.ts +3 -5
- package/dist/src/sub/DynamicLayout/CompositionRenderer/Composition.js +53 -53
- package/dist/src/sub/DynamicLayout/CompositionRenderer/CompositionRenderer.d.ts +6 -0
- package/dist/src/sub/DynamicLayout/CompositionRenderer/CompositionRenderer.js +27 -0
- package/dist/src/sub/DynamicLayout/DynamicLayout.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/DynamicLayout.js +2 -4
- package/dist/src/sub/DynamicLayout/components/Section/components/CustomSectionBackgroundMedia.js +2 -24
- package/dist/src/sub/DynamicLayout/components/Section/sectionContext.d.ts +2 -2
- package/dist/src/sub/DynamicLayout/components/Section/util/parseSectionBackgroundMediaData.js +1 -3
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/index.d.ts +0 -40
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/index.js +177 -36
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/PaletteColor_Dark.json +4 -152
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/PaletteColor_light.json +2 -150
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/SemanticColor.json +1 -45
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/UIColor.json +9 -262
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/index.d.ts +0 -593
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/styles/colorSet/ui-type.d.ts +0 -253
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/desktop/IconButton/IconButton.d.ts +1 -3
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/desktop/IconButton/IconButton.js +3 -5
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/hybrid/Icon/Icon.d.ts +1 -2
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/hybrid/Icon/Icon.js +2 -9
- package/dist/src/sub/DynamicLayout/mock_video_cb.d.ts +1 -0
- package/dist/src/sub/DynamicLayout/mock_video_cb.js +5 -4
- package/dist/src/sub/DynamicLayout/mocks.d.ts +961 -8
- package/dist/src/sub/DynamicLayout/mocks.js +4239 -55
- package/dist/src/sub/DynamicLayout/sectionActionTypes.d.ts +4 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/CustomSection.js +7 -7
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/ComponentBlockMatcher.js +3 -13
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Button/Button.js +2 -18
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarousel.d.ts +4 -10
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarousel.js +3 -134
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Image/Image.js +3 -39
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/Text/Text.js +7 -31
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/VideoPlayer/VideoPlayer.js +28 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/VideoPlayer/helper.d.ts +1 -0
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/VideoPlayer/helper.js +15 -5
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/types.d.ts +3 -45
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/group.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/newUtils/replaceUndefinedValues.js +1 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/types.d.ts +10 -27
- package/dist/src/sub/DynamicLayout/sections/CustomSection/types.js +1 -3
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/effectPropParsers/parseEffectPropEntAnim.d.ts +4 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/layoutPropParsers/parseLayoutPropPadding.d.ts +2 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parseJsonProperties.d.ts +2 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parsePlacement.d.ts +2 -7
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parsePlacement.js +5 -10
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parseProperties.d.ts +2 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/types.d.ts +3 -53
- package/dist/src/sub/DynamicLayout/sections/FlexGridCustomSection.d.ts +1 -1
- package/dist/src/sub/DynamicLayout/sections/FlexGridCustomSection.js +0 -1
- package/dist/src/sub/DynamicLayout/types.d.ts +17 -64
- package/package.json +2 -3
- package/release-note.md +2 -2
- package/dist/src/common/types/form.d.ts +0 -9
- package/dist/src/common/types/form.js +0 -10
- package/dist/src/sub/DynamicLayout/CompositionEditor/CompositionEditor.d.ts +0 -22
- package/dist/src/sub/DynamicLayout/CompositionEditor/CompositionEditor.js +0 -1133
- package/dist/src/sub/DynamicLayout/CompositionRenderer/CompositionBackground.d.ts +0 -11
- package/dist/src/sub/DynamicLayout/CompositionRenderer/CompositionBackground.js +0 -45
- package/dist/src/sub/DynamicLayout/CompositionRenderer/createCompositions.d.ts +0 -10
- package/dist/src/sub/DynamicLayout/CompositionRenderer/createCompositions.js +0 -79
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/downIcons.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/downIcons.js +0 -76
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/index.d.ts +0 -4
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/index.js +0 -47
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/leftIcons.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/leftIcons.js +0 -76
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/rightIcons.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/rightIcons.js +0 -76
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/upIcons.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/components/pdsOriginal/common/assets/icons/line/editorNavigationIcons/upIcons.js +0 -76
- package/dist/src/sub/DynamicLayout/compositionActionTypes.d.ts +0 -139
- package/dist/src/sub/DynamicLayout/compositionActionTypes.js +0 -2
- package/dist/src/sub/DynamicLayout/compositionQueryContext.d.ts +0 -8
- package/dist/src/sub/DynamicLayout/compositionQueryContext.js +0 -14
- package/dist/src/sub/DynamicLayout/mock_componentBlocks.d.ts +0 -776
- package/dist/src/sub/DynamicLayout/mock_componentBlocks.js +0 -4236
- package/dist/src/sub/DynamicLayout/mock_composition.d.ts +0 -3
- package/dist/src/sub/DynamicLayout/mock_composition.js +0 -1607
- package/dist/src/sub/DynamicLayout/mock_contentsCarousel.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/mock_contentsCarousel.js +0 -1111
- package/dist/src/sub/DynamicLayout/mock_contentsList.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/mock_contentsList.js +0 -1091
- package/dist/src/sub/DynamicLayout/mock_queryData.d.ts +0 -96
- package/dist/src/sub/DynamicLayout/mock_queryData.js +0 -2639
- package/dist/src/sub/DynamicLayout/mock_slideBanner.d.ts +0 -842
- package/dist/src/sub/DynamicLayout/mock_slideBanner.js +0 -854
- package/dist/src/sub/DynamicLayout/mock_video.d.ts +0 -368
- package/dist/src/sub/DynamicLayout/mock_video.js +0 -371
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarouselCore.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/ContentsCarouselCore.js +0 -61
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomNavigationNextBtn.d.ts +0 -15
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomNavigationNextBtn.js +0 -69
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomNavigationPrevBtn.d.ts +0 -15
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomNavigationPrevBtn.js +0 -69
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomProgressbar.d.ts +0 -9
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/CustomProgressbar.js +0 -87
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/navigationConfigs.d.ts +0 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/navigationConfigs.js +0 -849
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/progressConfigs.d.ts +0 -43
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/components/progressConfigs.js +0 -162
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/contentsCarouselUtils.d.ts +0 -39
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/contentsCarouselUtils.js +0 -182
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/hooks/useFlexGridLayout.d.ts +0 -18
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/hooks/useFlexGridLayout.js +0 -229
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/hooks/useSwiper.d.ts +0 -14
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/hooks/useSwiper.js +0 -46
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/index.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/index.js +0 -8
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel/types.d.ts +0 -139
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsList.d.ts +0 -14
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsList.js +0 -206
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsListCore.d.ts +0 -17
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/ContentsListCore.js +0 -39
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/components/CustomPagination.d.ts +0 -10
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/components/CustomPagination.js +0 -85
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/components/paginationConfigs.d.ts +0 -25
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/components/paginationConfigs.js +0 -183
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/contentsListUtils.d.ts +0 -29
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/contentsListUtils.js +0 -128
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/hooks/useFlexGridLayout.d.ts +0 -18
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/hooks/useFlexGridLayout.js +0 -229
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/index.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/types.d.ts +0 -67
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsList/types.js +0 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBanner.d.ts +0 -14
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBanner.js +0 -151
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBannerCore.d.ts +0 -12
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/SlideBannerCore.js +0 -39
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomNavigationNextBtn.d.ts +0 -15
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomNavigationNextBtn.js +0 -69
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomNavigationPrevBtn.d.ts +0 -15
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomNavigationPrevBtn.js +0 -69
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomPagination.d.ts +0 -20
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomPagination.js +0 -173
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomProgressbar.d.ts +0 -9
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/CustomProgressbar.js +0 -87
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/navigationConfigs.d.ts +0 -4
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/navigationConfigs.js +0 -849
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/progressConfigs.d.ts +0 -43
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/components/progressConfigs.js +0 -162
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/hooks/useFlexGridLayout.d.ts +0 -18
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/hooks/useFlexGridLayout.js +0 -229
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/hooks/useSwiper.d.ts +0 -16
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/hooks/useSwiper.js +0 -63
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/index.d.ts +0 -1
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/slideBannerUtils.d.ts +0 -46
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/slideBannerUtils.js +0 -186
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/types.d.ts +0 -163
- package/dist/src/sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/SlideBanner/types.js +0 -2
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parseCompositionPlacement.d.ts +0 -14
- package/dist/src/sub/DynamicLayout/sections/CustomSection/util/parseCompositionPlacement.js +0 -26
- /package/dist/src/{sub/DynamicLayout/sections/CustomSection/components/ComponentBlock/componentBlocks/ContentsCarousel → desktop/components/Calendar}/types.js +0 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.DailyView = void 0;
|
|
22
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
23
|
+
var react_i18next_1 = require("react-i18next");
|
|
24
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
25
|
+
var TextLabel_1 = require("../TextLabel");
|
|
26
|
+
var AllDaySchedulesSection_1 = require("./AllDaySchedulesSection");
|
|
27
|
+
var CurrentTimeIndicator_1 = require("./CurrentTimeIndicator");
|
|
28
|
+
var TimeBasedScheduleItem_1 = require("./TimeBasedScheduleItem");
|
|
29
|
+
var timeFormatUtils_1 = require("./timeFormatUtils");
|
|
30
|
+
var DailyView = function (_a) {
|
|
31
|
+
var selectedDate = _a.selectedDate, _b = _a.displayAllDayScheduleMode, displayAllDayScheduleMode = _b === void 0 ? 'use' : _b, getSchedulesForDate = _a.getSchedulesForDate, isDragOverDate = _a.isDragOverDate, handleDateDragOver = _a.handleDateDragOver, handleDateDragLeave = _a.handleDateDragLeave, handleDateDrop = _a.handleDateDrop, handleDateClick = _a.handleDateClick, renderScheduleItem = _a.renderScheduleItem, handleScheduleDragStart = _a.handleScheduleDragStart, handleScheduleDragEnd = _a.handleScheduleDragEnd;
|
|
32
|
+
var i18n = (0, react_i18next_1.useTranslation)().i18n;
|
|
33
|
+
var currentDateForDaily = [selectedDate][0];
|
|
34
|
+
var HOURS_IN_DAY = Array.from({ length: 24 }, function (_, i) { return i; });
|
|
35
|
+
var getTimeSlotDate = function (baseDate, hour) {
|
|
36
|
+
var date = new Date(baseDate);
|
|
37
|
+
date.setHours(hour, 0, 0, 0);
|
|
38
|
+
return date;
|
|
39
|
+
};
|
|
40
|
+
return ((0, jsx_runtime_1.jsxs)(S_DailyContainer, { children: [(0, jsx_runtime_1.jsx)(AllDaySchedulesSection_1.AllDaySchedulesSection, { calendarDates: [selectedDate], displayAllDayScheduleMode: displayAllDayScheduleMode, getSchedulesForDate: getSchedulesForDate, renderScheduleItem: renderScheduleItem, handleDateDragOver: handleDateDragOver, handleDateDragLeave: handleDateDragLeave, handleDateDrop: handleDateDrop }), (0, jsx_runtime_1.jsxs)(S_DailyTimeGrid, { children: [(0, jsx_runtime_1.jsx)(CurrentTimeIndicator_1.CurrentTimeIndicator, { show: true, leftOffset: "80px" }), HOURS_IN_DAY.map(function (hour) {
|
|
41
|
+
var timeSlotDate = getTimeSlotDate(currentDateForDaily, hour);
|
|
42
|
+
var isDragOver = (isDragOverDate === null || isDragOverDate === void 0 ? void 0 : isDragOverDate.getTime()) === timeSlotDate.getTime();
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(S_DailyTimeRow, { children: [(0, jsx_runtime_1.jsx)(S_DailyTimeLabel, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: "caption2Bold", text: (0, timeFormatUtils_1.formatHour)(hour, i18n.language), colorTheme: "sysTextTertiary" }) }), (0, jsx_runtime_1.jsx)(S_DailyTimeSlot, __assign({ "$isDragOver": isDragOver, onClick: function () { return handleDateClick(timeSlotDate, {}); }, onDragOver: function (e) { return handleDateDragOver(timeSlotDate, e); }, onDragLeave: handleDateDragLeave, onDrop: function (e) { return handleDateDrop(timeSlotDate, e); } }, { children: hour === 0 && ((0, jsx_runtime_1.jsx)(TimeBasedScheduleItem_1.TimeBasedScheduleItem, { schedules: getSchedulesForDate(currentDateForDaily), handleScheduleDragStart: handleScheduleDragStart, handleScheduleDragEnd: handleScheduleDragEnd })) }))] }, hour));
|
|
44
|
+
})] })] }));
|
|
45
|
+
};
|
|
46
|
+
exports.DailyView = DailyView;
|
|
47
|
+
var S_DailyContainer = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: flex;\n flex-direction: column;\n height: 100%;\n"], ["\n display: flex;\n flex-direction: column;\n height: 100%;\n"])));
|
|
48
|
+
var S_DailyTimeGrid = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n flex: 1;\n overflow-y: auto;\n position: relative;\n"], ["\n flex: 1;\n overflow-y: auto;\n position: relative;\n"])));
|
|
49
|
+
var S_DailyTimeRow = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n display: flex;\n min-height: 60px;\n"], ["\n display: flex;\n min-height: 60px;\n"])));
|
|
50
|
+
var S_DailyTimeLabel = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n align-items: center;\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n display: flex;\n justify-content: center;\n min-width: 80px;\n padding: 8px;\n"], ["\n align-items: center;\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n display: flex;\n justify-content: center;\n min-width: 80px;\n padding: 8px;\n"])), function (_a) {
|
|
51
|
+
var theme = _a.theme;
|
|
52
|
+
return theme.ui_cpnt_divider;
|
|
53
|
+
}, function (_a) {
|
|
54
|
+
var theme = _a.theme;
|
|
55
|
+
return theme.ui_cpnt_divider;
|
|
56
|
+
});
|
|
57
|
+
var S_DailyTimeSlot = styled_components_1.default.div(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background: ", ";\n border-bottom: 1px solid ", ";\n cursor: pointer;\n flex: 1;\n min-width: 0;\n overflow: visible;\n padding: 4px;\n position: relative;\n\n &:hover {\n background: ", ";\n }\n"], ["\n background: ", ";\n border-bottom: 1px solid ", ";\n cursor: pointer;\n flex: 1;\n min-width: 0;\n overflow: visible;\n padding: 4px;\n position: relative;\n\n &:hover {\n background: ", ";\n }\n"])), function (props) { return (props.$isDragOver ? props.theme.ui_72 : 'transparent'); }, function (_a) {
|
|
58
|
+
var theme = _a.theme;
|
|
59
|
+
return theme.ui_cpnt_divider;
|
|
60
|
+
}, function (_a) {
|
|
61
|
+
var theme = _a.theme;
|
|
62
|
+
return theme.ui_72;
|
|
63
|
+
});
|
|
64
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Schedule } from './types';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
interface MonthlyViewProps {
|
|
4
|
+
getDayTextByDate: (date: Date) => string;
|
|
5
|
+
startOfWeek: 'sunday' | 'monday';
|
|
6
|
+
selectedDate: Date;
|
|
7
|
+
selectedDates: Date[];
|
|
8
|
+
dragStartDate: Date | null;
|
|
9
|
+
selectedSchedules: Schedule[];
|
|
10
|
+
dragEndDate: Date | null;
|
|
11
|
+
isDragOverDate: Date | null;
|
|
12
|
+
schedules: Schedule[];
|
|
13
|
+
getSchedulesForDate: (date: Date) => Schedule[];
|
|
14
|
+
isToday: (date: Date) => boolean;
|
|
15
|
+
isPastDate: (date: Date) => boolean;
|
|
16
|
+
handleDateClick: (date: Date, e: React.MouseEvent) => void;
|
|
17
|
+
handleScheduleClick?: (schedule: Schedule, e?: React.MouseEvent) => void;
|
|
18
|
+
handleMouseUp: () => void;
|
|
19
|
+
handleDateDragOver: (date: Date, e: React.DragEvent) => void;
|
|
20
|
+
handleDateDragLeave: () => void;
|
|
21
|
+
handleDateDrop: (date: Date, e: React.DragEvent) => void;
|
|
22
|
+
renderScheduleItem: (schedule: Schedule, extraProps?: any) => React.ReactNode;
|
|
23
|
+
handleScheduleDragStart?: (schedule: Schedule, e: React.DragEvent) => void;
|
|
24
|
+
handleScheduleDragEnd?: () => void;
|
|
25
|
+
isDraggable?: boolean;
|
|
26
|
+
onSwitchToWeeklyView?: (date: Date) => void;
|
|
27
|
+
}
|
|
28
|
+
export declare const MonthlyView: React.FC<MonthlyViewProps>;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.MonthlyView = void 0;
|
|
22
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
23
|
+
var react_1 = require("react");
|
|
24
|
+
var react_i18next_1 = require("react-i18next");
|
|
25
|
+
var dateHelper_1 = require("../../../common/utils/dateHelper");
|
|
26
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
27
|
+
var TextLabel_1 = require("../TextLabel");
|
|
28
|
+
var calendarUtils_1 = require("./calendarUtils");
|
|
29
|
+
var MultiWeekSchedulesLayer_1 = require("./MultiWeekSchedulesLayer");
|
|
30
|
+
var MonthlyView = function (_a) {
|
|
31
|
+
var getDayTextByDate = _a.getDayTextByDate, startOfWeek = _a.startOfWeek, selectedDate = _a.selectedDate, selectedDates = _a.selectedDates, selectedSchedules = _a.selectedSchedules, dragStartDate = _a.dragStartDate, dragEndDate = _a.dragEndDate, isDragOverDate = _a.isDragOverDate, schedules = _a.schedules, getSchedulesForDate = _a.getSchedulesForDate, isToday = _a.isToday, isPastDate = _a.isPastDate, handleDateClick = _a.handleDateClick, handleScheduleClick = _a.handleScheduleClick, handleMouseUp = _a.handleMouseUp, handleDateDragOver = _a.handleDateDragOver, handleDateDragLeave = _a.handleDateDragLeave, handleDateDrop = _a.handleDateDrop, renderScheduleItem = _a.renderScheduleItem, handleScheduleDragStart = _a.handleScheduleDragStart, handleScheduleDragEnd = _a.handleScheduleDragEnd, _b = _a.isDraggable, isDraggable = _b === void 0 ? false : _b, onSwitchToWeeklyView = _a.onSwitchToWeeklyView;
|
|
32
|
+
var t = (0, react_i18next_1.useTranslation)().t;
|
|
33
|
+
var calendarCellRef = (0, react_1.useRef)(null);
|
|
34
|
+
var _c = (0, react_1.useState)(3), maxSchedulesPerDay = _c[0], setMaxSchedulesPerDay = _c[1];
|
|
35
|
+
var days = (function () {
|
|
36
|
+
var monthDate = new Date(selectedDate.getFullYear(), selectedDate.getMonth(), 1);
|
|
37
|
+
return dateHelper_1.DateHelper.getCalendarDatesForCalendar(monthDate, startOfWeek);
|
|
38
|
+
})();
|
|
39
|
+
// 셀 높이 기반으로 최대 스케줄 개수 계산
|
|
40
|
+
var calculateMaxSchedules = (0, react_1.useCallback)(function () {
|
|
41
|
+
if (!calendarCellRef.current)
|
|
42
|
+
return;
|
|
43
|
+
var cellHeight = calendarCellRef.current.clientHeight;
|
|
44
|
+
var dateLabelHeight = 20; // 날짜 텍스트 영역
|
|
45
|
+
var cellPadding = 8; // 상하 패딩 (4px * 2)
|
|
46
|
+
var scheduleItemHeight = 20; // 스케줄 아이템 대략 높이
|
|
47
|
+
var moreTextHeight = 16; // "더보기" 텍스트 높이
|
|
48
|
+
var availableHeight = cellHeight - dateLabelHeight - cellPadding;
|
|
49
|
+
var maxSchedulesWithMore = Math.floor((availableHeight - moreTextHeight) / scheduleItemHeight);
|
|
50
|
+
// 최소 1개는 보여주되, 더보기를 고려한 개수로 설정
|
|
51
|
+
var calculatedMax = Math.max(1, maxSchedulesWithMore);
|
|
52
|
+
setMaxSchedulesPerDay(calculatedMax);
|
|
53
|
+
}, []);
|
|
54
|
+
// ResizeObserver로 크기 변경 감지
|
|
55
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
56
|
+
if (!calendarCellRef.current)
|
|
57
|
+
return;
|
|
58
|
+
var resizeObserver = new ResizeObserver(function () {
|
|
59
|
+
calculateMaxSchedules();
|
|
60
|
+
});
|
|
61
|
+
resizeObserver.observe(calendarCellRef.current);
|
|
62
|
+
// 초기 계산
|
|
63
|
+
calculateMaxSchedules();
|
|
64
|
+
return function () {
|
|
65
|
+
resizeObserver.disconnect();
|
|
66
|
+
};
|
|
67
|
+
}, [calculateMaxSchedules]);
|
|
68
|
+
// 창 크기 변경 시에도 재계산
|
|
69
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
70
|
+
var handleResize = function () {
|
|
71
|
+
setTimeout(calculateMaxSchedules, 0);
|
|
72
|
+
};
|
|
73
|
+
window.addEventListener('resize', handleResize);
|
|
74
|
+
return function () { return window.removeEventListener('resize', handleResize); };
|
|
75
|
+
}, [calculateMaxSchedules]);
|
|
76
|
+
// 다중 이벤트 계산
|
|
77
|
+
var getMultiWeekSchedules = (0, react_1.useMemo)(function () {
|
|
78
|
+
var multiWeekSchedules = [];
|
|
79
|
+
var allSchedules = new Map();
|
|
80
|
+
var processedScheduleIds = new Set();
|
|
81
|
+
// 캘린더에 표시되는 전체 날짜 범위 계산
|
|
82
|
+
var calendarStart = new Date(days[0]);
|
|
83
|
+
var calendarEnd = new Date(days[days.length - 1]);
|
|
84
|
+
calendarStart.setHours(0, 0, 0, 0);
|
|
85
|
+
calendarEnd.setHours(0, 0, 0, 0);
|
|
86
|
+
days.forEach(function (date) {
|
|
87
|
+
var schedulesForDate = getSchedulesForDate(date);
|
|
88
|
+
schedulesForDate.forEach(function (schedule) {
|
|
89
|
+
// 이미 처리된 이벤트는 건너뛰기
|
|
90
|
+
if (processedScheduleIds.has(schedule.id)) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
var scheduleStart = new Date(schedule.startDate);
|
|
94
|
+
var scheduleEnd = new Date(schedule.endDate);
|
|
95
|
+
scheduleStart.setHours(0, 0, 0, 0);
|
|
96
|
+
scheduleEnd.setHours(0, 0, 0, 0);
|
|
97
|
+
// All day 이벤트이거나 다중 날짜 이벤트인지 확인
|
|
98
|
+
var isAllDay = (0, calendarUtils_1.calculateIsAllDay)(new Date(schedule.startDate), new Date(schedule.endDate));
|
|
99
|
+
var isMultiDay = scheduleStart.getTime() !== scheduleEnd.getTime();
|
|
100
|
+
if (isAllDay || isMultiDay) {
|
|
101
|
+
// 이벤트가 현재 캘린더 범위와 교차하는지 확인
|
|
102
|
+
var isIntersecting = !(scheduleEnd.getTime() < calendarStart.getTime() ||
|
|
103
|
+
scheduleStart.getTime() > calendarEnd.getTime());
|
|
104
|
+
if (isIntersecting) {
|
|
105
|
+
allSchedules.set(schedule.id, schedule);
|
|
106
|
+
processedScheduleIds.add(schedule.id);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
allSchedules.forEach(function (schedule) {
|
|
112
|
+
var scheduleStart = new Date(schedule.startDate);
|
|
113
|
+
var scheduleEnd = new Date(schedule.endDate);
|
|
114
|
+
scheduleStart.setHours(0, 0, 0, 0);
|
|
115
|
+
scheduleEnd.setHours(0, 0, 0, 0);
|
|
116
|
+
// 여러 날짜에 걸친 이벤트인지 확인
|
|
117
|
+
if (scheduleStart.getTime() !== scheduleEnd.getTime()) {
|
|
118
|
+
// 캘린더 범위 내에서 표시할 실제 시작/끝 날짜 계산
|
|
119
|
+
var displayStart_1 = new Date(Math.max(scheduleStart.getTime(), calendarStart.getTime()));
|
|
120
|
+
var displayEnd_1 = new Date(Math.min(scheduleEnd.getTime(), calendarEnd.getTime()));
|
|
121
|
+
// 캘린더 그리드에서 시작과 끝 위치 찾기
|
|
122
|
+
var startIndex = days.findIndex(function (date) {
|
|
123
|
+
var d = new Date(date);
|
|
124
|
+
d.setHours(0, 0, 0, 0);
|
|
125
|
+
return d.getTime() === displayStart_1.getTime();
|
|
126
|
+
});
|
|
127
|
+
var endIndex = days.findIndex(function (date) {
|
|
128
|
+
var d = new Date(date);
|
|
129
|
+
d.setHours(0, 0, 0, 0);
|
|
130
|
+
return d.getTime() === displayEnd_1.getTime();
|
|
131
|
+
});
|
|
132
|
+
if (startIndex !== -1 && endIndex !== -1) {
|
|
133
|
+
var startRow = Math.floor(startIndex / 7) + 2;
|
|
134
|
+
var endRow = Math.floor(endIndex / 7) + 2;
|
|
135
|
+
var _loop_1 = function (row) {
|
|
136
|
+
var isFirstRow = row === startRow;
|
|
137
|
+
var isLastRow = row === endRow;
|
|
138
|
+
// 각 행에서의 시작/끝 컬럼 계산
|
|
139
|
+
var segmentStartCol = void 0;
|
|
140
|
+
var segmentEndCol = void 0;
|
|
141
|
+
if (isFirstRow && isLastRow) {
|
|
142
|
+
// 같은 행 내의 이벤트
|
|
143
|
+
segmentStartCol = (startIndex % 7) + 1;
|
|
144
|
+
segmentEndCol = (endIndex % 7) + 1;
|
|
145
|
+
}
|
|
146
|
+
else if (isFirstRow) {
|
|
147
|
+
// 첫 번째 행: 시작 컬럼부터 주 끝까지
|
|
148
|
+
segmentStartCol = (startIndex % 7) + 1;
|
|
149
|
+
segmentEndCol = 7;
|
|
150
|
+
}
|
|
151
|
+
else if (isLastRow) {
|
|
152
|
+
// 마지막 행: 주 시작부터 끝 컬럼까지
|
|
153
|
+
segmentStartCol = 1;
|
|
154
|
+
segmentEndCol = (endIndex % 7) + 1;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
// 중간 행: 주 전체
|
|
158
|
+
segmentStartCol = 1;
|
|
159
|
+
segmentEndCol = 7;
|
|
160
|
+
}
|
|
161
|
+
// 같은 행의 기존 이벤트 개수 계산
|
|
162
|
+
var existingSchedulesInRow = multiWeekSchedules.filter(function (e) { return e.startRow === row; }).length;
|
|
163
|
+
multiWeekSchedules.push({
|
|
164
|
+
schedule: schedule,
|
|
165
|
+
startRow: row,
|
|
166
|
+
endRow: row,
|
|
167
|
+
startCol: segmentStartCol,
|
|
168
|
+
endCol: segmentEndCol,
|
|
169
|
+
scheduleIndex: existingSchedulesInRow
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
// 여러 주에 걸친 경우 각 주별로 분할해서 처리
|
|
173
|
+
for (var row = startRow; row <= endRow; row += 1) {
|
|
174
|
+
_loop_1(row);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
return multiWeekSchedules;
|
|
180
|
+
}, [days, getSchedulesForDate, schedules]);
|
|
181
|
+
// 각 날짜별 다중 날짜 이벤트 개수 계산
|
|
182
|
+
var getMultiWeekSchedulesCountForDate = (0, react_1.useMemo)(function () {
|
|
183
|
+
var countMap = new Map();
|
|
184
|
+
days.forEach(function (date, index) {
|
|
185
|
+
var dateKey = date.toDateString();
|
|
186
|
+
var row = Math.floor(index / 7) + 2; // 헤더 고려
|
|
187
|
+
var col = (index % 7) + 1;
|
|
188
|
+
// 해당 날짜에 영향을 주는 다중 주 이벤트 개수 계산
|
|
189
|
+
var affectingSchedules = getMultiWeekSchedules.filter(function (schedule) {
|
|
190
|
+
var startRow = schedule.startRow, endRow = schedule.endRow, startCol = schedule.startCol, endCol = schedule.endCol;
|
|
191
|
+
// 같은 행에 있고, 컬럼 범위에 포함되는 경우
|
|
192
|
+
if (row >= startRow && row <= endRow) {
|
|
193
|
+
if (startRow === endRow) {
|
|
194
|
+
// 같은 행 내에서 컬럼 범위 체크
|
|
195
|
+
return col >= startCol && col <= endCol;
|
|
196
|
+
}
|
|
197
|
+
// 여러 행에 걸친 경우
|
|
198
|
+
if (row === startRow) {
|
|
199
|
+
return col >= startCol;
|
|
200
|
+
}
|
|
201
|
+
if (row === endRow) {
|
|
202
|
+
return col <= endCol;
|
|
203
|
+
}
|
|
204
|
+
return true; // 중간 행
|
|
205
|
+
}
|
|
206
|
+
return false;
|
|
207
|
+
});
|
|
208
|
+
countMap.set(dateKey, affectingSchedules.length);
|
|
209
|
+
});
|
|
210
|
+
return countMap;
|
|
211
|
+
}, [days, getMultiWeekSchedules]);
|
|
212
|
+
// 시작 요일에 따라 정렬된 요일 헤더 생성
|
|
213
|
+
var orderedDayTexts = (function () {
|
|
214
|
+
var weekDates = [];
|
|
215
|
+
var today = new Date();
|
|
216
|
+
var startIndex = startOfWeek === 'monday' ? 1 : 0;
|
|
217
|
+
var firstDayOfWeek = new Date(today);
|
|
218
|
+
firstDayOfWeek.setDate(today.getDate() - ((today.getDay() - startIndex + 7) % 7));
|
|
219
|
+
for (var i = 0; i < 7; i += 1) {
|
|
220
|
+
var date = new Date(firstDayOfWeek);
|
|
221
|
+
date.setDate(firstDayOfWeek.getDate() + i);
|
|
222
|
+
weekDates.push(getDayTextByDate(date));
|
|
223
|
+
}
|
|
224
|
+
return weekDates;
|
|
225
|
+
})();
|
|
226
|
+
return ((0, jsx_runtime_1.jsxs)(S_MonthlyGrid, __assign({ "data-calendar-grid": true }, { children: [orderedDayTexts.map(function (day, index) { return ((0, jsx_runtime_1.jsx)(S_DayHeader, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: "caption2Bold", textAlign: "center", colorTheme: "sysTextSecondary", text: day }) }, "".concat(day, "-").concat(index))); }), days.map(function (date, index) {
|
|
227
|
+
var daySchedules = getSchedulesForDate(date);
|
|
228
|
+
var multiWeekSchedulesCount = getMultiWeekSchedulesCountForDate.get(date.toDateString()) || 0;
|
|
229
|
+
// 다중 날짜 이벤트를 제외한 이벤트들 (종일 이벤트 + 단일 날짜 시간 이벤트)
|
|
230
|
+
var visibleSchedules = daySchedules.filter(function (schedule) {
|
|
231
|
+
var scheduleStart = new Date(schedule.startDate);
|
|
232
|
+
var scheduleEnd = new Date(schedule.endDate);
|
|
233
|
+
var checkDate = new Date(date);
|
|
234
|
+
// 날짜 비교를 위해 시간을 00:00:00으로 설정
|
|
235
|
+
scheduleStart.setHours(0, 0, 0, 0);
|
|
236
|
+
scheduleEnd.setHours(0, 0, 0, 0);
|
|
237
|
+
checkDate.setHours(0, 0, 0, 0);
|
|
238
|
+
// 다중 날짜 이벤트가 아닌 경우만 포함 (단일 날짜 종일/시간 이벤트)
|
|
239
|
+
if (scheduleStart.getTime() !== scheduleEnd.getTime()) {
|
|
240
|
+
return false; // 다중 날짜 이벤트 제외
|
|
241
|
+
}
|
|
242
|
+
// 해당 날짜의 이벤트인 경우만 포함
|
|
243
|
+
return scheduleStart.getTime() === checkDate.getTime();
|
|
244
|
+
});
|
|
245
|
+
// 이벤트를 시작 시간순으로 정렬
|
|
246
|
+
visibleSchedules.sort(function (a, b) {
|
|
247
|
+
var timeA = new Date(a.startDate).getTime();
|
|
248
|
+
var timeB = new Date(b.startDate).getTime();
|
|
249
|
+
return timeA - timeB;
|
|
250
|
+
});
|
|
251
|
+
// 표시 가능한 최대 이벤트 개수 (다중 날짜 이벤트 공간 고려)
|
|
252
|
+
var maxDisplayableEvents = Math.max(0, maxSchedulesPerDay - multiWeekSchedulesCount);
|
|
253
|
+
var displayedSchedules = visibleSchedules.slice(0, maxDisplayableEvents);
|
|
254
|
+
var hiddenSchedulesCount = visibleSchedules.length - displayedSchedules.length;
|
|
255
|
+
return ((0, jsx_runtime_1.jsxs)(S_CalendarCell, __assign({ ref: date.getMonth() === selectedDate.getMonth() && date.getDate() === 1
|
|
256
|
+
? calendarCellRef
|
|
257
|
+
: undefined, "data-calendar-cell": true, "$isCurrentMonth": date.getMonth() === selectedDate.getMonth(), "$isToday": isToday(date), "$isSelected": selectedDates.some(function (selectedDate) { return selectedDate.toDateString() === date.toDateString(); }) ||
|
|
258
|
+
!!(dragStartDate &&
|
|
259
|
+
dragEndDate &&
|
|
260
|
+
date.getTime() >= Math.min(dragStartDate.getTime(), dragEndDate.getTime()) &&
|
|
261
|
+
date.getTime() <= Math.max(dragStartDate.getTime(), dragEndDate.getTime())), "$isPast": isPastDate(date), "$isDragOver": (isDragOverDate === null || isDragOverDate === void 0 ? void 0 : isDragOverDate.toDateString()) === date.toDateString(), onClick: function (e) { return handleDateClick(date, e); }, onMouseUp: handleMouseUp, onDragOver: function (e) { return handleDateDragOver(date, e); }, onDragLeave: handleDateDragLeave, onDrop: function (e) { return handleDateDrop(date, e); } }, { children: [(0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: isToday(date) ? 'caption2Bold' : 'caption2Regular', textAlign: "center", colorTheme: isToday(date) ? 'sysTextBrandPrimary' : 'sysTextSecondary', text: date.getDate().toString() }), (0, jsx_runtime_1.jsxs)(S_SchedulesContainer, __assign({ "$multiWeekSchedulesCount": multiWeekSchedulesCount }, { children: [displayedSchedules.map(function (schedule) {
|
|
262
|
+
return renderScheduleItem(schedule, {
|
|
263
|
+
onDragStart: function (e) { return handleScheduleDragStart === null || handleScheduleDragStart === void 0 ? void 0 : handleScheduleDragStart(schedule, e); },
|
|
264
|
+
onDragEnd: function () { return handleScheduleDragEnd === null || handleScheduleDragEnd === void 0 ? void 0 : handleScheduleDragEnd(); }
|
|
265
|
+
});
|
|
266
|
+
}), hiddenSchedulesCount > 0 && ((0, jsx_runtime_1.jsx)(S_MoreSchedulesButton, __assign({ onClick: function (e) {
|
|
267
|
+
e.stopPropagation();
|
|
268
|
+
onSwitchToWeeklyView === null || onSwitchToWeeklyView === void 0 ? void 0 : onSwitchToWeeklyView(date);
|
|
269
|
+
} }, { children: (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { text: "".concat(hiddenSchedulesCount, " ").concat(t('str_calendar_schedule_more')), styleTheme: "caption2Regular" }) })))] }))] }), index));
|
|
270
|
+
}), (0, jsx_runtime_1.jsx)(MultiWeekSchedulesLayer_1.MultiWeekSchedulesLayer, { multiWeekSchedules: getMultiWeekSchedules, selectedSchedules: selectedSchedules, handleScheduleClick: handleScheduleClick, handleScheduleDragStart: handleScheduleDragStart, handleScheduleDragEnd: handleScheduleDragEnd, isDraggable: isDraggable })] })));
|
|
271
|
+
};
|
|
272
|
+
exports.MonthlyView = MonthlyView;
|
|
273
|
+
var S_MonthlyGrid = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n display: grid;\n gap: 0;\n grid-template-columns: repeat(7, 1fr);\n grid-template-rows: auto repeat(6, 1fr); /* \uD5E4\uB354\uB294 auto, \uB098\uBA38\uC9C0 6\uC8FC\uB294 \uB3D9\uC77C\uD55C \uB192\uC774 */\n height: 100%; /* \uC140 \uAC04\uACA9\uC744 \uC81C\uAC70\uD558\uC5EC \uC774\uBCA4\uD2B8\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uBCF4\uC774\uB3C4\uB85D */\n overflow-x: hidden; /* \uADF8\uB9AC\uB4DC \uACBD\uACC4\uB97C \uB118\uB294 \uC694\uC18C\uB97C \uC228\uAE40 */\n position: relative;\n"], ["\n display: grid;\n gap: 0;\n grid-template-columns: repeat(7, 1fr);\n grid-template-rows: auto repeat(6, 1fr); /* \uD5E4\uB354\uB294 auto, \uB098\uBA38\uC9C0 6\uC8FC\uB294 \uB3D9\uC77C\uD55C \uB192\uC774 */\n height: 100%; /* \uC140 \uAC04\uACA9\uC744 \uC81C\uAC70\uD558\uC5EC \uC774\uBCA4\uD2B8\uAC00 \uC5F0\uACB0\uB418\uC5B4 \uBCF4\uC774\uB3C4\uB85D */\n overflow-x: hidden; /* \uADF8\uB9AC\uB4DC \uACBD\uACC4\uB97C \uB118\uB294 \uC694\uC18C\uB97C \uC228\uAE40 */\n position: relative;\n"])));
|
|
274
|
+
var S_DayHeader = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border-bottom: 1px solid ", ";\n padding: 12px 8px;\n text-align: center;\n"], ["\n border-bottom: 1px solid ", ";\n padding: 12px 8px;\n text-align: center;\n"])), function (_a) {
|
|
275
|
+
var theme = _a.theme;
|
|
276
|
+
return theme.ui_cpnt_divider;
|
|
277
|
+
});
|
|
278
|
+
var S_CalendarCell = styled_components_1.default.div(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n min-height: 80px;\n min-width: 0;\n overflow: hidden;\n padding: 4px;\n position: relative;\n transition: background-color 0.2s;\n\n &:hover {\n background-color: ", ";\n }\n\n &:nth-child(7n + 1) {\n border-left: 1px solid ", ";\n }\n\n &:nth-child(-n + 7) {\n border-top: 1px solid ", ";\n }\n"], ["\n background-color: ", ";\n border-bottom: 1px solid ", ";\n border-right: 1px solid ", ";\n min-height: 80px;\n min-width: 0;\n overflow: hidden;\n padding: 4px;\n position: relative;\n transition: background-color 0.2s;\n\n &:hover {\n background-color: ", ";\n }\n\n &:nth-child(7n + 1) {\n border-left: 1px solid ", ";\n }\n\n &:nth-child(-n + 7) {\n border-top: 1px solid ", ";\n }\n"])), function (_a) {
|
|
279
|
+
var $isSelected = _a.$isSelected, theme = _a.theme;
|
|
280
|
+
if ($isSelected)
|
|
281
|
+
return theme.ui_cpnt_sheet_base;
|
|
282
|
+
return 'transparent';
|
|
283
|
+
}, function (_a) {
|
|
284
|
+
var theme = _a.theme;
|
|
285
|
+
return theme.ui_cpnt_divider;
|
|
286
|
+
}, function (_a) {
|
|
287
|
+
var theme = _a.theme;
|
|
288
|
+
return theme.ui_cpnt_divider;
|
|
289
|
+
}, function (_a) {
|
|
290
|
+
var theme = _a.theme;
|
|
291
|
+
return theme.ui_cpnt_sheet_base;
|
|
292
|
+
}, function (_a) {
|
|
293
|
+
var theme = _a.theme;
|
|
294
|
+
return theme.ui_cpnt_divider;
|
|
295
|
+
}, function (_a) {
|
|
296
|
+
var theme = _a.theme;
|
|
297
|
+
return theme.ui_cpnt_divider;
|
|
298
|
+
});
|
|
299
|
+
var S_SchedulesContainer = styled_components_1.default.div(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n display: flex;\n flex: 1;\n flex-direction: column;\n margin-top: ", "px;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n"], ["\n display: flex;\n flex: 1;\n flex-direction: column;\n margin-top: ", "px;\n max-width: 100%;\n overflow: hidden;\n position: relative;\n"])), function (_a) {
|
|
300
|
+
var _b = _a.$multiWeekSchedulesCount, $multiWeekSchedulesCount = _b === void 0 ? 0 : _b;
|
|
301
|
+
return $multiWeekSchedulesCount * 28;
|
|
302
|
+
});
|
|
303
|
+
var S_MoreSchedulesButton = styled_components_1.default.button(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n background: none;\n border: none;\n border-radius: 2px;\n color: ", ";\n cursor: pointer;\n font: inherit;\n outline: inherit;\n padding: 0;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n"], ["\n background: none;\n border: none;\n border-radius: 2px;\n color: ", ";\n cursor: pointer;\n font: inherit;\n outline: inherit;\n padding: 0;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: ", ";\n }\n\n &:active {\n background-color: ", ";\n }\n"])), function (_a) {
|
|
304
|
+
var theme = _a.theme;
|
|
305
|
+
return theme.ui_cpnt_textlabel_sys_brandprimary;
|
|
306
|
+
}, function (_a) {
|
|
307
|
+
var theme = _a.theme;
|
|
308
|
+
return theme.ui_cpnt_sheet_base;
|
|
309
|
+
}, function (_a) {
|
|
310
|
+
var theme = _a.theme;
|
|
311
|
+
return theme.ui_cpnt_sheet_base_02;
|
|
312
|
+
});
|
|
313
|
+
var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Schedule } from './types';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
interface MultiWeekScheduleInfo {
|
|
4
|
+
schedule: Schedule;
|
|
5
|
+
startRow: number;
|
|
6
|
+
endRow: number;
|
|
7
|
+
startCol: number;
|
|
8
|
+
endCol: number;
|
|
9
|
+
scheduleIndex: number;
|
|
10
|
+
}
|
|
11
|
+
interface MultiWeekSchedulesLayerProps {
|
|
12
|
+
multiWeekSchedules: MultiWeekScheduleInfo[];
|
|
13
|
+
selectedSchedules: Schedule[];
|
|
14
|
+
handleScheduleClick?: (schedule: Schedule, e?: React.MouseEvent) => void;
|
|
15
|
+
handleScheduleDragStart?: (schedule: Schedule, e: React.DragEvent) => void;
|
|
16
|
+
handleScheduleDragEnd?: () => void;
|
|
17
|
+
isDraggable?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare const MultiWeekSchedulesLayer: React.FC<MultiWeekSchedulesLayerProps>;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __assign = (this && this.__assign) || function () {
|
|
7
|
+
__assign = Object.assign || function(t) {
|
|
8
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
9
|
+
s = arguments[i];
|
|
10
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
11
|
+
t[p] = s[p];
|
|
12
|
+
}
|
|
13
|
+
return t;
|
|
14
|
+
};
|
|
15
|
+
return __assign.apply(this, arguments);
|
|
16
|
+
};
|
|
17
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
18
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
19
|
+
};
|
|
20
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.MultiWeekSchedulesLayer = void 0;
|
|
22
|
+
var jsx_runtime_1 = require("react/jsx-runtime");
|
|
23
|
+
var react_1 = require("react");
|
|
24
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
25
|
+
var TextLabel_1 = require("../TextLabel");
|
|
26
|
+
var ScheduleItem_1 = require("./ScheduleItem");
|
|
27
|
+
var MultiWeekSchedulesLayer = function (_a) {
|
|
28
|
+
var multiWeekSchedules = _a.multiWeekSchedules, selectedSchedules = _a.selectedSchedules, handleScheduleClick = _a.handleScheduleClick, handleScheduleDragStart = _a.handleScheduleDragStart, handleScheduleDragEnd = _a.handleScheduleDragEnd, _b = _a.isDraggable, isDraggable = _b === void 0 ? false : _b;
|
|
29
|
+
var containerRef = (0, react_1.useRef)(null);
|
|
30
|
+
var _c = (0, react_1.useState)([]), cellPositions = _c[0], setCellPositions = _c[1];
|
|
31
|
+
// 캘린더 셀들의 실제 위치를 계산하는 함수
|
|
32
|
+
var calculateCellPositions = (0, react_1.useCallback)(function () {
|
|
33
|
+
if (!containerRef.current)
|
|
34
|
+
return;
|
|
35
|
+
var gridContainer = containerRef.current.parentElement;
|
|
36
|
+
if (!gridContainer)
|
|
37
|
+
return;
|
|
38
|
+
// 헤더를 제외한 캘린더 셀들을 찾기
|
|
39
|
+
var calendarCells = gridContainer.querySelectorAll('[data-calendar-cell]');
|
|
40
|
+
var positions = [];
|
|
41
|
+
// 각 주(row)의 위치 정보 수집
|
|
42
|
+
for (var row = 0; row < 6; row += 1) {
|
|
43
|
+
var cellIndex = row * 7; // 각 주의 첫 번째 셀
|
|
44
|
+
var cell = calendarCells[cellIndex];
|
|
45
|
+
if (cell) {
|
|
46
|
+
var cellRect = cell.getBoundingClientRect();
|
|
47
|
+
var containerRect = gridContainer.getBoundingClientRect();
|
|
48
|
+
var relativeTop = cellRect.top - containerRect.top;
|
|
49
|
+
var dateLabelHeight = 24; // 날짜 라벨 대략 높이
|
|
50
|
+
positions.push({
|
|
51
|
+
top: relativeTop + dateLabelHeight,
|
|
52
|
+
height: cellRect.height - dateLabelHeight
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// 기본값 설정 (fallback)
|
|
57
|
+
positions.push({
|
|
58
|
+
top: 60 + row * 120,
|
|
59
|
+
height: 96
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
setCellPositions(positions);
|
|
64
|
+
}, []);
|
|
65
|
+
// ResizeObserver로 크기 변경 감지
|
|
66
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
67
|
+
if (!containerRef.current)
|
|
68
|
+
return;
|
|
69
|
+
var gridContainer = containerRef.current.parentElement;
|
|
70
|
+
if (!gridContainer)
|
|
71
|
+
return;
|
|
72
|
+
var resizeObserver = new ResizeObserver(function () {
|
|
73
|
+
calculateCellPositions();
|
|
74
|
+
});
|
|
75
|
+
resizeObserver.observe(gridContainer);
|
|
76
|
+
// 초기 계산
|
|
77
|
+
calculateCellPositions();
|
|
78
|
+
return function () {
|
|
79
|
+
resizeObserver.disconnect();
|
|
80
|
+
};
|
|
81
|
+
}, [calculateCellPositions]);
|
|
82
|
+
// 창 크기 변경 시에도 재계산
|
|
83
|
+
(0, react_1.useLayoutEffect)(function () {
|
|
84
|
+
var handleResize = function () {
|
|
85
|
+
setTimeout(calculateCellPositions, 0);
|
|
86
|
+
};
|
|
87
|
+
window.addEventListener('resize', handleResize);
|
|
88
|
+
return function () { return window.removeEventListener('resize', handleResize); };
|
|
89
|
+
}, [calculateCellPositions]);
|
|
90
|
+
return ((0, jsx_runtime_1.jsx)(S_Layer, __assign({ ref: containerRef }, { children: multiWeekSchedules.map(function (_a) {
|
|
91
|
+
var schedule = _a.schedule, startRow = _a.startRow, endRow = _a.endRow, startCol = _a.startCol, endCol = _a.endCol, scheduleIndex = _a.scheduleIndex;
|
|
92
|
+
var isSameRow = startRow === endRow;
|
|
93
|
+
var isSelected = selectedSchedules.some(function (s) { return s.id === schedule.id; });
|
|
94
|
+
var uniqueKey = "multi-".concat(schedule.id, "-").concat(startRow, "-").concat(startCol, "-").concat(endCol);
|
|
95
|
+
if (isSameRow) {
|
|
96
|
+
return ((0, jsx_runtime_1.jsxs)(S_MultiWeekSchedule, __assign({ "$color": schedule.color, "$startRow": startRow, "$endRow": endRow, "$startCol": startCol, "$endCol": endCol, "$scheduleIndex": scheduleIndex, "$isSelected": isSelected, "$isDraggable": isDraggable, "$cellPositions": cellPositions, draggable: isDraggable, onDragStart: isDraggable
|
|
97
|
+
? function (e) {
|
|
98
|
+
handleScheduleDragStart === null || handleScheduleDragStart === void 0 ? void 0 : handleScheduleDragStart(schedule, e);
|
|
99
|
+
}
|
|
100
|
+
: undefined, onDragEnd: isDraggable ? handleScheduleDragEnd : undefined, onClick: function (e) {
|
|
101
|
+
e.stopPropagation();
|
|
102
|
+
handleScheduleClick === null || handleScheduleClick === void 0 ? void 0 : handleScheduleClick(schedule, e);
|
|
103
|
+
} }, { children: [(0, jsx_runtime_1.jsx)(ScheduleItem_1.S_Dot, { "$isSelected": isSelected }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: "caption2Bold", text: schedule.title, ellipsisMode: "use", colorTheme: isSelected ? 'sysTextWhite' : undefined })] }), uniqueKey));
|
|
104
|
+
}
|
|
105
|
+
// 여러 행에 걸친 이벤트 처리
|
|
106
|
+
var segments = [];
|
|
107
|
+
for (var row = startRow; row <= endRow; row += 1) {
|
|
108
|
+
var isFirstRow = row === startRow;
|
|
109
|
+
var isLastRow = row === endRow;
|
|
110
|
+
var segmentStartCol = isFirstRow ? startCol : 1;
|
|
111
|
+
var segmentEndCol = isLastRow ? endCol : 7;
|
|
112
|
+
segments.push((0, jsx_runtime_1.jsxs)(S_MultiWeekSchedule, __assign({ "$color": schedule.color, "$startRow": row, "$endRow": row, "$startCol": segmentStartCol, "$endCol": segmentEndCol, "$scheduleIndex": scheduleIndex, "$isSelected": isSelected, "$isDraggable": isDraggable, "$cellPositions": cellPositions, draggable: isDraggable, onDragStart: isDraggable
|
|
113
|
+
? function (e) {
|
|
114
|
+
handleScheduleDragStart === null || handleScheduleDragStart === void 0 ? void 0 : handleScheduleDragStart(schedule, e);
|
|
115
|
+
}
|
|
116
|
+
: undefined, onDragEnd: isDraggable ? handleScheduleDragEnd : undefined, onClick: function (e) {
|
|
117
|
+
e.stopPropagation();
|
|
118
|
+
handleScheduleClick === null || handleScheduleClick === void 0 ? void 0 : handleScheduleClick(schedule, e);
|
|
119
|
+
} }, { children: [(0, jsx_runtime_1.jsx)(ScheduleItem_1.S_Dot, { "$isSelected": isSelected }), (0, jsx_runtime_1.jsx)(TextLabel_1.TextLabel, { styleTheme: "caption2Regular", text: schedule.title, ellipsisMode: "use", colorTheme: isSelected ? 'sysTextWhite' : undefined })] }), "".concat(uniqueKey, "-row-").concat(row)));
|
|
120
|
+
}
|
|
121
|
+
return segments;
|
|
122
|
+
}) })));
|
|
123
|
+
};
|
|
124
|
+
exports.MultiWeekSchedulesLayer = MultiWeekSchedulesLayer;
|
|
125
|
+
var S_Layer = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%; /* \uAE30\uBCF8\uC801\uC73C\uB85C \uC774\uBCA4\uD2B8\uB97C \uB9C9\uACE0, \uB0B4\uBD80 \uC2A4\uCF00\uC904\uC5D0\uC11C\uB9CC \uC774\uBCA4\uD2B8 \uD5C8\uC6A9 */\n z-index: 10;\n\n & > * {\n pointer-events: auto;\n }\n"], ["\n height: 100%;\n left: 0;\n pointer-events: none;\n position: absolute;\n top: 0;\n width: 100%; /* \uAE30\uBCF8\uC801\uC73C\uB85C \uC774\uBCA4\uD2B8\uB97C \uB9C9\uACE0, \uB0B4\uBD80 \uC2A4\uCF00\uC904\uC5D0\uC11C\uB9CC \uC774\uBCA4\uD2B8 \uD5C8\uC6A9 */\n z-index: 10;\n\n & > * {\n pointer-events: auto;\n }\n"])));
|
|
126
|
+
var S_MultiWeekSchedule = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n align-items: center;\n background-color: ", ";\n border-radius: 4px;\n color: white;\n cursor: ", ";\n display: flex;\n font-size: 12px;\n height: 20px;\n left: ", ";\n padding: 2px 6px;\n position: absolute;\n top: ", ";\n user-select: none;\n width: ", ";\n z-index: 10;\n\n &:active {\n background: ", ";\n cursor: ", ";\n }\n"], ["\n align-items: center;\n background-color: ", ";\n border-radius: 4px;\n color: white;\n cursor: ", ";\n display: flex;\n font-size: 12px;\n height: 20px;\n left: ", ";\n padding: 2px 6px;\n position: absolute;\n top: ", ";\n user-select: none;\n width: ", ";\n z-index: 10;\n\n &:active {\n background: ", ";\n cursor: ", ";\n }\n"])), function (props) {
|
|
127
|
+
return props.$isSelected ? props.theme.ui_cpnt_sheet_base_06 : props.theme.ui_cpnt_sheet_base;
|
|
128
|
+
}, function (_a) {
|
|
129
|
+
var $isDraggable = _a.$isDraggable;
|
|
130
|
+
return ($isDraggable ? 'grab' : 'normal');
|
|
131
|
+
}, function (props) { return "calc((".concat(props.$startCol - 1, ") * (100% / 7) + 4px)"); }, function (props) {
|
|
132
|
+
var $startRow = props.$startRow, $scheduleIndex = props.$scheduleIndex, $cellPositions = props.$cellPositions;
|
|
133
|
+
var rowIndex = $startRow - 2; // 헤더 행 제외 (첫 번째 캘린더 행이 row 2)
|
|
134
|
+
if (!$cellPositions ||
|
|
135
|
+
$cellPositions.length === 0 ||
|
|
136
|
+
rowIndex < 0 ||
|
|
137
|
+
rowIndex >= $cellPositions.length) {
|
|
138
|
+
// 기본값 (fallback)
|
|
139
|
+
var defaultTop = 60 + rowIndex * 100;
|
|
140
|
+
var scheduleSpacing_1 = ($scheduleIndex || 0) * 22;
|
|
141
|
+
return "".concat(defaultTop + scheduleSpacing_1, "px");
|
|
142
|
+
}
|
|
143
|
+
var cellPosition = $cellPositions[rowIndex];
|
|
144
|
+
var scheduleHeight = 20;
|
|
145
|
+
var scheduleSpacing = ($scheduleIndex || 0) * (scheduleHeight + 6); // 스케줄 간 간격 2px
|
|
146
|
+
var calculatedTop = cellPosition.top + scheduleSpacing;
|
|
147
|
+
return "".concat(calculatedTop, "px");
|
|
148
|
+
}, function (props) { return "calc((".concat(props.$endCol - props.$startCol + 1, ") * (100% / 7) - 21px)"); }, function (_a) {
|
|
149
|
+
var theme = _a.theme;
|
|
150
|
+
return theme.ui_cpnt_sheet_base_06;
|
|
151
|
+
}, function (_a) {
|
|
152
|
+
var $isDraggable = _a.$isDraggable;
|
|
153
|
+
return ($isDraggable ? 'grabbing' : 'normal');
|
|
154
|
+
});
|
|
155
|
+
var templateObject_1, templateObject_2;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Schedule } from './types';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
interface ScheduleItemProps {
|
|
4
|
+
schedule: Schedule;
|
|
5
|
+
extraProps?: any;
|
|
6
|
+
onDragStart: (schedule: Schedule, e: React.DragEvent) => void;
|
|
7
|
+
onDragEnd: () => void;
|
|
8
|
+
onClick?: (schedule: Schedule, e?: React.MouseEvent) => void;
|
|
9
|
+
isSelected?: boolean;
|
|
10
|
+
isAllDay?: boolean;
|
|
11
|
+
isDraggable?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const ScheduleItem: React.FC<ScheduleItemProps>;
|
|
14
|
+
export declare const S_Dot: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {
|
|
15
|
+
$isSelected?: boolean | undefined;
|
|
16
|
+
}, never>;
|
|
17
|
+
export {};
|