@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.
- package/CHANGELOG.md +10 -0
- package/README.md +1 -1
- package/dist/ej2-schedule.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js +2 -2
- package/dist/ej2-schedule.umd.min.js.map +1 -1
- package/dist/es6/ej2-schedule.es2015.js +272 -34
- package/dist/es6/ej2-schedule.es2015.js.map +1 -1
- package/dist/es6/ej2-schedule.es5.js +335 -64
- package/dist/es6/ej2-schedule.es5.js.map +1 -1
- package/dist/global/ej2-schedule.min.js +2 -2
- package/dist/global/ej2-schedule.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +16 -16
- package/src/recurrence-editor/recurrence-editor.js +4 -2
- package/src/schedule/actions/drag.js +4 -4
- package/src/schedule/base/schedule-model.d.ts +15 -1
- package/src/schedule/base/schedule.d.ts +14 -1
- package/src/schedule/base/schedule.js +5 -0
- package/src/schedule/base/type.d.ts +12 -0
- package/src/schedule/event-renderer/agenda-base.js +1 -1
- package/src/schedule/event-renderer/event-base.d.ts +1 -0
- package/src/schedule/event-renderer/event-base.js +25 -1
- package/src/schedule/event-renderer/month.js +9 -1
- package/src/schedule/event-renderer/timeline-view.js +8 -2
- package/src/schedule/event-renderer/year.js +12 -3
- package/src/schedule/models/models.d.ts +1 -0
- package/src/schedule/models/toolbar-model.d.ts +196 -0
- package/src/schedule/models/toolbar.d.ts +176 -0
- package/src/schedule/models/toolbar.js +85 -0
- package/src/schedule/models/views-model.d.ts +9 -0
- package/src/schedule/models/views.d.ts +8 -0
- package/src/schedule/models/views.js +3 -0
- package/src/schedule/popups/event-window.js +4 -10
- package/src/schedule/popups/quick-popups.js +2 -2
- package/src/schedule/renderer/header-renderer.d.ts +2 -0
- package/src/schedule/renderer/header-renderer.js +142 -4
- package/src/schedule/renderer/renderer.js +1 -1
- package/src/schedule/renderer/vertical-view.js +3 -3
- package/src/schedule/renderer/year.js +3 -0
- package/styles/bootstrap-dark.css +26 -22
- package/styles/bootstrap.css +26 -22
- package/styles/bootstrap4.css +25 -21
- package/styles/bootstrap5-dark.css +30 -26
- package/styles/bootstrap5.css +30 -26
- package/styles/fabric-dark.css +28 -24
- package/styles/fabric.css +28 -24
- package/styles/fluent-dark.css +28 -24
- package/styles/fluent.css +28 -24
- package/styles/highcontrast-light.css +26 -22
- package/styles/highcontrast.css +26 -22
- package/styles/material-dark.css +26 -22
- package/styles/material.css +26 -22
- package/styles/material3-dark.css +29 -25
- package/styles/material3.css +29 -25
- package/styles/recurrence-editor/_bootstrap-dark-definition.scss +3 -1
- package/styles/recurrence-editor/_bootstrap-definition.scss +3 -1
- package/styles/recurrence-editor/_bootstrap4-definition.scss +3 -1
- package/styles/recurrence-editor/_bootstrap5-definition.scss +5 -3
- package/styles/recurrence-editor/_fabric-dark-definition.scss +4 -2
- package/styles/recurrence-editor/_fabric-definition.scss +4 -2
- package/styles/recurrence-editor/_fluent-definition.scss +4 -2
- package/styles/recurrence-editor/_fusionnew-definition.scss +4 -2
- package/styles/recurrence-editor/_highcontrast-definition.scss +3 -1
- package/styles/recurrence-editor/_highcontrast-light-definition.scss +3 -1
- package/styles/recurrence-editor/_layout.scss +3 -10
- package/styles/recurrence-editor/_material-dark-definition.scss +3 -1
- package/styles/recurrence-editor/_material-definition.scss +3 -1
- package/styles/recurrence-editor/_material3-definition.scss +4 -2
- package/styles/recurrence-editor/_tailwind-definition.scss +5 -3
- package/styles/recurrence-editor/bootstrap-dark.css +5 -10
- package/styles/recurrence-editor/bootstrap.css +5 -10
- package/styles/recurrence-editor/bootstrap4.css +4 -9
- package/styles/recurrence-editor/bootstrap5-dark.css +9 -14
- package/styles/recurrence-editor/bootstrap5.css +9 -14
- package/styles/recurrence-editor/fabric-dark.css +7 -12
- package/styles/recurrence-editor/fabric.css +7 -12
- package/styles/recurrence-editor/fluent-dark.css +7 -12
- package/styles/recurrence-editor/fluent.css +7 -12
- package/styles/recurrence-editor/highcontrast-light.css +5 -10
- package/styles/recurrence-editor/highcontrast.css +5 -10
- package/styles/recurrence-editor/material-dark.css +5 -10
- package/styles/recurrence-editor/material.css +5 -10
- package/styles/recurrence-editor/material3-dark.css +7 -12
- package/styles/recurrence-editor/material3.css +7 -12
- package/styles/recurrence-editor/tailwind-dark.css +9 -14
- package/styles/recurrence-editor/tailwind.css +9 -14
- package/styles/schedule/_bootstrap-dark-definition.scss +6 -2
- package/styles/schedule/_bootstrap-definition.scss +6 -2
- package/styles/schedule/_bootstrap4-definition.scss +6 -2
- package/styles/schedule/_bootstrap5-definition.scss +6 -2
- package/styles/schedule/_fabric-dark-definition.scss +6 -2
- package/styles/schedule/_fabric-definition.scss +6 -2
- package/styles/schedule/_fluent-definition.scss +6 -2
- package/styles/schedule/_fusionnew-definition.scss +6 -2
- package/styles/schedule/_highcontrast-definition.scss +6 -2
- package/styles/schedule/_highcontrast-light-definition.scss +6 -2
- package/styles/schedule/_layout.scss +23 -10
- package/styles/schedule/_material-dark-definition.scss +6 -2
- package/styles/schedule/_material-definition.scss +6 -2
- package/styles/schedule/_material3-definition.scss +6 -2
- package/styles/schedule/_tailwind-definition.scss +6 -2
- package/styles/schedule/bootstrap-dark.css +21 -12
- package/styles/schedule/bootstrap.css +21 -12
- package/styles/schedule/bootstrap4.css +21 -12
- package/styles/schedule/bootstrap5-dark.css +21 -12
- package/styles/schedule/bootstrap5.css +21 -12
- package/styles/schedule/fabric-dark.css +21 -12
- package/styles/schedule/fabric.css +21 -12
- package/styles/schedule/fluent-dark.css +21 -12
- package/styles/schedule/fluent.css +21 -12
- package/styles/schedule/highcontrast-light.css +21 -12
- package/styles/schedule/highcontrast.css +21 -12
- package/styles/schedule/material-dark.css +21 -12
- package/styles/schedule/material.css +21 -12
- package/styles/schedule/material3-dark.css +22 -13
- package/styles/schedule/material3.css +22 -13
- package/styles/schedule/tailwind-dark.css +22 -13
- package/styles/schedule/tailwind.css +22 -13
- package/styles/tailwind-dark.css +31 -27
- package/styles/tailwind.css +31 -27
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version :
|
|
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@
|
|
3
|
+
"_id": "@syncfusion/ej2-schedule@24.1.41",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
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-
|
|
27
|
-
"_shasum": "
|
|
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-
|
|
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": "~
|
|
39
|
-
"@syncfusion/ej2-buttons": "~
|
|
40
|
-
"@syncfusion/ej2-calendars": "~
|
|
41
|
-
"@syncfusion/ej2-data": "~
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~
|
|
43
|
-
"@syncfusion/ej2-excel-export": "~
|
|
44
|
-
"@syncfusion/ej2-inputs": "~
|
|
45
|
-
"@syncfusion/ej2-lists": "~
|
|
46
|
-
"@syncfusion/ej2-navigations": "~
|
|
47
|
-
"@syncfusion/ej2-popups": "~
|
|
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": "
|
|
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'
|
|
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.
|
|
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) + ' '
|
|
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.
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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.
|
|
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]] :
|
|
@@ -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
|
+
}
|