PageSourceSearch

https://app.atriosoftwares.com.br/lib/fullcalendar-rightclick.js

js atriosoftwares.com.br collected 2026-10-10 02:34:35 UTC 3,341 bytes, 101 lines download raw bytes

1/*!
2 * fullcalendar-rightclick v2.1
3 * Docs & License: https://github.com/mherrmann/fullcalendar-rightclick
4 * (c) 2015 Michael Herrmann
5 */
6
7(function($) {
8	function monkeyPatchViewClass(View) {
9		View = View.class || View;
10		var renderFn = 'render' in View.prototype ? 'render' : 'renderDates';
11		var originalRender = View.prototype[renderFn];
12		View.prototype[renderFn] = function() {
13			originalRender.call(this);
14			if (! this.el.data('fullcalendar-rightclick')) {
15				this.registerRightclickListener();
16				this.el.data('fullcalendar-rightclick', true);
17			}
18		};
19		function trigger() {
20			throw new Error("trigger not detected");
21		}
22		function oldTrigger(triggerFn) {
23			return function trigger(that, jsEventName, view, dateOrEvent, jsEvent) {
24				return that[triggerFn](jsEventName, view, dateOrEvent, jsEvent)
25			};
26		}
27		if (typeof View.prototype.publiclyTrigger === 'function') {
28			if (View.prototype.publiclyTrigger.toString().match(/name, thisObj/)) {
29				// FullCalendar >= 3.1.0 && < 3.5.0:
30				trigger = oldTrigger('publiclyTrigger');
31			}
32			else {
33				// FullCalendar >= 3.5.0:
34				trigger = function (that, jsEventName, view, dateOrEvent, jsEvent) {
35					return that.publiclyTrigger(jsEventName, [ dateOrEvent, jsEvent, view ]);
36				};
37			}
38		} else {
39			// FullCalendar < 3.1.0:
40			trigger = oldTrigger('trigger');
41		}
42		View.prototype.registerRightclickListener = function() {
43			var that = this;
44			// FullCalendar > 3.0.1:
45			this.el.on('contextmenu', function(ev) {
46				var eventElt = $(ev.target).closest('.fc-event');
47				if (eventElt.length) {
48					var seg = eventElt.data('fc-seg');
49					var event;
50					if (typeof seg.event === 'object') {
51						event = seg.event;
52					} else {
53						event = seg.footprint.eventDef;
54					}
55					return trigger(that, 'eventRightclick', this, event, ev);
56				} else {
57					// Users of this library may add custom content inside
58					// FullCalendar's DOM structure, eg. popovers. We don't want
59					// to catch rightclicks on these custom elements, so we
60					// check that the clicked element actually lies inside one
61					// of FullCalendars default containers:
62					var fcContainer = $(ev.target).closest(
63						'.fc-bg, .fc-slats, .fc-content-skeleton, ' +
64						'.fc-bgevent-skeleton, .fc-highlight-skeleton'
65					);
66					if (fcContainer.length) {
67						var cell;
68						if (that.coordMap) {
69							// FullCalendar < 2.5.0:
70							that.coordMap.build();
71							cell = that.coordMap.getCell(ev.pageX, ev.pageY);
72						} else {
73							// FullCalendar >= 2.5.0:
74							that.prepareHits();
75							var hit = that.queryHit(ev.pageX, ev.pageY);
76							if (typeof that.getHitSpan === 'function') {
77								// FullCalendar >= 2.5.0 && < 3.5.0:
78								cell = that.getHitSpan(hit);
79							} else {
80								// FullCalendar >= 3.5.0:
81								if (hit.row) {
82									cell = hit.component.getCellRange(hit.row, hit.col);
83								} else {
84									var componentFootprint = hit.component.getSafeHitFootprint(hit);
85									if (componentFootprint) {
86										cell = that.calendar.footprintToDateProfile(componentFootprint);
87									}
88								}
89							}
90						}
91						if (cell)
92							return trigger(that, 'dayRightclick', null, cell.start, ev);
93					}
94				}
95			});
96		};
97	}
98	var fc = $.fullCalendar;
99	monkeyPatchViewClass(fc.views.agenda);
100	monkeyPatchViewClass(fc.views.basic);
101})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.