[Fixed #80227482]
Removed call to DG.store.commitRecords in DG.Component.createComponent because it caused (apparently unnecessary) performance degradation in creation of components.
[Fixed #80229148]
Added 'secondsToDate' and 'month' to the list of functions available in the formula editor. Implemented these functions in FormulaContext.
[Fixed #80230334]
Moved ChangeAttributeType from GraphModel to DataDisplayModel where it can be used by maps. Added legend attribute type to list of display properties in MapPointView.
[Fixed #80161868]
In DG.mainPage.addGraph removed check for 'gameIsReady' as an obstacle to being able to creating a graph in these documents.
In GameSelection.currentContext, check to see if the current game's context has collections. If not, check to see if there is a different context that does have collections. If so, assign it to the game's current context.
Merge branch 'master' of https://github.com/concord-consortium/codap
[Fixed #79124470]
Added DG.dirtyDocument as a global convenience function.
Call this function when drag of a border view results in a change in layout.
[Fixed #79119934]
In performChange, call DG.dirtyDocument() except for selectCases.
[Fixed #80258928]
In various places a set of changes was assumed (or coerced) to be an array. But nothing was being done if it were null or undefined. We coerce it in these circumstances to be an empty array.
Merge branch 'master' of https://github.com/concord-consortium/codap
[Fixed #79124128]
Added DG.dirtyCurrentDocument() to deleteAllCaseData
[Fixed #79119010]
[Fixed #79119838]
Added DG.dirtyCurrentDocument() to various drop handlers
By providing proper binding to 'this' and by wrapping the work of copyDocument in a callback, we fix merge conflicts resulting from postMessage and autosave coming together.
Merge branch 'master' of https://github.com/concord-consortium/codap

Conflicts:
	apps/dg/controllers/document_controller.js
	apps/dg/controllers/game_selection.js
Removed commented out and no longer used function
Converted calls to DG.currDocumentController().incrementProperty('changeCount') to DG.dirtyCurrentDocument()