@progress/kendo-angular-scheduler 3.0.3-dev.202204061046 → 4.0.0-dev.202204140813
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/bundles/kendo-angular-scheduler.umd.js +5 -0
- package/{dist/es2015/common → common}/constants.d.ts +0 -0
- package/{dist/es2015/common → common}/default-model-fields.d.ts +0 -0
- package/{dist/es2015/common → common}/dom-queries.d.ts +0 -0
- package/{dist/es2015/common → common}/getter.d.ts +0 -0
- package/{dist/es2015/common → common}/modifiers.d.ts +0 -0
- package/{dist/es2015/common → common}/setter.d.ts +0 -0
- package/{dist/es2015/common → common}/util.d.ts +0 -0
- package/data-binding.directive.d.ts +54 -0
- package/editing/date-time-picker.component.d.ts +39 -0
- package/editing/dialogs.service.d.ts +44 -0
- package/editing/edit-dialog-template.directive.d.ts +27 -0
- package/editing/edit-dialog.component.d.ts +80 -0
- package/editing/edit.service.d.ts +57 -0
- package/editing/local-data-changes.service.d.ts +15 -0
- package/editing/recurrence/end-rule-radio-button.directive.d.ts +31 -0
- package/editing/recurrence/localization/custom-messages.component.d.ts +18 -0
- package/editing/recurrence/localization/localized-messages.directive.d.ts +16 -0
- package/editing/recurrence/localization/messages.d.ts +141 -0
- package/editing/recurrence/localization/recurrence-localization.service.d.ts +17 -0
- package/editing/recurrence/recurrence-editor.component.d.ts +91 -0
- package/editing/recurrence/recurrence-end-rule-editor.component.d.ts +45 -0
- package/editing/recurrence/recurrence-frequency-editor.component.d.ts +26 -0
- package/editing/recurrence/recurrence-interval-editor.component.d.ts +27 -0
- package/editing/recurrence/recurrence-monthly-yearly-editor.component.d.ts +53 -0
- package/editing/recurrence/recurrence-weekday-rule-editor.component.d.ts +31 -0
- package/editing/recurrence/recurrence.service.d.ts +118 -0
- package/editing/recurrence/repeat-on-radio-button.directive.d.ts +32 -0
- package/editing/resource-editor-base.d.ts +37 -0
- package/editing/resource-multiple-editor.component.d.ts +21 -0
- package/editing/resource-single-editor.component.d.ts +20 -0
- package/editing/timezone-editor.component.d.ts +60 -0
- package/editing-directives/base-edit.service.d.ts +168 -0
- package/{dist/es2015/editing-directives → editing-directives}/edit-service.interface.d.ts +0 -0
- package/editing-directives/editing-directive-base.d.ts +60 -0
- package/editing-directives/local-edit.service.d.ts +33 -0
- package/editing-directives/reactive-editing.directive.d.ts +32 -0
- package/{dist/es2015/editing-directives → editing-directives}/utils.d.ts +0 -0
- package/{dist/es2015 → esm2015}/common/constants.js +0 -0
- package/{dist/es2015 → esm2015}/common/default-model-fields.js +0 -0
- package/esm2015/common/dom-queries.js +122 -0
- package/{dist/es2015 → esm2015}/common/getter.js +0 -0
- package/esm2015/common/modifiers.js +31 -0
- package/{dist/es2015 → esm2015}/common/setter.js +0 -0
- package/{dist/es2015 → esm2015}/common/util.js +0 -0
- package/esm2015/data-binding.directive.js +149 -0
- package/esm2015/editing/date-time-picker.component.js +102 -0
- package/esm2015/editing/dialogs.service.js +86 -0
- package/esm2015/editing/edit-dialog-template.directive.js +34 -0
- package/esm2015/editing/edit-dialog.component.js +515 -0
- package/esm2015/editing/edit.service.js +99 -0
- package/esm2015/editing/local-data-changes.service.js +19 -0
- package/esm2015/editing/recurrence/end-rule-radio-button.directive.js +68 -0
- package/esm2015/editing/recurrence/localization/custom-messages.component.js +41 -0
- package/esm2015/editing/recurrence/localization/localized-messages.directive.js +36 -0
- package/esm2015/editing/recurrence/localization/messages.js +81 -0
- package/esm2015/editing/recurrence/localization/recurrence-localization.service.js +46 -0
- package/esm2015/editing/recurrence/recurrence-editor.component.js +410 -0
- package/esm2015/editing/recurrence/recurrence-end-rule-editor.component.js +264 -0
- package/esm2015/editing/recurrence/recurrence-frequency-editor.component.js +80 -0
- package/esm2015/editing/recurrence/recurrence-interval-editor.component.js +139 -0
- package/esm2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +434 -0
- package/esm2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +105 -0
- package/esm2015/editing/recurrence/recurrence.service.js +246 -0
- package/esm2015/editing/recurrence/repeat-on-radio-button.directive.js +72 -0
- package/esm2015/editing/resource-editor-base.js +59 -0
- package/esm2015/editing/resource-multiple-editor.component.js +90 -0
- package/esm2015/editing/resource-single-editor.component.js +75 -0
- package/esm2015/editing/timezone-editor.component.js +124 -0
- package/esm2015/editing-directives/base-edit.service.js +307 -0
- package/esm2015/editing-directives/edit-service.interface.js +5 -0
- package/esm2015/editing-directives/editing-directive-base.js +218 -0
- package/esm2015/editing-directives/local-edit.service.js +120 -0
- package/esm2015/editing-directives/reactive-editing.directive.js +104 -0
- package/esm2015/editing-directives/utils.js +65 -0
- package/{dist/es2015 → esm2015}/events/add-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/cancel-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/create-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/date-change-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/drag-end-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/drag-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/drag-start-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/edit-event-base.js +0 -0
- package/{dist/es2015 → esm2015}/events/edit-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/event-click-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/event-keydown-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/navigate-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/preventable-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/remove-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/resize-end-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/resize-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/resize-start-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/save-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/slot-click-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/slot-drag-end-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/slot-drag-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/slot-drag-start-event.js +0 -0
- package/{dist/es2015 → esm2015}/events/view-event-map.js +0 -0
- package/{dist/es → esm2015}/events.js +0 -0
- package/esm2015/kendo-angular-scheduler.js +8 -0
- package/esm2015/loading.component.js +47 -0
- package/esm2015/localization/custom-messages.component.js +40 -0
- package/esm2015/localization/localized-messages.directive.js +36 -0
- package/esm2015/localization/messages.js +169 -0
- package/esm2015/localization/scheduler-localization.service.js +31 -0
- package/esm2015/main.js +69 -0
- package/esm2015/navigation/focus-position.interface.js +5 -0
- package/esm2015/navigation/focus.service.js +128 -0
- package/esm2015/navigation/focusable-element.interface.js +5 -0
- package/esm2015/navigation/focusable.directive.js +68 -0
- package/esm2015/navigation/shortcuts.directive.js +151 -0
- package/{dist/es → esm2015}/navigation.js +0 -0
- package/esm2015/package-metadata.js +15 -0
- package/esm2015/pdf/pdf-command.directive.js +58 -0
- package/{dist/es2015 → esm2015}/pdf/pdf-export-event.js +0 -0
- package/esm2015/pdf/pdf.component.js +143 -0
- package/esm2015/pdf/pdf.module.js +57 -0
- package/esm2015/pdf/pdf.service.js +38 -0
- package/esm2015/scheduler.component.js +1614 -0
- package/esm2015/scheduler.module.js +281 -0
- package/esm2015/shared.module.js +31 -0
- package/esm2015/toolbar/navigation.component.js +285 -0
- package/esm2015/toolbar/toolbar-context.js +5 -0
- package/esm2015/toolbar/toolbar-template.directive.js +48 -0
- package/esm2015/toolbar/toolbar.component.js +104 -0
- package/esm2015/toolbar/toolbar.module.js +65 -0
- package/esm2015/toolbar/toolbar.service.js +32 -0
- package/esm2015/toolbar/view-selector.component.js +131 -0
- package/esm2015/types/actions.js +5 -0
- package/esm2015/types/create-form-group-args.interface.js +5 -0
- package/esm2015/types/crud-operation.enum.js +16 -0
- package/esm2015/types/current-time-settings.interface.js +5 -0
- package/esm2015/types/date-range.interface.js +5 -0
- package/esm2015/types/datepicker-options.interface.js +5 -0
- package/esm2015/types/edit-event-args.interface.js +5 -0
- package/esm2015/types/edit-mode.enum.js +19 -0
- package/esm2015/types/editable-settings.interface.js +5 -0
- package/esm2015/types/event-style-args.interface.js +5 -0
- package/esm2015/types/group.interface.js +5 -0
- package/esm2015/types/numeric-options.interface.js +5 -0
- package/esm2015/types/ongoing-events-settings.interface.js +5 -0
- package/esm2015/types/resource.interface.js +5 -0
- package/esm2015/types/scheduler-event.js +5 -0
- package/esm2015/types/scheduler-model-fields.interface.js +5 -0
- package/esm2015/types/scheduler-slot.interface.js +5 -0
- package/{dist/es2015 → esm2015}/types/scheduler-view.js +0 -0
- package/esm2015/types/slot-class-args.interface.js +5 -0
- package/{dist/es2015 → esm2015}/types/slot-selection.js +0 -0
- package/esm2015/types/view-item.interface.js +5 -0
- package/esm2015/types.js +12 -0
- package/esm2015/views/agenda/agenda-header-item.component.js +63 -0
- package/esm2015/views/agenda/agenda-header.component.js +71 -0
- package/esm2015/views/agenda/agenda-task-item.component.js +98 -0
- package/esm2015/views/agenda/agenda-view-internal.component.js +377 -0
- package/esm2015/views/agenda/agenda-view-list.component.js +170 -0
- package/esm2015/views/agenda/agenda-view.component.js +112 -0
- package/esm2015/views/agenda/agenda-view.module.js +44 -0
- package/esm2015/views/agenda/tasks.collection.js +78 -0
- package/esm2015/views/agenda/utils.js +167 -0
- package/esm2015/views/common/base-view.js +1003 -0
- package/esm2015/views/common/configuration-view-base.js +91 -0
- package/esm2015/views/common/dom-events.service.js +24 -0
- package/esm2015/views/common/hint-container.component.js +37 -0
- package/esm2015/views/common/repeat.pipe.js +34 -0
- package/esm2015/views/common/resize-hint.component.js +88 -0
- package/esm2015/views/common/resource-iterator.pipe.js +46 -0
- package/esm2015/views/common/scheduler-task.js +5 -0
- package/esm2015/views/common/slot-selectable.directive.js +108 -0
- package/esm2015/views/common/view-footer.component.js +59 -0
- package/esm2015/views/common/views-shared.module.js +61 -0
- package/esm2015/views/common/work-hours-footer.directive.js +39 -0
- package/esm2015/views/constants.js +29 -0
- package/esm2015/views/day-time/day-time-slot.service.js +605 -0
- package/esm2015/views/day-time/day-time-view-base.js +151 -0
- package/esm2015/views/day-time/day-time-view-item.component.js +119 -0
- package/esm2015/views/day-time/day-time-view.component.js +384 -0
- package/esm2015/views/day-time/day-time.module.js +32 -0
- package/esm2015/views/day-time/event-slot.directive.js +125 -0
- package/{dist/es2015 → esm2015}/views/day-time/utils.js +0 -0
- package/esm2015/views/month/month-slot.directive.js +77 -0
- package/{dist/es2015 → esm2015}/views/month/month-slot.service.js +0 -0
- package/esm2015/views/month/month-view-item.component.js +88 -0
- package/esm2015/views/month/month-view-renderer.component.js +476 -0
- package/esm2015/views/month/month-view.component.js +108 -0
- package/esm2015/views/month/month-view.module.js +41 -0
- package/esm2015/views/month/utils.js +67 -0
- package/esm2015/views/multi-day/day-view.component.js +162 -0
- package/esm2015/views/multi-day/multi-day-view-base.js +32 -0
- package/esm2015/views/multi-day/multi-day-view-renderer.component.js +762 -0
- package/esm2015/views/multi-day/multi-day-view.component.js +162 -0
- package/esm2015/views/multi-day/multi-day-view.module.js +53 -0
- package/{dist/es2015 → esm2015}/views/multi-day/utils.js +0 -0
- package/esm2015/views/multi-day/week-view.component.js +166 -0
- package/esm2015/views/multi-day/work-week-view.component.js +150 -0
- package/esm2015/views/scheduler-view.directive.js +48 -0
- package/esm2015/views/templates/agenda-date-template.directive.js +36 -0
- package/esm2015/views/templates/agenda-time-template.directive.js +41 -0
- package/esm2015/views/templates/all-day-event-template.directive.js +37 -0
- package/esm2015/views/templates/all-day-slot-template.directive.js +37 -0
- package/esm2015/views/templates/date-header-template.directive.js +37 -0
- package/esm2015/views/templates/event-template.directive.js +37 -0
- package/esm2015/views/templates/group-header-template.directive.js +37 -0
- package/esm2015/views/templates/major-time-header-template.directive.js +36 -0
- package/esm2015/views/templates/minor-time-header-template.directive.js +36 -0
- package/esm2015/views/templates/month-day-slot-template.directive.js +37 -0
- package/esm2015/views/templates/time-slot-template.directive.js +38 -0
- package/{dist/es → esm2015}/views/templates.js +0 -0
- package/esm2015/views/timeline/timeline-base.js +32 -0
- package/esm2015/views/timeline/timeline-month-view.component.js +154 -0
- package/esm2015/views/timeline/timeline-multi-day-view.component.js +455 -0
- package/esm2015/views/timeline/timeline-view.component.js +127 -0
- package/esm2015/views/timeline/timeline-view.module.js +49 -0
- package/esm2015/views/timeline/timeline-week-view.component.js +145 -0
- package/{dist/es2015 → esm2015}/views/timeline/utils.js +0 -0
- package/{dist/es2015 → esm2015}/views/utils.js +0 -0
- package/esm2015/views/view-context.service.js +84 -0
- package/esm2015/views/view-items/base-slot.directive.js +96 -0
- package/{dist/es2015 → esm2015}/views/view-items/base-slot.service.js +0 -0
- package/esm2015/views/view-items/base-view-item.js +168 -0
- package/{dist/es2015 → esm2015}/views/view-items/item-map.js +0 -0
- package/esm2015/views/view-items/types.js +5 -0
- package/esm2015/views/view-state.service.js +97 -0
- package/{dist/es2015/events → events}/add-event.d.ts +0 -0
- package/{dist/es2015/events → events}/cancel-event.d.ts +0 -0
- package/{dist/es2015/events → events}/create-event.d.ts +0 -0
- package/{dist/es2015/events → events}/date-change-event.d.ts +0 -0
- package/{dist/es2015/events → events}/drag-end-event.d.ts +0 -0
- package/{dist/es2015/events → events}/drag-event.d.ts +0 -0
- package/{dist/es2015/events → events}/drag-start-event.d.ts +0 -0
- package/{dist/es2015/events → events}/edit-event-base.d.ts +0 -0
- package/{dist/es2015/events → events}/edit-event.d.ts +0 -0
- package/{dist/es2015/events → events}/event-click-event.d.ts +0 -0
- package/{dist/es2015/events → events}/event-keydown-event.d.ts +0 -0
- package/{dist/es2015/events → events}/navigate-event.d.ts +0 -0
- package/{dist/es2015/events → events}/preventable-event.d.ts +0 -0
- package/{dist/es2015/events → events}/remove-event.d.ts +0 -0
- package/{dist/es2015/events → events}/resize-end-event.d.ts +0 -0
- package/{dist/es2015/events → events}/resize-event.d.ts +0 -0
- package/{dist/es2015/events → events}/resize-start-event.d.ts +0 -0
- package/{dist/es2015/events → events}/save-event.d.ts +0 -0
- package/{dist/es2015/events → events}/slot-click-event.d.ts +0 -0
- package/{dist/es2015/events → events}/slot-drag-end-event.d.ts +0 -0
- package/{dist/es2015/events → events}/slot-drag-event.d.ts +0 -0
- package/{dist/es2015/events → events}/slot-drag-start-event.d.ts +0 -0
- package/{dist/es2015/events → events}/view-event-map.d.ts +0 -0
- package/{dist/es2015/events.d.ts → events.d.ts} +0 -0
- package/fesm2015/kendo-angular-scheduler.js +16629 -0
- package/kendo-angular-scheduler.d.ts +9 -0
- package/loading.component.d.ts +21 -0
- package/localization/custom-messages.component.d.ts +17 -0
- package/localization/localized-messages.directive.d.ts +16 -0
- package/localization/messages.d.ts +317 -0
- package/localization/scheduler-localization.service.d.ts +14 -0
- package/main.d.ts +71 -0
- package/{dist/es2015/navigation → navigation}/focus-position.interface.d.ts +0 -0
- package/navigation/focus.service.d.ts +37 -0
- package/{dist/es2015/navigation → navigation}/focusable-element.interface.d.ts +0 -0
- package/navigation/focusable.directive.d.ts +32 -0
- package/navigation/shortcuts.directive.d.ts +32 -0
- package/{dist/es2015/navigation.d.ts → navigation.d.ts} +0 -0
- package/{dist/es2015/package-metadata.d.ts → package-metadata.d.ts} +0 -0
- package/package.json +44 -122
- package/pdf/pdf-command.directive.d.ts +42 -0
- package/{dist/es2015/pdf → pdf}/pdf-export-event.d.ts +0 -0
- package/pdf/pdf.component.d.ts +125 -0
- package/pdf/pdf.module.d.ts +43 -0
- package/pdf/pdf.service.d.ts +18 -0
- package/scheduler.component.d.ts +678 -0
- package/scheduler.module.d.ts +95 -0
- package/schematics/ngAdd/index.js +5 -2
- package/schematics/ngAdd/index.js.map +1 -1
- package/shared.module.d.ts +15 -0
- package/toolbar/navigation.component.d.ts +107 -0
- package/{dist/es2015/toolbar → toolbar}/toolbar-context.d.ts +0 -0
- package/toolbar/toolbar-template.directive.d.ts +39 -0
- package/toolbar/toolbar.component.d.ts +35 -0
- package/toolbar/toolbar.module.d.ts +29 -0
- package/toolbar/toolbar.service.d.ts +38 -0
- package/toolbar/view-selector.component.d.ts +52 -0
- package/{dist/es2015/types → types}/actions.d.ts +0 -0
- package/{dist/es2015/types → types}/create-form-group-args.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/crud-operation.enum.d.ts +0 -0
- package/{dist/es2015/types → types}/current-time-settings.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/date-range.interface.d.ts +0 -0
- package/types/datepicker-options.interface.d.ts +106 -0
- package/{dist/es2015/types → types}/edit-event-args.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/edit-mode.enum.d.ts +0 -0
- package/{dist/es2015/types → types}/editable-settings.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/event-style-args.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/group.interface.d.ts +0 -0
- package/types/numeric-options.interface.d.ts +53 -0
- package/types/ongoing-events-settings.interface.d.ts +23 -0
- package/{dist/es2015/types → types}/resource.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/scheduler-event.d.ts +0 -0
- package/{dist/es2015/types → types}/scheduler-model-fields.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/scheduler-slot.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/scheduler-view.d.ts +0 -0
- package/{dist/es2015/types → types}/slot-class-args.interface.d.ts +0 -0
- package/{dist/es2015/types → types}/slot-selection.d.ts +0 -0
- package/{dist/es2015/types → types}/view-item.interface.d.ts +0 -0
- package/types.d.ts +25 -0
- package/views/agenda/agenda-header-item.component.d.ts +18 -0
- package/views/agenda/agenda-header.component.d.ts +20 -0
- package/views/agenda/agenda-task-item.component.d.ts +27 -0
- package/views/agenda/agenda-view-internal.component.d.ts +79 -0
- package/views/agenda/agenda-view-list.component.d.ts +32 -0
- package/views/agenda/agenda-view.component.d.ts +60 -0
- package/views/agenda/agenda-view.module.d.ts +22 -0
- package/views/agenda/tasks.collection.d.ts +44 -0
- package/{dist/es2015/views → views}/agenda/utils.d.ts +0 -0
- package/views/common/base-view.d.ts +181 -0
- package/views/common/configuration-view-base.d.ts +84 -0
- package/views/common/dom-events.service.d.ts +19 -0
- package/views/common/hint-container.component.d.ts +17 -0
- package/views/common/repeat.pipe.d.ts +14 -0
- package/views/common/resize-hint.component.d.ts +21 -0
- package/views/common/resource-iterator.pipe.d.ts +14 -0
- package/views/common/scheduler-task.d.ts +20 -0
- package/views/common/slot-selectable.directive.d.ts +48 -0
- package/views/common/view-footer.component.d.ts +22 -0
- package/views/common/views-shared.module.d.ts +23 -0
- package/views/common/work-hours-footer.directive.d.ts +23 -0
- package/views/constants.d.ts +28 -0
- package/views/day-time/day-time-slot.service.d.ts +77 -0
- package/views/day-time/day-time-view-base.d.ts +140 -0
- package/views/day-time/day-time-view-item.component.d.ts +24 -0
- package/views/day-time/day-time-view.component.d.ts +88 -0
- package/views/day-time/day-time.module.d.ts +18 -0
- package/views/day-time/event-slot.directive.d.ts +46 -0
- package/{dist/es2015/views → views}/day-time/utils.d.ts +0 -0
- package/views/month/month-slot.directive.d.ts +30 -0
- package/views/month/month-slot.service.d.ts +61 -0
- package/views/month/month-view-item.component.d.ts +20 -0
- package/views/month/month-view-renderer.component.d.ts +56 -0
- package/views/month/month-view.component.d.ts +47 -0
- package/views/month/month-view.module.d.ts +18 -0
- package/{dist/es2015/views → views}/month/utils.d.ts +0 -0
- package/views/multi-day/day-view.component.d.ts +61 -0
- package/views/multi-day/multi-day-view-base.d.ts +28 -0
- package/views/multi-day/multi-day-view-renderer.component.d.ts +68 -0
- package/views/multi-day/multi-day-view.component.d.ts +51 -0
- package/views/multi-day/multi-day-view.module.d.ts +20 -0
- package/{dist/es2015/views → views}/multi-day/utils.d.ts +0 -0
- package/views/multi-day/week-view.component.d.ts +65 -0
- package/views/multi-day/work-week-view.component.d.ts +39 -0
- package/views/scheduler-view.directive.d.ts +27 -0
- package/views/templates/agenda-date-template.directive.d.ts +27 -0
- package/views/templates/agenda-time-template.directive.d.ts +32 -0
- package/views/templates/all-day-event-template.directive.d.ts +28 -0
- package/views/templates/all-day-slot-template.directive.d.ts +28 -0
- package/views/templates/date-header-template.directive.d.ts +28 -0
- package/views/templates/event-template.directive.d.ts +28 -0
- package/views/templates/group-header-template.directive.d.ts +28 -0
- package/views/templates/major-time-header-template.directive.d.ts +27 -0
- package/views/templates/minor-time-header-template.directive.d.ts +27 -0
- package/views/templates/month-day-slot-template.directive.d.ts +28 -0
- package/views/templates/time-slot-template.directive.d.ts +29 -0
- package/{dist/es2015/views → views}/templates.d.ts +0 -0
- package/views/timeline/timeline-base.d.ts +26 -0
- package/views/timeline/timeline-month-view.component.d.ts +52 -0
- package/views/timeline/timeline-multi-day-view.component.d.ts +42 -0
- package/views/timeline/timeline-view.component.d.ts +40 -0
- package/views/timeline/timeline-view.module.d.ts +19 -0
- package/views/timeline/timeline-week-view.component.d.ts +47 -0
- package/{dist/es2015/views → views}/timeline/utils.d.ts +0 -0
- package/{dist/es2015/views → views}/utils.d.ts +0 -0
- package/views/view-context.service.d.ts +82 -0
- package/views/view-items/base-slot.directive.d.ts +40 -0
- package/{dist/es2015/views → views}/view-items/base-slot.service.d.ts +0 -0
- package/views/view-items/base-view-item.d.ts +50 -0
- package/views/view-items/item-map.d.ts +16 -0
- package/{dist/es2015/views → views}/view-items/types.d.ts +0 -0
- package/views/view-state.service.d.ts +95 -0
- package/dist/cdn/js/kendo-angular-scheduler.js +0 -20
- package/dist/cdn/main.js +0 -5
- package/dist/es/common/constants.js +0 -8
- package/dist/es/common/default-model-fields.js +0 -20
- package/dist/es/common/dom-queries.js +0 -126
- package/dist/es/common/getter.js +0 -29
- package/dist/es/common/modifiers.js +0 -31
- package/dist/es/common/setter.js +0 -30
- package/dist/es/common/util.js +0 -232
- package/dist/es/data-binding.directive.js +0 -164
- package/dist/es/editing/date-time-picker.component.js +0 -80
- package/dist/es/editing/dialogs.service.js +0 -94
- package/dist/es/editing/edit-dialog-template.directive.js +0 -35
- package/dist/es/editing/edit-dialog.component.js +0 -298
- package/dist/es/editing/edit.service.js +0 -118
- package/dist/es/editing/local-data-changes.service.js +0 -19
- package/dist/es/editing/recurrence/end-rule-radio-button.directive.js +0 -79
- package/dist/es/editing/recurrence/localization/custom-messages.component.js +0 -44
- package/dist/es/editing/recurrence/localization/localized-messages.directive.js +0 -35
- package/dist/es/editing/recurrence/localization/messages.js +0 -146
- package/dist/es/editing/recurrence/localization/recurrence-localization.service.js +0 -35
- package/dist/es/editing/recurrence/recurrence-editor.component.js +0 -174
- package/dist/es/editing/recurrence/recurrence-end-rule-editor.component.js +0 -162
- package/dist/es/editing/recurrence/recurrence-frequency-editor.component.js +0 -56
- package/dist/es/editing/recurrence/recurrence-interval-editor.component.js +0 -98
- package/dist/es/editing/recurrence/recurrence-monthly-yearly-editor.component.js +0 -277
- package/dist/es/editing/recurrence/recurrence-weekday-rule-editor.component.js +0 -82
- package/dist/es/editing/recurrence/recurrence.service.js +0 -303
- package/dist/es/editing/recurrence/repeat-on-radio-button.directive.js +0 -89
- package/dist/es/editing/resource-editor-base.js +0 -60
- package/dist/es/editing/resource-multiple-editor.component.js +0 -51
- package/dist/es/editing/resource-single-editor.component.js +0 -46
- package/dist/es/editing/timezone-editor.component.js +0 -107
- package/dist/es/editing-directives/base-edit.service.js +0 -297
- package/dist/es/editing-directives/edit-service.interface.js +0 -4
- package/dist/es/editing-directives/editing-directive-base.js +0 -229
- package/dist/es/editing-directives/local-edit.service.js +0 -136
- package/dist/es/editing-directives/reactive-editing.directive.js +0 -111
- package/dist/es/editing-directives/utils.js +0 -67
- package/dist/es/events/add-event.js +0 -23
- package/dist/es/events/cancel-event.js +0 -17
- package/dist/es/events/create-event.js +0 -18
- package/dist/es/events/date-change-event.js +0 -19
- package/dist/es/events/drag-end-event.js +0 -23
- package/dist/es/events/drag-event.js +0 -23
- package/dist/es/events/drag-start-event.js +0 -23
- package/dist/es/events/edit-event-base.js +0 -18
- package/dist/es/events/edit-event.js +0 -23
- package/dist/es/events/event-click-event.js +0 -18
- package/dist/es/events/event-keydown-event.js +0 -18
- package/dist/es/events/navigate-event.js +0 -23
- package/dist/es/events/preventable-event.js +0 -32
- package/dist/es/events/remove-event.js +0 -23
- package/dist/es/events/resize-end-event.js +0 -23
- package/dist/es/events/resize-event.js +0 -23
- package/dist/es/events/resize-start-event.js +0 -23
- package/dist/es/events/save-event.js +0 -17
- package/dist/es/events/slot-click-event.js +0 -18
- package/dist/es/events/slot-drag-end-event.js +0 -17
- package/dist/es/events/slot-drag-event.js +0 -18
- package/dist/es/events/slot-drag-start-event.js +0 -24
- package/dist/es/events/view-event-map.js +0 -35
- package/dist/es/index.js +0 -103
- package/dist/es/loading.component.js +0 -50
- package/dist/es/localization/custom-messages.component.js +0 -43
- package/dist/es/localization/localized-messages.directive.js +0 -35
- package/dist/es/localization/messages.js +0 -322
- package/dist/es/localization/scheduler-localization.service.js +0 -24
- package/dist/es/main.js +0 -23
- package/dist/es/navigation/focus-position.interface.js +0 -4
- package/dist/es/navigation/focus.service.js +0 -134
- package/dist/es/navigation/focusable-element.interface.js +0 -4
- package/dist/es/navigation/focusable.directive.js +0 -79
- package/dist/es/navigation/shortcuts.directive.js +0 -168
- package/dist/es/package-metadata.js +0 -15
- package/dist/es/pdf/pdf-command.directive.js +0 -67
- package/dist/es/pdf/pdf-export-event.js +0 -17
- package/dist/es/pdf/pdf.component.js +0 -192
- package/dist/es/pdf/pdf.module.js +0 -55
- package/dist/es/pdf/pdf.service.js +0 -38
- package/dist/es/scheduler.component.js +0 -1242
- package/dist/es/scheduler.module.js +0 -174
- package/dist/es/shared.module.js +0 -31
- package/dist/es/toolbar/navigation.component.js +0 -225
- package/dist/es/toolbar/toolbar-context.js +0 -4
- package/dist/es/toolbar/toolbar-template.directive.js +0 -47
- package/dist/es/toolbar/toolbar.component.js +0 -100
- package/dist/es/toolbar/toolbar.module.js +0 -49
- package/dist/es/toolbar/toolbar.service.js +0 -33
- package/dist/es/toolbar/view-selector.component.js +0 -86
- package/dist/es/types/actions.js +0 -4
- package/dist/es/types/create-form-group-args.interface.js +0 -4
- package/dist/es/types/crud-operation.enum.js +0 -4
- package/dist/es/types/current-time-settings.interface.js +0 -4
- package/dist/es/types/date-range.interface.js +0 -4
- package/dist/es/types/datepicker-options.interface.js +0 -4
- package/dist/es/types/edit-event-args.interface.js +0 -4
- package/dist/es/types/edit-mode.enum.js +0 -4
- package/dist/es/types/editable-settings.interface.js +0 -4
- package/dist/es/types/event-style-args.interface.js +0 -4
- package/dist/es/types/group.interface.js +0 -4
- package/dist/es/types/numeric-options.interface.js +0 -4
- package/dist/es/types/resource.interface.js +0 -4
- package/dist/es/types/scheduler-event.js +0 -4
- package/dist/es/types/scheduler-model-fields.interface.js +0 -4
- package/dist/es/types/scheduler-slot.interface.js +0 -4
- package/dist/es/types/scheduler-view.js +0 -13
- package/dist/es/types/slot-class-args.interface.js +0 -4
- package/dist/es/types/slot-selection.js +0 -23
- package/dist/es/types/view-item.interface.js +0 -4
- package/dist/es/types.js +0 -6
- package/dist/es/views/agenda/agenda-header-item.component.js +0 -56
- package/dist/es/views/agenda/agenda-header.component.js +0 -57
- package/dist/es/views/agenda/agenda-task-item.component.js +0 -96
- package/dist/es/views/agenda/agenda-view-internal.component.js +0 -377
- package/dist/es/views/agenda/agenda-view-list.component.js +0 -113
- package/dist/es/views/agenda/agenda-view.component.js +0 -98
- package/dist/es/views/agenda/agenda-view.module.js +0 -39
- package/dist/es/views/agenda/tasks.collection.js +0 -117
- package/dist/es/views/agenda/utils.js +0 -195
- package/dist/es/views/common/base-view.js +0 -1049
- package/dist/es/views/common/configuration-view-base.js +0 -107
- package/dist/es/views/common/dom-events.service.js +0 -24
- package/dist/es/views/common/hint-container.component.js +0 -31
- package/dist/es/views/common/repeat.pipe.js +0 -51
- package/dist/es/views/common/resize-hint.component.js +0 -102
- package/dist/es/views/common/resource-iterator.pipe.js +0 -65
- package/dist/es/views/common/scheduler-task.js +0 -4
- package/dist/es/views/common/slot-selectable.directive.js +0 -117
- package/dist/es/views/common/view-footer.component.js +0 -50
- package/dist/es/views/common/views-shared.module.js +0 -47
- package/dist/es/views/common/work-hours-footer.directive.js +0 -41
- package/dist/es/views/constants.js +0 -23
- package/dist/es/views/day-time/day-time-slot.service.js +0 -693
- package/dist/es/views/day-time/day-time-view-base.js +0 -212
- package/dist/es/views/day-time/day-time-view-item.component.js +0 -55
- package/dist/es/views/day-time/day-time-view.component.js +0 -405
- package/dist/es/views/day-time/day-time.module.js +0 -32
- package/dist/es/views/day-time/event-slot.directive.js +0 -189
- package/dist/es/views/day-time/utils.js +0 -33
- package/dist/es/views/month/month-slot.directive.js +0 -96
- package/dist/es/views/month/month-slot.service.js +0 -322
- package/dist/es/views/month/month-view-item.component.js +0 -43
- package/dist/es/views/month/month-view-renderer.component.js +0 -215
- package/dist/es/views/month/month-view.component.js +0 -92
- package/dist/es/views/month/month-view.module.js +0 -36
- package/dist/es/views/month/utils.js +0 -69
- package/dist/es/views/multi-day/day-view.component.js +0 -91
- package/dist/es/views/multi-day/multi-day-view-base.js +0 -33
- package/dist/es/views/multi-day/multi-day-view-renderer.component.js +0 -323
- package/dist/es/views/multi-day/multi-day-view.component.js +0 -117
- package/dist/es/views/multi-day/multi-day-view.module.js +0 -42
- package/dist/es/views/multi-day/utils.js +0 -59
- package/dist/es/views/multi-day/week-view.component.js +0 -107
- package/dist/es/views/multi-day/work-week-view.component.js +0 -85
- package/dist/es/views/scheduler-view.directive.js +0 -57
- package/dist/es/views/templates/agenda-date-template.directive.js +0 -35
- package/dist/es/views/templates/agenda-time-template.directive.js +0 -40
- package/dist/es/views/templates/all-day-event-template.directive.js +0 -36
- package/dist/es/views/templates/all-day-slot-template.directive.js +0 -36
- package/dist/es/views/templates/date-header-template.directive.js +0 -36
- package/dist/es/views/templates/event-template.directive.js +0 -36
- package/dist/es/views/templates/group-header-template.directive.js +0 -36
- package/dist/es/views/templates/major-time-header-template.directive.js +0 -35
- package/dist/es/views/templates/minor-time-header-template.directive.js +0 -35
- package/dist/es/views/templates/month-day-slot-template.directive.js +0 -37
- package/dist/es/views/templates/time-slot-template.directive.js +0 -37
- package/dist/es/views/timeline/timeline-base.js +0 -33
- package/dist/es/views/timeline/timeline-month-view.component.js +0 -93
- package/dist/es/views/timeline/timeline-multi-day-view.component.js +0 -160
- package/dist/es/views/timeline/timeline-view.component.js +0 -74
- package/dist/es/views/timeline/timeline-view.module.js +0 -40
- package/dist/es/views/timeline/timeline-week-view.component.js +0 -89
- package/dist/es/views/timeline/utils.js +0 -34
- package/dist/es/views/utils.js +0 -339
- package/dist/es/views/view-context.service.js +0 -85
- package/dist/es/views/view-items/base-slot.directive.js +0 -115
- package/dist/es/views/view-items/base-slot.service.js +0 -77
- package/dist/es/views/view-items/base-view-item.js +0 -222
- package/dist/es/views/view-items/item-map.js +0 -51
- package/dist/es/views/view-items/types.js +0 -4
- package/dist/es/views/view-state.service.js +0 -100
- package/dist/es2015/common/dom-queries.js +0 -124
- package/dist/es2015/common/modifiers.js +0 -31
- package/dist/es2015/data-binding.directive.d.ts +0 -51
- package/dist/es2015/data-binding.directive.js +0 -155
- package/dist/es2015/editing/date-time-picker.component.d.ts +0 -36
- package/dist/es2015/editing/date-time-picker.component.js +0 -97
- package/dist/es2015/editing/dialogs.service.d.ts +0 -41
- package/dist/es2015/editing/dialogs.service.js +0 -89
- package/dist/es2015/editing/edit-dialog-template.directive.d.ts +0 -24
- package/dist/es2015/editing/edit-dialog-template.directive.js +0 -34
- package/dist/es2015/editing/edit-dialog.component.d.ts +0 -76
- package/dist/es2015/editing/edit-dialog.component.js +0 -389
- package/dist/es2015/editing/edit.service.d.ts +0 -54
- package/dist/es2015/editing/edit.service.js +0 -99
- package/dist/es2015/editing/local-data-changes.service.d.ts +0 -12
- package/dist/es2015/editing/local-data-changes.service.js +0 -21
- package/dist/es2015/editing/recurrence/end-rule-radio-button.directive.d.ts +0 -28
- package/dist/es2015/editing/recurrence/end-rule-radio-button.directive.js +0 -74
- package/dist/es2015/editing/recurrence/localization/custom-messages.component.d.ts +0 -15
- package/dist/es2015/editing/recurrence/localization/custom-messages.component.js +0 -36
- package/dist/es2015/editing/recurrence/localization/localized-messages.directive.d.ts +0 -13
- package/dist/es2015/editing/recurrence/localization/localized-messages.directive.js +0 -31
- package/dist/es2015/editing/recurrence/localization/messages.d.ts +0 -138
- package/dist/es2015/editing/recurrence/localization/messages.js +0 -140
- package/dist/es2015/editing/recurrence/localization/recurrence-localization.service.d.ts +0 -14
- package/dist/es2015/editing/recurrence/localization/recurrence-localization.service.js +0 -32
- package/dist/es2015/editing/recurrence/recurrence-editor.component.d.ts +0 -87
- package/dist/es2015/editing/recurrence/recurrence-editor.component.js +0 -287
- package/dist/es2015/editing/recurrence/recurrence-end-rule-editor.component.d.ts +0 -42
- package/dist/es2015/editing/recurrence/recurrence-end-rule-editor.component.js +0 -204
- package/dist/es2015/editing/recurrence/recurrence-frequency-editor.component.d.ts +0 -23
- package/dist/es2015/editing/recurrence/recurrence-frequency-editor.component.js +0 -65
- package/dist/es2015/editing/recurrence/recurrence-interval-editor.component.d.ts +0 -24
- package/dist/es2015/editing/recurrence/recurrence-interval-editor.component.js +0 -115
- package/dist/es2015/editing/recurrence/recurrence-monthly-yearly-editor.component.d.ts +0 -50
- package/dist/es2015/editing/recurrence/recurrence-monthly-yearly-editor.component.js +0 -341
- package/dist/es2015/editing/recurrence/recurrence-weekday-rule-editor.component.d.ts +0 -28
- package/dist/es2015/editing/recurrence/recurrence-weekday-rule-editor.component.js +0 -90
- package/dist/es2015/editing/recurrence/recurrence.service.d.ts +0 -112
- package/dist/es2015/editing/recurrence/recurrence.service.js +0 -247
- package/dist/es2015/editing/recurrence/repeat-on-radio-button.directive.d.ts +0 -29
- package/dist/es2015/editing/recurrence/repeat-on-radio-button.directive.js +0 -80
- package/dist/es2015/editing/resource-editor-base.d.ts +0 -34
- package/dist/es2015/editing/resource-editor-base.js +0 -58
- package/dist/es2015/editing/resource-multiple-editor.component.d.ts +0 -18
- package/dist/es2015/editing/resource-multiple-editor.component.js +0 -67
- package/dist/es2015/editing/resource-single-editor.component.d.ts +0 -17
- package/dist/es2015/editing/resource-single-editor.component.js +0 -57
- package/dist/es2015/editing/timezone-editor.component.d.ts +0 -57
- package/dist/es2015/editing/timezone-editor.component.js +0 -116
- package/dist/es2015/editing-directives/base-edit.service.d.ts +0 -150
- package/dist/es2015/editing-directives/base-edit.service.js +0 -289
- package/dist/es2015/editing-directives/edit-service.interface.js +0 -4
- package/dist/es2015/editing-directives/editing-directive-base.d.ts +0 -56
- package/dist/es2015/editing-directives/editing-directive-base.js +0 -217
- package/dist/es2015/editing-directives/local-edit.service.d.ts +0 -33
- package/dist/es2015/editing-directives/local-edit.service.js +0 -122
- package/dist/es2015/editing-directives/reactive-editing.directive.d.ts +0 -29
- package/dist/es2015/editing-directives/reactive-editing.directive.js +0 -106
- package/dist/es2015/editing-directives/utils.js +0 -66
- package/dist/es2015/events.js +0 -25
- package/dist/es2015/index.d.ts +0 -104
- package/dist/es2015/index.js +0 -103
- package/dist/es2015/index.metadata.json +0 -1
- package/dist/es2015/loading.component.d.ts +0 -18
- package/dist/es2015/loading.component.js +0 -48
- package/dist/es2015/localization/custom-messages.component.d.ts +0 -14
- package/dist/es2015/localization/custom-messages.component.js +0 -35
- package/dist/es2015/localization/localized-messages.directive.d.ts +0 -13
- package/dist/es2015/localization/localized-messages.directive.js +0 -31
- package/dist/es2015/localization/messages.d.ts +0 -314
- package/dist/es2015/localization/messages.js +0 -316
- package/dist/es2015/localization/scheduler-localization.service.d.ts +0 -11
- package/dist/es2015/localization/scheduler-localization.service.js +0 -22
- package/dist/es2015/main.d.ts +0 -24
- package/dist/es2015/main.js +0 -23
- package/dist/es2015/navigation/focus-position.interface.js +0 -4
- package/dist/es2015/navigation/focus.service.d.ts +0 -34
- package/dist/es2015/navigation/focus.service.js +0 -128
- package/dist/es2015/navigation/focusable-element.interface.js +0 -4
- package/dist/es2015/navigation/focusable.directive.d.ts +0 -29
- package/dist/es2015/navigation/focusable.directive.js +0 -70
- package/dist/es2015/navigation/shortcuts.directive.d.ts +0 -29
- package/dist/es2015/navigation/shortcuts.directive.js +0 -163
- package/dist/es2015/navigation.js +0 -6
- package/dist/es2015/package-metadata.js +0 -15
- package/dist/es2015/pdf/pdf-command.directive.d.ts +0 -39
- package/dist/es2015/pdf/pdf-command.directive.js +0 -64
- package/dist/es2015/pdf/pdf.component.d.ts +0 -122
- package/dist/es2015/pdf/pdf.component.js +0 -178
- package/dist/es2015/pdf/pdf.module.d.ts +0 -37
- package/dist/es2015/pdf/pdf.module.js +0 -52
- package/dist/es2015/pdf/pdf.service.d.ts +0 -15
- package/dist/es2015/pdf/pdf.service.js +0 -40
- package/dist/es2015/scheduler.component.d.ts +0 -665
- package/dist/es2015/scheduler.component.js +0 -1455
- package/dist/es2015/scheduler.module.d.ts +0 -37
- package/dist/es2015/scheduler.module.js +0 -174
- package/dist/es2015/shared.module.d.ts +0 -10
- package/dist/es2015/shared.module.js +0 -28
- package/dist/es2015/toolbar/navigation.component.d.ts +0 -104
- package/dist/es2015/toolbar/navigation.component.js +0 -245
- package/dist/es2015/toolbar/toolbar-context.js +0 -4
- package/dist/es2015/toolbar/toolbar-template.directive.d.ts +0 -36
- package/dist/es2015/toolbar/toolbar-template.directive.js +0 -46
- package/dist/es2015/toolbar/toolbar.component.d.ts +0 -32
- package/dist/es2015/toolbar/toolbar.component.js +0 -104
- package/dist/es2015/toolbar/toolbar.module.d.ts +0 -16
- package/dist/es2015/toolbar/toolbar.module.js +0 -48
- package/dist/es2015/toolbar/toolbar.service.d.ts +0 -35
- package/dist/es2015/toolbar/toolbar.service.js +0 -32
- package/dist/es2015/toolbar/view-selector.component.d.ts +0 -49
- package/dist/es2015/toolbar/view-selector.component.js +0 -105
- package/dist/es2015/types/actions.js +0 -4
- package/dist/es2015/types/create-form-group-args.interface.js +0 -4
- package/dist/es2015/types/crud-operation.enum.js +0 -4
- package/dist/es2015/types/current-time-settings.interface.js +0 -4
- package/dist/es2015/types/date-range.interface.js +0 -4
- package/dist/es2015/types/datepicker-options.interface.d.ts +0 -106
- package/dist/es2015/types/datepicker-options.interface.js +0 -4
- package/dist/es2015/types/edit-event-args.interface.js +0 -4
- package/dist/es2015/types/edit-mode.enum.js +0 -4
- package/dist/es2015/types/editable-settings.interface.js +0 -4
- package/dist/es2015/types/event-style-args.interface.js +0 -4
- package/dist/es2015/types/group.interface.js +0 -4
- package/dist/es2015/types/numeric-options.interface.d.ts +0 -53
- package/dist/es2015/types/numeric-options.interface.js +0 -4
- package/dist/es2015/types/resource.interface.js +0 -4
- package/dist/es2015/types/scheduler-event.js +0 -4
- package/dist/es2015/types/scheduler-model-fields.interface.js +0 -4
- package/dist/es2015/types/scheduler-slot.interface.js +0 -4
- package/dist/es2015/types/slot-class-args.interface.js +0 -4
- package/dist/es2015/types/view-item.interface.js +0 -4
- package/dist/es2015/types.d.ts +0 -25
- package/dist/es2015/types.js +0 -6
- package/dist/es2015/views/agenda/agenda-header-item.component.d.ts +0 -15
- package/dist/es2015/views/agenda/agenda-header-item.component.js +0 -59
- package/dist/es2015/views/agenda/agenda-header.component.d.ts +0 -17
- package/dist/es2015/views/agenda/agenda-header.component.js +0 -57
- package/dist/es2015/views/agenda/agenda-task-item.component.d.ts +0 -24
- package/dist/es2015/views/agenda/agenda-task-item.component.js +0 -87
- package/dist/es2015/views/agenda/agenda-view-internal.component.d.ts +0 -76
- package/dist/es2015/views/agenda/agenda-view-internal.component.js +0 -376
- package/dist/es2015/views/agenda/agenda-view-list.component.d.ts +0 -29
- package/dist/es2015/views/agenda/agenda-view-list.component.js +0 -147
- package/dist/es2015/views/agenda/agenda-view.component.d.ts +0 -57
- package/dist/es2015/views/agenda/agenda-view.component.js +0 -104
- package/dist/es2015/views/agenda/agenda-view.module.d.ts +0 -9
- package/dist/es2015/views/agenda/agenda-view.module.js +0 -36
- package/dist/es2015/views/agenda/tasks.collection.d.ts +0 -44
- package/dist/es2015/views/agenda/tasks.collection.js +0 -80
- package/dist/es2015/views/agenda/utils.js +0 -178
- package/dist/es2015/views/common/base-view.d.ts +0 -178
- package/dist/es2015/views/common/base-view.js +0 -1019
- package/dist/es2015/views/common/configuration-view-base.d.ts +0 -73
- package/dist/es2015/views/common/configuration-view-base.js +0 -86
- package/dist/es2015/views/common/dom-events.service.d.ts +0 -16
- package/dist/es2015/views/common/dom-events.service.js +0 -26
- package/dist/es2015/views/common/hint-container.component.d.ts +0 -14
- package/dist/es2015/views/common/hint-container.component.js +0 -33
- package/dist/es2015/views/common/repeat.pipe.d.ts +0 -11
- package/dist/es2015/views/common/repeat.pipe.js +0 -32
- package/dist/es2015/views/common/resize-hint.component.d.ts +0 -18
- package/dist/es2015/views/common/resize-hint.component.js +0 -86
- package/dist/es2015/views/common/resource-iterator.pipe.d.ts +0 -11
- package/dist/es2015/views/common/resource-iterator.pipe.js +0 -44
- package/dist/es2015/views/common/scheduler-task.d.ts +0 -19
- package/dist/es2015/views/common/scheduler-task.js +0 -4
- package/dist/es2015/views/common/slot-selectable.directive.d.ts +0 -45
- package/dist/es2015/views/common/slot-selectable.directive.js +0 -112
- package/dist/es2015/views/common/view-footer.component.d.ts +0 -19
- package/dist/es2015/views/common/view-footer.component.js +0 -57
- package/dist/es2015/views/common/views-shared.module.d.ts +0 -9
- package/dist/es2015/views/common/views-shared.module.js +0 -44
- package/dist/es2015/views/common/work-hours-footer.directive.d.ts +0 -20
- package/dist/es2015/views/common/work-hours-footer.directive.js +0 -40
- package/dist/es2015/views/constants.d.ts +0 -22
- package/dist/es2015/views/constants.js +0 -23
- package/dist/es2015/views/day-time/day-time-slot.service.d.ts +0 -77
- package/dist/es2015/views/day-time/day-time-slot.service.js +0 -610
- package/dist/es2015/views/day-time/day-time-view-base.d.ts +0 -129
- package/dist/es2015/views/day-time/day-time-view-base.js +0 -161
- package/dist/es2015/views/day-time/day-time-view-item.component.d.ts +0 -21
- package/dist/es2015/views/day-time/day-time-view-item.component.js +0 -86
- package/dist/es2015/views/day-time/day-time-view.component.d.ts +0 -79
- package/dist/es2015/views/day-time/day-time-view.component.js +0 -383
- package/dist/es2015/views/day-time/day-time.module.d.ts +0 -9
- package/dist/es2015/views/day-time/day-time.module.js +0 -29
- package/dist/es2015/views/day-time/event-slot.directive.d.ts +0 -39
- package/dist/es2015/views/day-time/event-slot.directive.js +0 -151
- package/dist/es2015/views/month/month-slot.directive.d.ts +0 -26
- package/dist/es2015/views/month/month-slot.directive.js +0 -81
- package/dist/es2015/views/month/month-slot.service.d.ts +0 -61
- package/dist/es2015/views/month/month-view-item.component.d.ts +0 -17
- package/dist/es2015/views/month/month-view-item.component.js +0 -64
- package/dist/es2015/views/month/month-view-renderer.component.d.ts +0 -44
- package/dist/es2015/views/month/month-view-renderer.component.js +0 -321
- package/dist/es2015/views/month/month-view.component.d.ts +0 -44
- package/dist/es2015/views/month/month-view.component.js +0 -95
- package/dist/es2015/views/month/month-view.module.d.ts +0 -9
- package/dist/es2015/views/month/month-view.module.js +0 -33
- package/dist/es2015/views/month/utils.js +0 -69
- package/dist/es2015/views/multi-day/day-view.component.d.ts +0 -54
- package/dist/es2015/views/multi-day/day-view.component.js +0 -116
- package/dist/es2015/views/multi-day/multi-day-view-base.d.ts +0 -25
- package/dist/es2015/views/multi-day/multi-day-view-base.js +0 -26
- package/dist/es2015/views/multi-day/multi-day-view-renderer.component.d.ts +0 -65
- package/dist/es2015/views/multi-day/multi-day-view-renderer.component.js +0 -531
- package/dist/es2015/views/multi-day/multi-day-view.component.d.ts +0 -46
- package/dist/es2015/views/multi-day/multi-day-view.component.js +0 -128
- package/dist/es2015/views/multi-day/multi-day-view.module.d.ts +0 -9
- package/dist/es2015/views/multi-day/multi-day-view.module.js +0 -40
- package/dist/es2015/views/multi-day/week-view.component.d.ts +0 -62
- package/dist/es2015/views/multi-day/week-view.component.js +0 -135
- package/dist/es2015/views/multi-day/work-week-view.component.d.ts +0 -36
- package/dist/es2015/views/multi-day/work-week-view.component.js +0 -110
- package/dist/es2015/views/scheduler-view.directive.d.ts +0 -23
- package/dist/es2015/views/scheduler-view.directive.js +0 -49
- package/dist/es2015/views/templates/agenda-date-template.directive.d.ts +0 -24
- package/dist/es2015/views/templates/agenda-date-template.directive.js +0 -34
- package/dist/es2015/views/templates/agenda-time-template.directive.d.ts +0 -29
- package/dist/es2015/views/templates/agenda-time-template.directive.js +0 -39
- package/dist/es2015/views/templates/all-day-event-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/all-day-event-template.directive.js +0 -35
- package/dist/es2015/views/templates/all-day-slot-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/all-day-slot-template.directive.js +0 -35
- package/dist/es2015/views/templates/date-header-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/date-header-template.directive.js +0 -35
- package/dist/es2015/views/templates/event-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/event-template.directive.js +0 -35
- package/dist/es2015/views/templates/group-header-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/group-header-template.directive.js +0 -35
- package/dist/es2015/views/templates/major-time-header-template.directive.d.ts +0 -24
- package/dist/es2015/views/templates/major-time-header-template.directive.js +0 -34
- package/dist/es2015/views/templates/minor-time-header-template.directive.d.ts +0 -24
- package/dist/es2015/views/templates/minor-time-header-template.directive.js +0 -34
- package/dist/es2015/views/templates/month-day-slot-template.directive.d.ts +0 -25
- package/dist/es2015/views/templates/month-day-slot-template.directive.js +0 -36
- package/dist/es2015/views/templates/time-slot-template.directive.d.ts +0 -26
- package/dist/es2015/views/templates/time-slot-template.directive.js +0 -36
- package/dist/es2015/views/templates.js +0 -15
- package/dist/es2015/views/timeline/timeline-base.d.ts +0 -23
- package/dist/es2015/views/timeline/timeline-base.js +0 -26
- package/dist/es2015/views/timeline/timeline-month-view.component.d.ts +0 -49
- package/dist/es2015/views/timeline/timeline-month-view.component.js +0 -118
- package/dist/es2015/views/timeline/timeline-multi-day-view.component.d.ts +0 -39
- package/dist/es2015/views/timeline/timeline-multi-day-view.component.js +0 -302
- package/dist/es2015/views/timeline/timeline-view.component.d.ts +0 -37
- package/dist/es2015/views/timeline/timeline-view.component.js +0 -95
- package/dist/es2015/views/timeline/timeline-view.module.d.ts +0 -9
- package/dist/es2015/views/timeline/timeline-view.module.js +0 -38
- package/dist/es2015/views/timeline/timeline-week-view.component.d.ts +0 -45
- package/dist/es2015/views/timeline/timeline-week-view.component.js +0 -114
- package/dist/es2015/views/view-context.service.d.ts +0 -79
- package/dist/es2015/views/view-context.service.js +0 -84
- package/dist/es2015/views/view-items/base-slot.directive.d.ts +0 -32
- package/dist/es2015/views/view-items/base-slot.directive.js +0 -81
- package/dist/es2015/views/view-items/base-view-item.d.ts +0 -47
- package/dist/es2015/views/view-items/base-view-item.js +0 -183
- package/dist/es2015/views/view-items/item-map.d.ts +0 -16
- package/dist/es2015/views/view-items/types.js +0 -4
- package/dist/es2015/views/view-state.service.d.ts +0 -92
- package/dist/es2015/views/view-state.service.js +0 -99
- package/dist/fesm2015/index.js +0 -14992
- package/dist/fesm5/index.js +0 -14474
- package/dist/npm/common/constants.js +0 -10
- package/dist/npm/common/default-model-fields.js +0 -22
- package/dist/npm/common/dom-queries.js +0 -131
- package/dist/npm/common/getter.js +0 -32
- package/dist/npm/common/modifiers.js +0 -35
- package/dist/npm/common/setter.js +0 -33
- package/dist/npm/common/util.js +0 -243
- package/dist/npm/data-binding.directive.js +0 -166
- package/dist/npm/editing/date-time-picker.component.js +0 -82
- package/dist/npm/editing/dialogs.service.js +0 -96
- package/dist/npm/editing/edit-dialog-template.directive.js +0 -37
- package/dist/npm/editing/edit-dialog.component.js +0 -300
- package/dist/npm/editing/edit.service.js +0 -120
- package/dist/npm/editing/local-data-changes.service.js +0 -21
- package/dist/npm/editing/recurrence/end-rule-radio-button.directive.js +0 -81
- package/dist/npm/editing/recurrence/localization/custom-messages.component.js +0 -46
- package/dist/npm/editing/recurrence/localization/localized-messages.directive.js +0 -37
- package/dist/npm/editing/recurrence/localization/messages.js +0 -148
- package/dist/npm/editing/recurrence/localization/recurrence-localization.service.js +0 -37
- package/dist/npm/editing/recurrence/recurrence-editor.component.js +0 -176
- package/dist/npm/editing/recurrence/recurrence-end-rule-editor.component.js +0 -164
- package/dist/npm/editing/recurrence/recurrence-frequency-editor.component.js +0 -58
- package/dist/npm/editing/recurrence/recurrence-interval-editor.component.js +0 -100
- package/dist/npm/editing/recurrence/recurrence-monthly-yearly-editor.component.js +0 -279
- package/dist/npm/editing/recurrence/recurrence-weekday-rule-editor.component.js +0 -84
- package/dist/npm/editing/recurrence/recurrence.service.js +0 -305
- package/dist/npm/editing/recurrence/repeat-on-radio-button.directive.js +0 -91
- package/dist/npm/editing/resource-editor-base.js +0 -62
- package/dist/npm/editing/resource-multiple-editor.component.js +0 -53
- package/dist/npm/editing/resource-single-editor.component.js +0 -48
- package/dist/npm/editing/timezone-editor.component.js +0 -109
- package/dist/npm/editing-directives/base-edit.service.js +0 -299
- package/dist/npm/editing-directives/edit-service.interface.js +0 -6
- package/dist/npm/editing-directives/editing-directive-base.js +0 -231
- package/dist/npm/editing-directives/local-edit.service.js +0 -138
- package/dist/npm/editing-directives/reactive-editing.directive.js +0 -113
- package/dist/npm/editing-directives/utils.js +0 -72
- package/dist/npm/events/add-event.js +0 -25
- package/dist/npm/events/cancel-event.js +0 -19
- package/dist/npm/events/create-event.js +0 -20
- package/dist/npm/events/date-change-event.js +0 -21
- package/dist/npm/events/drag-end-event.js +0 -25
- package/dist/npm/events/drag-event.js +0 -25
- package/dist/npm/events/drag-start-event.js +0 -25
- package/dist/npm/events/edit-event-base.js +0 -20
- package/dist/npm/events/edit-event.js +0 -25
- package/dist/npm/events/event-click-event.js +0 -20
- package/dist/npm/events/event-keydown-event.js +0 -20
- package/dist/npm/events/navigate-event.js +0 -25
- package/dist/npm/events/preventable-event.js +0 -34
- package/dist/npm/events/remove-event.js +0 -25
- package/dist/npm/events/resize-end-event.js +0 -25
- package/dist/npm/events/resize-event.js +0 -25
- package/dist/npm/events/resize-start-event.js +0 -25
- package/dist/npm/events/save-event.js +0 -19
- package/dist/npm/events/slot-click-event.js +0 -20
- package/dist/npm/events/slot-drag-end-event.js +0 -19
- package/dist/npm/events/slot-drag-event.js +0 -20
- package/dist/npm/events/slot-drag-start-event.js +0 -26
- package/dist/npm/events/view-event-map.js +0 -37
- package/dist/npm/events.js +0 -48
- package/dist/npm/index.js +0 -207
- package/dist/npm/loading.component.js +0 -52
- package/dist/npm/localization/custom-messages.component.js +0 -45
- package/dist/npm/localization/localized-messages.directive.js +0 -37
- package/dist/npm/localization/messages.js +0 -324
- package/dist/npm/localization/scheduler-localization.service.js +0 -26
- package/dist/npm/main.js +0 -43
- package/dist/npm/navigation/focus-position.interface.js +0 -6
- package/dist/npm/navigation/focus.service.js +0 -136
- package/dist/npm/navigation/focusable-element.interface.js +0 -6
- package/dist/npm/navigation/focusable.directive.js +0 -81
- package/dist/npm/navigation/shortcuts.directive.js +0 -170
- package/dist/npm/navigation.js +0 -10
- package/dist/npm/package-metadata.js +0 -17
- package/dist/npm/pdf/pdf-command.directive.js +0 -69
- package/dist/npm/pdf/pdf-export-event.js +0 -19
- package/dist/npm/pdf/pdf.component.js +0 -195
- package/dist/npm/pdf/pdf.module.js +0 -57
- package/dist/npm/pdf/pdf.service.js +0 -40
- package/dist/npm/scheduler.component.js +0 -1244
- package/dist/npm/scheduler.module.js +0 -176
- package/dist/npm/shared.module.js +0 -33
- package/dist/npm/toolbar/navigation.component.js +0 -227
- package/dist/npm/toolbar/toolbar-context.js +0 -6
- package/dist/npm/toolbar/toolbar-template.directive.js +0 -49
- package/dist/npm/toolbar/toolbar.component.js +0 -102
- package/dist/npm/toolbar/toolbar.module.js +0 -51
- package/dist/npm/toolbar/toolbar.service.js +0 -35
- package/dist/npm/toolbar/view-selector.component.js +0 -88
- package/dist/npm/types/actions.js +0 -6
- package/dist/npm/types/create-form-group-args.interface.js +0 -6
- package/dist/npm/types/crud-operation.enum.js +0 -18
- package/dist/npm/types/current-time-settings.interface.js +0 -6
- package/dist/npm/types/date-range.interface.js +0 -6
- package/dist/npm/types/datepicker-options.interface.js +0 -6
- package/dist/npm/types/edit-event-args.interface.js +0 -6
- package/dist/npm/types/edit-mode.enum.js +0 -21
- package/dist/npm/types/editable-settings.interface.js +0 -6
- package/dist/npm/types/event-style-args.interface.js +0 -6
- package/dist/npm/types/group.interface.js +0 -6
- package/dist/npm/types/numeric-options.interface.js +0 -6
- package/dist/npm/types/resource.interface.js +0 -6
- package/dist/npm/types/scheduler-event.js +0 -6
- package/dist/npm/types/scheduler-model-fields.interface.js +0 -6
- package/dist/npm/types/scheduler-slot.interface.js +0 -6
- package/dist/npm/types/scheduler-view.js +0 -15
- package/dist/npm/types/slot-class-args.interface.js +0 -6
- package/dist/npm/types/slot-selection.js +0 -25
- package/dist/npm/types/view-item.interface.js +0 -6
- package/dist/npm/types.js +0 -14
- package/dist/npm/views/agenda/agenda-header-item.component.js +0 -58
- package/dist/npm/views/agenda/agenda-header.component.js +0 -59
- package/dist/npm/views/agenda/agenda-task-item.component.js +0 -98
- package/dist/npm/views/agenda/agenda-view-internal.component.js +0 -379
- package/dist/npm/views/agenda/agenda-view-list.component.js +0 -115
- package/dist/npm/views/agenda/agenda-view.component.js +0 -100
- package/dist/npm/views/agenda/agenda-view.module.js +0 -41
- package/dist/npm/views/agenda/tasks.collection.js +0 -119
- package/dist/npm/views/agenda/utils.js +0 -208
- package/dist/npm/views/common/base-view.js +0 -1051
- package/dist/npm/views/common/configuration-view-base.js +0 -109
- package/dist/npm/views/common/dom-events.service.js +0 -26
- package/dist/npm/views/common/hint-container.component.js +0 -33
- package/dist/npm/views/common/repeat.pipe.js +0 -53
- package/dist/npm/views/common/resize-hint.component.js +0 -104
- package/dist/npm/views/common/resource-iterator.pipe.js +0 -67
- package/dist/npm/views/common/scheduler-task.js +0 -6
- package/dist/npm/views/common/slot-selectable.directive.js +0 -119
- package/dist/npm/views/common/view-footer.component.js +0 -52
- package/dist/npm/views/common/views-shared.module.js +0 -49
- package/dist/npm/views/common/work-hours-footer.directive.js +0 -43
- package/dist/npm/views/constants.js +0 -26
- package/dist/npm/views/day-time/day-time-slot.service.js +0 -697
- package/dist/npm/views/day-time/day-time-view-base.js +0 -214
- package/dist/npm/views/day-time/day-time-view-item.component.js +0 -57
- package/dist/npm/views/day-time/day-time-view.component.js +0 -409
- package/dist/npm/views/day-time/day-time.module.js +0 -34
- package/dist/npm/views/day-time/event-slot.directive.js +0 -191
- package/dist/npm/views/day-time/utils.js +0 -36
- package/dist/npm/views/month/month-slot.directive.js +0 -98
- package/dist/npm/views/month/month-slot.service.js +0 -324
- package/dist/npm/views/month/month-view-item.component.js +0 -45
- package/dist/npm/views/month/month-view-renderer.component.js +0 -217
- package/dist/npm/views/month/month-view.component.js +0 -94
- package/dist/npm/views/month/month-view.module.js +0 -38
- package/dist/npm/views/month/utils.js +0 -72
- package/dist/npm/views/multi-day/day-view.component.js +0 -93
- package/dist/npm/views/multi-day/multi-day-view-base.js +0 -35
- package/dist/npm/views/multi-day/multi-day-view-renderer.component.js +0 -325
- package/dist/npm/views/multi-day/multi-day-view.component.js +0 -119
- package/dist/npm/views/multi-day/multi-day-view.module.js +0 -44
- package/dist/npm/views/multi-day/utils.js +0 -61
- package/dist/npm/views/multi-day/week-view.component.js +0 -109
- package/dist/npm/views/multi-day/work-week-view.component.js +0 -87
- package/dist/npm/views/scheduler-view.directive.js +0 -59
- package/dist/npm/views/templates/agenda-date-template.directive.js +0 -37
- package/dist/npm/views/templates/agenda-time-template.directive.js +0 -42
- package/dist/npm/views/templates/all-day-event-template.directive.js +0 -38
- package/dist/npm/views/templates/all-day-slot-template.directive.js +0 -38
- package/dist/npm/views/templates/date-header-template.directive.js +0 -38
- package/dist/npm/views/templates/event-template.directive.js +0 -38
- package/dist/npm/views/templates/group-header-template.directive.js +0 -38
- package/dist/npm/views/templates/major-time-header-template.directive.js +0 -37
- package/dist/npm/views/templates/minor-time-header-template.directive.js +0 -37
- package/dist/npm/views/templates/month-day-slot-template.directive.js +0 -39
- package/dist/npm/views/templates/time-slot-template.directive.js +0 -39
- package/dist/npm/views/templates.js +0 -28
- package/dist/npm/views/timeline/timeline-base.js +0 -35
- package/dist/npm/views/timeline/timeline-month-view.component.js +0 -95
- package/dist/npm/views/timeline/timeline-multi-day-view.component.js +0 -162
- package/dist/npm/views/timeline/timeline-view.component.js +0 -76
- package/dist/npm/views/timeline/timeline-view.module.js +0 -42
- package/dist/npm/views/timeline/timeline-week-view.component.js +0 -91
- package/dist/npm/views/timeline/utils.js +0 -36
- package/dist/npm/views/utils.js +0 -360
- package/dist/npm/views/view-context.service.js +0 -87
- package/dist/npm/views/view-items/base-slot.directive.js +0 -117
- package/dist/npm/views/view-items/base-slot.service.js +0 -79
- package/dist/npm/views/view-items/base-view-item.js +0 -224
- package/dist/npm/views/view-items/item-map.js +0 -53
- package/dist/npm/views/view-items/types.js +0 -6
- package/dist/npm/views/view-state.service.js +0 -102
- package/dist/systemjs/kendo-angular-scheduler.js +0 -5
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { parseDate, formatDate } from '@progress/kendo-angular-intl';
|
|
6
|
+
import { toLocalDate } from '@progress/kendo-date-math';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import { setter } from '../common/setter';
|
|
9
|
+
import { getter } from '../common/getter';
|
|
10
|
+
import { defaultModelFields } from '../common/default-model-fields';
|
|
11
|
+
import { isRecurring, isException, isPresent, cloneTo, assignField } from '../common/util';
|
|
12
|
+
const DATE_FORMATS = [
|
|
13
|
+
"yyyyMMddTHHmmssSSSXXX",
|
|
14
|
+
"yyyyMMddTHHmmssXXX",
|
|
15
|
+
"yyyyMMddTHHmmss",
|
|
16
|
+
"yyyyMMddTHHmm",
|
|
17
|
+
"yyyyMMddTHH",
|
|
18
|
+
"yyyyMMdd"
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* A base implementation of the [edit service]({% slug api_scheduler_editservice %}) which persists data to traditional CRUD services such as OData.
|
|
22
|
+
*
|
|
23
|
+
* To support custom models, the `BaseEditService` class requires a [field map]({% slug api_scheduler_schedulermodelfields %}) as a constructor parameter. Subclasses require you to
|
|
24
|
+
* implement the `read` operation, which is not called directly by the base class, and the [`save`]({% slug api_scheduler_baseeditservice %}#toc-save) method which persists the created,
|
|
25
|
+
* updated, and deleted entities.
|
|
26
|
+
*
|
|
27
|
+
* The [`events`](#toc-events) observable will publish the current data which is set upon subscription by using, for example, an [async pipe](https://angular.io/api/common/AsyncPipe)
|
|
28
|
+
* ([more information]({% slug editing_directives_scheduler %}#toc-custom-service)).
|
|
29
|
+
*
|
|
30
|
+
* Implementations which utilize dedicated services, such as Google Calendar and Microsoft Exchange, will typically implement the
|
|
31
|
+
* [`EditService`]({% slug api_scheduler_editservice %}) of the Scheduler directly.
|
|
32
|
+
*
|
|
33
|
+
* See example in [this article]({% slug custom_reactive_editing_scheduler %}).
|
|
34
|
+
*/
|
|
35
|
+
export class BaseEditService {
|
|
36
|
+
/**
|
|
37
|
+
* Initializes the base edit service.
|
|
38
|
+
*
|
|
39
|
+
* @param fields - A field map that will be used for reading and modifying model objects. Defaults to the [`SchedulerEvent`]({% slug api_scheduler_schedulerevent %}) fields.
|
|
40
|
+
*/
|
|
41
|
+
constructor(fields) {
|
|
42
|
+
/**
|
|
43
|
+
* An array of the currently loaded events which is populated by the derived class.
|
|
44
|
+
*/
|
|
45
|
+
this.data = [];
|
|
46
|
+
/**
|
|
47
|
+
* The source subject for the `events` observable.
|
|
48
|
+
*/
|
|
49
|
+
this.source = new BehaviorSubject([]);
|
|
50
|
+
this.createdItems = [];
|
|
51
|
+
this.updatedItems = [];
|
|
52
|
+
this.deletedItems = [];
|
|
53
|
+
this.events = this.source.asObservable();
|
|
54
|
+
this.fields = Object.assign(Object.assign({}, defaultModelFields), fields);
|
|
55
|
+
this.getId = getter(this.fields.id);
|
|
56
|
+
this.getRecurrenceId = getter(this.fields.recurrenceId);
|
|
57
|
+
this.getRecurrenceRule = getter(this.fields.recurrenceRule);
|
|
58
|
+
this.getRecurrenceExceptions = getter(this.fields.recurrenceExceptions);
|
|
59
|
+
this.getStart = getter(this.fields.start);
|
|
60
|
+
this.setId = setter(this.fields.id);
|
|
61
|
+
this.setRecurrenceRule = setter(this.fields.recurrenceRule);
|
|
62
|
+
this.setRecurrenceExceptions = setter(this.fields.recurrenceExceptions);
|
|
63
|
+
this.setRecurrenceId = setter(this.fields.recurrenceId);
|
|
64
|
+
}
|
|
65
|
+
create(event) {
|
|
66
|
+
this.logCreate(event);
|
|
67
|
+
this.saveChanges();
|
|
68
|
+
}
|
|
69
|
+
/*
|
|
70
|
+
* Creates an exception to a recurring series.
|
|
71
|
+
*
|
|
72
|
+
* The `createException` method performs the following operations:
|
|
73
|
+
* * Adds the start date of the event to the `recurrenceExceptions` of the master event (recurrence head).
|
|
74
|
+
* * Creates a new event that stores the recurrence exception itself.
|
|
75
|
+
*/
|
|
76
|
+
createException(event, value) {
|
|
77
|
+
const exception = this.buildException(value);
|
|
78
|
+
this.logRemoveOccurrence(event);
|
|
79
|
+
this.logCreate(exception);
|
|
80
|
+
this.saveChanges();
|
|
81
|
+
}
|
|
82
|
+
update(event, value) {
|
|
83
|
+
this.assignValues(event, value);
|
|
84
|
+
this.logUpdate(event);
|
|
85
|
+
this.saveChanges();
|
|
86
|
+
}
|
|
87
|
+
remove(event) {
|
|
88
|
+
this.logRemove(event);
|
|
89
|
+
this.saveChanges();
|
|
90
|
+
}
|
|
91
|
+
removeSeries(event) {
|
|
92
|
+
const id = this.getId(event);
|
|
93
|
+
const recurrenceId = this.getRecurrenceId(event);
|
|
94
|
+
const isHead = this.isRecurrenceHead(event);
|
|
95
|
+
this.removeItemAndExceptions(isHead ? id : recurrenceId);
|
|
96
|
+
this.saveChanges();
|
|
97
|
+
}
|
|
98
|
+
removeOccurrence(event) {
|
|
99
|
+
this.logRemoveOccurrence(event);
|
|
100
|
+
this.saveChanges();
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Returns the master recurring event for a specified recurring event.
|
|
104
|
+
*
|
|
105
|
+
* @param event - An event from the recurrence series.
|
|
106
|
+
* @returns the master recurring event for the series.
|
|
107
|
+
*/
|
|
108
|
+
findRecurrenceMaster(event) {
|
|
109
|
+
const id = this.getId(event);
|
|
110
|
+
const recurrenceId = this.getRecurrenceId(event);
|
|
111
|
+
const headId = this.isRecurrenceHead(event) ? id : recurrenceId;
|
|
112
|
+
const index = this.itemIndex(headId, this.data);
|
|
113
|
+
return this.data[index];
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Checks if the event is part of the recurrence series.
|
|
117
|
+
*
|
|
118
|
+
* @param event - The event that will be checked.
|
|
119
|
+
* @returns `true` if the event is an occurrence, an exception, or a master event. Otherwise, returns `false`.
|
|
120
|
+
*/
|
|
121
|
+
isRecurring(event) {
|
|
122
|
+
return isRecurring(event, this.fields);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Checks if the event is a recurrence exception.
|
|
126
|
+
*
|
|
127
|
+
* @param event - The event that will be checked.
|
|
128
|
+
* @returns `true` if the event is a unique event which belongs to a recurrence series. Otherwise, returns `false`.
|
|
129
|
+
*/
|
|
130
|
+
isException(event) {
|
|
131
|
+
return isException(event, this.fields);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Returns a Boolean value which indicates if the event is new.
|
|
135
|
+
* If the `ID` field is defined, the default implementation returns `true`.
|
|
136
|
+
* Can be overridden to implement different conditions.
|
|
137
|
+
*
|
|
138
|
+
* @param event - The event that will be checked.
|
|
139
|
+
*/
|
|
140
|
+
isNew(event) {
|
|
141
|
+
const id = this.getId(event);
|
|
142
|
+
return !isPresent(id);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Returns the next `ID` that will be used for new events.
|
|
146
|
+
* The default implementation returns `undefined`.
|
|
147
|
+
*/
|
|
148
|
+
nextId() {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Copies values to the target model instance.
|
|
153
|
+
* To copy the top-level fields, the base implementation uses
|
|
154
|
+
* [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign).
|
|
155
|
+
* To copy nested fields, override `assignValues` and handle the model-specific cases.
|
|
156
|
+
*
|
|
157
|
+
* @param target - The target object that will receive the field values.
|
|
158
|
+
* @param source - The source object from which the fields will be read.
|
|
159
|
+
*/
|
|
160
|
+
assignValues(target, source) {
|
|
161
|
+
cloneTo(source, target);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Clones an existing model object.
|
|
165
|
+
* To copy the top-level model fields, the base creates an empty object and calls [`assignValues`](#toc-assignvalues).
|
|
166
|
+
* To create models of the correct type, override `cloneEvent`.
|
|
167
|
+
*
|
|
168
|
+
* @param event - The model instance to copy.
|
|
169
|
+
* @returns TEvent - The new model instance.
|
|
170
|
+
*/
|
|
171
|
+
cloneEvent(event) {
|
|
172
|
+
const result = {};
|
|
173
|
+
this.assignValues(result, event);
|
|
174
|
+
return result;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* A utility method which parses recurrence exception dates in an ISO format.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```ts-no-run
|
|
181
|
+
* const exdates = '20180614T060000Z;20180615T060000Z';
|
|
182
|
+
* const result = super.parseExceptions(exdates);
|
|
183
|
+
*
|
|
184
|
+
* // console.log(result);
|
|
185
|
+
* // Array [ Date 2018-06-14T03:00:00.000Z, Date 2018-06-15T03:00:00.000Z ]
|
|
186
|
+
* ```
|
|
187
|
+
*
|
|
188
|
+
* @param value - A comma-separated list of ISO-formatted dates.
|
|
189
|
+
* @returns Date[] - The recurrence exceptions as local dates.
|
|
190
|
+
*/
|
|
191
|
+
parseExceptions(value) {
|
|
192
|
+
if (!isPresent(value) || value === '') {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
return value
|
|
196
|
+
.split(';')
|
|
197
|
+
.map(ex => parseDate(ex, DATE_FORMATS) || undefined);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* A utility method which serializes recurrence exception dates in an ISO format.
|
|
201
|
+
*
|
|
202
|
+
* @example
|
|
203
|
+
* ```ts-no-run
|
|
204
|
+
* const exdates = [ new Date(2018, 5, 14, 3, 0, 0), new Date(2018, 5, 15, 3, 0, 0) ];
|
|
205
|
+
* const result = super.serializeExceptions(exdates);
|
|
206
|
+
*
|
|
207
|
+
* // console.log(result);
|
|
208
|
+
* // '20180614T060000Z;20180615T060000Z'
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* @param value - An array of `Date` instances.
|
|
212
|
+
* @returns string - A comma-separated list of ISO-formatted dates.
|
|
213
|
+
*/
|
|
214
|
+
serializeExceptions(exceptions) {
|
|
215
|
+
if (!exceptions || exceptions.length === 0) {
|
|
216
|
+
return '';
|
|
217
|
+
}
|
|
218
|
+
return exceptions.map(date => formatDate(toLocalDate(date), 'yyyyMMddTHHmmss') + 'Z').join(';');
|
|
219
|
+
}
|
|
220
|
+
reset() {
|
|
221
|
+
this.data = [];
|
|
222
|
+
this.deletedItems = [];
|
|
223
|
+
this.updatedItems = [];
|
|
224
|
+
this.createdItems = [];
|
|
225
|
+
}
|
|
226
|
+
itemIndex(id, items) {
|
|
227
|
+
for (let idx = 0; idx < items.length; idx++) {
|
|
228
|
+
if (this.getId(items[idx]) === id) {
|
|
229
|
+
return idx;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return -1;
|
|
233
|
+
}
|
|
234
|
+
buildException(item) {
|
|
235
|
+
const fields = this.fields;
|
|
236
|
+
const head = this.findRecurrenceMaster(item);
|
|
237
|
+
const copy = this.cloneEvent(item);
|
|
238
|
+
assignField(copy, head, fields.id);
|
|
239
|
+
this.setId(copy, this.nextId());
|
|
240
|
+
this.setRecurrenceRule(copy, undefined);
|
|
241
|
+
this.setRecurrenceId(copy, this.getId(head));
|
|
242
|
+
return copy;
|
|
243
|
+
}
|
|
244
|
+
isRecurrenceHead(item) {
|
|
245
|
+
const id = this.getId(item);
|
|
246
|
+
const recurrenceRule = this.getRecurrenceRule(item);
|
|
247
|
+
return !!(id && recurrenceRule);
|
|
248
|
+
}
|
|
249
|
+
logCreate(item) {
|
|
250
|
+
this.data = [...this.data, item];
|
|
251
|
+
this.source.next(this.data);
|
|
252
|
+
this.createdItems.push(item);
|
|
253
|
+
}
|
|
254
|
+
logUpdate(item) {
|
|
255
|
+
const id = this.getId(item);
|
|
256
|
+
if (!this.isNew(item)) {
|
|
257
|
+
const index = this.itemIndex(id, this.updatedItems);
|
|
258
|
+
if (index !== -1) {
|
|
259
|
+
this.updatedItems.splice(index, 1, item);
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
this.updatedItems.push(item);
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
const index = this.createdItems.indexOf(item);
|
|
267
|
+
this.createdItems.splice(index, 1, item);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
logRemove(item) {
|
|
271
|
+
const id = this.getId(item);
|
|
272
|
+
let index = this.itemIndex(id, this.data);
|
|
273
|
+
this.data = this.data.filter((_, i) => i !== index);
|
|
274
|
+
this.source.next(this.data);
|
|
275
|
+
index = this.itemIndex(id, this.createdItems);
|
|
276
|
+
if (index >= 0) {
|
|
277
|
+
this.createdItems.splice(index, 1);
|
|
278
|
+
}
|
|
279
|
+
else {
|
|
280
|
+
this.deletedItems.push(item);
|
|
281
|
+
}
|
|
282
|
+
index = this.itemIndex(id, this.updatedItems);
|
|
283
|
+
if (index >= 0) {
|
|
284
|
+
this.updatedItems.splice(index, 1);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
logRemoveOccurrence(event) {
|
|
288
|
+
const head = this.findRecurrenceMaster(event);
|
|
289
|
+
const exceptionDate = this.getStart(event);
|
|
290
|
+
const currentExceptions = this.getRecurrenceExceptions(head) || [];
|
|
291
|
+
this.setRecurrenceExceptions(head, [...currentExceptions, exceptionDate]);
|
|
292
|
+
this.logUpdate(head);
|
|
293
|
+
}
|
|
294
|
+
removeItemAndExceptions(itemId) {
|
|
295
|
+
this.deletedItems = this.deletedItems.concat(this.data.filter(ev => this.getRecurrenceId(ev) === itemId || this.getId(ev) === itemId));
|
|
296
|
+
}
|
|
297
|
+
hasChanges() {
|
|
298
|
+
return this.deletedItems.length + this.updatedItems.length + this.createdItems.length > 0;
|
|
299
|
+
}
|
|
300
|
+
saveChanges() {
|
|
301
|
+
if (!this.hasChanges()) {
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
this.save(this.createdItems, this.updatedItems, this.deletedItems);
|
|
305
|
+
this.reset();
|
|
306
|
+
}
|
|
307
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { Input, Output, EventEmitter, Directive } from '@angular/core';
|
|
6
|
+
import { merge } from 'rxjs';
|
|
7
|
+
import { LocalEditService } from './local-edit.service';
|
|
8
|
+
import { AddEvent } from '../events';
|
|
9
|
+
import { groupResources, assignValues, clone, setField, getField } from '../common/util';
|
|
10
|
+
import { diff, areEqual, seriesDate } from './utils';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../scheduler.component";
|
|
13
|
+
import * as i2 from "../editing/local-data-changes.service";
|
|
14
|
+
import * as i3 from "../editing/dialogs.service";
|
|
15
|
+
/**
|
|
16
|
+
* @hidden
|
|
17
|
+
*/
|
|
18
|
+
export class EditingDirectiveBase {
|
|
19
|
+
constructor(scheduler, localDataChangesService, dialogsService) {
|
|
20
|
+
this.scheduler = scheduler;
|
|
21
|
+
this.localDataChangesService = localDataChangesService;
|
|
22
|
+
this.dialogsService = dialogsService;
|
|
23
|
+
/**
|
|
24
|
+
* Fires before the editing directive renders the **Add** dialog.
|
|
25
|
+
*/
|
|
26
|
+
this.add = new EventEmitter();
|
|
27
|
+
/**
|
|
28
|
+
* Fires before the editing directive renders the **Edit** dialog.
|
|
29
|
+
*/
|
|
30
|
+
this.edit = new EventEmitter();
|
|
31
|
+
this.defaultTitle = 'No title';
|
|
32
|
+
this.defaultEditService = this.createDefaultService();
|
|
33
|
+
this.scheduler.editable = true;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The edit service that will handle the editing operations.
|
|
37
|
+
*/
|
|
38
|
+
set editService(value) {
|
|
39
|
+
this.userEditService = value;
|
|
40
|
+
}
|
|
41
|
+
get editService() {
|
|
42
|
+
return this.userEditService || this.defaultEditService;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* @hidden
|
|
46
|
+
*/
|
|
47
|
+
ngOnInit() {
|
|
48
|
+
this.subscriptions = merge(this.scheduler.slotDblClick, this.scheduler.create).subscribe(this.addHandler.bind(this));
|
|
49
|
+
this.subscriptions.add(this.scheduler.removeConfirmed.subscribe(this.removeHandler.bind(this)));
|
|
50
|
+
this.subscriptions.add(this.scheduler.cancel.subscribe(this.cancelHandler.bind(this)));
|
|
51
|
+
this.subscriptions.add(this.scheduler.resizeEndConfirmed.subscribe(this.resizeEndHandler.bind(this)));
|
|
52
|
+
this.subscriptions.add(this.scheduler.dragEndConfirmed.subscribe(this.dragEndHandler.bind(this)));
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @hidden
|
|
56
|
+
*/
|
|
57
|
+
ngOnDestroy() {
|
|
58
|
+
this.subscriptions.unsubscribe();
|
|
59
|
+
}
|
|
60
|
+
createDefaultService() {
|
|
61
|
+
return new LocalEditService(this.scheduler, this.localDataChangesService);
|
|
62
|
+
}
|
|
63
|
+
addHandler(args) {
|
|
64
|
+
this.closeEditor();
|
|
65
|
+
if (!this.isEnabled('add')) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
const fields = this.scheduler.modelFields;
|
|
69
|
+
const dataItem = {};
|
|
70
|
+
setField(dataItem, fields.start, args.start);
|
|
71
|
+
setField(dataItem, fields.end, args.end);
|
|
72
|
+
setField(dataItem, fields.isAllDay, args.isAllDay);
|
|
73
|
+
setField(dataItem, fields.title, args.title);
|
|
74
|
+
const resources = groupResources(this.scheduler.group, this.scheduler.resources);
|
|
75
|
+
const slotResources = args.resources;
|
|
76
|
+
for (let idx = 0; idx < resources.length; idx++) {
|
|
77
|
+
const resource = resources[idx];
|
|
78
|
+
const value = getField(slotResources[idx], resource.valueField);
|
|
79
|
+
setField(dataItem, resource.field, resource.multiple ? [value] : value);
|
|
80
|
+
}
|
|
81
|
+
const addArgs = new AddEvent(this.scheduler, { dataItem });
|
|
82
|
+
this.add.emit(addArgs);
|
|
83
|
+
if (!addArgs.isDefaultPrevented()) {
|
|
84
|
+
this.scheduler.addEvent(this.createModel({
|
|
85
|
+
action: 'add',
|
|
86
|
+
isNew: true,
|
|
87
|
+
dataItem
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
removeHandler({ dataItem }) {
|
|
92
|
+
if (!this.isEnabled('remove')) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (this.editService.isRecurring(dataItem)) {
|
|
96
|
+
this.dialogsService.openRecurringConfirmationDialog(1 /* Remove */)
|
|
97
|
+
.subscribe((editMode) => {
|
|
98
|
+
if (editMode !== undefined) {
|
|
99
|
+
this.handleRemove(dataItem, editMode);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.dialogsService.openRemoveConfirmationDialog()
|
|
105
|
+
.subscribe((shouldRemove) => {
|
|
106
|
+
if (shouldRemove) {
|
|
107
|
+
this.handleRemove(dataItem, 0 /* Event */);
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
cancelHandler() {
|
|
113
|
+
this.closeEditor();
|
|
114
|
+
}
|
|
115
|
+
closeEditor() {
|
|
116
|
+
this.scheduler.closeEvent();
|
|
117
|
+
}
|
|
118
|
+
handleUpdate(item, value, mode) {
|
|
119
|
+
const svc = this.editService;
|
|
120
|
+
if (mode === 1 /* Occurrence */) {
|
|
121
|
+
svc.isException(item) ?
|
|
122
|
+
svc.update(item, value) :
|
|
123
|
+
svc.createException(item, value);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
// Item is not recurring or we're editing the entire series
|
|
127
|
+
svc.update(item, value);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
handleRemove(item, mode) {
|
|
131
|
+
const svc = this.editService;
|
|
132
|
+
if (mode === 2 /* Series */) {
|
|
133
|
+
svc.removeSeries(item);
|
|
134
|
+
}
|
|
135
|
+
else if (mode === 1 /* Occurrence */) {
|
|
136
|
+
svc.isException(item) ?
|
|
137
|
+
svc.remove(item) :
|
|
138
|
+
svc.removeOccurrence(item);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
// Item is not recurring
|
|
142
|
+
svc.remove(item);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
resizeEndHandler({ event, start, end }) {
|
|
146
|
+
if (areEqual(start, event.start) && areEqual(end, event.end)) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const dataItem = event.dataItem;
|
|
150
|
+
const fields = this.scheduler.modelFields;
|
|
151
|
+
let value = {};
|
|
152
|
+
setField(value, fields.start, start);
|
|
153
|
+
setField(value, fields.end, end);
|
|
154
|
+
if (this.editService.isRecurring(dataItem)) {
|
|
155
|
+
this.dialogsService.openRecurringConfirmationDialog(0 /* Edit */)
|
|
156
|
+
.subscribe((result) => {
|
|
157
|
+
let target = dataItem;
|
|
158
|
+
if (result === 2 /* Series */) {
|
|
159
|
+
target = this.editService.findRecurrenceMaster(dataItem);
|
|
160
|
+
setField(value, fields.start, seriesDate(target, dataItem, value, fields.start));
|
|
161
|
+
setField(value, fields.end, seriesDate(target, dataItem, value, fields.end));
|
|
162
|
+
}
|
|
163
|
+
else if (result !== undefined) {
|
|
164
|
+
value = assignValues(clone(dataItem), value);
|
|
165
|
+
}
|
|
166
|
+
this.handleUpdate(target, value, result);
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
this.editService.update(dataItem, value);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
dragEndHandler({ event: { dataItem }, start, end, resources, isAllDay }) {
|
|
174
|
+
const modelFields = this.scheduler.modelFields;
|
|
175
|
+
const resourceFields = groupResources(this.scheduler.group, this.scheduler.resources).map(r => r.field);
|
|
176
|
+
const fields = [modelFields.start, modelFields.end, modelFields.isAllDay].concat(resourceFields);
|
|
177
|
+
let value = clone(resources);
|
|
178
|
+
setField(value, modelFields.start, start);
|
|
179
|
+
setField(value, modelFields.end, end);
|
|
180
|
+
setField(value, modelFields.isAllDay, isAllDay);
|
|
181
|
+
if (!diff(dataItem, value, fields)) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
if (this.editService.isRecurring(dataItem)) {
|
|
185
|
+
this.dialogsService.openRecurringConfirmationDialog(0 /* Edit */)
|
|
186
|
+
.subscribe((result) => {
|
|
187
|
+
let target = dataItem;
|
|
188
|
+
if (result === 2 /* Series */) {
|
|
189
|
+
target = this.editService.findRecurrenceMaster(dataItem);
|
|
190
|
+
setField(value, modelFields.start, seriesDate(target, dataItem, value, modelFields.start));
|
|
191
|
+
setField(value, modelFields.end, seriesDate(target, dataItem, value, modelFields.end));
|
|
192
|
+
}
|
|
193
|
+
else if (result !== undefined) {
|
|
194
|
+
value = assignValues(clone(dataItem), value);
|
|
195
|
+
}
|
|
196
|
+
this.handleUpdate(target, value, result);
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
this.editService.update(dataItem, value);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
isEnabled(action) {
|
|
204
|
+
const editable = this.scheduler.editable;
|
|
205
|
+
return editable && editable[action] !== false;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
EditingDirectiveBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, deps: [{ token: i1.SchedulerComponent }, { token: i2.LocalDataChangesService }, { token: i3.DialogsService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
209
|
+
EditingDirectiveBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: EditingDirectiveBase, inputs: { editService: "editService" }, outputs: { add: "add", edit: "edit" }, ngImport: i0 });
|
|
210
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: EditingDirectiveBase, decorators: [{
|
|
211
|
+
type: Directive
|
|
212
|
+
}], ctorParameters: function () { return [{ type: i1.SchedulerComponent }, { type: i2.LocalDataChangesService }, { type: i3.DialogsService }]; }, propDecorators: { add: [{
|
|
213
|
+
type: Output
|
|
214
|
+
}], edit: [{
|
|
215
|
+
type: Output
|
|
216
|
+
}], editService: [{
|
|
217
|
+
type: Input
|
|
218
|
+
}] } });
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**-----------------------------------------------------------------------------------------
|
|
2
|
+
* Copyright © 2021 Progress Software Corporation. All rights reserved.
|
|
3
|
+
* Licensed under commercial license. See LICENSE.md in the project root for more information
|
|
4
|
+
*-------------------------------------------------------------------------------------------*/
|
|
5
|
+
import { isPresent, isRecurring, isException, readEvent, getField, setField, assignValues, clone } from '../common/util';
|
|
6
|
+
import { isDevMode } from '@angular/core';
|
|
7
|
+
import { guid } from '@progress/kendo-angular-common';
|
|
8
|
+
const isRecurrenceMaster = (ev) => !!(ev.id && ev.recurrenceRule);
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export class LocalEditService {
|
|
13
|
+
constructor(scheduler, localDataChangesService) {
|
|
14
|
+
this.scheduler = scheduler;
|
|
15
|
+
this.localDataChangesService = localDataChangesService;
|
|
16
|
+
}
|
|
17
|
+
get fields() {
|
|
18
|
+
return this.scheduler.modelFields;
|
|
19
|
+
}
|
|
20
|
+
get hasLocalData() {
|
|
21
|
+
return isPresent(this.localDataChangesService.data);
|
|
22
|
+
}
|
|
23
|
+
get data() {
|
|
24
|
+
if (this.hasLocalData) {
|
|
25
|
+
return this.localDataChangesService.data;
|
|
26
|
+
}
|
|
27
|
+
return this.scheduler.events;
|
|
28
|
+
}
|
|
29
|
+
create(item) {
|
|
30
|
+
const idField = this.fields.id;
|
|
31
|
+
const id = getField(item, idField);
|
|
32
|
+
if (!isPresent(id)) {
|
|
33
|
+
setField(item, idField, this.nextId());
|
|
34
|
+
}
|
|
35
|
+
this.data.push(item);
|
|
36
|
+
this.dataChanged();
|
|
37
|
+
}
|
|
38
|
+
createException(item, value) {
|
|
39
|
+
const exception = this.buildException(value);
|
|
40
|
+
this.removeOccurrenceInternal(item);
|
|
41
|
+
this.create(exception);
|
|
42
|
+
}
|
|
43
|
+
update(item, value) {
|
|
44
|
+
assignValues(item, value);
|
|
45
|
+
this.dataChanged();
|
|
46
|
+
}
|
|
47
|
+
remove(item) {
|
|
48
|
+
const idField = this.fields.id;
|
|
49
|
+
const itemId = getField(item, idField);
|
|
50
|
+
const data = this.data;
|
|
51
|
+
for (let idx = 0; idx < data.length; idx++) {
|
|
52
|
+
if (itemId === getField(data[idx], idField)) {
|
|
53
|
+
data.splice(idx, 1);
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
this.dataChanged();
|
|
58
|
+
}
|
|
59
|
+
removeSeries(item) {
|
|
60
|
+
const event = readEvent(item, this.fields);
|
|
61
|
+
const isHead = isRecurrenceMaster(event);
|
|
62
|
+
this.removeItemAndExceptions(isHead ? event.id : event.recurrenceId);
|
|
63
|
+
this.dataChanged();
|
|
64
|
+
}
|
|
65
|
+
removeOccurrence(item) {
|
|
66
|
+
this.removeOccurrenceInternal(item);
|
|
67
|
+
this.dataChanged();
|
|
68
|
+
}
|
|
69
|
+
findRecurrenceMaster(item) {
|
|
70
|
+
const fields = this.scheduler.modelFields;
|
|
71
|
+
const event = readEvent(item, fields);
|
|
72
|
+
const headId = isRecurrenceMaster(event) ? event.id : event.recurrenceId;
|
|
73
|
+
return this.data.find((dataItem) => getField(dataItem, fields.id) === headId);
|
|
74
|
+
}
|
|
75
|
+
isRecurring(event) {
|
|
76
|
+
return isRecurring(event, this.scheduler.modelFields);
|
|
77
|
+
}
|
|
78
|
+
isException(event) {
|
|
79
|
+
return isException(event, this.scheduler.modelFields);
|
|
80
|
+
}
|
|
81
|
+
nextId() {
|
|
82
|
+
return guid();
|
|
83
|
+
}
|
|
84
|
+
buildException(item) {
|
|
85
|
+
const fields = this.fields;
|
|
86
|
+
const head = this.findRecurrenceMaster(item);
|
|
87
|
+
if (!head) {
|
|
88
|
+
if (isDevMode()) {
|
|
89
|
+
throw new Error('Unable to find recurrence head for event. Please check that recurrenceId is set and refers to an existing event.');
|
|
90
|
+
}
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const exception = clone(item);
|
|
94
|
+
setField(exception, fields.id, this.nextId());
|
|
95
|
+
setField(exception, fields.recurrenceId, getField(head, fields.id));
|
|
96
|
+
setField(exception, fields.recurrenceRule, null);
|
|
97
|
+
return exception;
|
|
98
|
+
}
|
|
99
|
+
removeItemAndExceptions(itemId) {
|
|
100
|
+
const data = this.data;
|
|
101
|
+
const fields = this.scheduler.modelFields;
|
|
102
|
+
for (let idx = data.length - 1; idx >= 0; idx--) {
|
|
103
|
+
if (itemId === getField(data[idx], fields.recurrenceId) || itemId === getField(data[idx], fields.id)) {
|
|
104
|
+
data.splice(idx, 1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
removeOccurrenceInternal(item) {
|
|
109
|
+
const fields = this.fields;
|
|
110
|
+
const head = this.findRecurrenceMaster(item);
|
|
111
|
+
const exceptionDate = getField(item, fields.start);
|
|
112
|
+
const currentExceptions = getField(head, fields.recurrenceExceptions) || [];
|
|
113
|
+
setField(head, fields.recurrenceExceptions, [...currentExceptions, exceptionDate]);
|
|
114
|
+
}
|
|
115
|
+
dataChanged() {
|
|
116
|
+
if (this.hasLocalData) {
|
|
117
|
+
this.localDataChangesService.changes.emit();
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|