@syncfusion/ej2-schedule 23.2.7 → 24.2.3

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 (120) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/README.md +1 -1
  3. package/dist/ej2-schedule.min.js +2 -2
  4. package/dist/ej2-schedule.umd.min.js +2 -2
  5. package/dist/ej2-schedule.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-schedule.es2015.js +272 -34
  7. package/dist/es6/ej2-schedule.es2015.js.map +1 -1
  8. package/dist/es6/ej2-schedule.es5.js +335 -64
  9. package/dist/es6/ej2-schedule.es5.js.map +1 -1
  10. package/dist/global/ej2-schedule.min.js +2 -2
  11. package/dist/global/ej2-schedule.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +16 -16
  14. package/src/recurrence-editor/recurrence-editor.js +4 -2
  15. package/src/schedule/actions/drag.js +4 -4
  16. package/src/schedule/base/schedule-model.d.ts +15 -1
  17. package/src/schedule/base/schedule.d.ts +14 -1
  18. package/src/schedule/base/schedule.js +5 -0
  19. package/src/schedule/base/type.d.ts +12 -0
  20. package/src/schedule/event-renderer/agenda-base.js +1 -1
  21. package/src/schedule/event-renderer/event-base.d.ts +1 -0
  22. package/src/schedule/event-renderer/event-base.js +25 -1
  23. package/src/schedule/event-renderer/month.js +9 -1
  24. package/src/schedule/event-renderer/timeline-view.js +8 -2
  25. package/src/schedule/event-renderer/year.js +12 -3
  26. package/src/schedule/models/models.d.ts +1 -0
  27. package/src/schedule/models/toolbar-model.d.ts +196 -0
  28. package/src/schedule/models/toolbar.d.ts +176 -0
  29. package/src/schedule/models/toolbar.js +85 -0
  30. package/src/schedule/models/views-model.d.ts +9 -0
  31. package/src/schedule/models/views.d.ts +8 -0
  32. package/src/schedule/models/views.js +3 -0
  33. package/src/schedule/popups/event-window.js +4 -10
  34. package/src/schedule/popups/quick-popups.js +2 -2
  35. package/src/schedule/renderer/header-renderer.d.ts +2 -0
  36. package/src/schedule/renderer/header-renderer.js +142 -4
  37. package/src/schedule/renderer/renderer.js +1 -1
  38. package/src/schedule/renderer/vertical-view.js +3 -3
  39. package/src/schedule/renderer/year.js +3 -0
  40. package/styles/bootstrap-dark.css +26 -22
  41. package/styles/bootstrap.css +26 -22
  42. package/styles/bootstrap4.css +25 -21
  43. package/styles/bootstrap5-dark.css +30 -26
  44. package/styles/bootstrap5.css +30 -26
  45. package/styles/fabric-dark.css +28 -24
  46. package/styles/fabric.css +28 -24
  47. package/styles/fluent-dark.css +28 -24
  48. package/styles/fluent.css +28 -24
  49. package/styles/highcontrast-light.css +26 -22
  50. package/styles/highcontrast.css +26 -22
  51. package/styles/material-dark.css +26 -22
  52. package/styles/material.css +26 -22
  53. package/styles/material3-dark.css +29 -25
  54. package/styles/material3.css +29 -25
  55. package/styles/recurrence-editor/_bootstrap-dark-definition.scss +3 -1
  56. package/styles/recurrence-editor/_bootstrap-definition.scss +3 -1
  57. package/styles/recurrence-editor/_bootstrap4-definition.scss +3 -1
  58. package/styles/recurrence-editor/_bootstrap5-definition.scss +5 -3
  59. package/styles/recurrence-editor/_fabric-dark-definition.scss +4 -2
  60. package/styles/recurrence-editor/_fabric-definition.scss +4 -2
  61. package/styles/recurrence-editor/_fluent-definition.scss +4 -2
  62. package/styles/recurrence-editor/_fusionnew-definition.scss +4 -2
  63. package/styles/recurrence-editor/_highcontrast-definition.scss +3 -1
  64. package/styles/recurrence-editor/_highcontrast-light-definition.scss +3 -1
  65. package/styles/recurrence-editor/_layout.scss +3 -10
  66. package/styles/recurrence-editor/_material-dark-definition.scss +3 -1
  67. package/styles/recurrence-editor/_material-definition.scss +3 -1
  68. package/styles/recurrence-editor/_material3-definition.scss +4 -2
  69. package/styles/recurrence-editor/_tailwind-definition.scss +5 -3
  70. package/styles/recurrence-editor/bootstrap-dark.css +5 -10
  71. package/styles/recurrence-editor/bootstrap.css +5 -10
  72. package/styles/recurrence-editor/bootstrap4.css +4 -9
  73. package/styles/recurrence-editor/bootstrap5-dark.css +9 -14
  74. package/styles/recurrence-editor/bootstrap5.css +9 -14
  75. package/styles/recurrence-editor/fabric-dark.css +7 -12
  76. package/styles/recurrence-editor/fabric.css +7 -12
  77. package/styles/recurrence-editor/fluent-dark.css +7 -12
  78. package/styles/recurrence-editor/fluent.css +7 -12
  79. package/styles/recurrence-editor/highcontrast-light.css +5 -10
  80. package/styles/recurrence-editor/highcontrast.css +5 -10
  81. package/styles/recurrence-editor/material-dark.css +5 -10
  82. package/styles/recurrence-editor/material.css +5 -10
  83. package/styles/recurrence-editor/material3-dark.css +7 -12
  84. package/styles/recurrence-editor/material3.css +7 -12
  85. package/styles/recurrence-editor/tailwind-dark.css +9 -14
  86. package/styles/recurrence-editor/tailwind.css +9 -14
  87. package/styles/schedule/_bootstrap-dark-definition.scss +6 -2
  88. package/styles/schedule/_bootstrap-definition.scss +6 -2
  89. package/styles/schedule/_bootstrap4-definition.scss +6 -2
  90. package/styles/schedule/_bootstrap5-definition.scss +6 -2
  91. package/styles/schedule/_fabric-dark-definition.scss +6 -2
  92. package/styles/schedule/_fabric-definition.scss +6 -2
  93. package/styles/schedule/_fluent-definition.scss +6 -2
  94. package/styles/schedule/_fusionnew-definition.scss +6 -2
  95. package/styles/schedule/_highcontrast-definition.scss +6 -2
  96. package/styles/schedule/_highcontrast-light-definition.scss +6 -2
  97. package/styles/schedule/_layout.scss +23 -10
  98. package/styles/schedule/_material-dark-definition.scss +6 -2
  99. package/styles/schedule/_material-definition.scss +6 -2
  100. package/styles/schedule/_material3-definition.scss +6 -2
  101. package/styles/schedule/_tailwind-definition.scss +6 -2
  102. package/styles/schedule/bootstrap-dark.css +21 -12
  103. package/styles/schedule/bootstrap.css +21 -12
  104. package/styles/schedule/bootstrap4.css +21 -12
  105. package/styles/schedule/bootstrap5-dark.css +21 -12
  106. package/styles/schedule/bootstrap5.css +21 -12
  107. package/styles/schedule/fabric-dark.css +21 -12
  108. package/styles/schedule/fabric.css +21 -12
  109. package/styles/schedule/fluent-dark.css +21 -12
  110. package/styles/schedule/fluent.css +21 -12
  111. package/styles/schedule/highcontrast-light.css +21 -12
  112. package/styles/schedule/highcontrast.css +21 -12
  113. package/styles/schedule/material-dark.css +21 -12
  114. package/styles/schedule/material.css +21 -12
  115. package/styles/schedule/material3-dark.css +22 -13
  116. package/styles/schedule/material3.css +22 -13
  117. package/styles/schedule/tailwind-dark.css +22 -13
  118. package/styles/schedule/tailwind.css +22 -13
  119. package/styles/tailwind-dark.css +31 -27
  120. package/styles/tailwind.css +31 -27
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 23.2.7
3
+ * version : 24.2.3
4
4
  * Copyright Syncfusion Inc. 2001 - 2023. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-schedule@*",
3
- "_id": "@syncfusion/ej2-schedule@23.2.4",
3
+ "_id": "@syncfusion/ej2-schedule@24.1.41",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-MubdFwUgutBqXNnindH9QOeHhjl+93mI33578Ati1Yi9mhyxRAlxYf9/fkujUMiPwjvzw6LPOHSXYhGmDMRxqQ==",
5
+ "_integrity": "sha512-PMFUzrOa5gFauoO79WYC7vNHSJIoHrPUZJwE/aDZPIKkc0pUdaPPcJhLrxMUrKEOLJvmhVo0bqOQkMwUXLswTA==",
6
6
  "_location": "/@syncfusion/ej2-schedule",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,10 +23,10 @@
23
23
  "/@syncfusion/ej2-react-schedule",
24
24
  "/@syncfusion/ej2-vue-schedule"
25
25
  ],
26
- "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-23.2.4.tgz",
27
- "_shasum": "e7fad4c2553a7a5afdb615fbb67a67c2fafad48b",
26
+ "_resolved": "https://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-schedule/-/ej2-schedule-24.1.41.tgz",
27
+ "_shasum": "dfaee919781c2f41866763e373d84a7f4e8b46ad",
28
28
  "_spec": "@syncfusion/ej2-schedule@*",
29
- "_where": "/jenkins/workspace/elease-automation_release_23.1.1/packages/included",
29
+ "_where": "/jenkins/workspace/elease-automation_release_24.1.1/packages/included",
30
30
  "author": {
31
31
  "name": "Syncfusion Inc."
32
32
  },
@@ -35,16 +35,16 @@
35
35
  },
36
36
  "bundleDependencies": false,
37
37
  "dependencies": {
38
- "@syncfusion/ej2-base": "~23.2.6",
39
- "@syncfusion/ej2-buttons": "~23.2.7",
40
- "@syncfusion/ej2-calendars": "~23.2.7",
41
- "@syncfusion/ej2-data": "~23.2.4",
42
- "@syncfusion/ej2-dropdowns": "~23.2.7",
43
- "@syncfusion/ej2-excel-export": "~23.2.4",
44
- "@syncfusion/ej2-inputs": "~23.2.4",
45
- "@syncfusion/ej2-lists": "~23.2.4",
46
- "@syncfusion/ej2-navigations": "~23.2.7",
47
- "@syncfusion/ej2-popups": "~23.2.4"
38
+ "@syncfusion/ej2-base": "~24.2.3",
39
+ "@syncfusion/ej2-buttons": "~24.2.3",
40
+ "@syncfusion/ej2-calendars": "~24.2.3",
41
+ "@syncfusion/ej2-data": "~24.2.3",
42
+ "@syncfusion/ej2-dropdowns": "~24.2.3",
43
+ "@syncfusion/ej2-excel-export": "~24.2.3",
44
+ "@syncfusion/ej2-inputs": "~24.2.3",
45
+ "@syncfusion/ej2-lists": "~24.2.3",
46
+ "@syncfusion/ej2-navigations": "~24.2.3",
47
+ "@syncfusion/ej2-popups": "~24.2.3"
48
48
  },
49
49
  "deprecated": false,
50
50
  "description": "Flexible scheduling library with more built-in features and enhanced customization options similar to outlook and google calendar, allowing the users to plan and manage their appointments with efficient data-binding support.",
@@ -73,6 +73,6 @@
73
73
  "url": "git+https://github.com/syncfusion/ej2-javascript-ui-controls.git"
74
74
  },
75
75
  "typings": "index.d.ts",
76
- "version": "23.2.7",
76
+ "version": "24.2.3",
77
77
  "sideEffects": false
78
78
  }
@@ -374,6 +374,8 @@ var RecurrenceEditor = /** @class */ (function (_super) {
374
374
  this.endType = new DropDownList({
375
375
  dataSource: this.getEndData(),
376
376
  popupWidth: this.getPopupWidth(),
377
+ floatLabelType: 'Always',
378
+ placeholder: this.localeObj.getConstant(END),
377
379
  enableRtl: this.enableRtl,
378
380
  index: 1,
379
381
  fields: {
@@ -714,6 +716,7 @@ var RecurrenceEditor = /** @class */ (function (_super) {
714
716
  RecurrenceEditor.prototype.setTemplate = function () {
715
717
  var dayData = this.getDayData('narrow');
716
718
  var fullDay = this.getDayData('wide');
719
+ var labelId = this.element.id + '_' + 'end_label';
717
720
  this.element.innerHTML = '<div class="' + HEADER + '">' +
718
721
  '<div class="' + INPUTWARAPPER + ' ' + FORMLEFT + '">' +
719
722
  '<input type="text" tabindex="0" class="' + REPEATELEMENT +
@@ -759,9 +762,8 @@ var RecurrenceEditor = /** @class */ (function (_super) {
759
762
  '</div></td></tr></table>' +
760
763
  '</div></div>' +
761
764
  '<div class="' + INPUTWARAPPERSIDE + ' ' + ENDON + ' ' + FORMRIGHT + '">' +
762
- '<div class=' + ENDONLABEL + '>' + this.localeObj.getConstant(END) + '</div>' +
763
765
  '<div class="' + INPUTWARAPPER + ' ' + ENDONLEFT + '">' +
764
- '<input type="text" tabindex="0" class="' + ENDONELEMENT + '"title="' + this.localeObj.getConstant(END) + '" />' +
766
+ '<input type="text" tabindex="0" class="' + ENDONELEMENT + '" aria-labelledby="' + labelId + '"title="' + this.localeObj.getConstant(END) + '" />' +
765
767
  '</div>' +
766
768
  '<div class="' + INPUTWARAPPER + ' ' + ENDONDATE + '" >' +
767
769
  '<input type="text" tabindex="0" class="' + UNTILDATE + '"title="' + this.localeObj.getConstant(UNTIL) + '" />' +
@@ -560,7 +560,7 @@ var DragAndDrop = /** @class */ (function (_super) {
560
560
  var _this = this;
561
561
  if (isNullOrUndefined(this.actionObj.target) ||
562
562
  (this.actionObj.target && isNullOrUndefined(closest(this.actionObj.target, 'tr'))) ||
563
- (!(closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS)) &&
563
+ (!isNullOrUndefined(closest(this.actionObj.target, 'td')) && !(closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS)) &&
564
564
  !(closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)))) {
565
565
  return;
566
566
  }
@@ -597,8 +597,8 @@ var DragAndDrop = /** @class */ (function (_super) {
597
597
  tr = trCollections[parseInt(rowIndex.toString(), 10)];
598
598
  }
599
599
  var index;
600
- if (closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS) ||
601
- closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS)) {
600
+ if (!isNullOrUndefined(closest(this.actionObj.target, 'td')) && (closest(this.actionObj.target, 'td').classList.contains(cls.WORK_CELLS_CLASS) ||
601
+ closest(this.actionObj.target, 'td').classList.contains(cls.ALLDAY_CELLS_CLASS))) {
602
602
  index = closest(this.actionObj.target, 'td').cellIndex;
603
603
  }
604
604
  var colIndex = isNullOrUndefined(index) ? closest(this.actionObj.clone, 'td').cellIndex : index;
@@ -899,7 +899,7 @@ var DragAndDrop = /** @class */ (function (_super) {
899
899
  };
900
900
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
901
901
  DragAndDrop.prototype.swapDragging = function (e) {
902
- var colIndex = closest(this.actionObj.target, 'td').cellIndex;
902
+ var colIndex = !isNullOrUndefined(closest(this.actionObj.target, 'td')) && closest(this.actionObj.target, 'td').cellIndex;
903
903
  if (closest(this.actionObj.target, '.' + cls.DATE_HEADER_WRAP_CLASS) &&
904
904
  !closest(this.actionObj.clone, '.' + cls.ALLDAY_APPOINTMENT_WRAPPER_CLASS)) {
905
905
  addClass([this.actionObj.clone], cls.ALLDAY_APPOINTMENT_CLASS);
@@ -1,4 +1,4 @@
1
- import { Component, ModuleDeclaration, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';import { EventHandler, EmitType, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';import { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, INotifyPropertyChanged, Complex } from '@syncfusion/ej2-base';import { getElement, removeClass, addClass, classList, remove, SanitizeHtmlHelper } from '@syncfusion/ej2-base';import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';import { HeaderRenderer } from '../renderer/header-renderer';import { Scroll } from '../actions/scroll';import { ScheduleTouch } from '../actions/touch';import { KeyboardInteraction } from '../actions/keyboard';import { Data } from '../actions/data';import { View, CurrentAction, ReturnType, WeekRule } from '../base/type';import { EventBase } from '../event-renderer/event-base';import { InlineEdit } from '../event-renderer/inline-edit';import { QuickPopups } from '../popups/quick-popups';import { EventTooltip } from '../popups/event-tooltip';import { EventWindow } from '../popups/event-window';import { Render } from '../renderer/renderer';import { Day } from '../renderer/day';import { Week } from '../renderer/week';import { WorkWeek } from '../renderer/work-week';import { Month } from '../renderer/month';import { Year } from '../renderer/year';import { Agenda } from '../renderer/agenda';import { MonthAgenda } from '../renderer/month-agenda';import { TimelineViews } from '../renderer/timeline-view';import { TimelineMonth } from '../renderer/timeline-month';import { TimelineYear } from '../renderer/timeline-year';import { WorkHours } from '../models/work-hours';import { TimeScale } from '../models/time-scale';import { QuickInfoTemplates } from '../models/quick-info-templates';import { HeaderRows } from '../models/header-rows';import { Crud } from '../actions/crud';import { Resize } from '../actions/resize';import { DragAndDrop } from '../actions/drag';import { VirtualScroll } from '../actions/virtual-scroll';import { WorkCellInteraction } from '../actions/work-cells';import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel } from '../models/models';import { QuickInfoTemplatesModel, HeaderRowsModel } from '../models/models';import { EventSettings } from '../models/event-settings';import { Group } from '../models/group';import { Resources } from '../models/resources';import { ICalendarExport } from '../exports/calendar-export';import { ICalendarImport } from '../exports/calendar-import';import { ExcelExport } from '../exports/excel-export';import { Print } from '../exports/print';import { IRenderer, ActionEventArgs, NavigatingEventArgs, CellClickEventArgs, RenderCellEventArgs, ScrollCss, TimezoneFields } from '../base/interface';import { EventClickArgs, EventRenderedArgs, PopupOpenEventArgs, UIStateArgs, DragEventArgs, ResizeEventArgs } from '../base/interface';import { EventFieldsMapping, TdData, ResourceDetails, ResizeEdges, StateArgs, ExportOptions, SelectEventArgs } from '../base/interface';import { ViewsData, PopupCloseEventArgs, HoverEventArgs, MoreEventsClickArgs, ScrollEventArgs, CallbackFunction } from '../base/interface';import { CalendarUtil, Gregorian, Islamic, CalendarType } from '../../common/calendar-util';import { ResourceBase } from '../base/resource';import { Timezone, timezoneData } from '../timezone/timezone';import { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';import * as events from '../base/constant';import * as cls from '../base/css-constant';import * as util from '../base/util';
1
+ import { Component, ModuleDeclaration, Property, Event, Animation, Collection, append } from '@syncfusion/ej2-base';import { EventHandler, EmitType, Browser, Internationalization, getDefaultDateObject, cldrData, L10n } from '@syncfusion/ej2-base';import { getValue, compile, extend, isNullOrUndefined, NotifyPropertyChanges, INotifyPropertyChanged, Complex } from '@syncfusion/ej2-base';import { getElement, removeClass, addClass, classList, remove, SanitizeHtmlHelper } from '@syncfusion/ej2-base';import { createSpinner, hideSpinner, showSpinner } from '@syncfusion/ej2-popups';import { HeaderRenderer } from '../renderer/header-renderer';import { Scroll } from '../actions/scroll';import { ScheduleTouch } from '../actions/touch';import { KeyboardInteraction } from '../actions/keyboard';import { Data } from '../actions/data';import { View, CurrentAction, ReturnType, WeekRule } from '../base/type';import { EventBase } from '../event-renderer/event-base';import { InlineEdit } from '../event-renderer/inline-edit';import { QuickPopups } from '../popups/quick-popups';import { EventTooltip } from '../popups/event-tooltip';import { EventWindow } from '../popups/event-window';import { Render } from '../renderer/renderer';import { Day } from '../renderer/day';import { Week } from '../renderer/week';import { WorkWeek } from '../renderer/work-week';import { Month } from '../renderer/month';import { Year } from '../renderer/year';import { Agenda } from '../renderer/agenda';import { MonthAgenda } from '../renderer/month-agenda';import { TimelineViews } from '../renderer/timeline-view';import { TimelineMonth } from '../renderer/timeline-month';import { TimelineYear } from '../renderer/timeline-year';import { WorkHours } from '../models/work-hours';import { TimeScale } from '../models/time-scale';import { QuickInfoTemplates } from '../models/quick-info-templates';import { HeaderRows } from '../models/header-rows';import { Crud } from '../actions/crud';import { Resize } from '../actions/resize';import { DragAndDrop } from '../actions/drag';import { VirtualScroll } from '../actions/virtual-scroll';import { WorkCellInteraction } from '../actions/work-cells';import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel, ToolbarItemModel } from '../models/models';import { QuickInfoTemplatesModel, HeaderRowsModel } from '../models/models';import { EventSettings } from '../models/event-settings';import { Group } from '../models/group';import { Resources } from '../models/resources';import { ICalendarExport } from '../exports/calendar-export';import { ICalendarImport } from '../exports/calendar-import';import { ExcelExport } from '../exports/excel-export';import { Print } from '../exports/print';import { IRenderer, ActionEventArgs, NavigatingEventArgs, CellClickEventArgs, RenderCellEventArgs, ScrollCss, TimezoneFields } from '../base/interface';import { EventClickArgs, EventRenderedArgs, PopupOpenEventArgs, UIStateArgs, DragEventArgs, ResizeEventArgs } from '../base/interface';import { EventFieldsMapping, TdData, ResourceDetails, ResizeEdges, StateArgs, ExportOptions, SelectEventArgs } from '../base/interface';import { ViewsData, PopupCloseEventArgs, HoverEventArgs, MoreEventsClickArgs, ScrollEventArgs, CallbackFunction } from '../base/interface';import { CalendarUtil, Gregorian, Islamic, CalendarType } from '../../common/calendar-util';import { ResourceBase } from '../base/resource';import { Timezone, timezoneData } from '../timezone/timezone';import { RecurrenceEditor } from '../../recurrence-editor/recurrence-editor';import * as events from '../base/constant';import * as cls from '../base/css-constant';import * as util from '../base/util';import { ToolbarItem } from '../models/toolbar';
2
2
  import {ComponentModel} from '@syncfusion/ej2-base';
3
3
 
4
4
  /**
@@ -54,6 +54,20 @@ export interface ScheduleModel extends ComponentModel{
54
54
  */
55
55
  allowSwiping?: boolean;
56
56
 
57
+ /**
58
+ * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
59
+ * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
60
+ * * `Previous`: Schedule component navigates to the previous date from the current date.
61
+ * * `Next`: Schedule component navigates to the next date from the current date.
62
+ * * `Today`: Schedule component navigates to the current date from any date.
63
+ * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
64
+ * * `DateRangeText`: Schedule component displays the current date text range.
65
+ * * `NewEvent`: Schedule component render the icon to add a new event.
66
+ *
67
+ * @default []
68
+ */
69
+ toolbarItems?: ToolbarItemModel[]
70
+
57
71
  /**
58
72
  * To set the active view on scheduler, the `currentView` property can be used and it usually accepts either of the following available
59
73
  * view options. The view option specified in this property will be initially loaded on the schedule.
@@ -29,7 +29,7 @@ import { Resize } from '../actions/resize';
29
29
  import { DragAndDrop } from '../actions/drag';
30
30
  import { VirtualScroll } from '../actions/virtual-scroll';
31
31
  import { WorkCellInteraction } from '../actions/work-cells';
32
- import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel } from '../models/models';
32
+ import { WorkHoursModel, ViewsModel, EventSettingsModel, GroupModel, ResourcesModel, TimeScaleModel, ToolbarItemModel } from '../models/models';
33
33
  import { QuickInfoTemplatesModel, HeaderRowsModel } from '../models/models';
34
34
  import { ICalendarExport } from '../exports/calendar-export';
35
35
  import { ICalendarImport } from '../exports/calendar-import';
@@ -180,6 +180,19 @@ export declare class Schedule extends Component<HTMLElement> implements INotifyP
180
180
  * @default true
181
181
  */
182
182
  allowSwiping: boolean;
183
+ /**
184
+ * To render the custom toolbar items, the `toolbarItems` property can be used. It contains built-in and custom toolbar items.
185
+ * To avail the built-in toolbar items, the below string values are assigned to the `name` property of the `ToolbarItemModel`.
186
+ * * `Previous`: Schedule component navigates to the previous date from the current date.
187
+ * * `Next`: Schedule component navigates to the next date from the current date.
188
+ * * `Today`: Schedule component navigates to the current date from any date.
189
+ * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
190
+ * * `DateRangeText`: Schedule component displays the current date text range.
191
+ * * `NewEvent`: Schedule component render the icon to add a new event.
192
+ *
193
+ * @default []
194
+ */
195
+ toolbarItems: ToolbarItemModel[];
183
196
  /**
184
197
  * To set the active view on scheduler, the `currentView` property can be used and it usually accepts either of the following available
185
198
  * view options. The view option specified in this property will be initially loaded on the schedule.
@@ -49,6 +49,7 @@ import { Timezone, timezoneData } from '../timezone/timezone';
49
49
  import * as events from '../base/constant';
50
50
  import * as cls from '../base/css-constant';
51
51
  import * as util from '../base/util';
52
+ import { ToolbarItem } from '../models/toolbar';
52
53
  /**
53
54
  * Represents the Schedule component that displays a list of events scheduled against specific date and timings,
54
55
  * thus helping us to plan and manage it properly.
@@ -1435,6 +1436,7 @@ var Schedule = /** @class */ (function (_super) {
1435
1436
  }
1436
1437
  break;
1437
1438
  case 'showHeaderBar':
1439
+ case 'toolbarItems':
1438
1440
  this.destroyHeaderModule();
1439
1441
  if (newProp.showHeaderBar) {
1440
1442
  this.headerModule = new HeaderRenderer(this);
@@ -2786,6 +2788,9 @@ var Schedule = /** @class */ (function (_super) {
2786
2788
  __decorate([
2787
2789
  Property(true)
2788
2790
  ], Schedule.prototype, "allowSwiping", void 0);
2791
+ __decorate([
2792
+ Collection([], ToolbarItem)
2793
+ ], Schedule.prototype, "toolbarItems", void 0);
2789
2794
  __decorate([
2790
2795
  Property('Week')
2791
2796
  ], Schedule.prototype, "currentView", void 0);
@@ -110,3 +110,15 @@ export declare type WeekRule = 'FirstDay' | 'FirstFourDayWeek' | 'FirstFullWeek'
110
110
  * ```
111
111
  */
112
112
  export declare type SpannedEventPlacement = 'AllDayRow' | 'TimeSlot';
113
+ /**
114
+ * An enum that holds the options to define name of the toolbar items to access default toolbar items in the Scheduler.
115
+ * ```props
116
+ * Previous :- Denotes the previous date navigation button in the Schedule toolbar.
117
+ * Next :- Denotes the next date navigation button in the Schedule toolbar.
118
+ * Today :- Denotes the today button in the Schedule toolbar.
119
+ * Views :- Denotes the view-switching in the Schedule toolbar.
120
+ * DateRangeText :- Denotes the date range text in the Schedule toolbar.
121
+ * NewEvent :- Denotes the new event button in the Schedule toolbar.
122
+ * ```
123
+ */
124
+ export declare type ToolbarName = 'Custom' | 'Previous' | 'Next' | 'Today' | 'Views' | 'DateRangeText' | 'NewEvent';
@@ -272,7 +272,7 @@ var AgendaBase = /** @class */ (function (_super) {
272
272
  AgendaBase.prototype.createResourceTableRow = function (tContent, tBody) {
273
273
  var tr = createElement('tr');
274
274
  var ntr;
275
- var td = createElement('td', { attrs: { 'aria-selected': 'false' } });
275
+ var td = createElement('td');
276
276
  var tempData;
277
277
  var rowSpan = 0;
278
278
  var level;
@@ -88,6 +88,7 @@ export declare class EventBase {
88
88
  createEventWrapper(type?: string, index?: number): HTMLElement;
89
89
  getPageCoordinates(e: MouseEvent & TouchEvent): (MouseEvent & TouchEvent) | Touch;
90
90
  renderSpannedIcon(element: HTMLElement, spanEvent: Record<string, any>): void;
91
+ addCellHeight(selector: string, eventHeight: number, eventGap: number, headerHeight: number, indHeight: number, isScrollUpdate?: boolean): void;
91
92
  private unWireEvents;
92
93
  destroy(): void;
93
94
  }
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  /* eslint-disable max-len */
3
- import { isNullOrUndefined, closest, extend, EventHandler } from '@syncfusion/ej2-base';
3
+ import { isNullOrUndefined, closest, extend, EventHandler, setStyleAttribute } from '@syncfusion/ej2-base';
4
4
  import { createElement, prepend, append, addClass, removeClass } from '@syncfusion/ej2-base';
5
5
  import { DataManager, Query, Predicate } from '@syncfusion/ej2-data';
6
6
  import { generate, getDateFromRecurrenceDateString } from '../../recurrence-editor/date-generator';
@@ -175,6 +175,9 @@ var EventBase = /** @class */ (function () {
175
175
  EventBase.prototype.processTimezone = function (event, isReverse) {
176
176
  if (isReverse === void 0) { isReverse = false; }
177
177
  var fields = this.parent.eventFields;
178
+ if (event[fields.isAllDay]) {
179
+ return event;
180
+ }
178
181
  if (event[fields.startTimezone] || event[fields.endTimezone]) {
179
182
  var startTimezone = event[fields.startTimezone] || event[fields.endTimezone];
180
183
  var endTimezone = event[fields.endTimezone] || event[fields.startTimezone];
@@ -1330,6 +1333,27 @@ var EventBase = /** @class */ (function () {
1330
1333
  append([iconBottom], element);
1331
1334
  }
1332
1335
  };
1336
+ EventBase.prototype.addCellHeight = function (selector, eventHeight, eventGap, headerHeight, indHeight, isScrollUpdate) {
1337
+ if (isScrollUpdate === void 0) { isScrollUpdate = true; }
1338
+ if (this.parent.activeViewOptions.maxEventsPerRow && !this.parent.rowAutoHeight) {
1339
+ var rows = [].slice.call(this.parent.element.querySelectorAll(selector));
1340
+ var weekNumberRows = this.parent.showWeekNumber
1341
+ ? [].slice.call(this.parent.element.querySelectorAll('.' + cls.WEEK_NUMBER_WRAPPER_CLASS + ' tbody tr'))
1342
+ : [];
1343
+ for (var _i = 0, rows_1 = rows; _i < rows_1.length; _i++) {
1344
+ var row = rows_1[_i];
1345
+ var height = (this.parent.activeViewOptions.maxEventsPerRow *
1346
+ ((eventHeight + (this.parent.currentView === 'Month' ? eventGap : 2)))) + headerHeight + indHeight;
1347
+ if (weekNumberRows.length > 0) {
1348
+ setStyleAttribute(weekNumberRows[rows.indexOf(row)].firstElementChild, { 'height': height + 'px' });
1349
+ }
1350
+ setStyleAttribute(row.firstElementChild, { 'height': height + 'px' });
1351
+ }
1352
+ if (!this.parent.enablePersistence && !this.parent.activeViewOptions.allowVirtualScrolling && isScrollUpdate) {
1353
+ this.parent.notify(event.contentReady, {});
1354
+ }
1355
+ }
1356
+ };
1333
1357
  EventBase.prototype.unWireEvents = function () {
1334
1358
  var appElements = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CLASS));
1335
1359
  for (var _i = 0, appElements_1 = appElements; _i < appElements_1.length; _i++) {
@@ -97,6 +97,8 @@ var MonthEvent = /** @class */ (function (_super) {
97
97
  cellTd.removeChild(wrapper);
98
98
  }
99
99
  this.eventHeight = util.getElementHeightFromClass(this.element, cls.APPOINTMENT_CLASS);
100
+ var selector = '.' + cls.CONTENT_TABLE_CLASS + ' tbody tr';
101
+ this.addCellHeight(selector, this.eventHeight, (this.parent.currentView === 'Month' ? EVENT_GAP : 2), this.monthHeaderHeight, this.moreIndicatorHeight);
100
102
  var scrollTop = conWrap.scrollTop;
101
103
  if (this.parent.rowAutoHeight && this.parent.virtualScrollModule && !this.parent.virtualScrollModule.isHorizontalScroll
102
104
  && !isNullOrUndefined(this.parent.currentAction)) {
@@ -497,6 +499,7 @@ var MonthEvent = /** @class */ (function (_super) {
497
499
  if ((day < 0) || (startTime.getTime() < this.parent.minDate.getTime()) || (endTime.getTime() > this.parent.maxDate.getTime())) {
498
500
  return;
499
501
  }
502
+ var eventsPerRow = this.parent.rowAutoHeight ? 1 : this.parent.activeViewOptions.maxEventsPerRow;
500
503
  var overlapCount = this.getIndex(startTime);
501
504
  event.Index = overlapCount;
502
505
  var diffInDays = event.data.count;
@@ -505,7 +508,9 @@ var MonthEvent = /** @class */ (function (_super) {
505
508
  var cellTd = this.workCells[parseInt(day.toString(), 10)];
506
509
  var appTop = (overlapCount * (this.eventHeight + EVENT_GAP));
507
510
  var height = this.monthHeaderHeight + ((overlapCount + 1) * (this.eventHeight + EVENT_GAP)) + this.moreIndicatorHeight;
508
- var enableAppRender = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;
511
+ var enableAppRender = this.parent.activeViewOptions.maxEventsPerRow && !this.parent.rowAutoHeight &&
512
+ !this.parent.eventSettings.enableIndicator ? overlapCount < eventsPerRow : this.maxOrIndicator ? overlapCount < 1
513
+ ? true : false : this.cellHeight > height;
509
514
  if (this.parent.rowAutoHeight || enableAppRender) {
510
515
  this.renderedEvents.push(extend({}, event, null, true));
511
516
  var appointmentElement = void 0;
@@ -670,7 +675,10 @@ var MonthEvent = /** @class */ (function (_super) {
670
675
  className: cls.MORE_INDICATOR_CLASS,
671
676
  innerHTML: this.getMoreIndicatorText(count),
672
677
  attrs: {
678
+ 'role': 'button',
673
679
  'tabindex': '0',
680
+ 'aria-label': this.parent.globalize.formatNumber(count) + '&nbsp;'
681
+ + (this.parent.isAdaptive ? '' : this.parent.localeObj.getConstant('more')),
674
682
  'data-count': count.toString(),
675
683
  'data-start-date': startDate.getTime().toString(),
676
684
  'data-end-date': endDate.getTime().toString()
@@ -110,6 +110,8 @@ var TimelineEvent = /** @class */ (function (_super) {
110
110
  };
111
111
  TimelineEvent.prototype.renderResourceEvents = function () {
112
112
  this.removeHeightProperty(cls.RESOURCE_COLUMN_TABLE_CLASS);
113
+ var selector = '.' + cls.RESOURCE_COLUMN_TABLE_CLASS + ' tbody tr';
114
+ this.addCellHeight(selector, this.eventHeight, EVENT_GAP, this.moreIndicatorHeight, 0, false);
113
115
  var resources = this.parent.uiStateValues.isGroupAdaptive ?
114
116
  [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
115
117
  this.parent.resourceBase.renderedResources;
@@ -152,6 +154,7 @@ var TimelineEvent = /** @class */ (function (_super) {
152
154
  return;
153
155
  }
154
156
  var cellTd = this.getCellTd();
157
+ var eventsPerRow = this.parent.rowAutoHeight ? 1 : this.parent.activeViewOptions.maxEventsPerRow;
155
158
  var overlapCount = (isNullOrUndefined(this.parent.eventSettings.sortComparer)) ? this.getIndex(startTime) : this.getSortComparerIndex(startTime, endTime);
156
159
  event.Index = overlapCount;
157
160
  var appHeight = this.eventHeight;
@@ -184,7 +187,8 @@ var TimelineEvent = /** @class */ (function (_super) {
184
187
  appLeft = (this.parent.enableRtl) ? 0 : position;
185
188
  appRight = (this.parent.enableRtl) ? position : 0;
186
189
  var height = ((overlapCount + 1) * (appHeight + EVENT_GAP)) + this.moreIndicatorHeight;
187
- var renderApp = this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;
190
+ var renderApp = this.parent.activeViewOptions.maxEventsPerRow && !this.parent.rowAutoHeight && !this.parent.eventSettings.enableIndicator
191
+ ? overlapCount < eventsPerRow : this.maxOrIndicator ? overlapCount < 1 ? true : false : this.cellHeight > height;
188
192
  if (this.parent.rowAutoHeight || renderApp) {
189
193
  var appointmentElement = void 0;
190
194
  if (isNullOrUndefined(this.inlineValue)) {
@@ -267,7 +271,9 @@ var TimelineEvent = /** @class */ (function (_super) {
267
271
  var appArea = this.cellHeight - this.moreIndicatorHeight;
268
272
  appHeight = this.withIndicator ? appArea - EVENT_GAP : appHeight;
269
273
  var renderedAppCount = Math.floor(appArea / (appHeight + EVENT_GAP));
270
- var count = (filterEvents.length - renderedAppCount) <= 0 ? 1 : (filterEvents.length - renderedAppCount);
274
+ var count = this.parent.activeViewOptions.maxEventsPerRow && !this.parent.eventSettings.enableIndicator
275
+ ? filterEvents.length - this.parent.activeViewOptions.maxEventsPerRow : (filterEvents.length - renderedAppCount) <= 0 ? 1
276
+ : filterEvents.length - renderedAppCount;
271
277
  var moreIndicatorElement = void 0;
272
278
  if (this.renderType === 'day') {
273
279
  moreIndicatorElement = this.getMoreIndicatorElement(count, startDate, endDate);
@@ -93,6 +93,8 @@ var YearEvent = /** @class */ (function (_super) {
93
93
  this.cellHeader = util.getOuterHeight(workCell.querySelector('.' + cls.DATE_HEADER_CLASS));
94
94
  var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);
95
95
  this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);
96
+ var selector = "." + cls.MONTH_HEADER_WRAPPER + " tbody tr,." + cls.RESOURCE_COLUMN_TABLE_CLASS + " tbody tr,." + cls.CONTENT_TABLE_CLASS + " tbody tr";
97
+ this.addCellHeight(selector, this.eventHeight, EVENT_GAP, this.cellHeader, this.moreIndicatorHeight);
96
98
  var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));
97
99
  var months = this.getMonths();
98
100
  var groupIndex = (this.parent.activeViewOptions.group.resources.length > 0 && this.parent.uiStateValues.isGroupAdaptive) ?
@@ -154,7 +156,9 @@ var YearEvent = /** @class */ (function (_super) {
154
156
  this_1.moreIndicatorHeight;
155
157
  var appArea = this_1.cellHeight - this_1.cellHeader - this_1.moreIndicatorHeight;
156
158
  var renderedAppCount = Math.floor(appArea / (this_1.eventHeight + EVENT_GAP));
157
- var moreIndicatorCount = (count - renderedAppCount) <= 0 ? 1 : (count - renderedAppCount);
159
+ var eventsPerRow = this_1.parent.rowAutoHeight ? 1 : this_1.parent.activeViewOptions.maxEventsPerRow;
160
+ var moreIndicatorCount = this_1.parent.activeViewOptions.maxEventsPerRow ? count - eventsPerRow
161
+ : (count - renderedAppCount) <= 0 ? 1 : count - renderedAppCount;
158
162
  if (this_1.parent.activeViewOptions.orientation === 'Horizontal') {
159
163
  var isRendered = this_1.renderedEvents.filter(function (eventObj) {
160
164
  return eventObj.Guid === eventData.Guid;
@@ -171,9 +175,12 @@ var YearEvent = /** @class */ (function (_super) {
171
175
  return "continue";
172
176
  }
173
177
  }
174
- if (this_1.parent.rowAutoHeight || this_1.cellHeight > availedHeight) {
178
+ var enableAppRender = this_1.maxOrIndicator || (overlapIndex < eventsPerRow) || (this_1.cellHeight > availedHeight);
179
+ if (this_1.parent.rowAutoHeight || enableAppRender || this_1.cellHeight > availedHeight) {
175
180
  this_1.renderEvent(eventWrapper, eventData, row, leftValue, rightValue, monthStart, dayIndex);
176
- this_1.updateCellHeight(rowTd, availedHeight);
181
+ if (this_1.parent.rowAutoHeight || this_1.cellHeight > availedHeight) {
182
+ this_1.updateCellHeight(rowTd, availedHeight);
183
+ }
177
184
  isSpannedCollection.push(eventData);
178
185
  }
179
186
  else {
@@ -244,6 +251,8 @@ var YearEvent = /** @class */ (function (_super) {
244
251
  this.cellHeader = 0;
245
252
  var eventTable = this.parent.element.querySelector('.' + cls.EVENT_TABLE_CLASS);
246
253
  this.eventHeight = util.getElementHeightFromClass(eventTable, cls.APPOINTMENT_CLASS);
254
+ var selector = "." + cls.MONTH_HEADER_WRAPPER + " tbody tr,." + cls.RESOURCE_COLUMN_TABLE_CLASS + " tbody tr,." + cls.CONTENT_TABLE_CLASS + " tbody tr";
255
+ this.addCellHeight(selector, this.eventHeight, EVENT_GAP, this.cellHeader, this.moreIndicatorHeight);
247
256
  var wrapperCollection = [].slice.call(this.parent.element.querySelectorAll('.' + cls.APPOINTMENT_CONTAINER_CLASS));
248
257
  var resources = this.parent.uiStateValues.isGroupAdaptive ?
249
258
  [this.parent.resourceBase.lastResourceLevel[this.parent.uiStateValues.groupIndex]] :
@@ -11,3 +11,4 @@ export * from './group-model';
11
11
  export * from './resources-model';
12
12
  export * from './quick-info-templates-model';
13
13
  export * from './header-rows-model';
14
+ export * from './toolbar-model';
@@ -0,0 +1,196 @@
1
+ import { Property, ChildProperty, Event, EmitType } from '@syncfusion/ej2-base';import { ClickEventArgs, DisplayMode, ItemAlign, ItemType, OverflowOption } from '@syncfusion/ej2-navigations';import { ToolbarName } from '../base/type';
2
+
3
+ /**
4
+ * Interface for a class ToolbarItem
5
+ */
6
+ export interface ToolbarItemModel {
7
+
8
+ /**
9
+ * Specifies the unique ID to be used with button or input element of Toolbar items.
10
+ *
11
+ * @default ""
12
+ */
13
+ id?: string;
14
+
15
+ /**
16
+ * Specifies the text to be displayed on the Toolbar button.
17
+ *
18
+ * @default ""
19
+ */
20
+ text?: string;
21
+
22
+ /**
23
+ * Specifies the width of the Toolbar button commands.
24
+ *
25
+ * @default 'auto'
26
+ */
27
+ width?: number | string;
28
+
29
+ /**
30
+ * Defines single/multiple classes (separated by space) to be used for customization of commands.
31
+ *
32
+ * @default ""
33
+ */
34
+ cssClass?: string;
35
+
36
+ /**
37
+ * Defines the priority of items to display it in popup always.
38
+ * It allows to maintain toolbar item on popup always but it does not work for toolbar priority items.
39
+ *
40
+ * @default false
41
+ */
42
+ showAlwaysInPopup?: boolean;
43
+
44
+ /**
45
+ * Specifies whether an item should be disabled or not.
46
+ *
47
+ * @default false
48
+ */
49
+ disabled?: boolean;
50
+
51
+ /**
52
+ * Defines single/multiple classes separated by space used to specify an icon for the button.
53
+ * The icon will be positioned before the text content if text is available, otherwise the icon alone will be rendered.
54
+ *
55
+ * @default ""
56
+ */
57
+ prefixIcon?: string;
58
+
59
+ /**
60
+ * Defines single/multiple classes separated by space used to specify an icon for the button.
61
+ * The icon will be positioned after the text content if text is available.
62
+ *
63
+ * @default ""
64
+ */
65
+ suffixIcon?: string;
66
+
67
+ /**
68
+ * Specifies whether an item should be hidden or not.
69
+ *
70
+ * @default true
71
+ */
72
+ visible?: boolean;
73
+
74
+ /**
75
+ * Specifies the Toolbar command display area when an element's content is too large to fit available space.
76
+ * This is applicable only to `popup` mode. The possible values for this property as follows
77
+ * * `Show`: Always shows the item as the primary priority on the *Toolbar*.
78
+ * * `Hide`: Always shows the item as the secondary priority on the *popup*.
79
+ * * `None`: No priority for display, and as per normal order moves to popup when content exceeds.
80
+ *
81
+ * @default 'None'
82
+ * @aspDefaultValue Syncfusion.EJ2.Navigations.OverflowOption.None
83
+ * @isEnumeration true
84
+ * @aspType Syncfusion.EJ2.Navigations.OverflowOption
85
+ */
86
+ overflow?: OverflowOption;
87
+
88
+ /**
89
+ * Specifies the HTML element/element ID as a string that can be added as a Toolbar command.
90
+ * ```
91
+ * E.g - items: [{ template: '<input placeholder="Search"/>' },{ template: '#checkbox1' }]
92
+ * ```
93
+ *
94
+ * @default ""
95
+ * @angularType string | object
96
+ * @reactType string | function | JSX.Element
97
+ * @vueType string | function
98
+ * @aspType string
99
+ */
100
+ template?: string | Object | Function;
101
+
102
+ /**
103
+ * Specifies the types of command to be rendered in the Toolbar.
104
+ * Supported types are:
105
+ * * `Button`: Creates the Button control with its given properties like text, prefixIcon, etc.
106
+ * * `Separator`: Adds a horizontal line that separates the Toolbar commands.
107
+ * * `Input`: Creates an input element that is applicable to template rendering with Syncfusion controls like DropDownList,
108
+ * AutoComplete, etc.
109
+ *
110
+ * @default 'Button'
111
+ * @aspDefaultValue Syncfusion.EJ2.Navigations.ItemType.Button
112
+ * @isEnumeration true
113
+ * @aspType Syncfusion.EJ2.Navigations.ItemType
114
+ */
115
+ type?: ItemType;
116
+
117
+ /**
118
+ * Specifies where the button text will be displayed on *popup mode* of the Toolbar.
119
+ * The possible values for this property as follows
120
+ * * `Toolbar`: Text will be displayed on *Toolbar* only.
121
+ * * `Overflow`: Text will be displayed only when content overflows to *popup*.
122
+ * * `Both`: Text will be displayed on *popup* and *Toolbar*.
123
+ *
124
+ * @default 'Both'
125
+ * @aspDefaultValue Syncfusion.EJ2.Navigations.DisplayMode.Both
126
+ * @isEnumeration true
127
+ * @aspType Syncfusion.EJ2.Navigations.DisplayMode
128
+ */
129
+ showTextOn?: DisplayMode;
130
+
131
+ /**
132
+ * Defines htmlAttributes used to add custom attributes to Toolbar command.
133
+ * Supports HTML attributes such as style, class, etc.
134
+ *
135
+ * @default null
136
+ */
137
+ htmlAttributes?: { [key: string]: string };
138
+
139
+ /**
140
+ * Specifies the text to be displayed on hovering the Toolbar button.
141
+ *
142
+ * @default ""
143
+ */
144
+ tooltipText?: string;
145
+
146
+ /**
147
+ * Specifies the location for aligning Toolbar items on the Toolbar. Each command will be aligned according to the `align` property.
148
+ * The possible values for this property as follows
149
+ * * `Left`: To align commands to the left side of the Toolbar.
150
+ * * `Center`: To align commands at the center of the Toolbar.
151
+ * * `Right`: To align commands to the right side of the Toolbar.
152
+ *
153
+ * @default 'Left'
154
+ * @aspDefaultValue Syncfusion.EJ2.Navigations.ItemAlign.Left
155
+ * @isEnumeration true
156
+ * @aspType Syncfusion.EJ2.Navigations.ItemAlign
157
+ */
158
+ align?: ItemAlign;
159
+
160
+ /**
161
+ * Specifies the tab order of the Toolbar items. When positive values assigned, it allows to switch focus to the next/previous toolbar items with Tab/ShiftTab keys.
162
+ * By default, user can able to switch between items only via arrow keys.
163
+ * If the value is set to 0 for all tool bar items, then tab switches based on element order.
164
+ *
165
+ * @default -1
166
+ */
167
+ tabIndex?: number;
168
+
169
+ /**
170
+ * Specifies the unique name for each toolbar item rendered in Schedule. This name is used to map the toolbar items in the Schedule component.
171
+ *
172
+ * To access the default toolbar items, provide the name below,
173
+ *
174
+ * * `Custom`: Schedule component render the custom toolbar item.
175
+ * * `Previous`: Schedule component navigates to the previous date from the current date.
176
+ * * `Next`: Schedule component navigates to the next date from the current date.
177
+ * * `Today`: Schedule component navigates to the current date from any date.
178
+ * * `Views`: Schedule component render the defined view options in the toolbar. If view option is not defined, then it will render default view options in the Schedule.
179
+ * * `DateRangeText`: Schedule component displays the current date text range.
180
+ * * `NewEvent`: Schedule component render the icon to add a new event.
181
+ *
182
+ * @default 'Custom'
183
+ * @aspDefaultValue Custom
184
+ * @isEnumeration true
185
+ * @aspType ToolbarName
186
+ */
187
+ name?: ToolbarName;
188
+
189
+ /**
190
+ * Event triggers when `click` the toolbar item.
191
+ *
192
+ * @event click
193
+ */
194
+ click?: EmitType<ClickEventArgs>;
195
+
196
+ }