@progress/kendo-angular-scheduler 21.4.1-develop.1 → 22.0.0-develop.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/editing/recurrence/localization/messages.d.ts +1 -1
  2. package/editing/resource-editor-base.d.ts +1 -1
  3. package/editing-directives/editing-directive-base.d.ts +1 -1
  4. package/fesm2022/progress-kendo-angular-scheduler.mjs +313 -313
  5. package/localization/messages.d.ts +1 -1
  6. package/package.json +20 -28
  7. package/schematics/ngAdd/index.js +3 -3
  8. package/views/common/base-view.d.ts +1 -1
  9. package/views/common/configuration-view-base.d.ts +1 -1
  10. package/views/day-time/day-time-view-base.d.ts +1 -1
  11. package/views/day-time/day-time-view.component.d.ts +1 -1
  12. package/views/multi-day/multi-day-view-base.d.ts +1 -1
  13. package/views/timeline/timeline-base.d.ts +1 -1
  14. package/views/view-items/base-slot.directive.d.ts +1 -1
  15. package/views/view-items/base-view-item.d.ts +1 -1
  16. package/esm2022/common/constants.mjs +0 -8
  17. package/esm2022/common/default-model-fields.mjs +0 -20
  18. package/esm2022/common/dom-queries.mjs +0 -107
  19. package/esm2022/common/modifiers.mjs +0 -31
  20. package/esm2022/common/util.mjs +0 -227
  21. package/esm2022/data-binding.directive.mjs +0 -162
  22. package/esm2022/directives.mjs +0 -136
  23. package/esm2022/editing/date-time-picker.component.mjs +0 -190
  24. package/esm2022/editing/dialogs.service.mjs +0 -96
  25. package/esm2022/editing/edit-dialog-template.directive.mjs +0 -53
  26. package/esm2022/editing/edit-dialog.component.mjs +0 -679
  27. package/esm2022/editing/edit.service.mjs +0 -107
  28. package/esm2022/editing/local-data-changes.service.mjs +0 -18
  29. package/esm2022/editing/recurrence/end-rule-radio-button.directive.mjs +0 -77
  30. package/esm2022/editing/recurrence/localization/custom-messages.component.mjs +0 -44
  31. package/esm2022/editing/recurrence/localization/localized-messages.directive.mjs +0 -39
  32. package/esm2022/editing/recurrence/localization/messages.mjs +0 -239
  33. package/esm2022/editing/recurrence/localization/recurrence-localization.service.mjs +0 -47
  34. package/esm2022/editing/recurrence/recurrence-editor.component.mjs +0 -497
  35. package/esm2022/editing/recurrence/recurrence-end-rule-editor.component.mjs +0 -334
  36. package/esm2022/editing/recurrence/recurrence-frequency-editor.component.mjs +0 -105
  37. package/esm2022/editing/recurrence/recurrence-interval-editor.component.mjs +0 -169
  38. package/esm2022/editing/recurrence/recurrence-monthly-yearly-editor.component.mjs +0 -468
  39. package/esm2022/editing/recurrence/recurrence-weekday-rule-editor.component.mjs +0 -138
  40. package/esm2022/editing/recurrence/recurrence.service.mjs +0 -254
  41. package/esm2022/editing/recurrence/repeat-on-radio-button.directive.mjs +0 -81
  42. package/esm2022/editing/resource-editor-base.mjs +0 -59
  43. package/esm2022/editing/resource-multiple-editor.component.mjs +0 -101
  44. package/esm2022/editing/resource-single-editor.component.mjs +0 -82
  45. package/esm2022/editing/timezone-editor.component.mjs +0 -193
  46. package/esm2022/editing-directives/base-edit.service.mjs +0 -320
  47. package/esm2022/editing-directives/edit-service.interface.mjs +0 -5
  48. package/esm2022/editing-directives/editing-directive-base.mjs +0 -242
  49. package/esm2022/editing-directives/local-edit.service.mjs +0 -122
  50. package/esm2022/editing-directives/reactive-editing.directive.mjs +0 -132
  51. package/esm2022/editing-directives/utils.mjs +0 -107
  52. package/esm2022/events/add-event.mjs +0 -26
  53. package/esm2022/events/cancel-event.mjs +0 -14
  54. package/esm2022/events/create-event.mjs +0 -40
  55. package/esm2022/events/date-change-event.mjs +0 -29
  56. package/esm2022/events/drag-end-event.mjs +0 -46
  57. package/esm2022/events/drag-event.mjs +0 -54
  58. package/esm2022/events/drag-start-event.mjs +0 -30
  59. package/esm2022/events/edit-event-base.mjs +0 -32
  60. package/esm2022/events/edit-event.mjs +0 -30
  61. package/esm2022/events/event-click-event.mjs +0 -32
  62. package/esm2022/events/event-keydown-event.mjs +0 -28
  63. package/esm2022/events/more-events-click.mjs +0 -24
  64. package/esm2022/events/navigate-event.mjs +0 -26
  65. package/esm2022/events/preventable-event.mjs +0 -28
  66. package/esm2022/events/remove-event.mjs +0 -30
  67. package/esm2022/events/resize-end-event.mjs +0 -38
  68. package/esm2022/events/resize-event.mjs +0 -46
  69. package/esm2022/events/resize-start-event.mjs +0 -30
  70. package/esm2022/events/save-event.mjs +0 -18
  71. package/esm2022/events/slot-click-event.mjs +0 -44
  72. package/esm2022/events/slot-drag-end-event.mjs +0 -10
  73. package/esm2022/events/slot-drag-event.mjs +0 -40
  74. package/esm2022/events/slot-drag-start-event.mjs +0 -44
  75. package/esm2022/events/view-event-map.mjs +0 -35
  76. package/esm2022/events.mjs +0 -27
  77. package/esm2022/index.mjs +0 -83
  78. package/esm2022/loading.component.mjs +0 -52
  79. package/esm2022/localization/custom-messages.component.mjs +0 -56
  80. package/esm2022/localization/localized-messages.directive.mjs +0 -39
  81. package/esm2022/localization/messages.mjs +0 -614
  82. package/esm2022/localization/scheduler-localization.service.mjs +0 -31
  83. package/esm2022/navigation/focus-position.interface.mjs +0 -5
  84. package/esm2022/navigation/focus.service.mjs +0 -202
  85. package/esm2022/navigation/focusable-element.interface.mjs +0 -5
  86. package/esm2022/navigation/focusable.directive.mjs +0 -98
  87. package/esm2022/navigation/shortcuts.directive.mjs +0 -239
  88. package/esm2022/navigation.mjs +0 -6
  89. package/esm2022/package-metadata.mjs +0 -16
  90. package/esm2022/pdf/pdf-command.directive.mjs +0 -96
  91. package/esm2022/pdf/pdf-export-event.mjs +0 -10
  92. package/esm2022/pdf/pdf.component.mjs +0 -241
  93. package/esm2022/pdf/pdf.module.mjs +0 -42
  94. package/esm2022/pdf/pdf.service.mjs +0 -36
  95. package/esm2022/progress-kendo-angular-scheduler.mjs +0 -8
  96. package/esm2022/scheduler.component.mjs +0 -1981
  97. package/esm2022/scheduler.module.mjs +0 -138
  98. package/esm2022/toolbar/navigation.component.mjs +0 -391
  99. package/esm2022/toolbar/toolbar-context.mjs +0 -5
  100. package/esm2022/toolbar/toolbar-template.directive.mjs +0 -50
  101. package/esm2022/toolbar/toolbar.component.mjs +0 -168
  102. package/esm2022/toolbar/toolbar.service.mjs +0 -46
  103. package/esm2022/toolbar/view-selector.component.mjs +0 -181
  104. package/esm2022/types/actions.mjs +0 -5
  105. package/esm2022/types/create-form-group-args.interface.mjs +0 -5
  106. package/esm2022/types/crud-operation.enum.mjs +0 -18
  107. package/esm2022/types/current-time-settings.interface.mjs +0 -5
  108. package/esm2022/types/date-range.interface.mjs +0 -5
  109. package/esm2022/types/datepicker-options.interface.mjs +0 -5
  110. package/esm2022/types/edit-event-args.interface.mjs +0 -5
  111. package/esm2022/types/edit-mode.enum.mjs +0 -23
  112. package/esm2022/types/editable-settings.interface.mjs +0 -5
  113. package/esm2022/types/event-style-args.interface.mjs +0 -5
  114. package/esm2022/types/focusable-container.mjs +0 -5
  115. package/esm2022/types/group.interface.mjs +0 -5
  116. package/esm2022/types/numeric-options.interface.mjs +0 -5
  117. package/esm2022/types/ongoing-events-settings.interface.mjs +0 -5
  118. package/esm2022/types/resource.interface.mjs +0 -5
  119. package/esm2022/types/scheduler-event.mjs +0 -5
  120. package/esm2022/types/scheduler-model-fields.interface.mjs +0 -5
  121. package/esm2022/types/scheduler-slot.interface.mjs +0 -5
  122. package/esm2022/types/scheduler-view.mjs +0 -9
  123. package/esm2022/types/slot-class-args.interface.mjs +0 -5
  124. package/esm2022/types/slot-selection.mjs +0 -35
  125. package/esm2022/types/view-item.interface.mjs +0 -5
  126. package/esm2022/types.mjs +0 -12
  127. package/esm2022/views/agenda/agenda-header-item.component.mjs +0 -85
  128. package/esm2022/views/agenda/agenda-header.component.mjs +0 -75
  129. package/esm2022/views/agenda/agenda-task-item.component.mjs +0 -137
  130. package/esm2022/views/agenda/agenda-view-internal.component.mjs +0 -424
  131. package/esm2022/views/agenda/agenda-view-list.component.mjs +0 -256
  132. package/esm2022/views/agenda/agenda-view.component.mjs +0 -130
  133. package/esm2022/views/agenda/tasks.collection.mjs +0 -96
  134. package/esm2022/views/agenda/utils.mjs +0 -176
  135. package/esm2022/views/common/base-view.mjs +0 -1099
  136. package/esm2022/views/common/configuration-view-base.mjs +0 -164
  137. package/esm2022/views/common/dom-events.service.mjs +0 -22
  138. package/esm2022/views/common/hint-container.component.mjs +0 -41
  139. package/esm2022/views/common/repeat.pipe.mjs +0 -36
  140. package/esm2022/views/common/resize-hint.component.mjs +0 -97
  141. package/esm2022/views/common/resource-iterator.pipe.mjs +0 -49
  142. package/esm2022/views/common/scheduler-task.mjs +0 -5
  143. package/esm2022/views/common/slot-selectable.directive.mjs +0 -137
  144. package/esm2022/views/common/view-footer.component.mjs +0 -103
  145. package/esm2022/views/common/work-hours-footer.directive.mjs +0 -45
  146. package/esm2022/views/constants.mjs +0 -31
  147. package/esm2022/views/day-time/day-time-slot.service.mjs +0 -633
  148. package/esm2022/views/day-time/day-time-view-base.mjs +0 -244
  149. package/esm2022/views/day-time/day-time-view-item.component.mjs +0 -216
  150. package/esm2022/views/day-time/day-time-view.component.mjs +0 -437
  151. package/esm2022/views/day-time/event-slot.directive.mjs +0 -138
  152. package/esm2022/views/day-time/utils.mjs +0 -32
  153. package/esm2022/views/month/month-slot.component.mjs +0 -166
  154. package/esm2022/views/month/month-slot.service.mjs +0 -404
  155. package/esm2022/views/month/month-view-item.component.mjs +0 -161
  156. package/esm2022/views/month/month-view-renderer.component.mjs +0 -683
  157. package/esm2022/views/month/month-view.component.mjs +0 -203
  158. package/esm2022/views/month/multi-week-view.component.mjs +0 -202
  159. package/esm2022/views/month/utils.mjs +0 -107
  160. package/esm2022/views/multi-day/day-view.component.mjs +0 -186
  161. package/esm2022/views/multi-day/multi-day-view-base.mjs +0 -55
  162. package/esm2022/views/multi-day/multi-day-view-renderer.component.mjs +0 -1002
  163. package/esm2022/views/multi-day/multi-day-view.component.mjs +0 -197
  164. package/esm2022/views/multi-day/utils.mjs +0 -63
  165. package/esm2022/views/multi-day/week-view.component.mjs +0 -189
  166. package/esm2022/views/multi-day/work-week-view.component.mjs +0 -172
  167. package/esm2022/views/scheduler-view.directive.mjs +0 -65
  168. package/esm2022/views/templates/agenda-date-template.directive.mjs +0 -41
  169. package/esm2022/views/templates/agenda-time-template.directive.mjs +0 -46
  170. package/esm2022/views/templates/all-day-event-template.directive.mjs +0 -42
  171. package/esm2022/views/templates/all-day-slot-template.directive.mjs +0 -42
  172. package/esm2022/views/templates/date-header-template.directive.mjs +0 -42
  173. package/esm2022/views/templates/event-template.directive.mjs +0 -42
  174. package/esm2022/views/templates/group-header-template.directive.mjs +0 -42
  175. package/esm2022/views/templates/major-time-header-template.directive.mjs +0 -41
  176. package/esm2022/views/templates/minor-time-header-template.directive.mjs +0 -41
  177. package/esm2022/views/templates/month-day-slot-template.directive.mjs +0 -42
  178. package/esm2022/views/templates/multi-week-day-slot-template.directive.mjs +0 -42
  179. package/esm2022/views/templates/time-slot-template.directive.mjs +0 -43
  180. package/esm2022/views/templates.mjs +0 -16
  181. package/esm2022/views/timeline/timeline-base.mjs +0 -39
  182. package/esm2022/views/timeline/timeline-month-view.component.mjs +0 -211
  183. package/esm2022/views/timeline/timeline-multi-day-view.component.mjs +0 -649
  184. package/esm2022/views/timeline/timeline-view.component.mjs +0 -189
  185. package/esm2022/views/timeline/timeline-week-view.component.mjs +0 -181
  186. package/esm2022/views/timeline/utils.mjs +0 -60
  187. package/esm2022/views/utils.mjs +0 -373
  188. package/esm2022/views/view-context.service.mjs +0 -111
  189. package/esm2022/views/view-items/base-slot.directive.mjs +0 -104
  190. package/esm2022/views/view-items/base-slot.service.mjs +0 -82
  191. package/esm2022/views/view-items/base-view-item.mjs +0 -194
  192. package/esm2022/views/view-items/item-map.mjs +0 -38
  193. package/esm2022/views/view-items/types.mjs +0 -5
  194. package/esm2022/views/view-state.service.mjs +0 -144
  195. package/esm2022/views/year/utils.mjs +0 -60
  196. package/esm2022/views/year/year-view-internal.component.mjs +0 -471
  197. package/esm2022/views/year/year-view.component.mjs +0 -136
@@ -1,164 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { TemplateRef, ViewChild, ContentChild, ChangeDetectorRef, Input, Directive } from '@angular/core';
6
- import { SchedulerView } from '../../types';
7
- import { EventTemplateDirective, GroupHeaderTemplateDirective } from '../templates';
8
- import { LocalizationService } from '@progress/kendo-angular-l10n';
9
- import { ViewContextService } from '../view-context.service';
10
- import { ViewStateService } from '../view-state.service';
11
- import { isPresent } from '../../common/util';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@progress/kendo-angular-l10n";
14
- import * as i2 from "../view-context.service";
15
- import * as i3 from "../view-state.service";
16
- const defaultSlotClass = (_args) => null;
17
- /**
18
- * @hidden
19
- */
20
- export class ConfigurationViewBase extends SchedulerView {
21
- localization;
22
- changeDetector;
23
- viewContext;
24
- viewState;
25
- /**
26
- * Specifies the days that will be hidden from the view.
27
- * Accepts an array of `Day` enum values.
28
- **/
29
- set hiddenDays(_hiddenDays) {
30
- this._hiddenDays = _hiddenDays;
31
- }
32
- get hiddenDays() {
33
- return this._hiddenDays;
34
- }
35
- /**
36
- * Defines a function that is executed for every slot in the view.
37
- * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#slot-styling).
38
- */
39
- slotClass;
40
- /**
41
- * Defines a function that is executed for every event in the view.
42
- * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']).
43
- */
44
- eventClass;
45
- /**
46
- * Defines a function that is executed for every event in the view.
47
- * The function returns a value which is supported by [`ngStyle`](link:site.data.urls.angular['ngstyleapi']).
48
- */
49
- eventStyles;
50
- /**
51
- * Specifies the settings for the ongoing events highlight of the Scheduler.
52
- */
53
- highlightOngoingEvents;
54
- /**
55
- * Specifies whether to display the toolbar of the Scheduler.
56
- */
57
- get showToolbar() {
58
- return this._showToolbar;
59
- }
60
- set showToolbar(value) {
61
- this._showToolbar = value;
62
- this.viewState.toolbarVisibilityByView.set(this, value);
63
- }
64
- /**
65
- * @hidden
66
- */
67
- template;
68
- /**
69
- * @hidden
70
- */
71
- eventTemplate;
72
- /**
73
- * @hidden
74
- */
75
- groupHeaderTemplate;
76
- /**
77
- * @hidden
78
- */
79
- get viewSlotClass() {
80
- return isPresent(this.slotClass) ? this.slotClass : (this.schedulerOptions.slotClass || defaultSlotClass);
81
- }
82
- /**
83
- * @hidden
84
- */
85
- get viewEventClass() {
86
- return isPresent(this.eventClass) ? this.eventClass : this.schedulerOptions.eventClass;
87
- }
88
- /**
89
- * @hidden
90
- */
91
- get viewEventStyles() {
92
- return isPresent(this.eventStyles) ? this.eventStyles : this.schedulerOptions.eventStyles;
93
- }
94
- /**
95
- * @hidden
96
- */
97
- get viewHighlightOngoingEvents() {
98
- return isPresent(this.highlightOngoingEvents) ? this.highlightOngoingEvents : this.schedulerOptions.highlightOngoingEvents;
99
- }
100
- /**
101
- * @hidden
102
- */
103
- get viewWeekStart() {
104
- return this.schedulerOptions.weekStart;
105
- }
106
- /**
107
- * @hidden
108
- */
109
- get viewHiddenDays() {
110
- const result = isPresent(this.hiddenDays) ? this.hiddenDays : (this.schedulerOptions.hiddenDays);
111
- return result;
112
- }
113
- subs;
114
- schedulerOptions = {};
115
- _hiddenDays;
116
- constructor(localization, changeDetector, viewContext, viewState) {
117
- super();
118
- this.localization = localization;
119
- this.changeDetector = changeDetector;
120
- this.viewContext = viewContext;
121
- this.viewState = viewState;
122
- this.subs = this.localization.changes.subscribe(() => {
123
- changeDetector.markForCheck();
124
- });
125
- this.subs.add(this.viewContext.optionsChange.subscribe(this.optionsChange.bind(this)));
126
- }
127
- ngOnChanges(changes) {
128
- this.viewState.notifyOptionsChange(changes);
129
- }
130
- ngOnDestroy() {
131
- this.subs.unsubscribe();
132
- this.viewState.toolbarVisibilityByView.delete(this);
133
- }
134
- optionsChange(options) {
135
- this.schedulerOptions = options;
136
- }
137
- _showToolbar;
138
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationViewBase, deps: [{ token: i1.LocalizationService }, { token: i0.ChangeDetectorRef }, { token: i2.ViewContextService }, { token: i3.ViewStateService }], target: i0.ɵɵFactoryTarget.Directive });
139
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ConfigurationViewBase, inputs: { hiddenDays: "hiddenDays", slotClass: "slotClass", eventClass: "eventClass", eventStyles: "eventStyles", highlightOngoingEvents: "highlightOngoingEvents", showToolbar: "showToolbar" }, queries: [{ propertyName: "eventTemplate", first: true, predicate: EventTemplateDirective, descendants: true }, { propertyName: "groupHeaderTemplate", first: true, predicate: GroupHeaderTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "template", first: true, predicate: ["content"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
140
- }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ConfigurationViewBase, decorators: [{
142
- type: Directive
143
- }], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i0.ChangeDetectorRef }, { type: i2.ViewContextService }, { type: i3.ViewStateService }], propDecorators: { hiddenDays: [{
144
- type: Input
145
- }], slotClass: [{
146
- type: Input
147
- }], eventClass: [{
148
- type: Input
149
- }], eventStyles: [{
150
- type: Input
151
- }], highlightOngoingEvents: [{
152
- type: Input
153
- }], showToolbar: [{
154
- type: Input
155
- }], template: [{
156
- type: ViewChild,
157
- args: ['content', { static: true }]
158
- }], eventTemplate: [{
159
- type: ContentChild,
160
- args: [EventTemplateDirective, { static: false }]
161
- }], groupHeaderTemplate: [{
162
- type: ContentChild,
163
- args: [GroupHeaderTemplateDirective, { static: false }]
164
- }] } });
@@ -1,22 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Injectable, EventEmitter } from '@angular/core';
6
- import * as i0 from "@angular/core";
7
- /**
8
- * @hidden
9
- */
10
- export class DomEventsService {
11
- focus = new EventEmitter();
12
- focusIn = new EventEmitter();
13
- focusOut = new EventEmitter();
14
- click = new EventEmitter();
15
- keydown = new EventEmitter();
16
- windowBlur = new EventEmitter();
17
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DomEventsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
18
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DomEventsService });
19
- }
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DomEventsService, decorators: [{
21
- type: Injectable
22
- }] });
@@ -1,41 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, ChangeDetectorRef, ContentChild, TemplateRef } from '@angular/core';
6
- import { NgTemplateOutlet } from '@angular/common';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * @hidden
10
- */
11
- export class HintContainerComponent {
12
- changeDetector;
13
- hintTemplate;
14
- constructor(changeDetector) {
15
- this.changeDetector = changeDetector;
16
- this.changeDetector.detach();
17
- }
18
- detectChanges() {
19
- this.changeDetector.detectChanges();
20
- }
21
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintContainerComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
22
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: HintContainerComponent, isStandalone: true, selector: "kendo-hint-container", queries: [{ propertyName: "hintTemplate", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: `
23
- <ng-container [ngTemplateOutlet]="hintTemplate">
24
- </ng-container>
25
- `, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] });
26
- }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: HintContainerComponent, decorators: [{
28
- type: Component,
29
- args: [{
30
- selector: 'kendo-hint-container',
31
- template: `
32
- <ng-container [ngTemplateOutlet]="hintTemplate">
33
- </ng-container>
34
- `,
35
- standalone: true,
36
- imports: [NgTemplateOutlet]
37
- }]
38
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { hintTemplate: [{
39
- type: ContentChild,
40
- args: [TemplateRef, { static: false }]
41
- }] } });
@@ -1,36 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Pipe } from '@angular/core';
6
- import { iterator } from '../../common/util';
7
- import * as i0 from "@angular/core";
8
- class NumberIterator {
9
- count;
10
- *[iterator]() {
11
- for (let i = 0; i < this.count; i++) {
12
- yield i;
13
- }
14
- }
15
- constructor(count) {
16
- this.count = count;
17
- }
18
- }
19
- /**
20
- * @hidden
21
- */
22
- export class RepeatPipe {
23
- transform(value) {
24
- return new NumberIterator(value);
25
- }
26
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RepeatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
27
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: RepeatPipe, isStandalone: true, name: "repeat" });
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RepeatPipe, decorators: [{
30
- type: Pipe,
31
- args: [{
32
- // eslint-disable-next-line @angular-eslint/pipe-prefix
33
- name: 'repeat',
34
- standalone: true
35
- }]
36
- }] });
@@ -1,97 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, HostBinding, Input } from '@angular/core';
6
- import { toLocalDate } from '@progress/kendo-date-math';
7
- import { DatePipe } from '@progress/kendo-angular-intl';
8
- import * as i0 from "@angular/core";
9
- /**
10
- * @hidden
11
- */
12
- export class ResizeHintComponent {
13
- hint;
14
- format;
15
- marqueeClasses = true;
16
- get left() {
17
- return this.hint.rect.left;
18
- }
19
- get top() {
20
- return this.hint.rect.top;
21
- }
22
- get width() {
23
- return this.hint.rect.width;
24
- }
25
- get height() {
26
- return this.hint.rect.height;
27
- }
28
- get start() {
29
- return toLocalDate(this.hint.start);
30
- }
31
- get end() {
32
- return toLocalDate(this.hint.end);
33
- }
34
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ResizeHintComponent, isStandalone: true, selector: "[kendoResizeHint]", inputs: { hint: "hint", format: "format" }, host: { properties: { "class.k-marquee": "this.marqueeClasses", "class.k-scheduler-marquee": "this.marqueeClasses", "class.k-first": "this.marqueeClasses", "class.k-last": "this.marqueeClasses", "style.left.px": "this.left", "style.right.px": "this.left", "style.top.px": "this.top", "style.width.px": "this.width", "style.height.px": "this.height" } }, ngImport: i0, template: `
36
- <div class="k-marquee-color"></div>
37
- <div class="k-marquee-text">
38
- @if (hint.first) {
39
- <div class="k-label-top">{{ start | kendoDate : format }}</div>
40
- }
41
- @if (hint.last) {
42
- <div class="k-label-bottom">{{ end | kendoDate : format }}</div>
43
- }
44
- </div>
45
- `, isInline: true, dependencies: [{ kind: "pipe", type: DatePipe, name: "kendoDate" }] });
46
- }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResizeHintComponent, decorators: [{
48
- type: Component,
49
- args: [{
50
- // eslint-disable-next-line @angular-eslint/component-selector
51
- selector: '[kendoResizeHint]',
52
- template: `
53
- <div class="k-marquee-color"></div>
54
- <div class="k-marquee-text">
55
- @if (hint.first) {
56
- <div class="k-label-top">{{ start | kendoDate : format }}</div>
57
- }
58
- @if (hint.last) {
59
- <div class="k-label-bottom">{{ end | kendoDate : format }}</div>
60
- }
61
- </div>
62
- `,
63
- standalone: true,
64
- imports: [DatePipe]
65
- }]
66
- }], propDecorators: { hint: [{
67
- type: Input
68
- }], format: [{
69
- type: Input
70
- }], marqueeClasses: [{
71
- type: HostBinding,
72
- args: ['class.k-marquee']
73
- }, {
74
- type: HostBinding,
75
- args: ['class.k-scheduler-marquee']
76
- }, {
77
- type: HostBinding,
78
- args: ['class.k-first']
79
- }, {
80
- type: HostBinding,
81
- args: ['class.k-last']
82
- }], left: [{
83
- type: HostBinding,
84
- args: ['style.left.px']
85
- }, {
86
- type: HostBinding,
87
- args: ['style.right.px']
88
- }], top: [{
89
- type: HostBinding,
90
- args: ['style.top.px']
91
- }], width: [{
92
- type: HostBinding,
93
- args: ['style.width.px']
94
- }], height: [{
95
- type: HostBinding,
96
- args: ['style.height.px']
97
- }] } });
@@ -1,49 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Pipe } from '@angular/core';
6
- import { iterator } from '../../common/util';
7
- import * as i0 from "@angular/core";
8
- class ResourceIterator {
9
- resources;
10
- lastIndex;
11
- *[iterator]() {
12
- let resources = this.resources;
13
- const lastIndex = Math.max(0, this.lastIndex);
14
- if (!(resources && resources.length)) {
15
- resources = [{}];
16
- }
17
- const lastData = resources[lastIndex].data || [];
18
- const length = lastData.length;
19
- let count = 1;
20
- for (let idx = 0; idx <= lastIndex; idx++) {
21
- count *= (resources[idx].data || []).length || 1;
22
- }
23
- for (let idx = 0; idx < count; idx++) {
24
- yield lastData[idx % length];
25
- }
26
- }
27
- constructor(resources, lastIndex = resources.length - 1) {
28
- this.resources = resources;
29
- this.lastIndex = lastIndex;
30
- }
31
- }
32
- /**
33
- * @hidden
34
- */
35
- export class ResourceIteratorPipe {
36
- transform(resources = [], lastIndex) {
37
- return new ResourceIterator(resources, lastIndex);
38
- }
39
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceIteratorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
40
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ResourceIteratorPipe, isStandalone: true, name: "resourceIterator" });
41
- }
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceIteratorPipe, decorators: [{
43
- type: Pipe,
44
- args: [{
45
- // eslint-disable-next-line @angular-eslint/pipe-prefix
46
- name: 'resourceIterator',
47
- standalone: true
48
- }]
49
- }] });
@@ -1,5 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- export {};
@@ -1,137 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Directive, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';
6
- import { Subscription } from 'rxjs';
7
- import { intersects, isSameRange, resourcesMatch } from '../utils';
8
- import { SchedulerComponent } from '../../scheduler.component';
9
- import { distinctUntilChanged, filter } from 'rxjs/operators';
10
- import { isChanged } from '@progress/kendo-angular-common';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "../../scheduler.component";
13
- /**
14
- * Represents a directive that manages the built-in slot selection in the Scheduler.
15
- *
16
- * Add the `kendoSchedulerSlotSelectable` directive to a `<kendo-scheduler>` instance to allow users to select time slots by clicking or dragging.
17
- *
18
- * The directive keeps track of the selected slot range and emits changes when the selection is updated by user interaction.
19
- *
20
- * @example
21
- * ```html
22
- * <kendo-scheduler kendoSchedulerSlotSelectable [(slotSelection)]="selectedSlot">
23
- * </kendo-scheduler>
24
- * ```
25
- *
26
- * @remarks
27
- * Applied to: {@link SchedulerComponent}
28
- */
29
- export class SlotSelectableDirective {
30
- scheduler;
31
- cdr;
32
- /**
33
- * Represents the currently selected slot range.
34
- */
35
- slotSelection;
36
- /**
37
- * Fires when the user changes the currently selected slot range.
38
- */
39
- slotSelectionChange = new EventEmitter();
40
- /**
41
- * @hidden
42
- * The resources of the cell where the selection started.
43
- * When dragging over the slots of a different resource in grouped mode, the ongoing selection will not be affected.
44
- */
45
- selectionOriginResources;
46
- selectedRange = null;
47
- slotSelectionChangeSource = new EventEmitter();
48
- subscriptions = new Subscription();
49
- constructor(scheduler, cdr) {
50
- this.scheduler = scheduler;
51
- this.cdr = cdr;
52
- this.scheduler.selectable = true;
53
- this.subscriptions.add(this.slotSelectionChangeSource
54
- .pipe(distinctUntilChanged((range1, range2) => isSameRange(range1, range2, this.scheduler.resources))).subscribe((v) => {
55
- this.slotSelectionChange.emit(v);
56
- }));
57
- const start$ = this.scheduler.slotDragStart;
58
- const drag$ = this.scheduler.slotDrag;
59
- const end$ = this.scheduler.slotDragEnd;
60
- const startSource = start$.pipe(filter(e => !e.isDefaultPrevented()));
61
- this.subscriptions.add(startSource.subscribe(e => this.initDragSelect(e)));
62
- this.subscriptions.add(drag$.subscribe(e => this.onDrag(e)));
63
- this.subscriptions.add(end$.subscribe(() => this.onRelease()));
64
- }
65
- ngOnInit() {
66
- this.scheduler.isSlotSelected = this.isSlotSelected.bind(this);
67
- }
68
- ngOnChanges(changes) {
69
- if (isChanged("slotSelection", changes, false)) {
70
- const defaults = {
71
- isAllDay: false,
72
- resources: this.scheduler?.resources ? this.scheduler.resources.reduce((result, resource) => {
73
- result.push(...resource.data);
74
- return result;
75
- }, []) : []
76
- };
77
- this.selectedRange = Object.assign(defaults, changes['slotSelection'].currentValue);
78
- this.cdr.markForCheck();
79
- }
80
- }
81
- ngOnDestroy() {
82
- this.subscriptions.unsubscribe();
83
- }
84
- isSlotSelected({ start, end, isAllDay, resources }) {
85
- if (!start || !end || !this.selectedRange) {
86
- return false;
87
- }
88
- const match = resourcesMatch(this.selectedRange.resources, resources, this.scheduler.resources);
89
- if (!match) {
90
- return false; // Limit selection to the grouped resource where the drag started.
91
- }
92
- return this.selectedRange && isAllDay === this.selectedRange.isAllDay && this.isInRange(start, end);
93
- }
94
- initDragSelect({ start, end, isAllDay, resources }) {
95
- this.selectionOriginResources = resources.slice();
96
- this.selectedRange = { start, end, isAllDay, resources: resources.slice() };
97
- this.cdr.markForCheck();
98
- }
99
- onDrag({ start, end, resources }) {
100
- const match = resourcesMatch(this.selectionOriginResources, resources, this.scheduler.resources);
101
- if (!match) {
102
- return; // Don't change selection when dragging over a different grouped resource's cells.
103
- }
104
- this.selectedRange.start = start;
105
- this.selectedRange.end = end;
106
- this.cdr.markForCheck();
107
- }
108
- onRelease() {
109
- this.selectionOriginResources = null;
110
- if (this.selectedRange) {
111
- this.slotSelectionChangeSource.emit(this.selectedRange);
112
- }
113
- }
114
- /**
115
- * @hidden
116
- * Checks if the selected range contains a local date range.
117
- */
118
- isInRange(start, end) {
119
- if (!this.selectedRange) {
120
- return;
121
- }
122
- return intersects(start, end, this.selectedRange.start, this.selectedRange.end);
123
- }
124
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlotSelectableDirective, deps: [{ token: i1.SchedulerComponent }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
125
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: SlotSelectableDirective, isStandalone: true, selector: "[kendoSchedulerSlotSelectable]", inputs: { slotSelection: "slotSelection" }, outputs: { slotSelectionChange: "slotSelectionChange" }, usesOnChanges: true, ngImport: i0 });
126
- }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SlotSelectableDirective, decorators: [{
128
- type: Directive,
129
- args: [{
130
- selector: '[kendoSchedulerSlotSelectable]',
131
- standalone: true
132
- }]
133
- }], ctorParameters: () => [{ type: i1.SchedulerComponent }, { type: i0.ChangeDetectorRef }], propDecorators: { slotSelection: [{
134
- type: Input
135
- }], slotSelectionChange: [{
136
- type: Output
137
- }] } });
@@ -1,103 +0,0 @@
1
- /**-----------------------------------------------------------------------------------------
2
- * Copyright © 2026 Progress Software Corporation. All rights reserved.
3
- * Licensed under commercial license. See LICENSE.md in the project root for more information
4
- *-------------------------------------------------------------------------------------------*/
5
- import { Component, Input, HostBinding, Output, EventEmitter } from '@angular/core';
6
- import { ViewStateService } from '../view-state.service';
7
- import { FocusableDirective } from '../../navigation/focusable.directive';
8
- import { ButtonComponent } from '@progress/kendo-angular-buttons';
9
- import { NgClass } from '@angular/common';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "../view-state.service";
12
- /**
13
- * @hidden
14
- */
15
- export class ViewFooterComponent {
16
- hostClasses = true;
17
- toolbarRole = 'toolbar';
18
- sub;
19
- /**
20
- * @hidden
21
- * TODO: Drop in next MAJOR version
22
- */
23
- inlineJustifyContentStyle = 'start';
24
- itemClick = new EventEmitter();
25
- items;
26
- constructor(viewState) {
27
- this.sub = viewState.toggleWorkHours.subscribe(() => this.itemClick.emit());
28
- }
29
- ngOnDestroy() {
30
- // eslint-disable-next-line no-unused-expressions
31
- this.sub && this.sub.unsubscribe();
32
- }
33
- onItemClick(e, item) {
34
- e.preventDefault();
35
- this.itemClick.emit(item);
36
- }
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewFooterComponent, deps: [{ token: i1.ViewStateService }], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ViewFooterComponent, isStandalone: true, selector: "[viewFooter]", inputs: { items: "items" }, outputs: { itemClick: "itemClick" }, host: { properties: { "class.k-scheduler-footer": "this.hostClasses", "class.k-toolbar": "this.hostClasses", "class.k-toolbar-solid": "this.hostClasses", "class.k-toolbar-md": "this.hostClasses", "attr.role": "this.toolbarRole", "style.justify-content": "this.inlineJustifyContentStyle" } }, ngImport: i0, template: `
39
- <span class="k-scheduler-navigation">
40
- @for (item of items; track item) {
41
- <button
42
- type="button"
43
- kendoButton
44
- [icon]="item.fontIcon"
45
- [svgIcon]="item.svgIcon"
46
- [ngClass]="item.cssClass"
47
- (click)="onItemClick($event, item)"
48
- [kendoSchedulerFocusIndex]="0"
49
- containerType='footer'>
50
- <span class="k-button-text">{{ item.text }}</span>
51
- </button>
52
- }
53
- </span>
54
- `, isInline: true, dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon", "primary", "look"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: FocusableDirective, selector: "[kendoSchedulerFocusIndex]", inputs: ["kendoSchedulerFocusIndex", "containerType"] }] });
55
- }
56
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ViewFooterComponent, decorators: [{
57
- type: Component,
58
- args: [{
59
- // eslint-disable-next-line @angular-eslint/component-selector
60
- selector: '[viewFooter]',
61
- template: `
62
- <span class="k-scheduler-navigation">
63
- @for (item of items; track item) {
64
- <button
65
- type="button"
66
- kendoButton
67
- [icon]="item.fontIcon"
68
- [svgIcon]="item.svgIcon"
69
- [ngClass]="item.cssClass"
70
- (click)="onItemClick($event, item)"
71
- [kendoSchedulerFocusIndex]="0"
72
- containerType='footer'>
73
- <span class="k-button-text">{{ item.text }}</span>
74
- </button>
75
- }
76
- </span>
77
- `,
78
- standalone: true,
79
- imports: [ButtonComponent, NgClass, FocusableDirective]
80
- }]
81
- }], ctorParameters: () => [{ type: i1.ViewStateService }], propDecorators: { hostClasses: [{
82
- type: HostBinding,
83
- args: ['class.k-scheduler-footer']
84
- }, {
85
- type: HostBinding,
86
- args: ['class.k-toolbar']
87
- }, {
88
- type: HostBinding,
89
- args: ['class.k-toolbar-solid']
90
- }, {
91
- type: HostBinding,
92
- args: ['class.k-toolbar-md']
93
- }], toolbarRole: [{
94
- type: HostBinding,
95
- args: ['attr.role']
96
- }], inlineJustifyContentStyle: [{
97
- type: HostBinding,
98
- args: ['style.justify-content']
99
- }], itemClick: [{
100
- type: Output
101
- }], items: [{
102
- type: Input
103
- }] } });