Adam Shaw 7 роки тому
батько
коміт
819cd8c2c9

+ 14 - 14
src/Calendar.ts

@@ -145,7 +145,7 @@ export default class Calendar {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  _render(forces: RenderForceFlags = {}) {
+  _render(forceFlags: RenderForceFlags = {}) {
     this.applyElClassNames()
 
     if (!this.isSkeletonRendered) {
@@ -154,8 +154,8 @@ export default class Calendar {
     }
 
     this.freezeContentHeight() // do after contentEl is created in renderSkeleton
-    this.renderToolbars(forces)
-    this.renderView(forces)
+    this.renderToolbars(forceFlags)
+    this.renderView(forceFlags)
     this.thawContentHeight()
   }
 
@@ -373,11 +373,11 @@ export default class Calendar {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  requestRerender(forces: RenderForceFlags = {}) {
-    if (forces === true || !this.rerenderFlags) {
-      this.rerenderFlags = forces // true, or the first object
+  requestRerender(forceFlags: RenderForceFlags = {}) {
+    if (forceFlags === true || !this.rerenderFlags) {
+      this.rerenderFlags = forceFlags // true, or the first object
     } else if (this.rerenderFlags) {
-      assignTo(this.rerenderFlags, forces) // merge the objects
+      assignTo(this.rerenderFlags, forceFlags) // merge the objects
     }
 
     this.delayedRerender()
@@ -501,7 +501,7 @@ export default class Calendar {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  renderView(forces: RenderForceFlags) {
+  renderView(forceFlags: RenderForceFlags) {
     let { state, renderedView } = this
 
     if (renderedView !== this.view) {
@@ -530,7 +530,7 @@ export default class Calendar {
       dragState: state.dragState,
       eventResizeState: state.eventResizeState,
       businessHoursDef: renderedView.opt('businessHours')
-    }, forces)
+    }, forceFlags)
 
     if (this.updateViewSize()) { // success? // TODO: respect isSizeDirty
       renderedView.popScroll()
@@ -810,7 +810,7 @@ export default class Calendar {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  renderToolbars(forces: RenderForceFlags) {
+  renderToolbars(forceFlags: RenderForceFlags) {
     let headerLayout = this.opt('header')
     let footerLayout = this.opt('footer')
     let now = this.getNow()
@@ -827,7 +827,7 @@ export default class Calendar {
       isNextEnabled: nextInfo.isValid
     }
 
-    if ((!headerLayout || forces === true) && this.header) {
+    if ((!headerLayout || forceFlags === true) && this.header) {
       this.header.removeElement()
       this.header = null
     }
@@ -839,11 +839,11 @@ export default class Calendar {
       }
       this.header.render(
         assignTo({ layout: headerLayout }, props),
-        forces
+        forceFlags
       )
     }
 
-    if ((!footerLayout || forces === true) && this.footer) {
+    if ((!footerLayout || forceFlags === true) && this.footer) {
       this.footer.removeElement()
       this.footer = null
     }
@@ -855,7 +855,7 @@ export default class Calendar {
       }
       this.footer.render(
         assignTo({ layout: footerLayout }, props),
-        forces
+        forceFlags
       )
     }
   }

+ 7 - 7
src/Toolbar.ts

@@ -38,9 +38,9 @@ export default class Toolbar extends Component {
   }
 
 
-  render(renderProps: ToolbarRenderProps, forces: RenderForceFlags) {
+  render(renderProps: ToolbarRenderProps, forceFlags: RenderForceFlags) {
 
-    if (renderProps.layout !== this.layout || forces === true) {
+    if (renderProps.layout !== this.layout || forceFlags === true) {
       if (this.isLayoutRendered) {
         this.unrenderLayout()
       }
@@ -49,12 +49,12 @@ export default class Toolbar extends Component {
       this.isLayoutRendered = true
     }
 
-    if (renderProps.title !== this.title || forces === true) {
+    if (renderProps.title !== this.title || forceFlags === true) {
       this.updateTitle(renderProps.title)
       this.title = renderProps.title
     }
 
-    if (renderProps.activeButton !== this.activeButton || forces === true) {
+    if (renderProps.activeButton !== this.activeButton || forceFlags === true) {
       if (this.activeButton) {
         this.deactivateButton(this.activeButton)
       }
@@ -62,7 +62,7 @@ export default class Toolbar extends Component {
       this.activeButton = renderProps.activeButton
     }
 
-    if (renderProps.isTodayEnabled !== this.isTodayEnabled || forces === true) {
+    if (renderProps.isTodayEnabled !== this.isTodayEnabled || forceFlags === true) {
       if (renderProps.isTodayEnabled) {
         this.enableButton('today')
       } else {
@@ -71,7 +71,7 @@ export default class Toolbar extends Component {
       this.isTodayEnabled = renderProps.isTodayEnabled
     }
 
-    if (renderProps.isPrevEnabled !== this.isPrevEnabled || forces === true) {
+    if (renderProps.isPrevEnabled !== this.isPrevEnabled || forceFlags === true) {
       if (renderProps.isPrevEnabled) {
         this.enableButton('today')
       } else {
@@ -80,7 +80,7 @@ export default class Toolbar extends Component {
       this.isPrevEnabled = renderProps.isPrevEnabled
     }
 
-    if (renderProps.isNextEnabled !== this.isNextEnabled || forces === true) {
+    if (renderProps.isNextEnabled !== this.isNextEnabled || forceFlags === true) {
       if (renderProps.isNextEnabled) {
         this.enableButton('today')
       } else {

+ 3 - 3
src/agenda/AgendaView.ts

@@ -171,7 +171,7 @@ export default class AgendaView extends View {
   ------------------------------------------------------------------------------------------------------------------*/
 
 
-  renderChildren(renderState: DateComponentRenderState, forces: RenderForceFlags) {
+  renderChildren(renderState: DateComponentRenderState, forceFlags: RenderForceFlags) {
     let allDaySeletion = null
     let timedSelection = null
     let eventStoreGroups = this.splitEventStore(renderState.eventStore)
@@ -193,7 +193,7 @@ export default class AgendaView extends View {
       dragState: dragStateGroups.timed,
       eventResizeState: eventResizeStateGroups.timed,
       businessHoursDef: renderState.businessHoursDef
-    }, forces)
+    }, forceFlags)
 
     if (this.dayGrid) {
       this.dayGrid.render({
@@ -203,7 +203,7 @@ export default class AgendaView extends View {
         dragState: dragStateGroups.allDay,
         eventResizeState: eventResizeStateGroups.allDay,
         businessHoursDef: renderState.businessHoursDef
-      }, forces)
+      }, forceFlags)
     }
   }
 

+ 1 - 1
src/agenda/TimeGrid.ts

@@ -11,7 +11,7 @@ import TimeGridFillRenderer from './TimeGridFillRenderer'
 import { Duration, createDuration, addDurations, wholeDivideDurations, asRoughMs } from '../datelib/duration'
 import { startOfDay, DateMarker, addMs } from '../datelib/marker'
 import { DateFormatter, createFormatter, formatIsoTimeString } from '../datelib/formatting'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 import { Selection } from '../reducers/selection'
 import { EventStore } from '../reducers/event-store'
 

+ 1 - 1
src/agenda/TimeGridEventRenderer.ts

@@ -2,7 +2,7 @@ import { htmlEscape, cssToStr } from '../util/html'
 import { removeElement, applyStyle } from '../util/dom-manip'
 import { createFormatter } from '../datelib/formatting'
 import EventRenderer from '../component/renderers/EventRenderer'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 const FULL_TIME_FORMAT = createFormatter({ hour: 'numeric', minute: '2-digit' })
 

+ 1 - 1
src/agenda/TimeGridFillRenderer.ts

@@ -1,5 +1,5 @@
 import FillRenderer from '../component/renderers/FillRenderer'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 
 export default class TimeGridFillRenderer extends FillRenderer {

+ 1 - 1
src/agenda/TimeGridHelperRenderer.ts

@@ -1,6 +1,6 @@
 import { applyStyle } from '../util/dom-manip'
 import HelperRenderer from '../component/renderers/HelperRenderer'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 
 export default class TimeGridHelperRenderer extends HelperRenderer {

+ 1 - 1
src/basic/DayGrid.ts

@@ -21,7 +21,7 @@ import DayGridHelperRenderer from './DayGridHelperRenderer'
 import DayGridFillRenderer from './DayGridFillRenderer'
 import { addDays } from '../datelib/marker'
 import { createFormatter } from '../datelib/formatting'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 import { EventStore } from '../reducers/event-store'
 
 const DAY_NUM_FORMAT = createFormatter({ day: 'numeric' })

+ 1 - 1
src/basic/DayGridEventRenderer.ts

@@ -2,7 +2,7 @@ import { htmlEscape, cssToStr } from '../util/html'
 import { createElement, removeElement } from '../util/dom-manip'
 import EventRenderer from '../component/renderers/EventRenderer'
 import DayGrid from './DayGrid'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 
 /* Event-rendering methods for the DayGrid class

+ 1 - 1
src/basic/DayGridFillRenderer.ts

@@ -1,7 +1,7 @@
 import { htmlToElement, createElement } from '../util/dom-manip'
 import FillRenderer from '../component/renderers/FillRenderer'
 import DayGrid from './DayGrid'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 
 export default class DayGridFillRenderer extends FillRenderer {

+ 1 - 1
src/basic/DayGridHelperRenderer.ts

@@ -1,7 +1,7 @@
 import { htmlToElement } from '../util/dom-manip'
 import HelperRenderer from '../component/renderers/HelperRenderer'
 import DayGrid from './DayGrid'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 
 export default class DayGridHelperRenderer extends HelperRenderer {

+ 2 - 1
src/component/Component.ts

@@ -1,6 +1,7 @@
 import { removeElement } from '../util/dom-manip'
 
 
+// a force flag of `true` means rerender everything
 export type RenderForceFlags = true | { [entity: string]: boolean }
 
 
@@ -22,6 +23,6 @@ export default abstract class Component {
   }
 
 
-  abstract render(state: any, forces: RenderForceFlags)
+  abstract render(state: any, forceFlags: RenderForceFlags)
 
 }

+ 19 - 11
src/component/DateComponent.ts

@@ -8,7 +8,7 @@ import { Duration, createDuration, asRoughMs } from '../datelib/duration'
 import { sliceEventStore } from '../reducers/event-rendering'
 import { Selection } from '../reducers/selection'
 import UnzonedRange from '../models/UnzonedRange'
-import { Seg } from '../reducers/seg'
+import { EventRenderRange } from '../reducers/event-rendering'
 import { EventStore } from '../reducers/event-store'
 import { BusinessHourDef, buildBusinessHourEventStore } from '../reducers/business-hours'
 import { DateEnv } from '../datelib/env'
@@ -26,6 +26,14 @@ export interface DateComponentRenderState {
   businessHoursDef: BusinessHourDef
 }
 
+export interface Seg {
+  isStart: boolean
+  isEnd: boolean
+  eventRange?: EventRenderRange
+  el?: HTMLElement
+  [otherProp: string]: any
+}
+
 
 export default abstract class DateComponent extends Component {
 
@@ -154,25 +162,25 @@ export default abstract class DateComponent extends Component {
   // -----------------------------------------------------------------------------------------------------------------
 
 
-  render(renderState: DateComponentRenderState, forces: RenderForceFlags) {
+  render(renderState: DateComponentRenderState, forceFlags: RenderForceFlags) {
 
-    let isSkeletonDirty = forces === true
-    let isDatesDirty = forces === true ||
+    let isSkeletonDirty = forceFlags === true
+    let isDatesDirty = forceFlags === true ||
       isSkeletonDirty ||
       renderState.dateProfile !== this.dateProfile
-    let isBusinessHoursDirty = forces === true ||
+    let isBusinessHoursDirty = forceFlags === true ||
       isDatesDirty ||
       renderState.businessHoursDef !== this.businessHoursDef
-    let isSelectionDirty = forces === true ||
+    let isSelectionDirty = forceFlags === true ||
       isDatesDirty ||
       renderState.selection !== this.selection
-    let isEventsDirty = forces === true || forces.events ||
+    let isEventsDirty = forceFlags === true || forceFlags.events ||
       isDatesDirty ||
       renderState.eventStore !== this.eventStore
-    let isDragDirty = forces === true ||
+    let isDragDirty = forceFlags === true ||
       isDatesDirty ||
       renderState.dragState !== this.dragState
-    let isEventResizeDirty = forces === true ||
+    let isEventResizeDirty = forceFlags === true ||
       isDatesDirty ||
       renderState.eventResizeState !== this.eventResizeState
 
@@ -254,11 +262,11 @@ export default abstract class DateComponent extends Component {
       this.isSizeDirty = true
     }
 
-    this.renderChildren(renderState, forces)
+    this.renderChildren(renderState, forceFlags)
   }
 
 
-  renderChildren(renderState: DateComponentRenderState, forces: RenderForceFlags) {
+  renderChildren(renderState: DateComponentRenderState, forceFlags: RenderForceFlags) {
     this.callChildren('render', arguments)
   }
 

+ 1 - 1
src/component/renderers/EventRenderer.ts

@@ -4,7 +4,7 @@ import { createFormatter, DateFormatter } from '../../datelib/formatting'
 import { htmlToElements } from '../../util/dom-manip'
 import { compareByFieldSpecs } from '../../util/misc'
 import { EventRenderRange } from '../../reducers/event-rendering'
-import { Seg } from '../../reducers/seg'
+import { Seg } from '../DateComponent'
 
 
 export default class EventRenderer {

+ 1 - 1
src/component/renderers/FillRenderer.ts

@@ -1,6 +1,6 @@
 import { cssToStr } from '../../util/html'
 import { htmlToElements, removeElement, elementMatches } from '../../util/dom-manip'
-import { Seg } from '../../reducers/seg'
+import { Seg } from '../DateComponent'
 
 
 export default class FillRenderer { // use for highlight, background events, business hours

+ 1 - 1
src/component/renderers/HelperRenderer.ts

@@ -1,5 +1,5 @@
 import { removeElement } from '../../util/dom-manip'
-import { Seg } from '../../reducers/seg'
+import { Seg } from '../DateComponent'
 
 
 export default abstract class HelperRenderer {

+ 1 - 1
src/list/ListEventRenderer.ts

@@ -1,7 +1,7 @@
 import { htmlEscape } from '../util/html'
 import EventRenderer from '../component/renderers/EventRenderer'
 import ListView from './ListView'
-import { Seg } from '../reducers/seg'
+import { Seg } from '../component/DateComponent'
 
 export default class ListEventRenderer extends EventRenderer {
 

+ 0 - 9
src/reducers/seg.ts

@@ -1,9 +0,0 @@
-import { EventRenderRange } from './event-rendering'
-
-export interface Seg {
-  isStart: boolean
-  isEnd: boolean
-  eventRange?: EventRenderRange
-  el?: HTMLElement
-  [otherProp: string]: any
-}