|
|
@@ -12,6 +12,7 @@ import { CalendarComponentProps } from './CalendarComponent'
|
|
|
import { isPropsValidTester } from './validation'
|
|
|
import { ExternalDefTransform } from './interactions-external/ExternalElementDragging'
|
|
|
import { EventResizeJoinTransforms } from './interactions/EventResizing'
|
|
|
+import Calendar from './Calendar'
|
|
|
import View from './View'
|
|
|
|
|
|
// TODO: easier way to add new hooks? need to update a million things
|
|
|
@@ -31,6 +32,7 @@ export interface PluginDefInput {
|
|
|
isPropsValid?: isPropsValidTester
|
|
|
externalDefTransforms?: ExternalDefTransform[]
|
|
|
eventResizeJoinTransforms?: EventResizeJoinTransforms[]
|
|
|
+ viewContainerModifiers?: ViewContainerModifier[]
|
|
|
}
|
|
|
|
|
|
export interface PluginHooks {
|
|
|
@@ -47,6 +49,7 @@ export interface PluginHooks {
|
|
|
isPropsValid: isPropsValidTester | null
|
|
|
externalDefTransforms: ExternalDefTransform[]
|
|
|
eventResizeJoinTransforms: EventResizeJoinTransforms[]
|
|
|
+ viewContainerModifiers: ViewContainerModifier[]
|
|
|
}
|
|
|
|
|
|
export interface PluginDef extends PluginHooks {
|
|
|
@@ -60,6 +63,8 @@ export interface ViewPropsTransformer {
|
|
|
transform(viewProps: ViewProps, viewSpec: ViewSpec, calendarProps: CalendarComponentProps, view: View): any
|
|
|
}
|
|
|
|
|
|
+export type ViewContainerModifier = (contentEl: HTMLElement, calendar: Calendar) => void
|
|
|
+
|
|
|
|
|
|
let uid = 0
|
|
|
|
|
|
@@ -79,7 +84,8 @@ export function createPlugin(input: PluginDefInput): PluginDef {
|
|
|
viewPropsTransformers: input.viewPropsTransformers || [],
|
|
|
isPropsValid: input.isPropsValid || null,
|
|
|
externalDefTransforms: input.externalDefTransforms || [],
|
|
|
- eventResizeJoinTransforms: input.eventResizeJoinTransforms || []
|
|
|
+ eventResizeJoinTransforms: input.eventResizeJoinTransforms || [],
|
|
|
+ viewContainerModifiers: input.viewContainerModifiers || []
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -102,7 +108,8 @@ export class PluginSystem {
|
|
|
viewPropsTransformers: [],
|
|
|
isPropsValid: null,
|
|
|
externalDefTransforms: [],
|
|
|
- eventResizeJoinTransforms: []
|
|
|
+ eventResizeJoinTransforms: [],
|
|
|
+ viewContainerModifiers: []
|
|
|
}
|
|
|
this.addedHash = {}
|
|
|
}
|
|
|
@@ -135,6 +142,7 @@ function combineHooks(hooks0: PluginHooks, hooks1: PluginHooks): PluginHooks {
|
|
|
viewPropsTransformers: hooks0.viewPropsTransformers.concat(hooks1.viewPropsTransformers),
|
|
|
isPropsValid: hooks1.isPropsValid || hooks0.isPropsValid,
|
|
|
externalDefTransforms: hooks0.externalDefTransforms.concat(hooks1.externalDefTransforms),
|
|
|
- eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms)
|
|
|
+ eventResizeJoinTransforms: hooks0.eventResizeJoinTransforms.concat(hooks1.eventResizeJoinTransforms),
|
|
|
+ viewContainerModifiers: hooks0.viewContainerModifiers.concat(hooks1.viewContainerModifiers)
|
|
|
}
|
|
|
}
|