Adam Shaw 6 лет назад
Родитель
Сommit
609b830ecb

+ 1 - 1
packages-premium

@@ -1 +1 @@
-Subproject commit b7fbb46e7520c8f63432511a885cbb67dbdb76ca
+Subproject commit cd603e515e1b24a741863ce9f4927057c22337db

+ 1 - 0
packages/core/src/Calendar.ts

@@ -438,6 +438,7 @@ export default class Calendar {
       eventResize: state.eventResize
     }, this.buildComponentContext(
       this,
+      this.pluginSystem.hooks,
       this.theme,
       this.dateEnv,
       this.optionsManager.computed

+ 4 - 4
packages/core/src/CalendarComponent.ts

@@ -94,9 +94,9 @@ export default class CalendarComponent extends Component<CalendarComponentProps>
       this.contentEl = createElement('div', { className: 'fc-view-container' })
     )
 
-    let { calendar } = context
+    let { calendar, pluginHooks } = context
 
-    for (let modifyViewContainer of calendar.pluginSystem.hooks.viewContainerModifiers) {
+    for (let modifyViewContainer of pluginHooks.viewContainerModifiers) {
       modifyViewContainer(this.contentEl, calendar)
     }
   }
@@ -203,7 +203,7 @@ export default class CalendarComponent extends Component<CalendarComponentProps>
 
   renderView(props: CalendarComponentProps, title: string) {
     let { view } = this
-    let { calendar, options } = this.context
+    let { pluginHooks, options } = this.context
     let { viewSpec, dateProfileGenerator } = props
 
     if (!view || view.viewSpec !== viewSpec) {
@@ -234,7 +234,7 @@ export default class CalendarComponent extends Component<CalendarComponentProps>
       eventResize: props.eventResize
     }
 
-    let transformers = this.buildViewPropTransformers(calendar.pluginSystem.hooks.viewPropsTransformers)
+    let transformers = this.buildViewPropTransformers(pluginHooks.viewPropsTransformers)
 
     for (let transformer of transformers) {
       __assign(

+ 5 - 0
packages/core/src/component/ComponentContext.ts

@@ -4,10 +4,12 @@ import Theme from '../theme/Theme'
 import { DateEnv } from '../datelib/env'
 import { parseFieldSpecs } from '../util/misc'
 import { createDuration, Duration } from '../datelib/duration'
+import { PluginHooks } from '../plugin-system'
 
 
 export default interface ComponentContext {
   calendar: Calendar
+  pluginHooks: PluginHooks
   view?: View
   dateEnv: DateEnv
   theme: Theme
@@ -20,6 +22,7 @@ export default interface ComponentContext {
 
 export function buildComponentContext(
   calendar: Calendar,
+  pluginHooks: PluginHooks,
   theme: Theme,
   dateEnv: DateEnv,
   options: any,
@@ -27,6 +30,7 @@ export function buildComponentContext(
 ): ComponentContext {
   return {
     calendar,
+    pluginHooks,
     view,
     dateEnv,
     theme,
@@ -41,6 +45,7 @@ export function buildComponentContext(
 export function extendComponentContext(context: ComponentContext, options?: any, view?: View): ComponentContext {
   return buildComponentContext(
     context.calendar,
+    context.pluginHooks,
     context.theme,
     context.dateEnv,
     options || context.options,

+ 2 - 2
packages/core/src/component/event-rendering.ts

@@ -249,8 +249,8 @@ export function triggerWillRemoveSegs(context: ComponentContext, segs: Seg[], is
 // is-interactable
 
 export function computeEventDraggable(context: ComponentContext, eventDef: EventDef, eventUi: EventUi) {
-  let { calendar, view } = context
-  let transformers = calendar.pluginSystem.hooks.isDraggableTransformers
+  let { pluginHooks, view } = context
+  let transformers = pluginHooks.isDraggableTransformers
   let val = eventUi.startEditable
 
   for (let transformer of transformers) {

+ 2 - 2
packages/interaction/src/interactions/DateSelecting.ts

@@ -57,7 +57,7 @@ export default class DateSelecting extends Interaction {
   }
 
   handleHitUpdate = (hit: Hit | null, isFinal: boolean) => {
-    let { calendar } = this.component.context
+    let { calendar, pluginHooks } = this.component.context
     let dragSelection: DateSpan | null = null
     let isInvalid = false
 
@@ -65,7 +65,7 @@ export default class DateSelecting extends Interaction {
       dragSelection = joinHitsIntoSelection(
         this.hitDragging.initialHit!,
         hit,
-        calendar.pluginSystem.hooks.dateSelectionTransformers
+        pluginHooks.dateSelectionTransformers
       )
 
       if (!dragSelection || !this.component.isDateSelectionValid(dragSelection)) {

+ 2 - 2
packages/interaction/src/interactions/EventResizing.ts

@@ -87,7 +87,7 @@ export default class EventDragging extends Interaction {
   }
 
   handleHitUpdate = (hit: Hit | null, isFinal: boolean, ev: PointerDragEvent) => {
-    let calendar = this.component.context.calendar
+    let { calendar, pluginHooks } = this.component.context
     let relevantEvents = this.relevantEvents!
     let initialHit = this.hitDragging.initialHit!
     let eventInstance = this.eventRange.instance!
@@ -107,7 +107,7 @@ export default class EventDragging extends Interaction {
         hit,
         (ev.subjectEl as HTMLElement).classList.contains('fc-start-resizer'),
         eventInstance.range,
-        calendar.pluginSystem.hooks.eventResizeJoinTransforms
+        pluginHooks.eventResizeJoinTransforms
       )
     }