Completed
Push — master ( bb6cd0...964113 )
by Dimas
463:29 queued 449:20
created

src/MVC/themes/adminlte/plugins/fullcalendar-interaction/main.d.ts   F

Complexity

Total Complexity 70
Complexity/F 1

Size

Lines of Code 323
Function Count 70

Duplication

Duplicated Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 289
dl 0
loc 323
rs 2.8
c 0
b 0
f 0
wmc 70
mnd 0
bc 0
fnc 70
bpm 0
cpm 1
noi 0

70 Functions

Rating   Name   Duplication   Size   Complexity  
A WindowScrollGeomCache.getEventTarget 0 1 1
A ElementMirror.getMirrorEl 0 1 1
A FeaturefulElementDragging.setAutoScrollEnabled 0 1 1
A ScrollGeomCache.getScrollLeft 0 1 1
A InferredElementDragging.setMirrorIsVisible 0 1 1
A AutoScroller.start 0 1 1
A HitDragging.processFirstCoord 0 1 1
A ElementMirror.setIsVisible 0 1 1
A PointerDragging.destroy 0 1 1
A AutoScroller.requestAnimation 0 1 1
A ScrollGeomCache.getClientHeight 0 1 1
A ElementMirror.updateElPosition 0 1 1
A FeaturefulElementDragging.setMirrorNeedsRevert 0 1 1
A ExternalElementDragging.displayDrag 0 1 1
A ExternalElementDragging.canDropElOnCalendar 0 1 1
A OffsetTracker.computeTop 0 1 1
A HitDragging.handleMove 0 1 1
A PointerDragging.destroyScrollWatch 0 1 1
A PointerDragging.shouldIgnoreMouse 0 1 1
A PointerDragging.recordCoords 0 1 1
A ScrollGeomCache.setScrollTop 0 1 1
A ScrollGeomCache.computeClientRect 0 1 1
A ScrollGeomCache.setScrollLeft 0 1 1
A main.d.ts ➔ isHitsEqual 0 1 1
A FeaturefulElementDragging.setMirrorIsVisible 0 1 1
A HitDragging.queryHitForOffset 0 1 1
A PointerDragging.querySubjectEl 0 1 1
A ScrollGeomCache.handleScrollChange 0 1 1
A ScrollGeomCache.getClientWidth 0 1 1
A ScrollGeomCache.getScrollWidth 0 1 1
A InferredElementDragging.destroy 0 1 1
A ElementScrollGeomCache.getEventTarget 0 1 1
A ElementMirror.doRevertAnimation 0 1 1
A FeaturefulElementDragging.tryStartDrag 0 1 1
A PointerDragging.createEventFromMouse 0 1 1
A FeaturefulElementDragging.destroy 0 1 1
A WindowScrollGeomCache.handleScrollChange 0 1 1
A ElementMirror.start 0 1 1
A InferredElementDragging.setIgnoreMove 0 1 1
A FeaturefulElementDragging.stopDrag 0 1 1
A FeaturefulElementDragging.tryStopDrag 0 1 1
A ScrollGeomCache.destroy 0 1 1
A ExternalElementDragging.buildDragMeta 0 1 1
A FeaturefulElementDragging.startDelay 0 1 1
A AutoScroller.stop 0 1 1
A OffsetTracker.destroy 0 1 1
A ElementMirror.stop 0 1 1
A ExternalDraggable.destroy 0 1 1
A OffsetTracker.isWithinClipping 0 1 1
A HitDragging.releaseHits 0 1 1
A ThirdPartyDraggable.destroy 0 1 1
A AutoScroller.handleMove 0 1 1
A PointerDragging.tryStart 0 1 1
A PointerDragging.cleanup 0 1 1
A ElementMirror.cleanup 0 1 1
A HitDragging.prepareHits 0 1 1
A ScrollGeomCache.getEventTarget 0 1 1
A FeaturefulElementDragging.setIgnoreMove 0 1 1
A ElementScrollGeomCache.computeClientRect 0 5 1
A WindowScrollGeomCache.computeClientRect 0 1 1
A PointerDragging.cancelTouchScroll 0 1 1
A PointerDragging.createEventFromTouch 0 1 1
A ScrollGeomCache.getScrollTop 0 1 1
A ScrollGeomCache.getScrollHeight 0 1 1
A FeaturefulElementDragging.handleDistanceSurpassed 0 1 1
A FeaturefulElementDragging.handleDelayEnd 0 1 1
A PointerDragging.initScrollWatch 0 1 1
A OffsetTracker.computeLeft 0 1 1
A ExternalElementDragging.clearDrag 0 1 1
A ElementMirror.handleMove 0 1 1

How to fix   Complexity   

Complexity

Complex classes like src/MVC/themes/adminlte/plugins/fullcalendar-interaction/main.d.ts often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.

Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.

1
// Generated by dts-bundle v0.7.3-fork.1
2
// Dependencies for this module:
3
//   ../../../../../@fullcalendar/core
4
5
declare module '@fullcalendar/interaction' {
6
    import FeaturefulElementDragging from '@fullcalendar/interaction/dnd/FeaturefulElementDragging';
7
    const _default: import("@fullcalendar/core").PluginDef;
8
    export default _default;
9
    export { FeaturefulElementDragging };
10
    export { default as PointerDragging } from '@fullcalendar/interaction/dnd/PointerDragging';
11
    export { default as Draggable } from '@fullcalendar/interaction/interactions-external/ExternalDraggable';
12
    export { default as ThirdPartyDraggable } from '@fullcalendar/interaction/interactions-external/ThirdPartyDraggable';
13
}
14
15
declare module '@fullcalendar/interaction/dnd/FeaturefulElementDragging' {
16
    import { PointerDragEvent, ElementDragging } from '@fullcalendar/core';
17
    import PointerDragging from '@fullcalendar/interaction/dnd/PointerDragging';
18
    import ElementMirror from '@fullcalendar/interaction/dnd/ElementMirror';
19
    import AutoScroller from '@fullcalendar/interaction/dnd/AutoScroller';
20
    export { FeaturefulElementDragging as default, FeaturefulElementDragging };
21
    class FeaturefulElementDragging extends ElementDragging {
22
        pointer: PointerDragging;
23
        mirror: ElementMirror;
24
        autoScroller: AutoScroller;
25
        delay: number | null;
26
        minDistance: number;
27
        touchScrollAllowed: boolean;
28
        mirrorNeedsRevert: boolean;
29
        isInteracting: boolean;
30
        isDragging: boolean;
31
        isDelayEnded: boolean;
32
        isDistanceSurpassed: boolean;
33
        delayTimeoutId: number | null;
34
        constructor(containerEl: HTMLElement);
35
        destroy(): void;
36
        onPointerDown: (ev: PointerDragEvent) => void;
37
        onPointerMove: (ev: PointerDragEvent) => void;
38
        onPointerUp: (ev: PointerDragEvent) => void;
39
        startDelay(ev: PointerDragEvent): void;
40
        handleDelayEnd(ev: PointerDragEvent): void;
41
        handleDistanceSurpassed(ev: PointerDragEvent): void;
42
        tryStartDrag(ev: PointerDragEvent): void;
43
        tryStopDrag(ev: PointerDragEvent): void;
44
        stopDrag(ev: PointerDragEvent): void;
45
        setIgnoreMove(bool: boolean): void;
46
        setMirrorIsVisible(bool: boolean): void;
47
        setMirrorNeedsRevert(bool: boolean): void;
48
        setAutoScrollEnabled(bool: boolean): void;
49
    }
50
}
51
52
declare module '@fullcalendar/interaction/dnd/PointerDragging' {
53
    import { EmitterMixin, PointerDragEvent } from '@fullcalendar/core';
54
    export { PointerDragging as default, PointerDragging };
55
    class PointerDragging {
56
        containerEl: EventTarget;
57
        subjectEl: HTMLElement | null;
58
        downEl: HTMLElement | null;
59
        emitter: EmitterMixin;
60
        selector: string;
61
        handleSelector: string;
62
        shouldIgnoreMove: boolean;
63
        shouldWatchScroll: boolean;
64
        isDragging: boolean;
65
        isTouchDragging: boolean;
66
        wasTouchScroll: boolean;
67
        origPageX: number;
68
        origPageY: number;
69
        prevPageX: number;
70
        prevPageY: number;
71
        prevScrollX: number;
72
        prevScrollY: number;
73
        constructor(containerEl: EventTarget);
74
        destroy(): void;
75
        tryStart(ev: UIEvent): boolean;
76
        cleanup(): void;
77
        querySubjectEl(ev: UIEvent): HTMLElement;
78
        handleMouseDown: (ev: MouseEvent) => void;
79
        handleMouseMove: (ev: MouseEvent) => void;
80
        handleMouseUp: (ev: MouseEvent) => void;
81
        shouldIgnoreMouse(): number | boolean;
82
        handleTouchStart: (ev: TouchEvent) => void;
83
        handleTouchMove: (ev: TouchEvent) => void;
84
        handleTouchEnd: (ev: TouchEvent) => void;
85
        handleTouchScroll: () => void;
86
        cancelTouchScroll(): void;
87
        initScrollWatch(ev: PointerDragEvent): void;
88
        recordCoords(ev: PointerDragEvent): void;
89
        handleScroll: (ev: UIEvent) => void;
90
        destroyScrollWatch(): void;
91
        createEventFromMouse(ev: MouseEvent, isFirst?: boolean): PointerDragEvent;
92
        createEventFromTouch(ev: TouchEvent, isFirst?: boolean): PointerDragEvent;
93
    }
94
}
95
96
declare module '@fullcalendar/interaction/interactions-external/ExternalDraggable' {
97
    import { PointerDragEvent } from '@fullcalendar/core';
98
    import FeaturefulElementDragging from '@fullcalendar/interaction/dnd/FeaturefulElementDragging';
99
    import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging';
100
    export interface ExternalDraggableSettings {
101
        eventData?: DragMetaGenerator;
102
        itemSelector?: string;
103
        minDistance?: number;
104
        longPressDelay?: number;
105
        appendTo?: HTMLElement;
106
    }
107
    export { ExternalDraggable as default, ExternalDraggable };
108
    class ExternalDraggable {
109
        dragging: FeaturefulElementDragging;
110
        settings: ExternalDraggableSettings;
111
        constructor(el: HTMLElement, settings?: ExternalDraggableSettings);
112
        handlePointerDown: (ev: PointerDragEvent) => void;
113
        handleDragStart: (ev: PointerDragEvent) => void;
114
        destroy(): void;
115
    }
116
}
117
118
declare module '@fullcalendar/interaction/interactions-external/ThirdPartyDraggable' {
119
    import { DragMetaGenerator } from '@fullcalendar/interaction/interactions-external/ExternalElementDragging';
120
    import InferredElementDragging from '@fullcalendar/interaction/interactions-external/InferredElementDragging';
121
    export interface ThirdPartyDraggableSettings {
122
        eventData?: DragMetaGenerator;
123
        itemSelector?: string;
124
        mirrorSelector?: string;
125
    }
126
    export { ThirdPartyDraggable as default, ThirdPartyDraggable };
127
    class ThirdPartyDraggable {
128
        dragging: InferredElementDragging;
129
        constructor(containerOrSettings?: EventTarget | ThirdPartyDraggableSettings, settings?: ThirdPartyDraggableSettings);
130
        destroy(): void;
131
    }
132
}
133
134
declare module '@fullcalendar/interaction/dnd/ElementMirror' {
135
    import { Rect } from '@fullcalendar/core';
136
    export { ElementMirror as default, ElementMirror };
137
    class ElementMirror {
138
        isVisible: boolean;
139
        origScreenX?: number;
140
        origScreenY?: number;
141
        deltaX?: number;
142
        deltaY?: number;
143
        sourceEl: HTMLElement | null;
144
        mirrorEl: HTMLElement | null;
145
        sourceElRect: Rect | null;
146
        parentNode: HTMLElement;
147
        zIndex: number;
148
        revertDuration: number;
149
        start(sourceEl: HTMLElement, pageX: number, pageY: number): void;
150
        handleMove(pageX: number, pageY: number): void;
151
        setIsVisible(bool: boolean): void;
152
        stop(needsRevertAnimation: boolean, callback: () => void): void;
153
        doRevertAnimation(callback: () => void, revertDuration: number): void;
154
        cleanup(): void;
155
        updateElPosition(): void;
156
        getMirrorEl(): HTMLElement;
157
    }
158
}
159
160
declare module '@fullcalendar/interaction/dnd/AutoScroller' {
161
    import { ScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache';
162
    export { AutoScroller as default, AutoScroller };
163
    class AutoScroller {
164
        isEnabled: boolean;
165
        scrollQuery: (Window | string)[];
166
        edgeThreshold: number;
167
        maxVelocity: number;
168
        pointerScreenX: number | null;
169
        pointerScreenY: number | null;
170
        isAnimating: boolean;
171
        scrollCaches: ScrollGeomCache[] | null;
172
        msSinceRequest?: number;
173
        everMovedUp: boolean;
174
        everMovedDown: boolean;
175
        everMovedLeft: boolean;
176
        everMovedRight: boolean;
177
        start(pageX: number, pageY: number): void;
178
        handleMove(pageX: number, pageY: number): void;
179
        stop(): void;
180
        requestAnimation(now: number): void;
181
    }
182
}
183
184
declare module '@fullcalendar/interaction/interactions-external/ExternalElementDragging' {
185
    import { Hit, PointerDragEvent, EventTuple, DatePointApi, Calendar, EventInteractionState, DragMetaInput, DragMeta, View, ElementDragging } from '@fullcalendar/core';
186
    import HitDragging from '@fullcalendar/interaction/interactions/HitDragging';
187
    export type DragMetaGenerator = DragMetaInput | ((el: HTMLElement) => DragMetaInput);
188
    export interface ExternalDropApi extends DatePointApi {
189
        draggedEl: HTMLElement;
190
        jsEvent: UIEvent;
191
        view: View;
192
    }
193
    export { ExternalElementDragging as default, ExternalElementDragging };
194
    class ExternalElementDragging {
195
        hitDragging: HitDragging;
196
        receivingCalendar: Calendar | null;
197
        droppableEvent: EventTuple | null;
198
        suppliedDragMeta: DragMetaGenerator | null;
199
        dragMeta: DragMeta | null;
200
        constructor(dragging: ElementDragging, suppliedDragMeta?: DragMetaGenerator);
201
        handleDragStart: (ev: PointerDragEvent) => void;
202
        buildDragMeta(subjectEl: HTMLElement): DragMeta;
203
        handleHitUpdate: (hit: Hit, isFinal: boolean, ev: PointerDragEvent) => void;
204
        handleDragEnd: (pev: PointerDragEvent) => void;
205
        displayDrag(nextCalendar: Calendar | null, state: EventInteractionState): void;
206
        clearDrag(): void;
207
        canDropElOnCalendar(el: HTMLElement, receivingCalendar: Calendar): boolean;
208
    }
209
}
210
211
declare module '@fullcalendar/interaction/interactions-external/InferredElementDragging' {
212
    import { PointerDragEvent, ElementDragging } from '@fullcalendar/core';
213
    import PointerDragging from '@fullcalendar/interaction/dnd/PointerDragging';
214
    export { InferredElementDragging as default, InferredElementDragging };
215
    class InferredElementDragging extends ElementDragging {
216
        pointer: PointerDragging;
217
        shouldIgnoreMove: boolean;
218
        mirrorSelector: string;
219
        currentMirrorEl: HTMLElement | null;
220
        constructor(containerEl: HTMLElement);
221
        destroy(): void;
222
        handlePointerDown: (ev: PointerDragEvent) => void;
223
        handlePointerMove: (ev: PointerDragEvent) => void;
224
        handlePointerUp: (ev: PointerDragEvent) => void;
225
        setIgnoreMove(bool: boolean): void;
226
        setMirrorIsVisible(bool: boolean): void;
227
    }
228
}
229
230
declare module '@fullcalendar/interaction/scroll-geom-cache' {
231
    import { Rect, ScrollController } from '@fullcalendar/core';
232
    export abstract class ScrollGeomCache extends ScrollController {
233
        clientRect: Rect;
234
        origScrollTop: number;
235
        origScrollLeft: number;
236
        protected scrollController: ScrollController;
237
        protected doesListening: boolean;
238
        protected scrollTop: number;
239
        protected scrollLeft: number;
240
        protected scrollWidth: number;
241
        protected scrollHeight: number;
242
        protected clientWidth: number;
243
        protected clientHeight: number;
244
        constructor(scrollController: ScrollController, doesListening: boolean);
245
        abstract getEventTarget(): EventTarget;
246
        abstract computeClientRect(): Rect;
247
        destroy(): void;
248
        handleScroll: () => void;
249
        getScrollTop(): number;
250
        getScrollLeft(): number;
251
        setScrollTop(top: number): void;
252
        setScrollLeft(top: number): void;
253
        getClientWidth(): number;
254
        getClientHeight(): number;
255
        getScrollWidth(): number;
256
        getScrollHeight(): number;
257
        handleScrollChange(): void;
258
    }
259
    export class ElementScrollGeomCache extends ScrollGeomCache {
260
        constructor(el: HTMLElement, doesListening: boolean);
261
        getEventTarget(): EventTarget;
262
        computeClientRect(): {
263
            left: number;
264
            right: number;
265
            top: number;
266
            bottom: number;
267
        };
268
    }
269
    export class WindowScrollGeomCache extends ScrollGeomCache {
270
        constructor(doesListening: boolean);
271
        getEventTarget(): EventTarget;
272
        computeClientRect(): Rect;
273
        handleScrollChange(): void;
274
    }
275
}
276
277
declare module '@fullcalendar/interaction/interactions/HitDragging' {
278
    import { EmitterMixin, PointerDragEvent, Point, Hit, InteractionSettingsStore, ElementDragging } from '@fullcalendar/core';
279
    import OffsetTracker from '@fullcalendar/interaction/OffsetTracker';
280
    export { HitDragging as default, HitDragging };
281
    class HitDragging {
282
        droppableStore: InteractionSettingsStore;
283
        dragging: ElementDragging;
284
        emitter: EmitterMixin;
285
        useSubjectCenter: boolean;
286
        requireInitial: boolean;
287
        offsetTrackers: {
288
            [componentUid: string]: OffsetTracker;
289
        };
290
        initialHit: Hit | null;
291
        movingHit: Hit | null;
292
        finalHit: Hit | null;
293
        coordAdjust?: Point;
294
        constructor(dragging: ElementDragging, droppableStore: InteractionSettingsStore);
295
        handlePointerDown: (ev: PointerDragEvent) => void;
296
        processFirstCoord(ev: PointerDragEvent): void;
297
        handleDragStart: (ev: PointerDragEvent) => void;
298
        handleDragMove: (ev: PointerDragEvent) => void;
299
        handlePointerUp: (ev: PointerDragEvent) => void;
300
        handleDragEnd: (ev: PointerDragEvent) => void;
301
        handleMove(ev: PointerDragEvent, forceHandle?: boolean): void;
302
        prepareHits(): void;
303
        releaseHits(): void;
304
        queryHitForOffset(offsetLeft: number, offsetTop: number): Hit | null;
305
    }
306
    export function isHitsEqual(hit0: Hit | null, hit1: Hit | null): boolean;
307
}
308
309
declare module '@fullcalendar/interaction/OffsetTracker' {
310
    import { Rect } from '@fullcalendar/core';
311
    import { ElementScrollGeomCache } from '@fullcalendar/interaction/scroll-geom-cache';
312
    export { OffsetTracker as default, OffsetTracker };
313
    class OffsetTracker {
314
        scrollCaches: ElementScrollGeomCache[];
315
        origRect: Rect;
316
        constructor(el: HTMLElement);
317
        destroy(): void;
318
        computeLeft(): number;
319
        computeTop(): number;
320
        isWithinClipping(pageX: number, pageY: number): boolean;
321
    }
322
}
323
324