Skip to content

Commit

Permalink
StandardDateComponent
Browse files Browse the repository at this point in the history
  • Loading branch information
arshaw committed Oct 31, 2018
1 parent 86359ed commit fe118ca
Show file tree
Hide file tree
Showing 18 changed files with 391 additions and 331 deletions.
4 changes: 2 additions & 2 deletions src/View.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { assignTo } from './util/object'
import { parseFieldSpecs } from './util/misc'
import DateProfileGenerator from './DateProfileGenerator'
import DateComponent from './component/DateComponent'
import StandardDateComponent from './component/StandardDateComponent'
import { DateMarker, addMs } from './datelib/marker'
import { createDuration } from './datelib/duration'
import { default as EmitterMixin, EmitterInterface } from './common/EmitterMixin'
Expand All @@ -13,7 +13,7 @@ import { ComponentContext } from './component/Component'
/* An abstract class from which other views inherit from
----------------------------------------------------------------------------------------------------------------------*/

export default abstract class View extends DateComponent {
export default abstract class View extends StandardDateComponent {

// config properties, initialized after class on prototype
usesMinMaxTime: boolean // whether minTime/maxTime will affect the activeRange. Views must opt-in.
Expand Down
4 changes: 2 additions & 2 deletions src/agenda/AgendaView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import { EventInteractionUiState } from '../interactions/event-interaction-state
import reselector from '../util/reselector'
import { EventUiHash, hasBgRendering } from '../component/event-rendering'
import { buildGotoAnchorHtml, getAllDayHtml } from '../component/date-rendering'
import { DateComponentProps } from '../component/DateComponent'
import { StandardDateComponentProps } from '../component/StandardDateComponent'
import { DateMarker } from '../datelib/marker'

const AGENDA_ALL_DAY_EVENT_LIMIT = 5
Expand Down Expand Up @@ -170,7 +170,7 @@ export default class AgendaView extends View {
------------------------------------------------------------------------------------------------------------------*/


render(props: DateComponentProps) {
render(props: StandardDateComponentProps) {
super.render(props)

let allDaySeletion = null
Expand Down
5 changes: 3 additions & 2 deletions src/agenda/TimeGrid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import { Duration, createDuration, addDurations, multiplyDuration, wholeDivideDu
import { startOfDay, DateMarker, addMs } from '../datelib/marker'
import { DateFormatter, createFormatter, formatIsoTimeString } from '../datelib/formatting'
import { ComponentContext } from '../component/Component'
import DateComponent, { Seg } from '../component/DateComponent'
import { Seg } from '../component/DateComponent'
import StandardDateComponent from '../component/StandardDateComponent'
import OffsetTracker from '../common/OffsetTracker'
import { Hit } from '../interactions/HitDragging'
import AgendaView from './AgendaView'
Expand All @@ -29,7 +30,7 @@ const AGENDA_STOCK_SUB_DURATIONS = [
{ seconds: 15 }
]

export default class TimeGrid extends DateComponent {
export default class TimeGrid extends StandardDateComponent {

dayDates: DayTableInterface['dayDates']
daysPerRow: DayTableInterface['daysPerRow']
Expand Down
4 changes: 2 additions & 2 deletions src/basic/BasicView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import BasicViewDateProfileGenerator from './BasicViewDateProfileGenerator'
import DayGrid from './DayGrid'
import { DateProfile } from '../DateProfileGenerator'
import { buildGotoAnchorHtml } from '../component/date-rendering'
import { DateComponentProps } from '../component/DateComponent'
import { StandardDateComponentProps } from '../component/StandardDateComponent'

const WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })

Expand Down Expand Up @@ -91,7 +91,7 @@ export default class BasicView extends View {
}


render(props: DateComponentProps) {
render(props: StandardDateComponentProps) {
super.render(props)

this.dayGrid.receiveProps(props)
Expand Down
8 changes: 5 additions & 3 deletions src/basic/DayGrid.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,9 @@ import DayGridMirrorRenderer from './DayGridMirrorRenderer'
import DayGridFillRenderer from './DayGridFillRenderer'
import { addDays } from '../datelib/marker'
import { createFormatter } from '../datelib/formatting'
import DateComponent, { Seg, DateComponentProps } from '../component/DateComponent'
import { StandardDateComponentProps } from '../component/StandardDateComponent'
import { Seg } from '../component/DateComponent'
import StandardDateComponent from '../component/StandardDateComponent'
import DayTile from './DayTile'
import { Hit } from '../interactions/HitDragging'
import { DateRange, rangeContainsMarker, intersectRanges } from '../datelib/date-range'
Expand All @@ -31,7 +33,7 @@ const WEEK_NUM_FORMAT = createFormatter({ week: 'numeric' })
/* A component that renders a grid of whole-days that runs horizontally. There can be multiple rows, one per week.
----------------------------------------------------------------------------------------------------------------------*/

export default class DayGrid extends DateComponent {
export default class DayGrid extends StandardDateComponent {

rowCnt: DayTableInterface['rowCnt']
colCnt: DayTableInterface['colCnt']
Expand Down Expand Up @@ -110,7 +112,7 @@ export default class DayGrid extends DateComponent {
}


render(props: DateComponentProps) {
render(props: StandardDateComponentProps) {
super.render(props)

if (this.segPopoverTile) {
Expand Down
7 changes: 4 additions & 3 deletions src/basic/DayTile.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import DateComponent, { Seg } from '../component/DateComponent'
import { Seg } from '../component/DateComponent'
import SimpleDayGridEventRenderer from './SimpleDayGridEventRenderer'
import { htmlEscape } from '../util/html'
import { createFormatter } from '../datelib/formatting'
Expand All @@ -9,7 +9,8 @@ import { Rect, pointInsideRect } from '../util/geom'
import { addDays, DateMarker } from '../datelib/marker'
import { removeElement } from '../util/dom-manip'
import { EventInteractionUiState } from '../interactions/event-interaction-state'
import { ComponentContext } from 'src/component/Component'
import { ComponentContext } from '../component/Component'
import StandardDateComponent from '../component/StandardDateComponent'

/*
props:
Expand All @@ -19,7 +20,7 @@ props:
- eventDrag
- eventResize
*/
export default class DayTile extends DateComponent {
export default class DayTile extends StandardDateComponent {

segContainerEl: HTMLElement
width: number
Expand Down
8 changes: 4 additions & 4 deletions src/common/browser-context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ export class BrowserContext {
componentHash = {}
listenerHash = {}

registerComponent(component: DateComponent) {
registerComponent(component: DateComponent<any>) {
this.componentHash[component.uid] = component
this.bindComponent(component)
}

unregisterComponent(component: DateComponent) {
unregisterComponent(component: DateComponent<any>) {
delete this.componentHash[component.uid]
this.unbindComponent(component)
}

bindComponent(component: DateComponent) {
bindComponent(component: DateComponent<any>) {
this.listenerHash[component.uid] = {
dateClicking: new DateClicking(component),
dateSelecting: new DateSelecting(component),
Expand All @@ -32,7 +32,7 @@ export class BrowserContext {
}
}

unbindComponent(component: DateComponent) {
unbindComponent(component: DateComponent<any>) {
let listeners = this.listenerHash[component.uid]

listeners.dateClicking.destroy()
Expand Down

0 comments on commit fe118ca

Please sign in to comment.