123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886 |
- {
- This file is part of the Pas2JS run time library.
- Copyright (C) 2019 Michael Van Canneyt
- FullCalendar version 5 mappings for pas2js
- See the file COPYING.FPC, included in this distribution,
- for details about the copyright.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- **********************************************************************}
- {$IFNDEF FPC_DOTTEDUNITS}
- unit libfullcalendar5;
- {$ENDIF}
- {$mode objfpc}
- {$modeswitch externalclass}
- interface
- uses
- {$IFNDEF FPC_DOTTEDUNITS}
- System.SysUtils, System.Types, JSApi.JS, BrowserApi.Web;
- {$ELSE}
- sysutils, types, js, web;
- {$ENDIF}
- Const
- fcViewMonth = 'dayGridMonth';
- fcViewWeek = 'timeGridWeek';
- fcViewDay = 'timeGridDay';
- // A list of plugin names, created from the plugin index page
- fcInteractionPlugin = 'interaction';
- fcDayGridPlugin = 'dayGrid';
- fcTimeGridPlugin = 'timeGrid';
- fcListPlugin = 'list';
- fcTimelinePlugin = 'timeline';
- fcResourceDayGridPlugin = 'resourceDayGrid';
- fcResourceTimeGridPlugin = 'resourceTimeGrid';
- fcResourceTimelinePlugin = 'resourceTimeline';
- fcBootstrapPlugin = 'bootstrap';
- fcGoogleCalendarPlugin = 'googleCalendar';
- fcRRulePlugin = 'rrule';
- fcMomentPlugin = 'moment';
- fcMomentTimezonePlugin = 'momentTimeZone';
- fcReactPlugin = 'react';
- fcAngularPlugin = 'angular';
- fcVuePlugin = 'vue';
- fcHeaderFooterTitle = 'title';
- fcHeaderFooterPrev = 'prev';
- fcHeaderFooterNext = 'next';
- fcHeaderFooterPrevYear = 'prevYear';
- fcHeaderFooterNextYear = 'nextYear';
- fcHeaderFooterToday = 'today';
- fcDateFormatNumeric = 'numeric';
- fcDateFormat2Digit = '2-digit';
- fcDateFormatLong = 'long';
- fcDateFormatShort = 'short';
- fcDateFormatNarrow = 'narrow';
-
- fcEventDisplayAuto = 'auto';
- fcEventDisplayBlock = 'block';
- fcEventDisplayListItem = 'list-item';
- fcEventDisplayBackground = 'background';
- fcEventDisplayInverseBackground = 'inverse-background';
- fcEventDisplayNone = 'none';
- fcSlotFuture = 'fc-slot-future';
- fcSlotPast = 'fc-slot-past';
- fcSlotFri = 'fc-slot-fri';
- fcSlotSat = 'fc-slot-sat';
- fcSlotSun = 'fc-slot-sun';
- fcSlotToday = 'fc-slot-today';
- Type
- TProcedural = reference to procedure;
- TDateFunction = reference to Function : TJSDate;
- TDateFormatter = Class external name 'Object' (TJSObject)
- // Use fcDateFormat* constants
- year : String;
- month : String;
- day : String;
- week : string;
- meridiem : string;
- weekday : String;
- hour : string;
- minute : string;
- second : string;
- hour12 : Boolean;
- timeZoneName : string;
- omitZeroMinute : Boolean;
- omitCommas : Boolean;
- end;
- TDuration = Class external name 'Object' (TJSObject)
- years : NativeInt;
- months : NativeInt;
- days : NativeInt;
- milliseconds : NativeInt;
- end;
- TDateRange = Class external name 'Object' (TJSObject)
- start : TJSDate;
- startStr : string; external name 'start';
- startInt : nativeInt; external name 'start';
- end;
- TCalendarHeaderFooterOptions = Class external name 'Object' (TJSObject)
- // use the fcHeaderFooter consts
- start : string;
- end_ : string; external name 'end';
- center : string;
- end;
- TDateFormatHandler = reference to function(aDate : TJSDate) : String;
- TButtonText = Class external name 'Object' (TJSObject)
- today : string;
- month : string;
- week : string;
- day : string;
- list : string;
- end;
- TButtonTextRec = record
- today : string;
- month : string;
- week : string;
- day : string;
- list : string;
- end;
- TButtonIcons = Class external name 'Object' (TJSObject)
- title : string;
- prev : string;
- next : string;
- prevYear : string;
- nextYear : string;
- today : string;
- end;
- TButtonIconsRec = record
- today : string;
- title : string;
- prev : string;
- next : string;
- prevYear : string;
- nextYear : string;
- end;
- TCustomButtonSpec = record
- text : string;
- click : TJSEventHandler;
- end;
- TFontAwesomeSpec = Class external name 'Object' (TJSObject)
- close : string;
- title : string;
- prev : string;
- next : string;
- prevYear : string;
- nextYear : string;
- today : string;
- end;
- TFontAwesomeSpecRec = record
- close : string;
- title : string;
- prev : string;
- next : string;
- prevYear : string;
- nextYear : string;
- today : string;
- end;
- TCustomButtonSpecs = Class external name 'Object' (TJSObject)
- private
- function GetButton(Name: String): TCustomButtonSpec; external name '[]';
- procedure SetButton(Name: String; const AValue: TCustomButtonSpec); external name '[]';
- Public
- property buttons [aIndex : string] : TCustomButtonSpec read GetButton Write SetButton;
- end;
- TBusinessHoursSpec = Class external name 'Object' (TJSObject)
- daysOfWeek : TIntegerDynArray;
- startTime : TDuration;
- startTimeStr : string; external name 'startTime';
- startTimeInt : nativeInt; external name 'startTime';
- endTime : TDuration;
- endTimeStr : string; external name 'endTime';
- endTimeInt : nativeInt; external name 'endTime';
- end;
- TBusinessHoursSpecArray = Array of TBusinessHoursSpec;
- TCalendarEvent = Class;
- TCalendarResource = Class;
- TFullCalendarView = class;
- TAllowDropInfo = record
- allDay : Boolean;
- end_ : TJSDate; external name 'end';
- resource : TCalendarResource;
- start : TJSDate;
- startStr : String;
- end;
- TAllowFunction = reference to function (dropInfo : TAllowDropInfo; draggedEvent : TCalendarEvent) : Boolean;
- TBaseCalendarResource = Class external name 'Object' (TJSObject)
- id : String;
- title : string;
- eventColor : string;
- eventBackgroundColor : string;
- eventBorderColor : string;
- eventTextColor : string;
- eventClassNames : String;
- eventClassNamesArray : TStringDynArray; external name 'eventClassNames';
- eventOverlap : Boolean;
- eventAllow : TAllowFunction;
- end;
- TBaseCalendarResourceArray = array of TBaseCalendarResource;
- TCalendarResource = Class external name 'Object' (TJSObject)
- end;
- TCalendarResourceArray = array of TCalendarResource;
- THeightHandler = Reference to function : NativeInt;
- TBaseCalendarEvent = Class external name 'Object' (TJSObject)
- id : string;
- idInt : NativeInt; external name 'id';
- groupId : string;
- groupIdInt : NativeInt; external name 'groupId';
- allDay : Boolean;
- start : TJSDate;
- startStr : string; external name 'start';
- startInt : nativeInt; external name 'start';
- end_ : TJSDate; external name 'end';
- endStr : string; external name 'end';
- endInt : nativeInt; external name 'end';
- daysOfWeek : TIntegerDynArray;
- startTime : TDuration;
- startTimeStr : string; external name 'startTime';
- endTime : TDuration;
- endTimeStr : string; external name 'endTime';
- startRecur : TJSDate;
- startRecurStr : string; external name 'startRecur';
- startRecurInt : nativeInt; external name 'startRecur';
- endRecur : TJSDate;
- endRecurStr : string; external name 'endRecur';
- endRecurInt : nativeInt; external name 'endRecur';
- title : string;
- url : string;
- classNames : string;
- classNamesArray : TStringDynArray; external name 'classNames';
- editable : boolean;
- startEditable : Boolean;
- durationEditable : Boolean;
- resourceEditable : Boolean;
- resourceId : String;
- resourceIds : TStringDynArray;
- display : string;
- overlap : boolean;
- constraint : string;
- constraintObj : TBusinessHoursSpec; external name 'constraint';
- color : string;
- backgroundColor : string;
- borderColor : string;
- textColor : string;
- extendedProps : TJSObject;
- end;
- TBaseCalendarEventArray = array of TBaseCalendarEvent;
- { TBaseCalendarEventHelper }
- TBaseCalendarEventHelper = class helper for TBaseCalendarEvent
- class function event(const aTitle : String; aStart,aEnd : TDateTime) : TBaseCalendarEvent; static;
- end;
- { TCalendarEvent }
- TCalendarEvent = Class external name 'Object' (TJSObject)
- private
- FAllDay: Boolean; external name 'allDay';
- FbackgroundColor: string; external name 'backgroundColor';
- FBorderColor: string; external name 'borderColor';
- FClassNames: TStringDynArray; external name 'classNames';
- FdurationEditable: Boolean; external name 'durationEditable';
- feditable: boolean; external name 'editable';
- FEnd: TJSDate; external name 'end';
- fEventConstraint: string; external name 'eventConstraint';
- FExtendedProps: TJSObject; external name 'extendedProps';
- FGroupID: string; external name 'groupId';
- FID: string; external name 'id';
- FOverLap: boolean; external name 'overlap';
- FRendering: string; external name 'rendering';
- FresourceEditable: Boolean; external name 'resourceEditable';
- FSource: JSValue; external name 'source';
- FStart: TJSDate; external name 'start';
- FstartEditable: Boolean; external name 'startEditable';
- FTextColor: string; external name 'textColor';
- FTitle: string; external name 'title';
- FURL: string; external name 'url';
- Public
- procedure setProp(const aName : string; aValue : JSValue);
- procedure setExtendedProp(const aName : string; aValue : JSValue);
- Procedure setStart(aDate : TJSDate); overload;
- Procedure setStart(aDate : String); overload;
- Procedure setStart(aDate : NativeInt); overload;
- Procedure setStart(aDate : TJSDate; Options : TJSObject); overload;
- Procedure setStart(aDate : String; Options : TJSObject); overload;
- Procedure setStart(aDate : NativeInt; Options : TJSObject); overload;
- Procedure setEnd(aDate : TJSDate); overload;
- Procedure setEnd(aDate : String); overload;
- Procedure setEnd(aDate : NativeInt); overload;
- Procedure setDates(aStart,aEnd : TJSDate); overload;
- Procedure setDates(aStart,aEnd : String); overload;
- Procedure setDates(aStart,aEnd : NativeInt); overload;
- Procedure setDates(aStart,aEnd : TJSDate; Options : TJSObject); overload;
- Procedure setDates(aStart,aEnd : String; Options : TJSObject); overload;
- Procedure setDates(aStart,aEnd : NativeInt; Options : TJSObject); overload;
- Procedure setAllDay(aValue : Boolean); overload;
- Procedure setAllDay(aValue : Boolean; Options:TJSObject); overload;
- Procedure moveStart(aDelta : TDuration); overload;
- Procedure moveStart(aDelta : String); overload;
- Procedure moveStart(aDelta : NativeInt); overload;
- Procedure moveEnd(aDelta : TDuration); overload;
- Procedure moveEnd(aDelta : String); overload;
- Procedure moveEnd(aDelta : NativeInt); overload;
- Procedure moveDates(aDelta : TDuration); overload;
- Procedure moveDates(aDelta : String); overload;
- Procedure moveDates(aDelta : NativeInt); overload;
- Procedure formatRange(formatter : TDateFormatter);
- Procedure remove;
- Function getResources : TCalendarResourceArray;
- Procedure setResources(aResources : array of string); overload;
- Procedure setResources(aResources : TCalendarResourceArray); overload;
- Property id : string read FID;
- Property groupId : string read FGroupID;
- Property allDay : Boolean read FAllDay;
- Property start : TJSDate read FStart;
- Property end_ : TJSDate read FEnd;
- Property title : string read FTitle;
- Property url : string read FURL;
- Property classNames : TStringDynArray read FClassNames;
- Property editable : boolean read feditable;
- Property startEditable : Boolean read FstartEditable;
- property eventConstraint : string Read fEventConstraint;
- Property durationEditable : Boolean Read FdurationEditable;
- Property resourceEditable : Boolean read FresourceEditable;
- Property rendering : string read FRendering;
- Property overlap : boolean read FOverLap;
- Property backgroundColor : string read FbackgroundColor;
- Property borderColor : string read FBorderColor;
- Property textColor : string Read FTextColor;
- Property extendedProps : TJSObject Read FExtendedProps;
- Property source : JSValue Read FSource;
- end;
- TCalendarEventArray = array of TCalendarEvent;
- TGoogleCalendarEventsSpec = Class external name 'Object' (TJSObject)
- googleCalendarId : String;
- // Other options can be specified
- end;
- TJSONFeedSpec = Class external name 'Object' (TJSObject)
- url : string;
- // Other options can be specified
- end;
- TEventGeneratorInfo = record
- start : TJSDate;
- end_ : TJSDate; external name 'end';
- startStr : String;
- endStr : String;
- timeZone : String;
- end;
- TSelectInfo = Record
- Start : TJSDate;
- end_ : TJSDate; external name 'end';
- resourceId : String;
- end;
- TEventMouseInfo = record
- event : TCalendarEvent;
- el : TJSHTMLElement;
- jsEvent : TJSEvent;
- view : TFullCalendarView;
- end;
- TGenerateEventsCallBack = Procedure (Res : TBaseCalendarEventArray);
- TGenerateEventsFailureCallBack = Procedure (Res : JSValue);
- TCalendarEventGenerator = reference to Procedure (info : TEventGeneratorInfo; successCallBack : TGenerateEventsCallBack; FailCallBack : TGenerateEventsFailureCallBack);
- TCalendarLoadingCallback = reference to procedure (isLoading : Boolean);
- TSelectOverlapHandler = reference to function(Event : TJSObject) : boolean;
- TSelectAllowHandler = reference to function(info : TSelectInfo) : Boolean;
- TEventMouseEventHandler = reference to procedure(info : TEventMouseInfo);
- TCalendarEventSource = Class external name 'Object' (TJSObject)
- events : TBaseCalendarEventArray;
- eventsStr : string; external name 'events'; // JSON feed
- eventsFunc : TCalendarEventGenerator; external name 'events'; // JSON feed
- eventsJSONFeed : TJSONFeedSpec; external name 'events'; // JSON feed
- eventsArr : TCalendarEventArray; external name 'events'; // JSON feed
- eventsObjList : TJSObjectDynArray ; external name 'events'; // Roll your own
- Procedure refetch;
- Procedure remove;
- end;
- TCalendarEventRenderInfo = record
- event: TCalendarEvent;
- el : TJSHTMLElement;
- timeText : string;
- isStart : Boolean;
- isEnd : Boolean;
- isMirror : Boolean;
- isPast : Boolean;
- isFuture : Boolean;
- isToday : Boolean;
- view : TFullCalendarView;
- end;
- TCalendarEventContentObj = Class external name 'Object' (TJSObject)
- html : string;
- domNodes : Array of TJSHTMLElement;
- end;
- TSlotLabelContentObj = TCalendarEventContentObj;
- TSlotLaneContentObj = TCalendarEventContentObj;
- TweekNumberContentObj = TCalendarEventContentObj;
- TViewContentObj = TCalendarEventContentObj;
- TRevertHandler = reference to procedure;
- TAddEventInfo = Class external name 'Object' (TJSObject)
- event : TCalendarEvent;
- relatedEvents : TCalendarEventArray;
- revert : TRevertHandler;
- end;
- TChangeEventInfo = Class external name 'Object' (TJSObject)
- event : TCalendarEvent;
- oldevent : TCalendarEvent;
- relatedEvents : TCalendarEventArray;
- revert : TRevertHandler;
- end;
- TRemoveEventInfo = Class external name 'Object' (TJSObject)
- event : TCalendarEvent;
- relatedEvents : TCalendarEventArray;
- revert : TRevertHandler;
- end;
-
- TCalendarViewRenderInfo = record
- view: TFullCalendarView;
- el : TJSHTMLElement;
- end;
-
- TDayHeaderRenderInfo = Record
- date : TJSDate;
- text : string;
- isPast : Boolean;
- isFuture : Boolean;
- isToday : Boolean;
- isOther : boolean;
- resource : TJSObject;
- el : TJSHTMLElement;
- end;
- TDayCellRenderInfo = Record
- date : TJSDate;
- dayNumberText : string;
- isPast : Boolean;
- isFuture : Boolean;
- isToday : Boolean;
- isOther : boolean;
- resource : TJSObject;
- el : TJSHTMLElement;
- end;
- TSlotLabelRenderInfo = Record
- date : TJSDate;
- text : string;
- isPast : Boolean;
- isFuture : Boolean;
- isToday : Boolean;
- lebel : Integer;
- el : TJSHTMLElement;
- end;
- TSlotLaneRenderInfo = TSlotLabelRenderInfo;
- TWeekNumberRenderInfo = Record
- num : integer;
- text : string;
- date : TJSDate;
- end;
- TCalendarEventClassNamesCallback = reference to function(Info : TCalendarEventRenderInfo) : string;
- TCalendarEventContentCallback = reference to function (Info : TCalendarEventRenderInfo) : TCalendarEventContentObj;
- TCalendarEventMountCallback = reference to Procedure (Info : TCalendarEventRenderInfo);
- TEventSortCallBack = reference to function (ev1,ev2 : TCalendarEvent) : Integer;
- TCalendarEventSourceArray = Array of TCalendarEventSource;
- TAddEventCallBack = reference to procedure (addInfo : TAddEventInfo);
- TChangeEventCallBack = reference to procedure (changeInfo : TChangeEventInfo);
- TRemoveEventCallBack = reference to procedure (removeInfo : TRemoveEventInfo);
- TCalendarViewClassNamesCallback = reference to function(Info : TCalendarViewRenderInfo) : string;
- TCalendarViewMountCallback = reference to Procedure (Info : TCalendarViewRenderInfo);
- TDayHeaderClassNamesCallback = reference to function(Info : TDayHeaderRenderInfo) : string;
- TDayHeaderContentStrCallback = reference to function (Info : TDayHeaderRenderInfo) : string;
- TDayHeaderContentObjCallback = reference to function (Info : TDayHeaderRenderInfo) : TCalendarEventContentObj;
- TDayHeaderMountCallback = reference to Procedure (Info : TDayHeaderRenderInfo);
- TDayCellClassNamesCallback = reference to function(Info : TDayCellRenderInfo) : string;
- TDayCellContentStrCallback = reference to function (Info : TDayCellRenderInfo) : string;
- TDayCellContentObjCallback = reference to function (Info : TDayCellRenderInfo) : TCalendarEventContentObj;
- TDayCellMountCallback = reference to Procedure (Info : TDayCellRenderInfo);
- TSlotLabelClassNamesCallback = reference to function(Info : TSlotLabelRenderInfo) : string;
- TSlotLabelContentStrCallback = reference to function (Info : TSlotLabelRenderInfo) : string;
- TSlotLabelContentObjCallback = reference to function (Info : TSlotLabelRenderInfo) : TCalendarEventContentObj;
- TSlotLabelMountCallback = reference to Procedure (Info : TSlotLabelRenderInfo);
- TSlotLaneClassNamesCallback = reference to function(Info : TSlotLaneRenderInfo) : string;
- TSlotLaneContentStrCallback = reference to function (Info : TSlotLaneRenderInfo) : string;
- TSlotLaneContentObjCallback = reference to function (Info : TSlotLaneRenderInfo) : TCalendarEventContentObj;
- TSlotLaneMountCallback = reference to Procedure (Info : TSlotLaneRenderInfo);
- TweekNumberClassNamesCallback = reference to function(Info : TweekNumberRenderInfo) : string;
- TweekNumberContentStrCallback = reference to function (Info : TweekNumberRenderInfo) : string;
- TweekNumberContentObjCallback = reference to function (Info : TweekNumberRenderInfo) : TCalendarEventContentObj;
- TweekNumberMountCallback = reference to Procedure (Info : TweekNumberRenderInfo);
-
-
- TFullCalendarOptions = Class external name 'Object' (TJSObject)
- plugins : TStringDynArray;
- pluginRaw : TJSArray; external name 'plugins';
- rerenderDelay : NativeInt;
- initialDate : TJSDate;
- initialDateStr : string; external name 'initialDate';
- initialDateInt : nativeInt; external name 'initialDate';
- defaultAllDay : Boolean;
- defaultAllDayEventDuration : TDuration;
- defaultAllDayEventDurationStr : String; external name 'defaultAllDayEventDuration';
- defaultTimedEventDuration : TDuration;
- defaultTimedEventDurationStr : String; external name 'defaultTimedEventDuration';
- forceEventDuration : Boolean;
- eventDisplay : string;
- eventAdd : TAddEventCallBack;
- eventChange : TChangeEventCallBack;
- eventRemove : TRemoveEventCallBack;
- eventColor : String;
- eventBorderColor : String;
- eventTextColor : String;
- eventBackgroundColor : String;
- dateIncrement : TDuration;
- dateIncrementStr : string; external name 'dateIncrement';
- dateAlignment : String;
- validRange : TDateRange;
- headerToolbar : TCalendarHeaderFooterOptions;
- headerToolbarBool : Boolean; external name 'headerToolbar';
- footerToolbar : TCalendarHeaderFooterOptions;
- footerToolbarBool : Boolean; external name 'footerToolbar';
- titleFormat : TDateFormatter;
- titleFormatStr : string; external name 'titleFormat';
- titleFormatFunc : TDateFormatHandler; external name 'titleFormat';
- titleRangeSeparator : String;
- buttonText : TButtonText;
- buttonTextRec : TButtonTextRec;
- buttonIcons : TButtonIcons;
- buttonIconsRec : TButtonIconsRec;
- customButtons : TCustomButtonSpecs;
- customButtonsObj : TJSObject;
- themeSystem : string;
- bootstrapFontAwesome : TFontAwesomeSpec;
- bootstrapFontAwesomeRec : TFontAwesomeSpecRec;
- weekends : boolean;
- hiddenDays : TNativeIntDynArray;
- dayHeader : Boolean;
- dayHeaderFormat : TDateFormatter;
- dayHeaderClassNames : String;
- dayHeaderClassNamesFunc : TDayHeaderClassnamesCallback; external name 'dayHeaderClassNames';
- dayHeaderContent : TDayHeaderClassnamesCallback;
- dayHeaderContentStr : TDayHeaderContentStrCallback; external name 'dayHeaderContent';
- dayHeaderContentObj : TDayHeaderContentObjCallback; external name 'dayHeaderContent';
- dayHeaderDidMount : TDayHeaderMountCallBack;
- dayHeaderWillUnmount : TDayHeaderMountCallBack;
- dayCellClassNames : String;
- dayCellClassNamesFunc : TDayCellClassnamesCallback; external name 'dayCellClassNames';
- dayCellContent : TDayCellClassnamesCallback;
- dayCellContentStr : TDayCellContentStrCallback; external name 'dayCellContent';
- dayCellContentObj : TDayCellContentObjCallback; external name 'dayCellContent';
- dayCellDidMount : TDayCellMountCallBack;
- dayCellWillUnmount : TDayCellMountCallBack;
-
- slotDuration : TDuration;
- slotDurationStr : string; external name 'slotDuration';
- slotLabelInterval : TDuration;
- slotLabelIntervalStr : string; external name 'slotLabelInterval';
- slotLabelFormat : TDateFormatter;
- slotLabelFormatStr : String;
- slotMinTime : TDuration;
- slotMinTimeStr : string; external name 'slotMinTime';
- slotMaxTime : TDuration;
- slotMaxTimeStr : string; external name 'slotMaxTime';
- slotMinWidth : Integer;
-
- slotLabelClassNames : String;
- slotLabelClassNamesFunc : TSlotLabelClassNamesCallback; external name 'slotLabelClassNames';
- slotLabelContent : String;
- slotLabelContentObj : TSlotLabelContentObj; external name 'slotLabelContent';
- slotLabelContentObjFunc : TSlotLabelContentObjCallback; external name 'slotLabelContent';
- slotLabelContentStrFunc : TSlotLabelContentStrCallback; external name 'slotLabelContent';
- slotLabelDidMount : TSlotLabelMountCallback;
- slotLabelWillUnmout : TSlotLabelMountCallback;
- slotLaneClassNames : String;
- slotLaneClassNamesFunc : TSlotLaneClassNamesCallback; external name 'slotLaneClassNames';
- slotLaneContent : String;
- slotLaneContentObj : TSlotLaneContentObj; external name 'slotLaneContent';
- slotLaneContentObjFunc : TSlotLaneContentObjCallback; external name 'slotLaneContent';
- slotLaneContentStrFunc : TSlotLaneClassNamesCallback; external name 'slotLaneContent';
- slotLaneDidMount : TSlotLaneMountCallback;
- slotLaneWillUnmout : TSlotLaneMountCallback;
-
- weekText : string;
- weekNumberFormat : TDateFormatter;
- weekNumberFormatStr : String; external name 'weekNumberFormat';
- weekNumberClassNames : String;
- weekNumberClassNamesFunc : TweekNumberClassNamesCallback; external name 'weekNumberClassNames';
- weekNumberContent : String;
- weekNumberContentObj : TweekNumberContentObj; external name 'weekNumberContent';
- weekNumberContentObjFunc : TweekNumberContentObjCallback; external name 'weekNumberContent';
- weekNumberContentStrFunc : TweekNumberClassNamesCallback; external name 'weekNumberContent';
- weekNumberDidMount : TweekNumberMountCallback;
- weekNumberWillUnmout : TweekNumberMountCallback;
-
-
- scrollTime : TDuration;
- scrollTimeStr : string; external name 'scrollTime';
- firstDay : Integer;
- locale : string;
- dir : string;
- height : Integer;
- heightStr : String; external name 'height';
- heightFunc : THeightHandler; external name 'height';
- contentHeight : Integer;
- contentHeightStr : String; external name 'contentHeight';
- contentHeightFunc : THeightHandler; external name 'contentHeight';
- aspectRatio : Double;
- handleWindoResize : Boolean;
- windowResizeDelay : Integer;
- showNonCurrentDates : Boolean;
- fixedWeekCount : Boolean;
- businessHours : TBusinessHoursSpec;
- businessHoursBool : Boolean; external name 'businessHours';
- businessHoursArray : TBusinessHoursSpecArray; external name 'businessHours';
- nowIndicator : Boolean;
- now : TJSDate;
- nowStr : string; external name 'now';
- nowInt : nativeInt; external name 'now';
- nowFunc : TDateFunction; external name 'now';
- eventLimit : Boolean;
- eventLimitInt : Integer; external name 'eventLimit';
- events : TBaseCalendarEventArray;
- eventsStr : string; external name 'events'; // JSON feed
- eventsFunc : TCalendarEventGenerator; external name 'events'; // JSON feed
- eventsJSONFeed : TJSONFeedSpec; external name 'events'; // JSON feed
- eventsArr : TCalendarEventArray; external name 'events'; // JSON feed
- eventsObjList : TJSObjectDynArray ; external name 'events'; // Roll your own
- eventSources : TCalendarEventSourceArray;
- eventClassNames : String;
- eventClassNamesFunc : TCalendarEventClassNamesCallback; external name 'eventClassNames';
- eventContent : String;
- eventContentObj : TCalendarEventContentObj; external name 'eventContent';
- eventContentObjFunc : TCalendarEventContentCallback; external name 'eventContent';
- eventContentStrFunc : TCalendarEventClassNamesCallback; external name 'eventContent';
- eventDidMount : TCalendarEventMountCallback;
- eventWillUnmout : TCalendarEventMountCallback;
- eventTimeFormat : TDateFormatter;
- eventOrder : String;
- eventOrderArr : TStringDynArray; external name 'eventOrder';
- eventOrderFunc : TEventSortCallBack; external name 'eventOrder';
- progressiveEventRendering : Boolean;
-
- displayEventTime : Boolean;
- displayEventEnd: Boolean;
- nextDayTreshold : String;
- startParam : string;
- endParam : string;
- timeZoneParam : string;
- timeZone : string;
- lazyFetching : Boolean;
- loading : TCalendarLoadingCallback;
- selectable : boolean;
- selectMirror : Boolean;
- unselectAuto : Boolean;
- unselectCancel : string;
- selectOverlap : boolean;
- selectOverlapFunc : TSelectOverlapHandler; external name 'selectOverlap';
- selectAllow : TSelectAllowHandler;
- selectMinDistance : Integer;
- selectConstraint: TBusinessHoursSpec;
- eventClick : TEventMouseEventHandler;
- eventMouseEnter : TEventMouseEventHandler;
- eventMouseLeave : TEventMouseEventHandler;
- listDayFormat : TDateFormatter;
- listDayBool : Boolean; external name 'listDayFormat';
- listDayAltFormat : TDateFormatter;
- listDayAltBool : Boolean; external name 'listDayAltFormat';
- noEventsMessage : String;
- weekNumbers : Boolean;
- dayMaxEvents : Integer;
- dayMaxEventsBool : Boolean; external name 'dayMaxEvents';
- initialView : string;
- viewClassNames : String;
- viewClassNamesFunc : TCalendarViewClassNamesCallback; external name 'eventClassNames';
- viewDidMount : TCalendarViewMountCallback;
- viewWillUnmount : TCalendarViewMountCallback;
- end;
- { TFullCalendarView }
- TDateSelector = Class external name 'Object' (TJSObject)
- start : TJSDate;
- startStr : string; external name 'start';
- startInt : NativeInt; external name 'start';
- end_ : TJSDate;
- endStr : string; external name 'end';
- endInt : NativeInt; external name 'end';
- allDay : Boolean;
- resourceId : String;
- end;
- TFullCalendarView = Class external name 'Object' (TJSObject)
- private
- FType: string; external name 'type';
- Public
- title : string;
- activeStart : TJSDate;
- activeEnd : TJSDate;
- currentStart : TJSDate;
- currentEnd : TJSDate;
- Property type_ : string read FType;
- end;
- TFullCalendarEventInfo = record
- view : TFullCalendarView;
- el : TJSHTMLElement;
- end;
- TDayRenderInfo = record
- date : TJSDate;
- view : TFullCalendarView;
- el : TJSHTMLElement;
- end;
- TDateClickInfo = record
- date : TJSDate;
- dateStr : string;
- allDay : Boolean;
- dayEl : TJSHTMLElement;
- jsEvent : TJSEvent;
- view : TFullCalendarView;
- resource : TCalendarResource;
- end;
- TDateSelectInfo = record
- start : TJSDate;
- startStr : string;
- end_ : TJSDate; external name 'end';
- endStr : string;
- allDay : Boolean;
- jsEvent : TJSEvent;
- view : TFullCalendarView;
- resource : TCalendarResource;
- end;
- TFullCalendarEvent = reference to function(Info :TFullCalendarEventInfo) : Boolean;
- TDayRenderEvent = reference to function(Info : TDayrenderInfo) : Boolean;
- TViewEvent = reference to function(View : TFullCalendarView) : Boolean;
- TDateClickEvent = reference to procedure (Info: TDateClickInfo);
- TDateSelectEvent = reference to procedure (Info: TDateSelectInfo);
- TDateUnSelectEvent = reference to procedure (event: TJSEvent; View : TFullCalendarView);
- TFullCalendar = Class external name 'FullCalendar.Calendar' (TJSObject)
- Constructor new(el : TJSHTMLElement; Options : TFullCalendarOptions) ; // external name 'Calendar';
- class function Calendar(el : TJSHTMLElement; Options : TFullCalendarOptions) : TFullCalendar; static;
- function getOption(aName : String) : JSValue;
- procedure setOption(aName : string; aValue : JSValue);
- procedure render;
- procedure destroy;
- Procedure batchRendering(aBatch : TProcedural);
- Procedure prev;
- Procedure next;
- Procedure prevYear;
- Procedure nextYear;
- Procedure today;
- Procedure gotoDate(aDate : string); overload;
- Procedure gotoDate(aDate : NativeInt); overload;
- Procedure gotoDate(aDate : TJSDate); overload;
- Procedure incrementDate(aDuration : TDuration); overload;
- Procedure incrementDate(aDuration : string);overload;
- Procedure incrementDate(aDuration : NativeInt);overload;
- Procedure on_(eventName : string; aHandler : TFullCalendarEvent); external name 'on';
- Procedure on_(eventName : string; aHandler : TDayRenderEvent);external name 'on';
- Procedure on_(eventName : string; aHandler : TViewEvent);external name 'on';
- Procedure on_(eventName : string; aHandler : TDateSelectEvent);external name 'on';
- Procedure on_(eventName : string; aHandler : TDateClickEvent);external name 'on';
- Procedure on_(eventName : string; aHandler : TDateUnSelectEvent);external name 'on';
- Procedure off(eventName : string); overload;
- Procedure off(eventName : string; aHandler : TFullCalendarEvent); overload;
- Procedure off(eventName : string; aHandler : TDayRenderEvent);
- Procedure off(eventName : string; aHandler : TViewEvent);
- Procedure off(eventName : string; aHandler : TDateClickEvent);
- Procedure off(eventName : string; aHandler : TDateUnSelectEvent);
- function GetDate : TJSDate;
- function View : TFullCalendarView;
- procedure changeView(aViewName : string); overload;
- procedure changeView(aViewName : string; aDate : TJSDate); overload;
- procedure changeView(aViewName : string; aDate : String); overload;
- procedure changeView(aViewName : string; aDate : NativeInt); overload;
- procedure changeView(aViewName : string; aDate : TDateRange); overload;
- procedure scrollToTime(aTime : TDuration); overload;
- procedure scrollToTime(aTime : String); overload;
- procedure scrollToTime(aTime : NativeInt); overload;
- Procedure updateSize;
- Function getEvents : TCalendarEventArray;
- Function getEvent(aID : NativeInt) :TCalendarEvent; overload;
- Function getEvent(aID : String) : TCalendarEvent; overload;
- Function addEvent(aEvent : TBaseCalendarEvent) : TCalendarEvent; overload;
- Function addEvent(aEvent : TBaseCalendarEvent; Source : String) : TCalendarEvent; overload;
- Function addEvent(aEvent : TBaseCalendarEvent; Source : TBaseCalendarEvent) : TCalendarEvent; overload;
- Function getEventSources : TCalendarEventSourceArray;
- Function getEventSourcebyId(aID: String) : TCalendarEventSource;
- Procedure addEventSource(aSource : TCalendarEventGenerator);
- Procedure addEventSource(aSource : TJSONFeedSpec);
- Procedure addEventSource(aSource : TCalendarEventArray);
- Procedure addEventSource(aSource : TBaseCalendarEventArray);
- Procedure addEventSource(aSource : String);
- procedure refetchEvents;
- procedure Select(aStart : TJSDate; aEnd : TJSDate);
- procedure Select(aStart : String; aEnd : String);
- procedure Select(aStart : NativeInt; aEnd : NativeInt);
- procedure Select(aStart : TJSDate);
- procedure Select(aStart : String);
- procedure Select(aStart : NativeInt);
- procedure Select(aSel : TDateSelector);
- procedure unselect;
- Function getAvailableLocaleCodes : TStringDynArray;
- Property Date : TJSDate Read GetDate Write GotoDate;
- end;
- implementation
- { TBaseCalendarEventHelper }
- class function TBaseCalendarEventHelper.event(const aTitle : String; aStart,aEnd : TDateTime) : TBaseCalendarEvent;
- begin
- Result:=TBaseCalendarEvent.new;
- Result.title:=aTitle;
- Result.Start:=DateTimeToJSDate(aStart);
- Result.end_:=DateTimeToJSDate(aEnd);
- end;
- end.
|