@bryntum/gantt-react 7.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/lib/BryntumAIFilterField.d.ts +231 -0
- package/lib/BryntumAIFilterField.js +168 -0
- package/lib/BryntumAIFilterField.js.map +1 -0
- package/lib/BryntumAssignmentField.d.ts +271 -0
- package/lib/BryntumAssignmentField.js +204 -0
- package/lib/BryntumAssignmentField.js.map +1 -0
- package/lib/BryntumAssignmentGrid.d.ts +834 -0
- package/lib/BryntumAssignmentGrid.js +283 -0
- package/lib/BryntumAssignmentGrid.js.map +1 -0
- package/lib/BryntumButton.d.ts +206 -0
- package/lib/BryntumButton.js +148 -0
- package/lib/BryntumButton.js.map +1 -0
- package/lib/BryntumButtonGroup.d.ts +201 -0
- package/lib/BryntumButtonGroup.js +154 -0
- package/lib/BryntumButtonGroup.js.map +1 -0
- package/lib/BryntumCalendarEditor.d.ts +259 -0
- package/lib/BryntumCalendarEditor.js +187 -0
- package/lib/BryntumCalendarEditor.js.map +1 -0
- package/lib/BryntumCalendarField.d.ts +268 -0
- package/lib/BryntumCalendarField.js +204 -0
- package/lib/BryntumCalendarField.js.map +1 -0
- package/lib/BryntumCalendarPicker.d.ts +266 -0
- package/lib/BryntumCalendarPicker.js +202 -0
- package/lib/BryntumCalendarPicker.js.map +1 -0
- package/lib/BryntumChatPanel.d.ts +246 -0
- package/lib/BryntumChatPanel.js +178 -0
- package/lib/BryntumChatPanel.js.map +1 -0
- package/lib/BryntumCheckbox.d.ts +239 -0
- package/lib/BryntumCheckbox.js +168 -0
- package/lib/BryntumCheckbox.js.map +1 -0
- package/lib/BryntumCheckboxGroup.d.ts +249 -0
- package/lib/BryntumCheckboxGroup.js +182 -0
- package/lib/BryntumCheckboxGroup.js.map +1 -0
- package/lib/BryntumChecklistFilterCombo.d.ts +268 -0
- package/lib/BryntumChecklistFilterCombo.js +205 -0
- package/lib/BryntumChecklistFilterCombo.js.map +1 -0
- package/lib/BryntumChipView.d.ts +208 -0
- package/lib/BryntumChipView.js +152 -0
- package/lib/BryntumChipView.js.map +1 -0
- package/lib/BryntumCodeEditor.d.ts +237 -0
- package/lib/BryntumCodeEditor.js +176 -0
- package/lib/BryntumCodeEditor.js.map +1 -0
- package/lib/BryntumColorField.d.ts +231 -0
- package/lib/BryntumColorField.js +169 -0
- package/lib/BryntumColorField.js.map +1 -0
- package/lib/BryntumCombo.d.ts +266 -0
- package/lib/BryntumCombo.js +202 -0
- package/lib/BryntumCombo.js.map +1 -0
- package/lib/BryntumConstraintTypePicker.d.ts +266 -0
- package/lib/BryntumConstraintTypePicker.js +202 -0
- package/lib/BryntumConstraintTypePicker.js.map +1 -0
- package/lib/BryntumContainer.d.ts +185 -0
- package/lib/BryntumContainer.js +148 -0
- package/lib/BryntumContainer.js.map +1 -0
- package/lib/BryntumCostAccrualField.d.ts +266 -0
- package/lib/BryntumCostAccrualField.js +202 -0
- package/lib/BryntumCostAccrualField.js.map +1 -0
- package/lib/BryntumDateField.d.ts +241 -0
- package/lib/BryntumDateField.js +178 -0
- package/lib/BryntumDateField.js.map +1 -0
- package/lib/BryntumDatePicker.d.ts +310 -0
- package/lib/BryntumDatePicker.js +213 -0
- package/lib/BryntumDatePicker.js.map +1 -0
- package/lib/BryntumDateRangeField.d.ts +242 -0
- package/lib/BryntumDateRangeField.js +179 -0
- package/lib/BryntumDateRangeField.js.map +1 -0
- package/lib/BryntumDateTimeField.d.ts +222 -0
- package/lib/BryntumDateTimeField.js +158 -0
- package/lib/BryntumDateTimeField.js.map +1 -0
- package/lib/BryntumDemoCodeEditor.d.ts +240 -0
- package/lib/BryntumDemoCodeEditor.js +179 -0
- package/lib/BryntumDemoCodeEditor.js.map +1 -0
- package/lib/BryntumDemoHeader.d.ts +30 -0
- package/lib/BryntumDemoHeader.js +84 -0
- package/lib/BryntumDemoHeader.js.map +1 -0
- package/lib/BryntumDependencyField.d.ts +273 -0
- package/lib/BryntumDependencyField.js +209 -0
- package/lib/BryntumDependencyField.js.map +1 -0
- package/lib/BryntumDependencyTypePicker.d.ts +266 -0
- package/lib/BryntumDependencyTypePicker.js +202 -0
- package/lib/BryntumDependencyTypePicker.js.map +1 -0
- package/lib/BryntumDisplayField.d.ts +227 -0
- package/lib/BryntumDisplayField.js +163 -0
- package/lib/BryntumDisplayField.js.map +1 -0
- package/lib/BryntumDurationField.d.ts +234 -0
- package/lib/BryntumDurationField.js +175 -0
- package/lib/BryntumDurationField.js.map +1 -0
- package/lib/BryntumEditor.d.ts +249 -0
- package/lib/BryntumEditor.js +167 -0
- package/lib/BryntumEditor.js.map +1 -0
- package/lib/BryntumEffortField.d.ts +234 -0
- package/lib/BryntumEffortField.js +175 -0
- package/lib/BryntumEffortField.js.map +1 -0
- package/lib/BryntumEndDateField.d.ts +243 -0
- package/lib/BryntumEndDateField.js +180 -0
- package/lib/BryntumEndDateField.js.map +1 -0
- package/lib/BryntumEventColorField.d.ts +231 -0
- package/lib/BryntumEventColorField.js +169 -0
- package/lib/BryntumEventColorField.js.map +1 -0
- package/lib/BryntumFieldFilterPicker.d.ts +202 -0
- package/lib/BryntumFieldFilterPicker.js +161 -0
- package/lib/BryntumFieldFilterPicker.js.map +1 -0
- package/lib/BryntumFieldFilterPickerGroup.d.ts +207 -0
- package/lib/BryntumFieldFilterPickerGroup.js +164 -0
- package/lib/BryntumFieldFilterPickerGroup.js.map +1 -0
- package/lib/BryntumFieldSet.d.ts +235 -0
- package/lib/BryntumFieldSet.js +174 -0
- package/lib/BryntumFieldSet.js.map +1 -0
- package/lib/BryntumFileField.d.ts +228 -0
- package/lib/BryntumFileField.js +164 -0
- package/lib/BryntumFileField.js.map +1 -0
- package/lib/BryntumFilePicker.d.ts +192 -0
- package/lib/BryntumFilePicker.js +153 -0
- package/lib/BryntumFilePicker.js.map +1 -0
- package/lib/BryntumFilterField.d.ts +234 -0
- package/lib/BryntumFilterField.js +171 -0
- package/lib/BryntumFilterField.js.map +1 -0
- package/lib/BryntumFullscreenButton.d.ts +8 -0
- package/lib/BryntumFullscreenButton.js +37 -0
- package/lib/BryntumFullscreenButton.js.map +1 -0
- package/lib/BryntumGantt.d.ts +1772 -0
- package/lib/BryntumGantt.js +601 -0
- package/lib/BryntumGantt.js.map +1 -0
- package/lib/BryntumGanttBase.d.ts +1771 -0
- package/lib/BryntumGanttBase.js +600 -0
- package/lib/BryntumGanttBase.js.map +1 -0
- package/lib/BryntumGanttProjectModel.d.ts +303 -0
- package/lib/BryntumGanttProjectModel.js +188 -0
- package/lib/BryntumGanttProjectModel.js.map +1 -0
- package/lib/BryntumGrid.d.ts +844 -0
- package/lib/BryntumGrid.js +335 -0
- package/lib/BryntumGrid.js.map +1 -0
- package/lib/BryntumGridBase.d.ts +842 -0
- package/lib/BryntumGridBase.js +333 -0
- package/lib/BryntumGridBase.js.map +1 -0
- package/lib/BryntumGridChartDesigner.d.ts +162 -0
- package/lib/BryntumGridChartDesigner.js +127 -0
- package/lib/BryntumGridChartDesigner.js.map +1 -0
- package/lib/BryntumGridFieldFilterPicker.d.ts +203 -0
- package/lib/BryntumGridFieldFilterPicker.js +162 -0
- package/lib/BryntumGridFieldFilterPicker.js.map +1 -0
- package/lib/BryntumGridFieldFilterPickerGroup.d.ts +206 -0
- package/lib/BryntumGridFieldFilterPickerGroup.js +163 -0
- package/lib/BryntumGridFieldFilterPickerGroup.js.map +1 -0
- package/lib/BryntumGroupBar.d.ts +208 -0
- package/lib/BryntumGroupBar.js +152 -0
- package/lib/BryntumGroupBar.js.map +1 -0
- package/lib/BryntumHint.d.ts +260 -0
- package/lib/BryntumHint.js +184 -0
- package/lib/BryntumHint.js.map +1 -0
- package/lib/BryntumLabel.d.ts +161 -0
- package/lib/BryntumLabel.js +126 -0
- package/lib/BryntumLabel.js.map +1 -0
- package/lib/BryntumList.d.ts +205 -0
- package/lib/BryntumList.js +149 -0
- package/lib/BryntumList.js.map +1 -0
- package/lib/BryntumMenu.d.ts +264 -0
- package/lib/BryntumMenu.js +187 -0
- package/lib/BryntumMenu.js.map +1 -0
- package/lib/BryntumModelCombo.d.ts +266 -0
- package/lib/BryntumModelCombo.js +202 -0
- package/lib/BryntumModelCombo.js.map +1 -0
- package/lib/BryntumMonthPicker.d.ts +240 -0
- package/lib/BryntumMonthPicker.js +173 -0
- package/lib/BryntumMonthPicker.js.map +1 -0
- package/lib/BryntumNumberField.d.ts +234 -0
- package/lib/BryntumNumberField.js +170 -0
- package/lib/BryntumNumberField.js.map +1 -0
- package/lib/BryntumPagingToolbar.d.ts +210 -0
- package/lib/BryntumPagingToolbar.js +156 -0
- package/lib/BryntumPagingToolbar.js.map +1 -0
- package/lib/BryntumPanel.d.ts +231 -0
- package/lib/BryntumPanel.js +170 -0
- package/lib/BryntumPanel.js.map +1 -0
- package/lib/BryntumPasswordField.d.ts +226 -0
- package/lib/BryntumPasswordField.js +162 -0
- package/lib/BryntumPasswordField.js.map +1 -0
- package/lib/BryntumProjectCombo.d.ts +267 -0
- package/lib/BryntumProjectCombo.js +203 -0
- package/lib/BryntumProjectCombo.js.map +1 -0
- package/lib/BryntumRadio.d.ts +239 -0
- package/lib/BryntumRadio.js +168 -0
- package/lib/BryntumRadio.js.map +1 -0
- package/lib/BryntumRadioGroup.d.ts +239 -0
- package/lib/BryntumRadioGroup.js +178 -0
- package/lib/BryntumRadioGroup.js.map +1 -0
- package/lib/BryntumRateTableField.d.ts +266 -0
- package/lib/BryntumRateTableField.js +202 -0
- package/lib/BryntumRateTableField.js.map +1 -0
- package/lib/BryntumResourceCombo.d.ts +267 -0
- package/lib/BryntumResourceCombo.js +203 -0
- package/lib/BryntumResourceCombo.js.map +1 -0
- package/lib/BryntumResourceEditor.d.ts +256 -0
- package/lib/BryntumResourceEditor.js +184 -0
- package/lib/BryntumResourceEditor.js.map +1 -0
- package/lib/BryntumResourceFilter.d.ts +214 -0
- package/lib/BryntumResourceFilter.js +154 -0
- package/lib/BryntumResourceFilter.js.map +1 -0
- package/lib/BryntumResourceGrid.d.ts +833 -0
- package/lib/BryntumResourceGrid.js +283 -0
- package/lib/BryntumResourceGrid.js.map +1 -0
- package/lib/BryntumResourceHistogram.d.ts +1263 -0
- package/lib/BryntumResourceHistogram.js +486 -0
- package/lib/BryntumResourceHistogram.js.map +1 -0
- package/lib/BryntumResourceTypeField.d.ts +266 -0
- package/lib/BryntumResourceTypeField.js +202 -0
- package/lib/BryntumResourceTypeField.js.map +1 -0
- package/lib/BryntumResourceUtilization.d.ts +1278 -0
- package/lib/BryntumResourceUtilization.js +489 -0
- package/lib/BryntumResourceUtilization.js.map +1 -0
- package/lib/BryntumScheduler.d.ts +2038 -0
- package/lib/BryntumScheduler.js +643 -0
- package/lib/BryntumScheduler.js.map +1 -0
- package/lib/BryntumSchedulerBase.d.ts +2037 -0
- package/lib/BryntumSchedulerBase.js +642 -0
- package/lib/BryntumSchedulerBase.js.map +1 -0
- package/lib/BryntumSchedulerDatePicker.d.ts +313 -0
- package/lib/BryntumSchedulerDatePicker.js +216 -0
- package/lib/BryntumSchedulerDatePicker.js.map +1 -0
- package/lib/BryntumSchedulerPro.d.ts +2269 -0
- package/lib/BryntumSchedulerPro.js +700 -0
- package/lib/BryntumSchedulerPro.js.map +1 -0
- package/lib/BryntumSchedulerProBase.d.ts +2268 -0
- package/lib/BryntumSchedulerProBase.js +699 -0
- package/lib/BryntumSchedulerProBase.js.map +1 -0
- package/lib/BryntumSchedulingDirectionPicker.d.ts +266 -0
- package/lib/BryntumSchedulingDirectionPicker.js +202 -0
- package/lib/BryntumSchedulingDirectionPicker.js.map +1 -0
- package/lib/BryntumSchedulingModePicker.d.ts +267 -0
- package/lib/BryntumSchedulingModePicker.js +203 -0
- package/lib/BryntumSchedulingModePicker.js.map +1 -0
- package/lib/BryntumSlideToggle.d.ts +239 -0
- package/lib/BryntumSlideToggle.js +168 -0
- package/lib/BryntumSlideToggle.js.map +1 -0
- package/lib/BryntumSlider.d.ts +184 -0
- package/lib/BryntumSlider.js +142 -0
- package/lib/BryntumSlider.js.map +1 -0
- package/lib/BryntumSplitter.d.ts +174 -0
- package/lib/BryntumSplitter.js +130 -0
- package/lib/BryntumSplitter.js.map +1 -0
- package/lib/BryntumStartDateField.d.ts +245 -0
- package/lib/BryntumStartDateField.js +182 -0
- package/lib/BryntumStartDateField.js.map +1 -0
- package/lib/BryntumTabPanel.d.ts +249 -0
- package/lib/BryntumTabPanel.js +178 -0
- package/lib/BryntumTabPanel.js.map +1 -0
- package/lib/BryntumTextAreaField.d.ts +228 -0
- package/lib/BryntumTextAreaField.js +164 -0
- package/lib/BryntumTextAreaField.js.map +1 -0
- package/lib/BryntumTextAreaPickerField.d.ts +232 -0
- package/lib/BryntumTextAreaPickerField.js +170 -0
- package/lib/BryntumTextAreaPickerField.js.map +1 -0
- package/lib/BryntumTextField.d.ts +229 -0
- package/lib/BryntumTextField.js +166 -0
- package/lib/BryntumTextField.js.map +1 -0
- package/lib/BryntumThemeCombo.d.ts +17 -0
- package/lib/BryntumThemeCombo.js +75 -0
- package/lib/BryntumThemeCombo.js.map +1 -0
- package/lib/BryntumTimeField.d.ts +238 -0
- package/lib/BryntumTimeField.js +175 -0
- package/lib/BryntumTimeField.js.map +1 -0
- package/lib/BryntumTimePicker.d.ts +192 -0
- package/lib/BryntumTimePicker.js +154 -0
- package/lib/BryntumTimePicker.js.map +1 -0
- package/lib/BryntumTimeline.d.ts +2019 -0
- package/lib/BryntumTimeline.js +553 -0
- package/lib/BryntumTimeline.js.map +1 -0
- package/lib/BryntumTimelineHistogram.d.ts +1183 -0
- package/lib/BryntumTimelineHistogram.js +448 -0
- package/lib/BryntumTimelineHistogram.js.map +1 -0
- package/lib/BryntumToolbar.d.ts +209 -0
- package/lib/BryntumToolbar.js +155 -0
- package/lib/BryntumToolbar.js.map +1 -0
- package/lib/BryntumTreeCombo.d.ts +266 -0
- package/lib/BryntumTreeCombo.js +202 -0
- package/lib/BryntumTreeCombo.js.map +1 -0
- package/lib/BryntumTreeGrid.d.ts +843 -0
- package/lib/BryntumTreeGrid.js +334 -0
- package/lib/BryntumTreeGrid.js.map +1 -0
- package/lib/BryntumUndoRedo.d.ts +189 -0
- package/lib/BryntumUndoRedo.js +152 -0
- package/lib/BryntumUndoRedo.js.map +1 -0
- package/lib/BryntumVersionGrid.d.ts +844 -0
- package/lib/BryntumVersionGrid.js +289 -0
- package/lib/BryntumVersionGrid.js.map +1 -0
- package/lib/BryntumViewPresetCombo.d.ts +215 -0
- package/lib/BryntumViewPresetCombo.js +158 -0
- package/lib/BryntumViewPresetCombo.js.map +1 -0
- package/lib/BryntumWidget.d.ts +160 -0
- package/lib/BryntumWidget.js +125 -0
- package/lib/BryntumWidget.js.map +1 -0
- package/lib/BryntumYearPicker.d.ts +240 -0
- package/lib/BryntumYearPicker.js +177 -0
- package/lib/BryntumYearPicker.js.map +1 -0
- package/lib/WrapperHelper.d.ts +26 -0
- package/lib/WrapperHelper.js +569 -0
- package/lib/WrapperHelper.js.map +1 -0
- package/lib/index.d.ts +98 -0
- package/lib/index.js +99 -0
- package/lib/index.js.map +1 -0
- package/license.pdf +0 -0
- package/licenses.md +310 -0
- package/package.json +25 -0
- package/src/BryntumAIFilterField.tsx +998 -0
- package/src/BryntumAssignmentField.tsx +1249 -0
- package/src/BryntumAssignmentGrid.tsx +2347 -0
- package/src/BryntumButton.tsx +887 -0
- package/src/BryntumButtonGroup.tsx +902 -0
- package/src/BryntumCalendarEditor.tsx +1151 -0
- package/src/BryntumCalendarField.tsx +1243 -0
- package/src/BryntumCalendarPicker.tsx +1230 -0
- package/src/BryntumChatPanel.tsx +1082 -0
- package/src/BryntumCheckbox.tsx +1000 -0
- package/src/BryntumCheckboxGroup.tsx +1116 -0
- package/src/BryntumChecklistFilterCombo.tsx +1241 -0
- package/src/BryntumChipView.tsx +914 -0
- package/src/BryntumCodeEditor.tsx +1065 -0
- package/src/BryntumColorField.tsx +995 -0
- package/src/BryntumCombo.tsx +1230 -0
- package/src/BryntumConstraintTypePicker.tsx +1230 -0
- package/src/BryntumContainer.tsx +861 -0
- package/src/BryntumCostAccrualField.tsx +1230 -0
- package/src/BryntumDateField.tsx +1055 -0
- package/src/BryntumDatePicker.tsx +1340 -0
- package/src/BryntumDateRangeField.tsx +1057 -0
- package/src/BryntumDateTimeField.tsx +942 -0
- package/src/BryntumDemoCodeEditor.tsx +1081 -0
- package/src/BryntumDemoHeader.tsx +160 -0
- package/src/BryntumDependencyField.tsx +1271 -0
- package/src/BryntumDependencyTypePicker.tsx +1230 -0
- package/src/BryntumDisplayField.tsx +979 -0
- package/src/BryntumDurationField.tsx +1038 -0
- package/src/BryntumEditor.tsx +1013 -0
- package/src/BryntumEffortField.tsx +1038 -0
- package/src/BryntumEndDateField.tsx +1065 -0
- package/src/BryntumEventColorField.tsx +995 -0
- package/src/BryntumFieldFilterPicker.tsx +943 -0
- package/src/BryntumFieldFilterPickerGroup.tsx +976 -0
- package/src/BryntumFieldSet.tsx +1058 -0
- package/src/BryntumFileField.tsx +982 -0
- package/src/BryntumFilePicker.tsx +888 -0
- package/src/BryntumFilterField.tsx +1023 -0
- package/src/BryntumFullscreenButton.tsx +45 -0
- package/src/BryntumGantt.tsx +4694 -0
- package/src/BryntumGanttBase.tsx +4692 -0
- package/src/BryntumGanttProjectModel.tsx +1144 -0
- package/src/BryntumGrid.tsx +2402 -0
- package/src/BryntumGridBase.tsx +2399 -0
- package/src/BryntumGridChartDesigner.tsx +728 -0
- package/src/BryntumGridFieldFilterPicker.tsx +956 -0
- package/src/BryntumGridFieldFilterPickerGroup.tsx +970 -0
- package/src/BryntumGroupBar.tsx +914 -0
- package/src/BryntumHint.tsx +1125 -0
- package/src/BryntumLabel.tsx +720 -0
- package/src/BryntumList.tsx +891 -0
- package/src/BryntumMenu.tsx +1143 -0
- package/src/BryntumModelCombo.tsx +1230 -0
- package/src/BryntumMonthPicker.tsx +1056 -0
- package/src/BryntumNumberField.tsx +1025 -0
- package/src/BryntumPagingToolbar.tsx +924 -0
- package/src/BryntumPanel.tsx +1035 -0
- package/src/BryntumPasswordField.tsx +969 -0
- package/src/BryntumProjectCombo.tsx +1232 -0
- package/src/BryntumRadio.tsx +1000 -0
- package/src/BryntumRadioGroup.tsx +1088 -0
- package/src/BryntumRateTableField.tsx +1230 -0
- package/src/BryntumResourceCombo.tsx +1235 -0
- package/src/BryntumResourceEditor.tsx +1130 -0
- package/src/BryntumResourceFilter.tsx +930 -0
- package/src/BryntumResourceGrid.tsx +2344 -0
- package/src/BryntumResourceHistogram.tsx +3684 -0
- package/src/BryntumResourceTypeField.tsx +1230 -0
- package/src/BryntumResourceUtilization.tsx +3699 -0
- package/src/BryntumScheduler.tsx +5183 -0
- package/src/BryntumSchedulerBase.tsx +5181 -0
- package/src/BryntumSchedulerDatePicker.tsx +1364 -0
- package/src/BryntumSchedulerPro.tsx +5711 -0
- package/src/BryntumSchedulerProBase.tsx +5709 -0
- package/src/BryntumSchedulingDirectionPicker.tsx +1230 -0
- package/src/BryntumSchedulingModePicker.tsx +1238 -0
- package/src/BryntumSlideToggle.tsx +1000 -0
- package/src/BryntumSlider.tsx +815 -0
- package/src/BryntumSplitter.tsx +754 -0
- package/src/BryntumStartDateField.tsx +1083 -0
- package/src/BryntumTabPanel.tsx +1087 -0
- package/src/BryntumTextAreaField.tsx +981 -0
- package/src/BryntumTextAreaPickerField.tsx +1002 -0
- package/src/BryntumTextField.tsx +987 -0
- package/src/BryntumThemeCombo.tsx +101 -0
- package/src/BryntumTimeField.tsx +1036 -0
- package/src/BryntumTimePicker.tsx +893 -0
- package/src/BryntumTimeline.tsx +5064 -0
- package/src/BryntumTimelineHistogram.tsx +3425 -0
- package/src/BryntumToolbar.tsx +917 -0
- package/src/BryntumTreeCombo.tsx +1230 -0
- package/src/BryntumTreeGrid.tsx +2401 -0
- package/src/BryntumUndoRedo.tsx +885 -0
- package/src/BryntumVersionGrid.tsx +2379 -0
- package/src/BryntumViewPresetCombo.tsx +914 -0
- package/src/BryntumWidget.tsx +715 -0
- package/src/BryntumYearPicker.tsx +1070 -0
- package/src/WrapperHelper.tsx +1125 -0
- package/src/index.ts +103 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BryntumYearPicker.js","sourceRoot":"","sources":["../src/BryntumYearPicker.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAyY,UAAU,EAAuB,MAAM,gBAAgB,CAAC;AAExc,OAAO,EAAE,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAk2B/F,MAAM,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAiC;IAA9E;;QAMI,yBAAoB,GAAG,oBAAoB,CAAC;IA8LhD,CAAC;IA5BG,iBAAiB;QACb,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,oBAAoB;;QAEhB,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,OAAO,kDAAI,CAAC;IAC/B,CAAC;IASD,qBAAqB,CAAC,SAA2C,EAAE,SAAuB;QACtF,OAAO,qBAAqB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM;QAEF,MAAM,SAAS,GAAG,+BAA+B,CAAC;QAClD,OAAO,CACH,6BAAK,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,OAAQ,CAAC,GAAQ,CACjF,CAAC;IAEN,CAAC;;AAjMM,+BAAa,GAAG,UAAU,CAAC;AAE3B,8BAAY,GAAG,YAAY,CAAC;AAI5B,6BAAW,GAAG;IACjB,OAAO;IACP,OAAO;IACP,QAAQ;IACR,iBAAiB;IACjB,WAAW;IACX,kBAAkB;IAClB,MAAM;IACN,SAAS;IACT,cAAc;IACd,UAAU;IACV,aAAa;IACb,OAAO;IACP,QAAQ;IACR,aAAa;IACb,mBAAmB;IACnB,WAAW;IACX,qBAAqB;IACrB,cAAc;IACd,UAAU;IACV,8BAA8B;IAC9B,MAAM;IACN,WAAW;IACX,QAAQ;IACR,mBAAmB;IACnB,UAAU;IACV,QAAQ;IACR,QAAQ;IACR,eAAe;IACf,eAAe;IACf,SAAS;IACT,MAAM;IACN,sBAAsB;IACtB,SAAS;IACT,WAAW;IACX,WAAW;IACX,aAAa;IACb,aAAa;IACb,uBAAuB;IACvB,cAAc;IACd,QAAQ;IACR,SAAS;IACT,SAAS;IACT,eAAe;IACf,YAAY;IACZ,OAAO;IACP,YAAY;IACZ,uBAAuB;IACvB,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,cAAc;IACd,eAAe;IACf,yBAAyB;IACzB,UAAU;IACV,gBAAgB;IAChB,SAAS;IACT,eAAe;IACf,QAAQ;IACR,KAAK;IACL,aAAa;IACb,KAAK;IACL,MAAM;IACN,WAAW;IACX,aAAa;IACb,WAAW;IACX,MAAM;IACN,IAAI;IACJ,QAAQ;IACR,iBAAiB;CACpB,CAAC;AAEK,qCAAmB,GAAG;IACzB,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,6BAA6B;IAC7B,KAAK;IACL,WAAW;IACX,QAAQ;IACR,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,iBAAiB;IACjB,cAAc;IACd,aAAa;IACb,OAAO;IACP,QAAQ;IACR,eAAe;IACf,QAAQ;IACR,aAAa;IACb,QAAQ;IACR,WAAW;IACX,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,UAAU;IACV,iBAAiB;IACjB,cAAc;IACd,mBAAmB;IACnB,cAAc;IACd,oBAAoB;IACpB,mBAAmB;IACnB,YAAY;IACZ,YAAY;IACZ,WAAW;IACX,oBAAoB;IACpB,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,YAAY;IACZ,QAAQ;IACR,SAAS;IACT,YAAY;IACZ,aAAa;IACb,UAAU;IACV,UAAU;IACV,QAAQ;IACR,aAAa;IACb,UAAU;IACV,QAAQ;IACR,WAAW;IACX,KAAK;IACL,YAAY;IACZ,MAAM;IACN,WAAW;IACX,qBAAqB;IACrB,OAAO;IACP,OAAO;IACP,SAAS;IACT,OAAO;IACP,GAAG;IACH,GAAG;IACH,MAAM;CACT,CAAC;AAEK,+BAAa,GAAG;IACnB,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;CACX,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Widget } from '@bryntum/gantt';
|
|
3
|
+
declare global {
|
|
4
|
+
interface Window {
|
|
5
|
+
bryntum: {
|
|
6
|
+
isTestEnv?: boolean;
|
|
7
|
+
react?: {
|
|
8
|
+
isReactElement?: (element: any) => boolean;
|
|
9
|
+
handleReactElement?: (widget: Widget, element: any) => void;
|
|
10
|
+
handleReactHeaderElement?: (column: {
|
|
11
|
+
grid: any;
|
|
12
|
+
id: string;
|
|
13
|
+
}, headerElement: HTMLElement, html: any) => void;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
declare function createWidget(component: any): any;
|
|
19
|
+
declare function shouldComponentUpdate(component: any, nextProps: Readonly<any>, nextState: Readonly<any>): boolean;
|
|
20
|
+
declare function processWidgetContent({ reactElement, widget, reactComponent, contentElement }: {
|
|
21
|
+
reactElement: any;
|
|
22
|
+
widget: any;
|
|
23
|
+
reactComponent: any;
|
|
24
|
+
contentElement: any;
|
|
25
|
+
}): React.ReactPortal | undefined;
|
|
26
|
+
export { createWidget, shouldComponentUpdate, processWidgetContent };
|
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ReactDOM, { flushSync } from 'react-dom';
|
|
3
|
+
import { DomHelper, StringHelper, Widget } from '@bryntum/gantt';
|
|
4
|
+
function devWarning(clsName, msg) {
|
|
5
|
+
var _a;
|
|
6
|
+
if (((_a = window.bryntum) === null || _a === void 0 ? void 0 : _a.isTestEnv) || process.env.NODE_ENV === 'development') {
|
|
7
|
+
console.warn(`Bryntum${clsName}Component development warning!\n${msg}\n` +
|
|
8
|
+
'Please check React integration guide: https://bryntum.com/products/gantt/docs/guide/Gantt/integration/react/guide');
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
function devWarningContainer(clsName, containerParam) {
|
|
12
|
+
devWarning(clsName, `Using "${containerParam}" parameter for configuration is not recommended.\n` +
|
|
13
|
+
"Widget is placed automatically inside it's container element.\n" +
|
|
14
|
+
`Solution: remove "${containerParam}" parameter from configuration.`);
|
|
15
|
+
}
|
|
16
|
+
function devWarningConfigProp(clsName, prop) {
|
|
17
|
+
devWarning(clsName, `Using "${prop}" parameter for configuration is not recommended.\n` +
|
|
18
|
+
`Solution: Use separate parameter for each "${prop}" value to enable reactive updates of the API instance`);
|
|
19
|
+
}
|
|
20
|
+
function devWarningProjectProp(clsName) {
|
|
21
|
+
devWarning(clsName, 'Using the "project" prop with inner store configurations is not recommended.\n' +
|
|
22
|
+
`Solution: Use an instance of the 'ProjectModel' class or the '<Bryntum${clsName}ProjectModel/>' component`);
|
|
23
|
+
}
|
|
24
|
+
function isReactElement(element) {
|
|
25
|
+
return Boolean((element === null || element === void 0 ? void 0 : element.$$typeof) === Symbol.for('react.element') || (element === null || element === void 0 ? void 0 : element.$$typeof) === Symbol.for('react.transitional.element'));
|
|
26
|
+
}
|
|
27
|
+
function createConfig(reactInstance) {
|
|
28
|
+
const { element, props, constructor } = reactInstance, { instanceClass, instanceName, isView } = constructor, filter = (arr) => arr.filter(prop => props[prop] !== undefined), configNames = filter(constructor.configNames || []), propertyConfigNames = filter(constructor.propertyConfigNames || []), propertyNames = filter(constructor.propertyNames || []), featureNames = filter(constructor.featureNames || []), bryntumConfig = {
|
|
29
|
+
adopt: undefined,
|
|
30
|
+
appendTo: undefined,
|
|
31
|
+
href: undefined,
|
|
32
|
+
reactComponent: reactInstance,
|
|
33
|
+
listeners: {},
|
|
34
|
+
features: {},
|
|
35
|
+
hasFrameworkRenderer: isView ? hasFrameworkRenderer : undefined,
|
|
36
|
+
processCellContent: isView ? processCellContent : undefined,
|
|
37
|
+
processCellEditor: isView ? processCellEditor : undefined,
|
|
38
|
+
processEventContent: isView ? processEventContent : undefined,
|
|
39
|
+
processTaskItemContent: isView ? processTaskItemContent : undefined,
|
|
40
|
+
processResourceHeader: isView ? processResourceHeader : undefined
|
|
41
|
+
};
|
|
42
|
+
const isDataStoreConfig = (prop) => {
|
|
43
|
+
if (reactInstance.dataStores) {
|
|
44
|
+
const dataStoreNames = Object.values(reactInstance.dataStores);
|
|
45
|
+
return dataStoreNames.includes(prop) || dataStoreNames.includes(`${prop}Data`);
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
configNames
|
|
49
|
+
.concat(propertyConfigNames)
|
|
50
|
+
.concat(featureNames)
|
|
51
|
+
.forEach(prop => {
|
|
52
|
+
applyPropValue(bryntumConfig, prop, props[prop]);
|
|
53
|
+
if (['features', 'config'].includes(prop) && !isDataStoreConfig(prop)) {
|
|
54
|
+
devWarningConfigProp(instanceClass.$name, prop);
|
|
55
|
+
}
|
|
56
|
+
if (prop === 'project' && reactInstance.projectStores) {
|
|
57
|
+
if (Object.values(reactInstance.dataStores).some(store => props[prop][store])) {
|
|
58
|
+
devWarningProjectProp(instanceClass.$name);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
reactInstance.configNames = configNames;
|
|
63
|
+
reactInstance.propertyNames = configNames
|
|
64
|
+
.concat(propertyNames)
|
|
65
|
+
.concat(propertyConfigNames)
|
|
66
|
+
.concat(featureNames);
|
|
67
|
+
if (reactInstance.dataStores) {
|
|
68
|
+
Object.values(reactInstance.dataStores).forEach((dataName) => {
|
|
69
|
+
if (props[dataName]) {
|
|
70
|
+
bryntumConfig[dataName] = props[dataName];
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (reactInstance.propertyConfigNames) {
|
|
75
|
+
delete reactInstance.propertyConfigNames;
|
|
76
|
+
}
|
|
77
|
+
if (reactInstance.featureNames) {
|
|
78
|
+
delete reactInstance.featureNames;
|
|
79
|
+
}
|
|
80
|
+
const containerParam = ['adopt', 'appendTo', 'insertAfter', 'insertBefore'].find(prop => bryntumConfig[prop]);
|
|
81
|
+
if (!containerParam) {
|
|
82
|
+
if (instanceName === 'Button') {
|
|
83
|
+
bryntumConfig.appendTo = element;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
bryntumConfig.adopt = element;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
devWarningContainer(instanceClass.$name, containerParam);
|
|
91
|
+
}
|
|
92
|
+
return bryntumConfig;
|
|
93
|
+
}
|
|
94
|
+
function applyPropValue(configOrInstance, prop, value, isConfig = true) {
|
|
95
|
+
var _a;
|
|
96
|
+
if ((_a = value === null || value === void 0 ? void 0 : value.current) === null || _a === void 0 ? void 0 : _a.instance) {
|
|
97
|
+
value = value.current.instance;
|
|
98
|
+
}
|
|
99
|
+
if (prop === 'features' && typeof value === 'object') {
|
|
100
|
+
Object.keys(value).forEach(key => applyPropValue(configOrInstance, `${key}Feature`, value[key], isConfig));
|
|
101
|
+
}
|
|
102
|
+
else if (prop === 'config' && typeof value === 'object') {
|
|
103
|
+
Object.keys(value).forEach(key => applyPropValue(configOrInstance, key, value[key], isConfig));
|
|
104
|
+
}
|
|
105
|
+
else if (prop === 'columns' && !isConfig) {
|
|
106
|
+
configOrInstance.columns = value;
|
|
107
|
+
}
|
|
108
|
+
else if (prop.endsWith('Feature')) {
|
|
109
|
+
const { features } = configOrInstance, featureName = prop.replace('Feature', '');
|
|
110
|
+
if (isConfig) {
|
|
111
|
+
features[featureName] = value;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const feature = features[featureName];
|
|
115
|
+
if (feature) {
|
|
116
|
+
feature.setConfig(value);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
configOrInstance[prop] = value;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function createWidget(component) {
|
|
125
|
+
const { instanceClass, isView } = component.constructor, config = createConfig(component), instance = instanceClass.$name === 'Widget' ? Widget.create(config) : new instanceClass(config);
|
|
126
|
+
if (isView) {
|
|
127
|
+
component[StringHelper.uncapitalize(instanceClass.$name) + 'Instance'] = instance;
|
|
128
|
+
}
|
|
129
|
+
if (isView) {
|
|
130
|
+
component[StringHelper.uncapitalize(instanceClass.$name) + 'Instance'] = instance;
|
|
131
|
+
const subscribeStores = (storeInstance, stores) => {
|
|
132
|
+
if (stores) {
|
|
133
|
+
Object.keys(stores).forEach(storeName => {
|
|
134
|
+
const store = storeInstance[storeName];
|
|
135
|
+
if (store) {
|
|
136
|
+
if (store.syncDataOnLoad == null && !store.readUrl && !store.lazyLoad && (!store.crudManager || !store.crudManager.loadUrl)) {
|
|
137
|
+
store.syncDataOnLoad = true;
|
|
138
|
+
}
|
|
139
|
+
store.on('beforeRemove', (context) => beforeRemoveRecords(component, context));
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
subscribeStores(component.projectStores ? instance.project : instance, component.dataStores);
|
|
145
|
+
}
|
|
146
|
+
if (config['data']) {
|
|
147
|
+
instance.lastDataset = config['data'].slice();
|
|
148
|
+
}
|
|
149
|
+
return instance;
|
|
150
|
+
}
|
|
151
|
+
function getPortalId(id, columnId) {
|
|
152
|
+
return `portal-${id}-${columnId}`;
|
|
153
|
+
}
|
|
154
|
+
function deletePortal(component, portalId) {
|
|
155
|
+
var _a;
|
|
156
|
+
const portal = component.state.portals.get(portalId);
|
|
157
|
+
if (portal) {
|
|
158
|
+
const portalContainer = portal.containerInfo;
|
|
159
|
+
component.state.portals.delete(portalId);
|
|
160
|
+
(_a = portalContainer.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(portalContainer);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function releaseReactCell(component, cellElement) {
|
|
164
|
+
const { id, columnId, hasPortal } = cellElement._domData;
|
|
165
|
+
if (hasPortal) {
|
|
166
|
+
const portalId = getPortalId(id, columnId);
|
|
167
|
+
deletePortal(component, portalId);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function beforeRemoveRecords(component, { records, removingAll }) {
|
|
171
|
+
const { instance } = component;
|
|
172
|
+
if (removingAll) {
|
|
173
|
+
[...component.state.portals.keys()].forEach(portalId => deletePortal(component, portalId));
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
records.forEach(record => {
|
|
177
|
+
const row = instance.getRowById ? instance.getRowById(record.id) : undefined;
|
|
178
|
+
if (row) {
|
|
179
|
+
row.cells.forEach((cell) => {
|
|
180
|
+
releaseReactCell(component, cell);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
function updateGeneration(component, thisTick = false, callback = () => { }) {
|
|
187
|
+
const updateState = () => {
|
|
188
|
+
component.setState((currentState) => {
|
|
189
|
+
return Object.assign(Object.assign({}, currentState), { generation: currentState.generation + 1 });
|
|
190
|
+
}, callback);
|
|
191
|
+
};
|
|
192
|
+
if (thisTick) {
|
|
193
|
+
updateState();
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
requestAnimationFrame(updateState);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
function shouldComponentUpdate(component, nextProps, nextState) {
|
|
200
|
+
var _a;
|
|
201
|
+
const { props, instance, propertyNames } = component;
|
|
202
|
+
propertyNames.forEach((prop) => {
|
|
203
|
+
if (props[prop] !== nextProps[prop]) {
|
|
204
|
+
applyPropValue(instance, prop, nextProps[prop], false);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
return (nextState === null || nextState === void 0 ? void 0 : nextState.generation) !== ((_a = component.state) === null || _a === void 0 ? void 0 : _a.generation);
|
|
208
|
+
}
|
|
209
|
+
function hasFrameworkRenderer({ cellContent }) {
|
|
210
|
+
return DomHelper.isReactElement(cellContent);
|
|
211
|
+
}
|
|
212
|
+
function processCellContent({ rendererData, cellElementData, rendererHtml }) {
|
|
213
|
+
const component = this.reactComponent, { state, portalsCache, portalContainerClass } = component, { cellElement, column, record } = rendererData, portalId = getPortalId(record.id, column.id), renderElement = cellElement.querySelector(column.editTargetSelector) || cellElement;
|
|
214
|
+
if (!renderElement) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
if (rendererHtml &&
|
|
218
|
+
DomHelper.isReactElement(rendererHtml) &&
|
|
219
|
+
!record.meta.specialRow) {
|
|
220
|
+
if (renderElement.portalContainer &&
|
|
221
|
+
renderElement.portalContainer.dataset.portalId === portalId) {
|
|
222
|
+
portalsCache.appendChild(renderElement.portalContainer);
|
|
223
|
+
renderElement.portalContainer = null;
|
|
224
|
+
}
|
|
225
|
+
let portal = state.portals.get(portalId), forceFlushSync = false;
|
|
226
|
+
if (rendererData.isMeasuring) {
|
|
227
|
+
if (portal) {
|
|
228
|
+
const portalContainer = portal.containerInfo, parent = portalContainer.parentNode;
|
|
229
|
+
cellElement.style.width = 'auto';
|
|
230
|
+
const cellElementWidth = cellElement.offsetWidth;
|
|
231
|
+
cellElement.appendChild(portalContainer);
|
|
232
|
+
const width = portalContainer.offsetWidth;
|
|
233
|
+
parent.appendChild(portalContainer);
|
|
234
|
+
cellElement.style.width = `${width + cellElementWidth}px`;
|
|
235
|
+
}
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (portal && (portal.generation !== record.generation || this.isExporting || this.$isCollapsing)) {
|
|
239
|
+
deletePortal(component, portalId);
|
|
240
|
+
portal = null;
|
|
241
|
+
forceFlushSync = true;
|
|
242
|
+
}
|
|
243
|
+
const childPortalContainer = renderElement.querySelector(`.${portalContainerClass}`);
|
|
244
|
+
if (childPortalContainer && childPortalContainer.dataset.portalId !== portalId) {
|
|
245
|
+
portalsCache.appendChild(childPortalContainer);
|
|
246
|
+
}
|
|
247
|
+
if (renderElement.textContent && renderElement === cellElement) {
|
|
248
|
+
renderElement.textContent = '';
|
|
249
|
+
}
|
|
250
|
+
if (portal) {
|
|
251
|
+
renderElement.appendChild(portal.containerInfo);
|
|
252
|
+
renderElement.portalContainer = portal.containerInfo;
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
const portalContainer = DomHelper.append(renderElement, {
|
|
256
|
+
tag: 'div',
|
|
257
|
+
className: portalContainerClass,
|
|
258
|
+
dataset: { portalId }
|
|
259
|
+
});
|
|
260
|
+
renderElement.portalContainer = portalContainer;
|
|
261
|
+
portal = ReactDOM.createPortal(rendererHtml, portalContainer, portalId);
|
|
262
|
+
state.portals.set(portalId, portal);
|
|
263
|
+
if (forceFlushSync) {
|
|
264
|
+
flushSync(() => updateGeneration(component, true));
|
|
265
|
+
forceFlushSync = false;
|
|
266
|
+
}
|
|
267
|
+
else {
|
|
268
|
+
updateGeneration(component, this.isExporting);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
cellElementData.hasPortal = true;
|
|
272
|
+
portal.generation = record.generation;
|
|
273
|
+
}
|
|
274
|
+
else if (!rendererHtml && cellElementData.hasPortal) {
|
|
275
|
+
cellElement.portalContainer.remove();
|
|
276
|
+
cellElementData.hasPortal = false;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
function processCellEditor({ editor, field }) {
|
|
280
|
+
const component = this.reactComponent;
|
|
281
|
+
if (!component || typeof editor !== 'function') {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const wrapperWidget = new Widget({
|
|
285
|
+
name: field,
|
|
286
|
+
allowMouseEvents: true,
|
|
287
|
+
assignValue(values, key, value) {
|
|
288
|
+
this.setValue(value);
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
const widgetRef = React.createRef();
|
|
292
|
+
wrapperWidget['reactRef'] = widgetRef;
|
|
293
|
+
const editorComponent = editor(widgetRef, this);
|
|
294
|
+
if (!DomHelper.isReactElement(editorComponent)) {
|
|
295
|
+
throw new Error('Expect a React element');
|
|
296
|
+
}
|
|
297
|
+
let editorValidityChecked = false;
|
|
298
|
+
wrapperWidget.setValue = async (value) => {
|
|
299
|
+
const widget = widgetRef.current;
|
|
300
|
+
if (widget) {
|
|
301
|
+
if (!editorValidityChecked) {
|
|
302
|
+
const cellMethods = ['setValue', 'getValue', 'isValid', 'focus'], misses = cellMethods.filter(fn => !(fn in widget));
|
|
303
|
+
if (misses.length > 0) {
|
|
304
|
+
throw new Error(`Missing method(s) ${misses.join(', ')} in ${widget.constructor.name}. Cell editors must ${cellMethods.join(', ')}`);
|
|
305
|
+
}
|
|
306
|
+
editorValidityChecked = true;
|
|
307
|
+
}
|
|
308
|
+
const context = wrapperWidget.owner['cellEditorContext'];
|
|
309
|
+
await widget.setValue(value, context);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
wrapperWidget.firstValue = value;
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
Object.defineProperty(wrapperWidget, 'value', {
|
|
316
|
+
enumerable: true,
|
|
317
|
+
configurable: true,
|
|
318
|
+
get() {
|
|
319
|
+
const widget = widgetRef.current;
|
|
320
|
+
return widget === null || widget === void 0 ? void 0 : widget.getValue();
|
|
321
|
+
}
|
|
322
|
+
});
|
|
323
|
+
Object.defineProperty(wrapperWidget, 'isValid', {
|
|
324
|
+
enumerable: true,
|
|
325
|
+
configurable: true,
|
|
326
|
+
get() {
|
|
327
|
+
const widget = widgetRef.current;
|
|
328
|
+
return widget === null || widget === void 0 ? void 0 : widget.isValid();
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
wrapperWidget.focus = () => {
|
|
332
|
+
var _a;
|
|
333
|
+
const widget = widgetRef.current;
|
|
334
|
+
if (!widget) {
|
|
335
|
+
wrapperWidget.focusPending = true;
|
|
336
|
+
}
|
|
337
|
+
else {
|
|
338
|
+
(_a = widget.focus) === null || _a === void 0 ? void 0 : _a.call(widget);
|
|
339
|
+
}
|
|
340
|
+
};
|
|
341
|
+
const portal = ReactDOM.createPortal(editorComponent, wrapperWidget.element);
|
|
342
|
+
wrapperWidget['reactPortal'] = portal;
|
|
343
|
+
const { state } = component;
|
|
344
|
+
state.portals.set(`portal-${field}`, portal);
|
|
345
|
+
updateGeneration(component, true, () => {
|
|
346
|
+
if (wrapperWidget.firstValue !== undefined) {
|
|
347
|
+
wrapperWidget.setValue(wrapperWidget.firstValue);
|
|
348
|
+
delete wrapperWidget.firstValue;
|
|
349
|
+
}
|
|
350
|
+
if (wrapperWidget.focusPending) {
|
|
351
|
+
wrapperWidget.focus();
|
|
352
|
+
delete wrapperWidget.focusPending;
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
return { editor: wrapperWidget };
|
|
356
|
+
}
|
|
357
|
+
function processWidgetContent({ reactElement, widget, reactComponent, contentElement }) {
|
|
358
|
+
var _a;
|
|
359
|
+
const portals = (_a = reactComponent === null || reactComponent === void 0 ? void 0 : reactComponent.state) === null || _a === void 0 ? void 0 : _a.portals, portalId = widget === null || widget === void 0 ? void 0 : widget.id;
|
|
360
|
+
if (isReactElement(reactElement)) {
|
|
361
|
+
if (!portals.has(portalId) && widget.html) {
|
|
362
|
+
widget.contentElement.innerHTML = '';
|
|
363
|
+
}
|
|
364
|
+
const portal = ReactDOM.createPortal(reactElement, contentElement || widget.contentElement);
|
|
365
|
+
portals.set(portalId, portal);
|
|
366
|
+
if (widget.isTooltip && !widget.html) {
|
|
367
|
+
flushSync(() => updateGeneration(reactComponent, true));
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
updateGeneration(reactComponent, true);
|
|
371
|
+
}
|
|
372
|
+
return portal;
|
|
373
|
+
}
|
|
374
|
+
else if (portals === null || portals === void 0 ? void 0 : portals.has(portalId)) {
|
|
375
|
+
portals.delete(portalId);
|
|
376
|
+
flushSync(() => updateGeneration(reactComponent, true));
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
function processTaskItemContent({ jsx, targetElement, reactComponent, domConfig }) {
|
|
380
|
+
if (!reactComponent || !jsx) {
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
const { state } = reactComponent, { portals } = state, cardElement = targetElement.closest('.b-task-board-card'), portalId = `task-item-${domConfig.reference}-${cardElement === null || cardElement === void 0 ? void 0 : cardElement.elementData.taskId}`, portal = ReactDOM.createPortal(jsx, targetElement, portalId);
|
|
384
|
+
portals.set(portalId, portal);
|
|
385
|
+
updateGeneration(reactComponent);
|
|
386
|
+
}
|
|
387
|
+
function processCalendarEventContent({ jsx, action, domConfig, targetElement, reactComponent }) {
|
|
388
|
+
var _a, _b, _c, _d, _e;
|
|
389
|
+
const me = this, returnValue = false, { state } = reactComponent, { portals } = state, wrap = targetElement.closest('.b-cal-event-wrap'), dataHolder = targetElement.closest('[data-date]'), refHolder = targetElement.closest('[data-ref]'), mode = typeof this.mode === 'string' ? this.mode : (_b = (_a = this.mode) === null || _a === void 0 ? void 0 : _a.type) === null || _b === void 0 ? void 0 : _b.slice(0, 4), lastPortalId = wrap === null || wrap === void 0 ? void 0 : wrap.dataset.lastPortalId, portalKey = ((_c = domConfig.dataset) === null || _c === void 0 ? void 0 : _c.date) || ((_d = (dataHolder)) === null || _d === void 0 ? void 0 : _d.dataset.date), containerRef = (_e = refHolder === null || refHolder === void 0 ? void 0 : refHolder.dataset) === null || _e === void 0 ? void 0 : _e.ref;
|
|
390
|
+
reactComponent.syncContent = reactComponent.syncContent || function (fn) {
|
|
391
|
+
flushSync(fn);
|
|
392
|
+
};
|
|
393
|
+
let portalId = `portal-${mode}-${wrap === null || wrap === void 0 ? void 0 : wrap.dataset.eventId}`;
|
|
394
|
+
me.portalKey = portalKey === undefined ? me.portalKey : portalKey;
|
|
395
|
+
me.containerRef = containerRef === undefined ? me.containerRef : containerRef;
|
|
396
|
+
if (action === 'none' || action === 'reuseElement') {
|
|
397
|
+
return returnValue;
|
|
398
|
+
}
|
|
399
|
+
if (action === 'removeElement' && lastPortalId) {
|
|
400
|
+
portals.delete(lastPortalId);
|
|
401
|
+
updateGeneration(reactComponent);
|
|
402
|
+
}
|
|
403
|
+
if (jsx && wrap) {
|
|
404
|
+
portalId = `${portalId}-${me.portalKey}-${me.containerRef}`;
|
|
405
|
+
const parent = wrap.querySelector('.b-cal-event-desc');
|
|
406
|
+
parent.innerHTML = '';
|
|
407
|
+
const jsxContainer = DomHelper.createElement({
|
|
408
|
+
className: 'b-jsx-container',
|
|
409
|
+
parent,
|
|
410
|
+
retainElement: true
|
|
411
|
+
}), portal = ReactDOM.createPortal(jsx, jsxContainer);
|
|
412
|
+
portals.set(portalId, portal);
|
|
413
|
+
reactComponent.syncContent(() => {
|
|
414
|
+
updateGeneration(reactComponent, true);
|
|
415
|
+
});
|
|
416
|
+
wrap.dataset.lastPortalId = portalId;
|
|
417
|
+
}
|
|
418
|
+
return returnValue;
|
|
419
|
+
}
|
|
420
|
+
function generateEventPortalId(assignmentRecord, eventRecord, segment, isExporting) {
|
|
421
|
+
var _a;
|
|
422
|
+
const isRecurring = (eventRecord === null || eventRecord === void 0 ? void 0 : eventRecord.isRecurring) || (eventRecord === null || eventRecord === void 0 ? void 0 : eventRecord.isOccurrence);
|
|
423
|
+
return `assignment-${assignmentRecord === null || assignmentRecord === void 0 ? void 0 : assignmentRecord.id}${isRecurring ? '-' + (((_a = eventRecord.recurrence) === null || _a === void 0 ? void 0 : _a.id) || '') : ''}${segment ? '-' + segment : ''}${isExporting ? '-export' : ''}`;
|
|
424
|
+
}
|
|
425
|
+
function deleteNestedEventPortals(component, parentEventRecord, resourceRecord, isExporting) {
|
|
426
|
+
var _a, _b;
|
|
427
|
+
const children = parentEventRecord === null || parentEventRecord === void 0 ? void 0 : parentEventRecord.children;
|
|
428
|
+
if (!(children === null || children === void 0 ? void 0 : children.length)) {
|
|
429
|
+
return;
|
|
430
|
+
}
|
|
431
|
+
const { portals } = component.state;
|
|
432
|
+
for (const childEvent of children) {
|
|
433
|
+
const assignmentRecord = (_a = childEvent.assignments) === null || _a === void 0 ? void 0 : _a.find((a) => a.resourceId === (resourceRecord === null || resourceRecord === void 0 ? void 0 : resourceRecord.id));
|
|
434
|
+
if (assignmentRecord) {
|
|
435
|
+
const portalId = generateEventPortalId(assignmentRecord, null, '', isExporting);
|
|
436
|
+
if (portals.has(portalId)) {
|
|
437
|
+
deletePortal(component, portalId);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
if (childEvent.isParent && ((_b = childEvent.children) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
441
|
+
deleteNestedEventPortals(component, childEvent, resourceRecord, isExporting);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
function processEventContent({ jsx, action, targetElement, isRelease, reactComponent, scrolling, domConfig }) {
|
|
446
|
+
var _a, _b, _c, _d, _e;
|
|
447
|
+
if (this.type === 'calendar' && this.mode !== 'timeline' && ((_a = this.mode) === null || _a === void 0 ? void 0 : _a.type) !== 'scheduler') {
|
|
448
|
+
return processCalendarEventContent.call(this, arguments[0]);
|
|
449
|
+
}
|
|
450
|
+
const { eventResize, eventDrag, eventEdit, nestedEvents } = this.features;
|
|
451
|
+
if (!reactComponent || action === 'none' || ((eventResize === null || eventResize === void 0 ? void 0 : eventResize.isResizing) && !eventResize.dragging.completed && !scrolling)) {
|
|
452
|
+
return false;
|
|
453
|
+
}
|
|
454
|
+
const domConfigData = this.isVertical ? (_b = domConfig === null || domConfig === void 0 ? void 0 : domConfig.elementData) === null || _b === void 0 ? void 0 : _b.renderData : domConfig === null || domConfig === void 0 ? void 0 : domConfig.elementData;
|
|
455
|
+
let wrap = targetElement, parent = null, segment = '', returnValue = false;
|
|
456
|
+
if (jsx) {
|
|
457
|
+
if ((_c = domConfig === null || domConfig === void 0 ? void 0 : domConfig.dataset) === null || _c === void 0 ? void 0 : _c.isMilestone) {
|
|
458
|
+
wrap = targetElement.parentElement.parentElement.parentElement;
|
|
459
|
+
parent = targetElement.parentElement;
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
wrap = targetElement.parentElement.parentElement;
|
|
463
|
+
parent = targetElement;
|
|
464
|
+
}
|
|
465
|
+
if (!wrap.elementData) {
|
|
466
|
+
wrap = wrap.closest('.b-sch-event-wrap');
|
|
467
|
+
segment = ((_d = parent.parentElement.dataset) === null || _d === void 0 ? void 0 : _d.segment) || '';
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
else if (!(domConfigData === null || domConfigData === void 0 ? void 0 : domConfigData.isWrap) || domConfigData.eventRecord.isResourceTimeRange) {
|
|
471
|
+
return returnValue;
|
|
472
|
+
}
|
|
473
|
+
const wrapData = this.isVertical ? wrap.elementData.renderData : wrap.elementData, currentData = domConfigData !== null && domConfigData !== void 0 ? domConfigData : wrapData, { assignmentRecord, eventRecord, resourceRecord } = currentData, { state } = reactComponent, { portals } = state, isRecurring = eventRecord.isRecurring || eventRecord.isOccurrence, isExporting = this.isExporting, portalId = generateEventPortalId(assignmentRecord, eventRecord, segment, isExporting);
|
|
474
|
+
if ((nestedEvents === null || nestedEvents === void 0 ? void 0 : nestedEvents.enabled) && action === 'reuseOwnElement' && eventRecord.isParent) {
|
|
475
|
+
const eventElement = targetElement.firstElementChild;
|
|
476
|
+
if (eventElement) {
|
|
477
|
+
eventElement.lastDomConfig = null;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
reactComponent.syncContent = reactComponent.syncContent || function (fn) {
|
|
481
|
+
flushSync(fn);
|
|
482
|
+
};
|
|
483
|
+
if (isRelease && !isRecurring) {
|
|
484
|
+
let generationUpdateFlag = false;
|
|
485
|
+
if (portals.has(portalId)) {
|
|
486
|
+
deletePortal(reactComponent, portalId);
|
|
487
|
+
generationUpdateFlag = true;
|
|
488
|
+
}
|
|
489
|
+
if ((nestedEvents === null || nestedEvents === void 0 ? void 0 : nestedEvents.enabled) && ((_e = eventRecord.children) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
490
|
+
deleteNestedEventPortals(reactComponent, eventRecord, resourceRecord, isExporting);
|
|
491
|
+
generationUpdateFlag = true;
|
|
492
|
+
}
|
|
493
|
+
if (generationUpdateFlag) {
|
|
494
|
+
updateGeneration(reactComponent, true);
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
jsx = jsx || (action === 'reuseOwnElement' && wrap.lastJSX);
|
|
499
|
+
if (jsx) {
|
|
500
|
+
parent = parent || wrap.querySelector('.b-sch-event-content');
|
|
501
|
+
const portal = portals.get(portalId), updateContent = () => {
|
|
502
|
+
parent.innerHTML = '';
|
|
503
|
+
const jsxContainer = DomHelper.createElement({
|
|
504
|
+
className: 'b-jsx-container b-event-text-wrap',
|
|
505
|
+
parent,
|
|
506
|
+
retainElement: true
|
|
507
|
+
}), portal = ReactDOM.createPortal(jsx, jsxContainer);
|
|
508
|
+
portal.eventGeneration = wrap.elementData.eventGeneration;
|
|
509
|
+
wrap.lastJSX = jsx;
|
|
510
|
+
portals.set(portalId, portal);
|
|
511
|
+
if (isExporting) {
|
|
512
|
+
flushSync(() => updateGeneration(reactComponent, true));
|
|
513
|
+
}
|
|
514
|
+
else {
|
|
515
|
+
updateGeneration(reactComponent, true);
|
|
516
|
+
}
|
|
517
|
+
}, isEditing = eventEdit === null || eventEdit === void 0 ? void 0 : eventEdit.isEditing, isDragging = eventDrag === null || eventDrag === void 0 ? void 0 : eventDrag.isDragging;
|
|
518
|
+
if (!portal || isRecurring || isExporting || portal.eventGeneration !== wrap.elementData.eventGeneration) {
|
|
519
|
+
if ((scrolling || !isDragging) && !isEditing) {
|
|
520
|
+
updateContent();
|
|
521
|
+
}
|
|
522
|
+
else {
|
|
523
|
+
reactComponent.syncContent(updateContent);
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
returnValue = true;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return returnValue;
|
|
530
|
+
}
|
|
531
|
+
function processResourceHeader({ jsx, targetElement }) {
|
|
532
|
+
if (!jsx) {
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
const { reactComponent } = this, { state } = reactComponent, { portals } = state, portalId = `resource-header-${targetElement.dataset.resourceId}`;
|
|
536
|
+
if (portals.has(portalId)) {
|
|
537
|
+
portals.delete(portalId);
|
|
538
|
+
updateGeneration(reactComponent, true);
|
|
539
|
+
}
|
|
540
|
+
portals.set(portalId, ReactDOM.createPortal(jsx, targetElement));
|
|
541
|
+
updateGeneration(reactComponent);
|
|
542
|
+
}
|
|
543
|
+
function handleReactElement(widget, element) {
|
|
544
|
+
var _a;
|
|
545
|
+
const parent = widget.closest((c) => Boolean(c.reactComponent)), reactComponent = (parent === null || parent === void 0 ? void 0 : parent.reactComponent) ||
|
|
546
|
+
((_a = Widget.query((c) => { var _a; return Boolean((_a = c.reactComponent) === null || _a === void 0 ? void 0 : _a.state); })) === null || _a === void 0 ? void 0 : _a.reactComponent);
|
|
547
|
+
reactComponent === null || reactComponent === void 0 ? void 0 : reactComponent.processWidgetContent({
|
|
548
|
+
reactElement: element,
|
|
549
|
+
widget,
|
|
550
|
+
reactComponent
|
|
551
|
+
});
|
|
552
|
+
}
|
|
553
|
+
function handleReactHeaderElement(column, headerElement, html) {
|
|
554
|
+
const { reactComponent } = column.grid, contentElement = headerElement.querySelector('.b-grid-header-text-content');
|
|
555
|
+
reactComponent === null || reactComponent === void 0 ? void 0 : reactComponent.processWidgetContent({
|
|
556
|
+
reactElement: html,
|
|
557
|
+
widget: { id: column.id },
|
|
558
|
+
reactComponent,
|
|
559
|
+
contentElement
|
|
560
|
+
});
|
|
561
|
+
}
|
|
562
|
+
export { createWidget, shouldComponentUpdate, processWidgetContent };
|
|
563
|
+
window.bryntum = window.bryntum || {};
|
|
564
|
+
window.bryntum.react = {
|
|
565
|
+
isReactElement,
|
|
566
|
+
handleReactHeaderElement,
|
|
567
|
+
handleReactElement
|
|
568
|
+
};
|
|
569
|
+
//# sourceMappingURL=WrapperHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WrapperHelper.js","sourceRoot":"","sources":["../src/WrapperHelper.tsx"],"names":[],"mappings":"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"}
|