@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,254 +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 { EventEmitter, Injectable } from "@angular/core";
6
- import { parseRule, serializeRule } from '@progress/kendo-recurrence';
7
- import { LocalizationService } from '@progress/kendo-angular-l10n';
8
- import { IntlService } from '@progress/kendo-angular-intl';
9
- import { capitalize, isNullOrEmptyString } from '../../common/util';
10
- import { isPresent } from '../../common/util';
11
- import { toLocalDate, ZonedDate } from '@progress/kendo-date-math';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "@progress/kendo-angular-intl";
14
- import * as i2 from "@progress/kendo-angular-l10n";
15
- let uniqueIdCounter = 0;
16
- const offsetPositions = ['first', 'second', 'third', 'fourth', 'last'];
17
- const frequencies = ['never', 'daily', 'weekly', 'monthly', 'yearly'];
18
- /**
19
- * @hidden
20
- */
21
- export const dayRule = [
22
- { day: 0, offset: 0 },
23
- { day: 1, offset: 0 },
24
- { day: 2, offset: 0 },
25
- { day: 3, offset: 0 },
26
- { day: 4, offset: 0 },
27
- { day: 5, offset: 0 },
28
- { day: 6, offset: 0 }
29
- ];
30
- /**
31
- * @hidden
32
- */
33
- export const weekdayRule = [
34
- { day: 1, offset: 0 },
35
- { day: 2, offset: 0 },
36
- { day: 3, offset: 0 },
37
- { day: 4, offset: 0 },
38
- { day: 5, offset: 0 }
39
- ];
40
- /**
41
- * @hidden
42
- */
43
- export const weekendRule = [
44
- { day: 0, offset: 0 },
45
- { day: 6, offset: 0 }
46
- ];
47
- /**
48
- * @hidden
49
- *
50
- * The internal service for handling changes in the RecurrenceEditor component.
51
- */
52
- export class RecurrenceService {
53
- intl;
54
- localization;
55
- rrule;
56
- timezone;
57
- weekStart;
58
- start;
59
- change = new EventEmitter();
60
- endRuleChange = new EventEmitter();
61
- frequencyChange = new EventEmitter();
62
- repeatOnRuleChange = new EventEmitter();
63
- constructor(intl, localization) {
64
- this.intl = intl;
65
- this.localization = localization;
66
- }
67
- init(rrule = "", start, timezone, weekStart) {
68
- this.start = start;
69
- this.timezone = timezone;
70
- this.weekStart = weekStart;
71
- this.rrule = parseRule({
72
- recurrenceRule: rrule,
73
- weekStart: weekStart
74
- });
75
- }
76
- /**
77
- * @hidden
78
- */
79
- getUniqueId() {
80
- return uniqueIdCounter++;
81
- }
82
- get frequencies() {
83
- return frequencies.map((freq) => ({
84
- value: freq,
85
- text: this.localization.get('frequencies' + capitalize(freq))
86
- }));
87
- }
88
- get frequency() {
89
- if (isPresent(this.rrule) && !isNullOrEmptyString(this.rrule.freq)) {
90
- return this.rrule.freq;
91
- }
92
- return 'never';
93
- }
94
- setFrequency(freq) {
95
- this.rrule = {};
96
- this.rrule.freq = freq;
97
- this.rrule.interval = 1;
98
- if (freq === 'weekly') {
99
- this.rrule.byWeekDay = [{
100
- day: this.start.getDay(),
101
- offset: 0
102
- }];
103
- }
104
- if (freq === 'monthly' || freq === 'yearly') {
105
- this.rrule.byMonthDay = [this.start.getDate()];
106
- }
107
- if (freq === 'yearly') {
108
- this.rrule.byMonth = [this.start.getMonth() + 1];
109
- }
110
- this.frequencyChange.emit();
111
- this.onChange();
112
- }
113
- set interval(newInterval) {
114
- this.rrule.interval = newInterval;
115
- this.onChange();
116
- }
117
- set count(newCount) {
118
- this.rrule.count = newCount;
119
- this.onChange();
120
- }
121
- set until(newUntil) {
122
- this.rrule.until = ZonedDate.fromLocalDate(newUntil, this.timezone);
123
- this.onChange();
124
- }
125
- get until() {
126
- if (isPresent(this.rrule.until)) {
127
- return toLocalDate(this.rrule.until);
128
- }
129
- }
130
- setWeekDays(newWeekDays) {
131
- this.rrule.byWeekDay = newWeekDays;
132
- this.onChange();
133
- }
134
- set monthDays(newMonthDays) {
135
- this.rrule.byMonthDay = newMonthDays;
136
- this.onChange();
137
- }
138
- set positions(newPositions) {
139
- this.rrule.bySetPosition = newPositions;
140
- this.onChange();
141
- }
142
- setMonths(newMonths) {
143
- this.rrule.byMonth = newMonths;
144
- this.onChange();
145
- }
146
- get months() {
147
- return this.intl.dateFormatNames({
148
- type: 'months',
149
- nameType: 'wide'
150
- }).map((month, idx) => ({
151
- text: month,
152
- value: idx + 1
153
- }));
154
- }
155
- /*
156
- ToDo Refactor weekDays and extendedWeekDays getters into a single method
157
- */
158
- get weekDays() {
159
- const firstDay = this.weekStart;
160
- const abbrNames = this.intl.dateFormatNames({
161
- type: 'days',
162
- nameType: 'abbreviated'
163
- }).map((day, idx) => ({
164
- text: day,
165
- value: idx
166
- }));
167
- /* Sorting according to first week day */
168
- return (abbrNames.slice(firstDay)).concat(abbrNames.slice(0, firstDay));
169
- }
170
- get extendedWeekDays() {
171
- const firstDay = this.weekStart;
172
- const wideNames = this.intl.dateFormatNames({
173
- type: 'days',
174
- nameType: 'wide'
175
- }).map((day, idx) => ({
176
- text: day,
177
- value: idx
178
- }));
179
- const sortedWideNames = (wideNames.slice(firstDay)).concat(wideNames.slice(0, firstDay));
180
- const specialRules = [
181
- { text: this.localization.get('weekdaysDay'), value: 'day' },
182
- { text: this.localization.get('weekdaysWeekday'), value: 'weekday' },
183
- { text: this.localization.get('weekdaysWeekendday'), value: 'weekend' }
184
- ];
185
- return specialRules.concat(sortedWideNames);
186
- }
187
- get offsetPositions() {
188
- const values = [1, 2, 3, 4, -1];
189
- return offsetPositions.map((offset, idx) => ({
190
- text: this.localization.get('offsetPositions' + capitalize(offset)),
191
- value: values[idx]
192
- }));
193
- }
194
- get endRule() {
195
- if (isPresent(this.rrule.count)) {
196
- return 'count';
197
- }
198
- else if (isPresent(this.rrule.until)) {
199
- return 'until';
200
- }
201
- else {
202
- return 'never';
203
- }
204
- }
205
- set endRule(endRule) {
206
- if (endRule === 'count') {
207
- this.rrule.until = null;
208
- }
209
- else if (endRule === 'until') {
210
- this.rrule.count = null;
211
- }
212
- else {
213
- /* never */
214
- this.rrule.count = null;
215
- this.rrule.until = null;
216
- }
217
- this.endRuleChange.emit(endRule);
218
- this.onChange();
219
- }
220
- get repeatOnRule() {
221
- if (isPresent(this.rrule.byWeekDay)) {
222
- return 'weekday';
223
- }
224
- else if (isPresent(this.rrule.byMonthDay)) {
225
- return 'monthday';
226
- }
227
- return null;
228
- }
229
- set repeatOnRule(repeatOnRule) {
230
- if (repeatOnRule === 'monthday') {
231
- this.rrule.byWeekDay = null;
232
- this.rrule.bySetPosition = null;
233
- }
234
- else {
235
- /* weekDays */
236
- this.rrule.byMonthDay = null;
237
- }
238
- this.repeatOnRuleChange.emit(repeatOnRule);
239
- this.onChange();
240
- }
241
- onChange() {
242
- if (this.frequency === 'never') {
243
- this.change.emit(null);
244
- }
245
- else {
246
- this.change.emit(serializeRule(this.rrule, this.timezone));
247
- }
248
- }
249
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecurrenceService, deps: [{ token: i1.IntlService }, { token: i2.LocalizationService }], target: i0.ɵɵFactoryTarget.Injectable });
250
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecurrenceService });
251
- }
252
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RecurrenceService, decorators: [{
253
- type: Injectable
254
- }], ctorParameters: () => [{ type: i1.IntlService }, { type: i2.LocalizationService }] });
@@ -1,81 +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, HostBinding, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core';
6
- import { RecurrenceService } from './recurrence.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./recurrence.service";
9
- /**
10
- * @hidden
11
- */
12
- export class RepeatOnRadioButtonDirective {
13
- el;
14
- renderer;
15
- recurrence;
16
- changeDetector;
17
- type = 'radio';
18
- radioClass = true;
19
- radioSizeClass = true;
20
- set repeatOnRule(value) {
21
- const parts = value.split('-');
22
- this._repeatOnRule = parts[0];
23
- this._uniqueId = parts[1];
24
- }
25
- destroyClick;
26
- _repeatOnRule;
27
- _uniqueId;
28
- constructor(el, renderer, recurrence, changeDetector) {
29
- this.el = el;
30
- this.renderer = renderer;
31
- this.recurrence = recurrence;
32
- this.changeDetector = changeDetector;
33
- this.destroyClick = this.renderer.listen(this.elem, 'click', this.onClick.bind(this));
34
- }
35
- ngOnInit() {
36
- this.renderer.setAttribute(this.elem, 'id', `k-repeaton-${this._repeatOnRule}-${this._uniqueId}`);
37
- this.renderer.setAttribute(this.elem, 'name', `day-${this._uniqueId}`);
38
- }
39
- ngAfterContentChecked() {
40
- this.setCheckedState();
41
- }
42
- ngOnDestroy() {
43
- if (this.destroyClick) {
44
- this.destroyClick();
45
- }
46
- }
47
- onClick() {
48
- if (this.elem.checked) {
49
- this.recurrence.repeatOnRule = this._repeatOnRule;
50
- this.changeDetector.markForCheck();
51
- }
52
- }
53
- setCheckedState() {
54
- const isChecked = this._repeatOnRule === this.recurrence.repeatOnRule;
55
- this.renderer.setProperty(this.elem, 'checked', isChecked);
56
- }
57
- get elem() {
58
- return this.el.nativeElement;
59
- }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RepeatOnRadioButtonDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.RecurrenceService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
61
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: RepeatOnRadioButtonDirective, isStandalone: true, selector: "[kendoRecurrenceRepeatOnRadioButton]", inputs: { repeatOnRule: ["kendoRecurrenceRepeatOnRadioButton", "repeatOnRule"] }, host: { properties: { "attr.type": "this.type", "class.k-radio": "this.radioClass", "class.k-radio-md": "this.radioSizeClass" } }, ngImport: i0 });
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: RepeatOnRadioButtonDirective, decorators: [{
64
- type: Directive,
65
- args: [{
66
- selector: '[kendoRecurrenceRepeatOnRadioButton]',
67
- standalone: true
68
- }]
69
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.RecurrenceService }, { type: i0.ChangeDetectorRef }], propDecorators: { type: [{
70
- type: HostBinding,
71
- args: ['attr.type']
72
- }], radioClass: [{
73
- type: HostBinding,
74
- args: ['class.k-radio']
75
- }], radioSizeClass: [{
76
- type: HostBinding,
77
- args: ['class.k-radio-md']
78
- }], repeatOnRule: [{
79
- type: Input,
80
- args: ["kendoRecurrenceRepeatOnRadioButton"]
81
- }] } });
@@ -1,59 +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 { Input, EventEmitter, Output, Directive } from '@angular/core';
6
- import { isPresent, getField } from '../common/util';
7
- import * as i0 from "@angular/core";
8
- /**
9
- * @hidden
10
- */
11
- export class ResourceEditorBase {
12
- resource;
13
- valueChange = new EventEmitter();
14
- resourceValue;
15
- getField = getField;
16
- /**
17
- * @hidden
18
- */
19
- writeValue(newValue) {
20
- this.resourceValue = newValue;
21
- }
22
- getResourceStyle(dataItem) {
23
- return {
24
- 'background-color': getField(dataItem, this.resource.colorField),
25
- 'margin-right': isPresent(getField(dataItem, this.resource.valueField)) ? '8px' : '4px'
26
- };
27
- }
28
- onResourceValueChange(newValue) {
29
- this.resourceValue = newValue;
30
- this.emitChange(this.resourceValue);
31
- }
32
- onTouchedCallback = (_) => { };
33
- onChangeCallback = (_) => { };
34
- /**
35
- * @hidden
36
- */
37
- registerOnChange(fn) {
38
- this.onChangeCallback = fn;
39
- }
40
- /**
41
- * @hidden
42
- */
43
- registerOnTouched(fn) {
44
- this.onTouchedCallback = fn;
45
- }
46
- emitChange(value) {
47
- this.onChangeCallback(value);
48
- this.valueChange.emit(value);
49
- }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceEditorBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
51
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.14", type: ResourceEditorBase, inputs: { resource: "resource" }, outputs: { valueChange: "valueChange" }, ngImport: i0 });
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ResourceEditorBase, decorators: [{
54
- type: Directive
55
- }], propDecorators: { resource: [{
56
- type: Input
57
- }], valueChange: [{
58
- type: Output
59
- }] } });
@@ -1,101 +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, forwardRef, ViewChild } from '@angular/core';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { ResourceEditorBase } from './resource-editor-base';
8
- import { MultiSelectComponent, TagTemplateDirective, ItemTemplateDirective } from '@progress/kendo-angular-dropdowns';
9
- import { NgStyle } from '@angular/common';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * @hidden
13
- */
14
- export const MULTIPLE_RESOURCE_VALUE_ACCESSOR = {
15
- multi: true,
16
- provide: NG_VALUE_ACCESSOR,
17
- useExisting: forwardRef(() => MultipleResourceEditorComponent)
18
- };
19
- /**
20
- * @hidden
21
- */
22
- export class MultipleResourceEditorComponent extends ResourceEditorBase {
23
- resourceMultiSelect;
24
- getTagStyle(dataItem) {
25
- return {
26
- 'background-color': dataItem[this.resource.colorField]
27
- };
28
- }
29
- focus() {
30
- this.resourceMultiSelect.focus();
31
- }
32
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultipleResourceEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
33
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: MultipleResourceEditorComponent, isStandalone: true, selector: "kendo-multiple-resource-editor", providers: [
34
- MULTIPLE_RESOURCE_VALUE_ACCESSOR
35
- ], viewQueries: [{ propertyName: "resourceMultiSelect", first: true, predicate: ["resourceMultiSelect"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
36
- <kendo-multiselect
37
- #resourceMultiSelect
38
- [data]='resource.data'
39
- [textField]='resource.textField'
40
- [valueField]='resource.valueField'
41
- [valuePrimitive]='true'
42
- [value]='resourceValue'
43
- (valueChange)='onResourceValueChange($event)'
44
- >
45
- <ng-template kendoDropDownListItemTemplate let-dataItem>
46
- @if (resource.colorField) {
47
- <span class="k-scheduler-mark"
48
- [ngStyle]="getResourceStyle(dataItem)"></span>
49
- }
50
- {{ getField(dataItem, resource.textField) }}
51
- </ng-template>
52
- <ng-template kendoMultiSelectTagTemplate let-dataItem>
53
- @if (resource.colorField) {
54
- <span class="k-scheduler-mark"
55
- [ngStyle]="getTagStyle(dataItem)"></span>
56
- }
57
- {{ getField(dataItem, resource.textField) }}
58
- </ng-template>
59
- </kendo-multiselect>
60
- `, isInline: true, dependencies: [{ kind: "component", type: MultiSelectComponent, selector: "kendo-multiselect", inputs: ["showStickyHeader", "focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer", "inputAttributes"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "inputFocus", "inputBlur", "removeTag"], exportAs: ["kendoMultiSelect"] }, { kind: "directive", type: ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: TagTemplateDirective, selector: "[kendoMultiSelectTagTemplate],[kendoMultiSelectTreeTagTemplate]" }] });
61
- }
62
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MultipleResourceEditorComponent, decorators: [{
63
- type: Component,
64
- args: [{
65
- providers: [
66
- MULTIPLE_RESOURCE_VALUE_ACCESSOR
67
- ],
68
- selector: 'kendo-multiple-resource-editor',
69
- template: `
70
- <kendo-multiselect
71
- #resourceMultiSelect
72
- [data]='resource.data'
73
- [textField]='resource.textField'
74
- [valueField]='resource.valueField'
75
- [valuePrimitive]='true'
76
- [value]='resourceValue'
77
- (valueChange)='onResourceValueChange($event)'
78
- >
79
- <ng-template kendoDropDownListItemTemplate let-dataItem>
80
- @if (resource.colorField) {
81
- <span class="k-scheduler-mark"
82
- [ngStyle]="getResourceStyle(dataItem)"></span>
83
- }
84
- {{ getField(dataItem, resource.textField) }}
85
- </ng-template>
86
- <ng-template kendoMultiSelectTagTemplate let-dataItem>
87
- @if (resource.colorField) {
88
- <span class="k-scheduler-mark"
89
- [ngStyle]="getTagStyle(dataItem)"></span>
90
- }
91
- {{ getField(dataItem, resource.textField) }}
92
- </ng-template>
93
- </kendo-multiselect>
94
- `,
95
- standalone: true,
96
- imports: [MultiSelectComponent, ItemTemplateDirective, NgStyle, TagTemplateDirective]
97
- }]
98
- }], propDecorators: { resourceMultiSelect: [{
99
- type: ViewChild,
100
- args: ['resourceMultiSelect', { static: true }]
101
- }] } });
@@ -1,82 +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, forwardRef, ViewChild } from '@angular/core';
6
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
7
- import { ResourceEditorBase } from './resource-editor-base';
8
- import { DropDownListComponent, ItemTemplateDirective } from '@progress/kendo-angular-dropdowns';
9
- import { NgStyle } from '@angular/common';
10
- import * as i0 from "@angular/core";
11
- /**
12
- * @hidden
13
- */
14
- export const SINGLE_RESOURCE_VALUE_ACCESSOR = {
15
- multi: true,
16
- provide: NG_VALUE_ACCESSOR,
17
- useExisting: forwardRef(() => SingleResourceEditorComponent)
18
- };
19
- /**
20
- * @hidden
21
- */
22
- export class SingleResourceEditorComponent extends ResourceEditorBase {
23
- resourceDropDown;
24
- focus() {
25
- this.resourceDropDown.focus();
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SingleResourceEditorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SingleResourceEditorComponent, isStandalone: true, selector: "kendo-single-resource-editor", providers: [
29
- SINGLE_RESOURCE_VALUE_ACCESSOR
30
- ], viewQueries: [{ propertyName: "resourceDropDown", first: true, predicate: ["resourceDropDown"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: `
31
- <kendo-dropdownlist
32
- #resourceDropDown
33
- [data]='resource.data'
34
- [textField]='resource.textField'
35
- [valueField]='resource.valueField'
36
- [valuePrimitive]='true'
37
- [value]='resourceValue'
38
- (valueChange)='onResourceValueChange($event)'
39
- >
40
- <ng-template kendoDropDownListItemTemplate let-dataItem>
41
- @if (resource.colorField) {
42
- <span class="k-scheduler-mark"
43
- [ngStyle]="getResourceStyle(dataItem)"></span>
44
- }
45
- {{ getField(dataItem, resource.textField) }}
46
- </ng-template>
47
- </kendo-dropdownlist>
48
- `, isInline: true, dependencies: [{ kind: "component", type: DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["customIconClass", "showStickyHeader", "icon", "svgIcon", "loading", "data", "value", "textField", "valueField", "adaptiveMode", "adaptiveTitle", "adaptiveSubtitle", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "leftRightArrowsNavigation", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { kind: "directive", type: ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
49
- }
50
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SingleResourceEditorComponent, decorators: [{
51
- type: Component,
52
- args: [{
53
- providers: [
54
- SINGLE_RESOURCE_VALUE_ACCESSOR
55
- ],
56
- selector: 'kendo-single-resource-editor',
57
- template: `
58
- <kendo-dropdownlist
59
- #resourceDropDown
60
- [data]='resource.data'
61
- [textField]='resource.textField'
62
- [valueField]='resource.valueField'
63
- [valuePrimitive]='true'
64
- [value]='resourceValue'
65
- (valueChange)='onResourceValueChange($event)'
66
- >
67
- <ng-template kendoDropDownListItemTemplate let-dataItem>
68
- @if (resource.colorField) {
69
- <span class="k-scheduler-mark"
70
- [ngStyle]="getResourceStyle(dataItem)"></span>
71
- }
72
- {{ getField(dataItem, resource.textField) }}
73
- </ng-template>
74
- </kendo-dropdownlist>
75
- `,
76
- standalone: true,
77
- imports: [DropDownListComponent, ItemTemplateDirective, NgStyle]
78
- }]
79
- }], propDecorators: { resourceDropDown: [{
80
- type: ViewChild,
81
- args: ['resourceDropDown', { static: true }]
82
- }] } });