Table demo

Change-Id: I10d0d2dbcd4bb2394bcc2b6a7d54519dbc7c6073
Merge "Table demo"
Update OOjs UI to v0.1.0-pre (f9c217dfa4)

New changes:
720debe PopupWidget: Toggle clipping -after- updating dimensions

Change-Id: I77f667b1eadc49096f2312a55157c070376be61e
Localisation updates from https://translatewiki.net.

Change-Id: I2e473f5493e41a028a70980fd351aa43cba9f364
Split getSelectionRect into bounding and inline

Non-embedded contexts should always use bottom-middle of the bounding
box, unless that doesn't touch highlight, in which case we use the
bottom inline rect and place the context at the right corner of that
(or left in RTL).

Bonus: Rangy doesn't understand RTL so stop using Rangy and calculate
start and end positions ourselves.

Get rid of FocusableNode#getDimensions as the dimensions are
inside getBoundingRect.

Change-Id: I00ab986bacbf4e73714d810bc6ca109a5dd4df02
Kill rangy (almost)

Replace simple range getting and setting with native Selection/Range
api that is supported by Chrome/FF & IE10+.

Bonus: Fix documentation in ve.ce.DomRange, and variable names
in various places.

Rename getSelection to getRangeSelection to avoid confusion with
native method.

Fixme: Some tests in ve.ce.TestRunner were pretending to pass because
of a typo (startNode instead of startContainer). Have been logically
commented out with an if(false) but should be fixed in later.

Change-Id: If6f5f59f96b0787b0a4545d430dae3ef0b8deb4d
Kill rangy: Vol. 2

Write a minimal replacement for getPositionFromCoords, that is trivial
in Chrome and Firefox, and uses TextRange.pasteHTML in IE.

Bonus: work around IE's lack of type support in dataTransfer so drag and
drop actually works in IE.

Change-Id: I40830dde018759078324e4650d5acace1c1fa849
Update OOjs to v1.1.1

Release notes:
 https://git.wikimedia.org/blob/oojs%2Fcore.git/v1.1.1/History.md

Change-Id: I2a78dcd147def3b02314c176e51accb2cefe872e
Rangy's dead honey, rangy's dead

The final use of rangy was checking if the native selection is backwards.
What we actually want to do is make up/down arrowing consistent in all
browsers when you have a selection.

The only case that needs fixing is when the browser doesn't support backwards
selections but the dm range is backwards, which we can detect easily.

Change-Id: Ifd5000fc5e667cb9fd6db0e97cf8a03b4da45553
Merge "Split getSelectionRect into bounding and inline"
Merge "Kill rangy (almost)"
Merge "Kill rangy: Vol. 2"
Merge "Rangy's dead honey, rangy's dead"
Add containsRange method to ve.Range

Update and add tests.

Change-Id: I67aacf70f4e03c8734a048e74d42367eb3df6f26
Merge "Add containsRange method to ve.Range"
Convert all instances of assert.equal to assert.strictEqual

We don't tolerate == in our code, so we shouldn't use it in our tests.

Also replace notEqual with notStrictEqual, and assert.ok( val ) with
assert.strictEqual( val, true ) where val is generated by a non-native
function and we want to check it actually returns a boolean as well.

Fixed one test in ve.ce.test.js which was comparing x with [x].

Bonus: Fixed comments in ve.Range.test

Change-Id: I256dce8ef854f2581c7ad1029e55bf068d91508d
Rename frequency to pollInterval in SurfaceObserver

Frequency is measured in Hz/s^-1. What we are specifying is
a time interval.

Change-Id: I0a46b3f6880ea2f02b217610148e5dd8018bcc1f
Bind ve.ce.Surface#onDocumentMouseUp to the entire document on mousedown

Otherwise a mouseup outside the surface is not detected.

Bug: 59822
Change-Id: I92b34624f84c55c5a6630e464c685d8fd83c4f43
Merge "Bind ve.ce.Surface#onDocumentMouseUp to the entire document on mousedown"
Localisation updates from https://translatewiki.net.

Change-Id: I7c7a496af6d42b7aff53baf0b3d0542858fe1be2