@progress/kendo-angular-scheduler 20.1.0-develop.3 → 20.1.0-develop.30

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.
@@ -9,7 +9,7 @@ import { LocalDataChangesService } from './editing/local-data-changes.service';
9
9
  import { IntlService } from '@progress/kendo-angular-intl';
10
10
  import * as i0 from "@angular/core";
11
11
  /**
12
- * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#toc-using-the-built-in-directive)).
12
+ * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#automatic-data-processing)).
13
13
  *
14
14
  * Processing includes expanding of recurring events and filtering data for
15
15
  * the currently active period.
@@ -19,7 +19,7 @@ export declare class RecurrenceWeekdayRuleEditorComponent {
19
19
  selected: Array<boolean>;
20
20
  constructor(recurrence: RecurrenceService, localization: LocalizationService);
21
21
  setSelectedDays(): void;
22
- onSelectedChange(isSelected: boolean, day: number | string): void;
22
+ onDayClick(day: WeekDayEntity): void;
23
23
  isSelected(day: WeekDayEntity): boolean;
24
24
  serializeToWeekDayRuleArray(arr: Array<boolean>): Array<WeekDayRule>;
25
25
  get rrule(): RecurrenceRule;
@@ -10,7 +10,7 @@ import { BehaviorSubject, Observable } from 'rxjs';
10
10
  *
11
11
  * To use custom models, pass a [field map](slug:api_scheduler_schedulermodelfields) as a constructor parameter in the `BaseEditService` implementation. Subclasses must implement the `read` operation (that is not called directly by the base class) and the `save` method to persist created, updated, and deleted entities.
12
12
  *
13
- * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_directives_scheduler#toc-custom-service)).
13
+ * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_scheduler#connecting-custom-data-services)).
14
14
  *
15
15
  * Implementations that utilize dedicated services, such as Google Calendar and Microsoft Exchange, typically implement the
16
16
  * [`EditService`](slug:api_scheduler_editservice) of the Scheduler directly.
@@ -5,7 +5,7 @@
5
5
  /**
6
6
  * Defines the interface for a service that the reactive and template editing directives of the Scheduler use to persist changes made during editing.
7
7
  *
8
- * * [Custom Service](slug:editing_directives_scheduler#custom-service)
8
+ * * [Custom Service](slug:editing_scheduler#connecting-custom-data-services)
9
9
  * * [`BaseEditService`](slug:api_scheduler_baseeditservice)
10
10
  */
11
11
  export interface EditService<TEvent> {
@@ -11,7 +11,7 @@ import { DialogsService } from '../editing/dialogs.service';
11
11
  import { FocusService } from "../navigation";
12
12
  import * as i0 from "@angular/core";
13
13
  /**
14
- * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_directives_scheduler)).
14
+ * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_scheduler)).
15
15
  *
16
16
  * Handles event editing, saving, and form validation logic for the Scheduler component.
17
17
  * Provides integration with custom form group creation and supports recurring event editing scenarios.
@@ -56,7 +56,7 @@ const occurrences = (item, fields, range, timezone, weekStart) => {
56
56
  return [item, ...expanded];
57
57
  };
58
58
  /**
59
- * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#toc-using-the-built-in-directive)).
59
+ * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#automatic-data-processing)).
60
60
  *
61
61
  * Processing includes expanding of recurring events and filtering data for
62
62
  * the currently active period.
@@ -37,8 +37,16 @@ export class RecurrenceWeekdayRuleEditorComponent {
37
37
  });
38
38
  }
39
39
  }
40
- onSelectedChange(isSelected, day) {
41
- this.selected[day] = isSelected;
40
+ onDayClick(day) {
41
+ const currentlySelected = this.isSelected(day);
42
+ // Prevent deselecting the last selected day - ensure at least one day remains selected
43
+ if (currentlySelected) {
44
+ const currentlySelectedCount = this.selected.filter(selected => selected).length;
45
+ if (currentlySelectedCount <= 1) {
46
+ return;
47
+ }
48
+ }
49
+ this.selected[day.value] = !currentlySelected;
42
50
  this.recurrence.setWeekDays(this.serializeToWeekDayRuleArray(this.selected));
43
51
  }
44
52
  isSelected(day) {
@@ -85,9 +93,8 @@ export class RecurrenceWeekdayRuleEditorComponent {
85
93
  <button
86
94
  *ngFor='let day of weekDays'
87
95
  kendoButton
88
- [toggleable]="true"
89
96
  [selected]="isSelected(day)"
90
- (selectedChange)="onSelectedChange($event, day.value)"
97
+ (click)="onDayClick(day)"
91
98
  >{{ capitalize(day.text) }}</button>
92
99
  </kendo-buttongroup>
93
100
  </div>
@@ -114,9 +121,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
114
121
  <button
115
122
  *ngFor='let day of weekDays'
116
123
  kendoButton
117
- [toggleable]="true"
118
124
  [selected]="isSelected(day)"
119
- (selectedChange)="onSelectedChange($event, day.value)"
125
+ (click)="onDayClick(day)"
120
126
  >{{ capitalize(day.text) }}</button>
121
127
  </kendo-buttongroup>
122
128
  </div>
@@ -21,7 +21,7 @@ const DATE_FORMATS = [
21
21
  *
22
22
  * To use custom models, pass a [field map](slug:api_scheduler_schedulermodelfields) as a constructor parameter in the `BaseEditService` implementation. Subclasses must implement the `read` operation (that is not called directly by the base class) and the `save` method to persist created, updated, and deleted entities.
23
23
  *
24
- * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_directives_scheduler#toc-custom-service)).
24
+ * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_scheduler#connecting-custom-data-services)).
25
25
  *
26
26
  * Implementations that utilize dedicated services, such as Google Calendar and Microsoft Exchange, typically implement the
27
27
  * [`EditService`](slug:api_scheduler_editservice) of the Scheduler directly.
@@ -19,7 +19,7 @@ import * as i2 from "../editing/local-data-changes.service";
19
19
  import * as i3 from "../editing/dialogs.service";
20
20
  import * as i4 from "../navigation";
21
21
  /**
22
- * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_directives_scheduler)).
22
+ * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_scheduler)).
23
23
  *
24
24
  * Handles event editing, saving, and form validation logic for the Scheduler component.
25
25
  * Provides integration with custom form group creation and supports recurring event editing scenarios.
@@ -10,7 +10,7 @@ export const packageMetadata = {
10
10
  productName: 'Kendo UI for Angular',
11
11
  productCode: 'KENDOUIANGULAR',
12
12
  productCodes: ['KENDOUIANGULAR'],
13
- publishDate: 1758189405,
14
- version: '20.1.0-develop.3',
13
+ publishDate: 1760442474,
14
+ version: '20.1.0-develop.30',
15
15
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
16
16
  };
@@ -263,7 +263,7 @@ export class SchedulerComponent {
263
263
  return this._selectedDate;
264
264
  }
265
265
  /**
266
- * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-models).
266
+ * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-custom-object-schemas).
267
267
  */
268
268
  set modelFields(value) {
269
269
  this._modelFields = { ...defaultModelFields, ...value };
@@ -24,7 +24,7 @@ export class ConfigurationViewBase extends SchedulerView {
24
24
  viewState;
25
25
  /**
26
26
  * Defines a function that is executed for every slot in the view.
27
- * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#toc-styling-the-slots).
27
+ * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#slot-styling).
28
28
  */
29
29
  slotClass;
30
30
  /**
@@ -43,8 +43,8 @@ const packageMetadata = {
43
43
  productName: 'Kendo UI for Angular',
44
44
  productCode: 'KENDOUIANGULAR',
45
45
  productCodes: ['KENDOUIANGULAR'],
46
- publishDate: 1758189405,
47
- version: '20.1.0-develop.3',
46
+ publishDate: 1760442474,
47
+ version: '20.1.0-develop.30',
48
48
  licensingDocsUrl: 'https://www.telerik.com/kendo-angular-ui/my-license/'
49
49
  };
50
50
 
@@ -4339,8 +4339,16 @@ class RecurrenceWeekdayRuleEditorComponent {
4339
4339
  });
4340
4340
  }
4341
4341
  }
4342
- onSelectedChange(isSelected, day) {
4343
- this.selected[day] = isSelected;
4342
+ onDayClick(day) {
4343
+ const currentlySelected = this.isSelected(day);
4344
+ // Prevent deselecting the last selected day - ensure at least one day remains selected
4345
+ if (currentlySelected) {
4346
+ const currentlySelectedCount = this.selected.filter(selected => selected).length;
4347
+ if (currentlySelectedCount <= 1) {
4348
+ return;
4349
+ }
4350
+ }
4351
+ this.selected[day.value] = !currentlySelected;
4344
4352
  this.recurrence.setWeekDays(this.serializeToWeekDayRuleArray(this.selected));
4345
4353
  }
4346
4354
  isSelected(day) {
@@ -4387,9 +4395,8 @@ class RecurrenceWeekdayRuleEditorComponent {
4387
4395
  <button
4388
4396
  *ngFor='let day of weekDays'
4389
4397
  kendoButton
4390
- [toggleable]="true"
4391
4398
  [selected]="isSelected(day)"
4392
- (selectedChange)="onSelectedChange($event, day.value)"
4399
+ (click)="onDayClick(day)"
4393
4400
  >{{ capitalize(day.text) }}</button>
4394
4401
  </kendo-buttongroup>
4395
4402
  </div>
@@ -4416,9 +4423,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
4416
4423
  <button
4417
4424
  *ngFor='let day of weekDays'
4418
4425
  kendoButton
4419
- [toggleable]="true"
4420
4426
  [selected]="isSelected(day)"
4421
- (selectedChange)="onSelectedChange($event, day.value)"
4427
+ (click)="onDayClick(day)"
4422
4428
  >{{ capitalize(day.text) }}</button>
4423
4429
  </kendo-buttongroup>
4424
4430
  </div>
@@ -7922,7 +7928,7 @@ class SchedulerComponent {
7922
7928
  return this._selectedDate;
7923
7929
  }
7924
7930
  /**
7925
- * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-models).
7931
+ * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-custom-object-schemas).
7926
7932
  */
7927
7933
  set modelFields(value) {
7928
7934
  this._modelFields = { ...defaultModelFields, ...value };
@@ -9658,7 +9664,7 @@ const occurrences = (item, fields, range, timezone, weekStart) => {
9658
9664
  return [item, ...expanded];
9659
9665
  };
9660
9666
  /**
9661
- * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#toc-using-the-built-in-directive)).
9667
+ * A directive that processes Scheduler events in memory ([see example](slug:databinding_scheduler#automatic-data-processing)).
9662
9668
  *
9663
9669
  * Processing includes expanding of recurring events and filtering data for
9664
9670
  * the currently active period.
@@ -10312,7 +10318,7 @@ class ConfigurationViewBase extends SchedulerView {
10312
10318
  viewState;
10313
10319
  /**
10314
10320
  * Defines a function that is executed for every slot in the view.
10315
- * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#toc-styling-the-slots).
10321
+ * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#slot-styling).
10316
10322
  */
10317
10323
  slotClass;
10318
10324
  /**
@@ -20301,7 +20307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20301
20307
  }] } });
20302
20308
 
20303
20309
  /**
20304
- * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_directives_scheduler)).
20310
+ * A directive that encapsulates editing operations for the Scheduler using [Angular Reactive Forms](link:site.data.urls.angular['reactiveforms']) ([see example](slug:editing_scheduler)).
20305
20311
  *
20306
20312
  * Handles event editing, saving, and form validation logic for the Scheduler component.
20307
20313
  * Provides integration with custom form group creation and supports recurring event editing scenarios.
@@ -20859,7 +20865,7 @@ const DATE_FORMATS = [
20859
20865
  *
20860
20866
  * To use custom models, pass a [field map](slug:api_scheduler_schedulermodelfields) as a constructor parameter in the `BaseEditService` implementation. Subclasses must implement the `read` operation (that is not called directly by the base class) and the `save` method to persist created, updated, and deleted entities.
20861
20867
  *
20862
- * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_directives_scheduler#toc-custom-service)).
20868
+ * The [`events`](#toc-events) observable publishes the current data when you subscribe, for example, by using an [async pipe](https://angular.io/api/common/AsyncPipe) ([more information](slug:editing_scheduler#connecting-custom-data-services)).
20863
20869
  *
20864
20870
  * Implementations that utilize dedicated services, such as Google Calendar and Microsoft Exchange, typically implement the
20865
20871
  * [`EditService`](slug:api_scheduler_editservice) of the Scheduler directly.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-angular-scheduler",
3
- "version": "20.1.0-develop.3",
3
+ "version": "20.1.0-develop.30",
4
4
  "description": "Kendo UI Scheduler Angular - Outlook or Google-style angular scheduler calendar. Full-featured and customizable embedded scheduling from the creator developers trust for professional UI components.",
5
5
  "license": "SEE LICENSE IN LICENSE.md",
6
6
  "author": "Progress",
@@ -19,7 +19,7 @@
19
19
  "package": {
20
20
  "productName": "Kendo UI for Angular",
21
21
  "productCode": "KENDOUIANGULAR",
22
- "publishDate": 1758189405,
22
+ "publishDate": 1760442474,
23
23
  "licensingDocsUrl": "https://www.telerik.com/kendo-angular-ui/my-license/"
24
24
  }
25
25
  },
@@ -32,23 +32,23 @@
32
32
  "@progress/kendo-data-query": "^1.0.0",
33
33
  "@progress/kendo-drawing": "^1.21.0",
34
34
  "@progress/kendo-licensing": "^1.7.0",
35
- "@progress/kendo-angular-tooltip": "20.1.0-develop.3",
36
- "@progress/kendo-angular-buttons": "20.1.0-develop.3",
37
- "@progress/kendo-angular-common": "20.1.0-develop.3",
38
- "@progress/kendo-angular-dateinputs": "20.1.0-develop.3",
39
- "@progress/kendo-angular-dialog": "20.1.0-develop.3",
40
- "@progress/kendo-angular-dropdowns": "20.1.0-develop.3",
41
- "@progress/kendo-angular-icons": "20.1.0-develop.3",
42
- "@progress/kendo-angular-inputs": "20.1.0-develop.3",
43
- "@progress/kendo-angular-intl": "20.1.0-develop.3",
44
- "@progress/kendo-angular-l10n": "20.1.0-develop.3",
45
- "@progress/kendo-angular-label": "20.1.0-develop.3",
46
- "@progress/kendo-angular-popup": "20.1.0-develop.3",
35
+ "@progress/kendo-angular-tooltip": "20.1.0-develop.30",
36
+ "@progress/kendo-angular-buttons": "20.1.0-develop.30",
37
+ "@progress/kendo-angular-common": "20.1.0-develop.30",
38
+ "@progress/kendo-angular-dateinputs": "20.1.0-develop.30",
39
+ "@progress/kendo-angular-dialog": "20.1.0-develop.30",
40
+ "@progress/kendo-angular-dropdowns": "20.1.0-develop.30",
41
+ "@progress/kendo-angular-icons": "20.1.0-develop.30",
42
+ "@progress/kendo-angular-inputs": "20.1.0-develop.30",
43
+ "@progress/kendo-angular-intl": "20.1.0-develop.30",
44
+ "@progress/kendo-angular-l10n": "20.1.0-develop.30",
45
+ "@progress/kendo-angular-label": "20.1.0-develop.30",
46
+ "@progress/kendo-angular-popup": "20.1.0-develop.30",
47
47
  "rxjs": "^6.5.3 || ^7.0.0"
48
48
  },
49
49
  "dependencies": {
50
50
  "tslib": "^2.3.1",
51
- "@progress/kendo-angular-schematics": "20.1.0-develop.3",
51
+ "@progress/kendo-angular-schematics": "20.1.0-develop.30",
52
52
  "@progress/kendo-date-math": "^1.3.2",
53
53
  "@progress/kendo-draggable": "^3.0.2",
54
54
  "@progress/kendo-file-saver": "^1.0.7",
@@ -214,7 +214,7 @@ export declare class SchedulerComponent implements AfterContentInit, OnDestroy,
214
214
  set selectedDate(value: Date);
215
215
  get selectedDate(): Date;
216
216
  /**
217
- * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-models).
217
+ * Sets the names of the model fields from which the Scheduler reads its data ([see example](slug:databinding_scheduler#binding-to-custom-object-schemas).
218
218
  */
219
219
  set modelFields(value: SchedulerModelFields);
220
220
  get modelFields(): SchedulerModelFields;
@@ -4,10 +4,10 @@ const schematics_1 = require("@angular-devkit/schematics");
4
4
  function default_1(options) {
5
5
  const finalOptions = Object.assign(Object.assign({}, options), { mainNgModule: 'SchedulerModule', package: 'scheduler', peerDependencies: {
6
6
  // peer deps of the dropdowns
7
- '@progress/kendo-angular-treeview': '20.1.0-develop.3',
8
- '@progress/kendo-angular-navigation': '20.1.0-develop.3',
7
+ '@progress/kendo-angular-treeview': '20.1.0-develop.30',
8
+ '@progress/kendo-angular-navigation': '20.1.0-develop.30',
9
9
  // peer dependency of kendo-angular-inputs
10
- '@progress/kendo-angular-dialog': '20.1.0-develop.3',
10
+ '@progress/kendo-angular-dialog': '20.1.0-develop.30',
11
11
  // peer dependency of kendo-angular-icons
12
12
  '@progress/kendo-svg-icons': '^4.0.0'
13
13
  } });
@@ -22,7 +22,7 @@ export declare abstract class ConfigurationViewBase extends SchedulerView implem
22
22
  protected viewState: ViewStateService;
23
23
  /**
24
24
  * Defines a function that is executed for every slot in the view.
25
- * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#toc-styling-the-slots).
25
+ * The function returns a value which is supported by [`ngClass`](link:site.data.urls.angular['ngclassapi']) [see example](slug:styling_scheduler#slot-styling).
26
26
  */
27
27
  slotClass: (args: SlotClassArgs) => any;
28
28
  /**