Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Change on 2010/06/17 by mpd

	HTML5 features for Safari5: enable attachment drag-in, image drag-in, and long lived fast tearoffs.

	(Attachment drag out doesn't appear to work.)

	R=adeboor
	DELTA=10  (7 added, 0 deleted, 3 changed)

Change on 2010/06/17 by nicksantos

	Publicize the RuntimeObject getters.

	R=pupius
	DELTA=35  (20 added, 6 deleted, 9 changed)

Change on 2010/06/18 by hbono

	Add a new function goog.events.testing.fireNonAsciiKeySequence so we can
	test keyboard events when typing on non-US keyboards.
	When typing on a non-US keyboards, the keyCode of its keypress event
	might become different one from the ones of its keydown and keyup
	events. This change adds a new function fireNonAsciiKeySequence so we
	can write unit tests for non-US keyboards.

	R=nicksantos
	DELTA=104  (97 added, 6 deleted, 1 changed)

Change on 2010/06/18 by luizp

	Duplicate the implementation of binarySelect in binarySearch for performance
	reasons. This removes some unnecessary code that was resulting in a performance
	regression in IE:
	1. Creation of a closure around the comparison function every time the method
	is called.
	2. Extra calls to Array#slice in the implementation of goog.partial, once
	when the closure is created and once every time the comparison function
	is called.
	3. Extra calls to Function#apply in the implementation of goog.partial,
	every time the comparison function is called.
	4. Usage of Function#call instead of calling the comparison function
	directly.
	Running the following test in IE:
	var array = [];
	for (var i = 0; i < 1000; i++) {
	array[i] = i;
	}
	var time = goog.now();
	for (var i = 0; i < 1000; i++) {
	goog.array.binarySearch(array, i);
	}
	console.log(goog.now() - time);
	Resulted in the following numbers (in ms):
	OLD
	329
	828
	281
	1719
	266
	2063
	281
	1890
	281
	1938
	Mean: 987.6
	NEW
	15
	16
	16
	15
	15
	16
	16
	16
	16
	16
	Mean: 15.7

	R=gboyer
	DELTA=70  (67 added, 1 deleted, 2 changed)

Change on 2010/06/21 by nicksantos

	Add @nocompile tags to some of the demo files.
	This will allow third-party people to just glob the whole
	closure directory without pulling in those files.

	R=gboyer
	DELTA=16  (15 added, 0 deleted, 1 changed)

Change on 2010/06/21 by jparent

	Change all references to classname -> className.

	R=arv
	DELTA=15  (0 added, 0 deleted, 15 changed)

Change on 2010/06/21 by shanjian

	add abbreviate day format pattern.

	R=arv,pupius
	DELTA=830  (415 added, 0 deleted, 415 changed)

Change on 2010/06/22 by elsigh

	Adding support for IE DropShadow filter and dynamic needsPaddingFix.
	Made a member method for getPaddingBorderBoxHeight.
	Testing in IE8 and seeing it show up and behave as IE7
	made me redo NEEDS_PADDING_FIX as part of the detection function.
	It would eventually be nice to get NEEDS_HELP_SHRINKING in there.

	R=brenneman
	DELTA=127  (75 added, 29 deleted, 23 changed)

Change on 2010/06/22 by gboyer

	Add setInstanceContainsTests to testcase so that jstd tests can
	be easily run using the Closure test framework.

	R=pupius,nicksantos
	DELTA=12  (11 added, 0 deleted, 1 changed)

Change on 2010/06/22 by mpd

	Add ctrl-space as a keyboard shortcut to clear formatting.

	R=jparent
	DELTA=47  (47 added, 0 deleted, 0 changed)

Change on 2010/06/22 by eae

	Adds AFTER_HIDE event to container class to complement existing
	AFTER_SHOW one.

	R=arv
	DELTA=28  (19 added, 0 deleted, 9 changed)

Change on 2010/06/22 by robbyw

	Fix a couples cases where new indentation checker is being picky.

	R=jparent
	DELTA=8  (2 added, 3 deleted, 3 changed)

Change on 2010/06/22 by nicksantos

	add an override tag to help out jscompiler.

	R=gboyer
	DELTA=3  (0 added, 1 deleted, 2 changed)

Change on 2010/06/22 by chaoyang

	Open item management in goog.ui.Container
	- Added an option openFollowHighlight
	- Added a getter for openItem

	R=attila
	DELTA=93  (90 added, 0 deleted, 3 changed)

Change on 2010/06/23 by arv

	Add goog.dom.append which is an extraction of the appending code from
	goog.dom.createDom.

	R=pupius
	DELTA=124  (98 added, 20 deleted, 6 changed)

Change on 2010/06/23 by pallosp

	Fixed tearDown in hovercard_test.html so one failing test won't
	interfere with the others.
	Some style fixes in tooltip.js.

	R=arv
	DELTA=61  (29 added, 26 deleted, 6 changed)

Change on 2010/06/23 by nnaze

	Updates to ClosureBuilder's --help output.

	R=westbrook
	DELTA=8  (3 added, 0 deleted, 5 changed)

Change on 2010/06/23 by jparent

	Convert goog.editor.node.transferChildren over to use goog.dom.append, update all current uses of goog.editor.node.transferChildren, and mark it as deprecated.

	R=arv
	DELTA=9  (1 added, 3 deleted, 5 changed)

Change on 2010/06/24 by shanjian

	This change was first made in #4 but was mistakenly overwritten in #5.
	Check in this change again, and I will update generation script to prevent
	such mistake from happening again.

	R=pupius,arv
	DELTA=2  (0 added, 2 deleted, 0 changed)

Change on 2010/06/24 by agrieve

	Fix up missing requires that the --check_requires pass complains about.

	R=nicksantos
	DELTA=8  (7 added, 0 deleted, 1 changed)

Change on 2010/06/24 by rschriebman

	Fixes safari 3 not handling currency replacement in goog.getMsg. The main issue is this, say you're formatting a currency so you're in the situation like this:

	var msg = goog.getMsg('{$amount} per minute', {amount: '$0.15'});
	assertEquals('$0.15 per minute', msg);

	This passes in all browsers but Safari 3, in safari 3 you get this issue:

	Expected <$0.15 per minute> (String) but was <{$amount}.15 per minute> (String)

	The details and potential solutions to this issue are detailed rather well here: http://mattsnider.com/index.php?tag=safari. This solution should work in all browsers.

	R=arv,pupius
	DELTA=22  (21 added, 0 deleted, 1 changed)


Revision created by MOE tool push_codebase.
MOE_MIGRATION=38004


git-svn-id: http://closure-library.googlecode.com/svn/trunk@155 0b95b8e8-c90f-11de-9d4f-f947ee5921c8
  • Loading branch information...
commit 474def4a0dac66baa74b05455995e55a666f8db4 1 parent 330ec8a
brenneman@google.com authored
Showing with 1,514 additions and 605 deletions.
  1. +1 −1  AUTHORS
  2. +8 −5 closure/bin/build/closurebuilder.py
  3. +35 −6 closure/goog/array/array.js
  4. +37 −0 closure/goog/array/array_test.html
  5. +2 −1  closure/goog/base.js
  6. +20 −0 closure/goog/base_test.html
  7. +3 −0  closure/goog/demos/autocompleteremotedata.js
  8. +3 −0  closure/goog/demos/autocompleterichremotedata.js
  9. +5 −5 closure/goog/deps.js
  10. +71 −26 closure/goog/dom/dom.js
  11. +33 −0 closure/goog/dom/dom_test.js
  12. +4 −2 closure/goog/editor/browserfeature.js
  13. +4 −4 closure/goog/editor/clicktoeditwrapper.js
  14. +3 −5 closure/goog/editor/node.js
  15. +1 −2  closure/goog/editor/plugins/basictextformatter.js
  16. +15 −15 closure/goog/editor/plugins/blockquote.js
  17. +2 −2 closure/goog/editor/plugins/enterhandler.js
  18. +19 −0 closure/goog/editor/plugins/removeformatting.js
  19. +28 −0 closure/goog/editor/plugins/removeformatting_test.html
  20. +136 −68 closure/goog/i18n/datetimepatterns.js
  21. +694 −347 closure/goog/i18n/datetimepatternsext.js
  22. +0 −2  closure/goog/i18n/datetimesymbolsext.js
  23. +3 −3 closure/goog/testing/benchmark.js
  24. +22 −1 closure/goog/testing/events/events.js
  25. +76 −6 closure/goog/testing/events/events_test.html
  26. +3 −2 closure/goog/testing/mockclassfactory.js
  27. +33 −6 closure/goog/testing/testcase.js
  28. +1 −1  closure/goog/ui/advancedtooltip.js
  29. +2 −3 closure/goog/ui/component.js
  30. +49 −6 closure/goog/ui/container.js
  31. +72 −6 closure/goog/ui/container_test.html
  32. +4 −18 closure/goog/ui/hovercard_test.html
  33. +72 −45 closure/goog/ui/textarea.js
  34. +24 −5 closure/goog/ui/textarea_test.html
  35. +23 −9 closure/goog/ui/tooltip.js
  36. +6 −3 closure/goog/ui/tooltip_test.html
View
2  AUTHORS
@@ -5,5 +5,5 @@
Google Inc.
Mohamed Mansour <hello@mohamedmansour.com>
-Bjorn Tipilng <bjorn.tipling@gmail.com>
+Bjorn Tipling <bjorn.tipling@gmail.com>
SameGoal LLC <help@samegoal.com>
View
13 closure/bin/build/closurebuilder.py
@@ -5,12 +5,13 @@
"""Utility for Closure Library dependency calculation.
-Closure Builder scans source files to build dependency info. From the
+ClosureBuilder scans source files to build dependency info. From the
dependencies, the script can produce a deps.js file, a manifest in dependency
order, a concatenated script, or compiled output from the Closure Compiler.
-Paths to files can be expressed as arguments (intended for use with xargs).
-As a convenience, --root can be used to specify all JS files below a directory.
+Paths to files can be expressed as individual arguments to the tool (intended
+for use with find and xargs). As a convenience, --root can be used to specify
+all JS files below a directory.
usage: %prog [options] [file1.js file2.js ...]
"""
@@ -50,7 +51,9 @@ def _GetOptionsParser():
help='One or more namespaces to calculate dependencies '
'for. These namespaces will be combined with those given '
'with the -i flag to form the set of namespaces to find '
- 'dependencies for.')
+ 'dependencies for. A Closure namespace is a '
+ 'dot-delimited path expression declared with a call to '
+ 'goog.provide() (e.g. "goog.array" or "foo.bar").')
parser.add_option('--root',
dest='roots',
action='append',
@@ -66,7 +69,7 @@ def _GetOptionsParser():
help='The type of output to generate from this script. '
'Options are "list" for a list of filenames, "script" '
'for a single script containing the contents of all the '
- 'file, or "compiled" to produce compiled output with '
+ 'files, or "compiled" to produce compiled output with '
'the Closure Compiler. Default is "list".')
parser.add_option('-c',
'--compiler_jar',
View
41 closure/goog/array/array.js
@@ -841,7 +841,6 @@ goog.array.removeDuplicates = function(arr, opt_rv) {
/**
* Searches the specified array for the specified target using the binary
* search algorithm. If no opt_compareFn is specified, elements are compared
- * using <code>goog.array.defaultCompare</code>, which compares the elements
* using the built in < and > operators. This will produce the expected
* behavior for homogeneous arrays of String(s) and Number(s). The array
* specified <b>must</b> be sorted in ascending order (as defined by the
@@ -851,6 +850,9 @@ goog.array.removeDuplicates = function(arr, opt_rv) {
*
* Runtime: O(log n)
*
+ * This is almost identical to the implementation of binarySelect below. They
+ * have not been unified for performance reasons.
+ *
* @param {goog.array.ArrayLike} arr The array to be searched.
* @param {*} target The sought value.
* @param {Function=} opt_compareFn Optional comparison function by which the
@@ -863,8 +865,35 @@ goog.array.removeDuplicates = function(arr, opt_rv) {
* iff target is found.
*/
goog.array.binarySearch = function(arr, target, opt_compareFn) {
- return goog.array.binarySelect(arr,
- goog.partial(opt_compareFn || goog.array.defaultCompare, target));
+ var left = 0; // inclusive
+ var right = arr.length; // exclusive
+ var found;
+ while (left < right) {
+ var middle = (left + right) >> 1;
+ var compareResult;
+ var currentValue = arr[middle];
+ if (opt_compareFn) {
+ compareResult = opt_compareFn(target, currentValue);
+ } else {
+ // We assume that if a custom compare function was not provided, then the
+ // target is comparable with the built in < and > operators.
+ var comparableTarget = /** @type {string|number} */ (target);
+ // We inline the logic here rather than calling defaultCompare for
+ // performance reasons.
+ compareResult = comparableTarget > currentValue ? 1 :
+ comparableTarget < currentValue ? -1 : 0;
+ }
+ if (compareResult > 0) {
+ left = middle + 1;
+ } else {
+ right = middle;
+ // We are looking for the lowest index so we can't return immediately.
+ found = !compareResult;
+ }
+ }
+ // left is the index if found, or the insertion point otherwise.
+ // ~left is a shorthand for -left - 1.
+ return found ? left : ~left;
};
@@ -1190,9 +1219,9 @@ goog.array.rotate = function(array, n) {
/**
* Creates a new array for which the element at position i is an array of the
- * ith element of the provided arrays. The returned array will only be as long
- * as the shortest array provided; additional values are ignored. For example,
- * the result of zipping [1, 2] and [3, 4, 5] is [[1,3], [2, 4]].
+ * ith element of the provided arrays. The returned array will only be as long
+ * as the shortest array provided; additional values are ignored. For example,
+ * the result of zipping [1, 2] and [3, 4, 5] is [[1,3], [2, 4]].
*
* This is similar to the zip() function in Python. See {@link
* http://docs.python.org/library/functions.html#zip}
View
37 closure/goog/array/array_test.html
@@ -11,6 +11,7 @@
<script src="../base.js"></script>
<script>
goog.require('goog.array');
+ goog.require('goog.testing.PropertyReplacer');
goog.require('goog.testing.jsunit');
goog.require('goog.testing.recordFunction');
</script>
@@ -18,6 +19,17 @@
<body>
<script>
+var propertyReplacer;
+
+function setUp() {
+}
+
+function tearDown() {
+ if (propertyReplacer) {
+ propertyReplacer.reset();
+ }
+}
+
function testArrayIndexOf() {
assertEquals(goog.array.indexOf([0, 1, 2, 3], 1), 1);
assertEquals(goog.array.indexOf([0, 1, 1, 1], 1), 1);
@@ -1002,6 +1014,31 @@
}
+function testBinarySearchPerformance() {
+ // Ensure that Array#slice, Function#apply and Function#call are not called
+ // from within binarySearch, since they have performance implications in IE.
+
+ propertyReplacer = new goog.testing.PropertyReplacer();
+ propertyReplacer.replace(Array.prototype, 'slice', function() {
+ fail('Should not call Array#slice from binary search.');
+ });
+ propertyReplacer.replace(Function.prototype, 'apply', function() {
+ fail('Should not call Function#apply from binary search.');
+ });
+ propertyReplacer.replace(Function.prototype, 'call', function() {
+ fail('Should not call Function#call from binary search.');
+ });
+
+ var array = [1, 5, 7, 11, 13, 16, 19, 24, 28, 31, 33, 36, 40, 50, 52, 55];
+ // Test with the default comparison function.
+ goog.array.binarySearch(array, 48);
+ // Test with a custom comparison function.
+ goog.array.binarySearch(array, 13, function(a, b) {
+ return a > b ? 1 : a < b ? -1 : 0;
+ });
+}
+
+
function testBinarySelect() {
var insertionPoint = function(position) { return -(position + 1)};
var numbers = [-897123.9, -321434.58758, -1321.3124, -324, -9, -3, 0, 0, 0,
View
3  closure/goog/base.js
@@ -1157,7 +1157,8 @@ goog.setCssNameMapping = function(mapping) {
goog.getMsg = function(str, opt_values) {
var values = opt_values || {};
for (var key in values) {
- str = str.replace(new RegExp('\\{\\$' + key + '\\}', 'gi'), values[key]);
+ var value = ('' + values[key]).replace(/\$/g, '$$$$');
+ str = str.replace(new RegExp('\\{\\$' + key + '\\}', 'gi'), value);
}
return str;
};
View
20 closure/goog/base_test.html
@@ -831,6 +831,26 @@
}
}
+//=== tests for getmsg ===
+function testGetMsgWithDollarSigns() {
+ var msg = goog.getMsg('{$amount} per minute',
+ {amount: '$0.15'});
+ assertEquals('$0.15 per minute', msg);
+ msg = goog.getMsg('{$amount} per minute',
+ {amount: '$0.$1$5'});
+ assertEquals('$0.$1$5 per minute', msg);
+
+ msg = goog.getMsg('This is a {$rate} sale!',
+ {rate: '$$$$$$$$$$10'});
+ assertEquals('This is a $$$$$$$$$$10 sale!', msg);
+ msg = goog.getMsg('{$name}! Hamburgers: {$hCost}, Hotdogs: {$dCost}.',
+ {name: 'Burger Bob',
+ hCost: '$0.50',
+ dCost: '$100'});
+ assertEquals('Burger Bob! Hamburgers: $0.50, Hotdogs: $100.',
+ msg);
+}
+
//=== miscellaneous tests ===
View
3  closure/goog/demos/autocompleteremotedata.js
@@ -11,5 +11,8 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
+/** @nocompile */
+
['Big Table', 'Googlebot', 'Instant Indexing', 'Mustang', 'Page Rank',
'Proto Buffer']
View
3  closure/goog/demos/autocompleterichremotedata.js
@@ -11,6 +11,9 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
+
+/** @nocompile */
+
[
['apple',
{name: 'Fuji', url: 'http://www.google.com/images?q=fuji+apple'},
View
10 closure/goog/deps.js
@@ -377,7 +377,7 @@ goog.addDependency('style/cursor.js', ['goog.style.cursor'], ['goog.userAgent'])
goog.addDependency('style/style.js', ['goog.style'], ['goog.array', 'goog.dom', 'goog.math.Box', 'goog.math.Coordinate', 'goog.math.Rect', 'goog.math.Size', 'goog.object', 'goog.userAgent']);
goog.addDependency('testing/asserts.js', ['goog.testing.JsUnitException', 'goog.testing.asserts'], ['goog.testing.stacktrace']);
goog.addDependency('testing/asynctestcase.js', ['goog.testing.AsyncTestCase', 'goog.testing.AsyncTestCase.ControlBreakingException'], ['goog.testing.TestCase', 'goog.testing.TestCase.Test', 'goog.testing.asserts']);
-goog.addDependency('testing/benchmark.js', ['goog.testing.benchmark'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTable', 'goog.testing.PerformanceTimer']);
+goog.addDependency('testing/benchmark.js', ['goog.testing.benchmark'], ['goog.dom', 'goog.dom.TagName', 'goog.testing.PerformanceTable', 'goog.testing.PerformanceTimer', 'goog.testing.TestCase']);
goog.addDependency('testing/continuationtestcase.js', ['goog.testing.ContinuationTestCase', 'goog.testing.ContinuationTestCase.Step', 'goog.testing.ContinuationTestCase.Test'], ['goog.array', 'goog.events.EventHandler', 'goog.testing.TestCase', 'goog.testing.TestCase.Test', 'goog.testing.asserts']);
goog.addDependency('testing/dom.js', ['goog.testing.dom'], ['goog.dom', 'goog.dom.NodeIterator', 'goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagName', 'goog.dom.classes', 'goog.iter', 'goog.object', 'goog.string', 'goog.style', 'goog.testing.asserts', 'goog.userAgent']);
goog.addDependency('testing/editor/dom.js', ['goog.testing.editor.dom'], ['goog.dom.NodeType', 'goog.dom.TagIterator', 'goog.dom.TagWalkType', 'goog.iter', 'goog.string', 'goog.testing.asserts']);
@@ -391,7 +391,7 @@ goog.addDependency('testing/graphics.js', ['goog.testing.graphics'], ['goog.grap
goog.addDependency('testing/jsunit.js', ['goog.testing.jsunit'], ['goog.testing.TestCase', 'goog.testing.TestRunner']);
goog.addDependency('testing/loosemock.js', ['goog.testing.LooseExpectationCollection', 'goog.testing.LooseMock'], ['goog.array', 'goog.structs.Map', 'goog.testing.Mock']);
goog.addDependency('testing/mock.js', ['goog.testing.Mock', 'goog.testing.MockExpectation'], ['goog.array', 'goog.testing.JsUnitException', 'goog.testing.mockmatchers']);
-goog.addDependency('testing/mockclassfactory.js', ['goog.testing.MockClassFactory', 'goog.testing.MockClassRecord'], ['goog.array', 'goog.object', 'goog.testing.LooseMock', 'goog.testing.StrictMock', 'goog.testing.mockmatchers']);
+goog.addDependency('testing/mockclassfactory.js', ['goog.testing.MockClassFactory', 'goog.testing.MockClassRecord'], ['goog.array', 'goog.object', 'goog.testing.LooseMock', 'goog.testing.StrictMock', 'goog.testing.TestCase', 'goog.testing.mockmatchers']);
goog.addDependency('testing/mockclock.js', ['goog.testing.MockClock'], ['goog.Disposable', 'goog.testing.PropertyReplacer']);
goog.addDependency('testing/mockcontrol.js', ['goog.testing.MockControl'], ['goog.array', 'goog.testing', 'goog.testing.LooseMock', 'goog.testing.StrictMock']);
goog.addDependency('testing/mockmatchers.js', ['goog.testing.mockmatchers', 'goog.testing.mockmatchers.ArgumentMatcher', 'goog.testing.mockmatchers.IgnoreArgument', 'goog.testing.mockmatchers.InstanceOf', 'goog.testing.mockmatchers.ObjectEquals', 'goog.testing.mockmatchers.RegexpMatch', 'goog.testing.mockmatchers.SaveArgument', 'goog.testing.mockmatchers.TypeOf'], ['goog.array', 'goog.dom', 'goog.testing.asserts']);
@@ -420,7 +420,7 @@ goog.addDependency('timer/timer.js', ['goog.Timer'], ['goog.events.EventTarget']
goog.addDependency('tweak/entries.js', ['goog.tweak.BaseEntry', 'goog.tweak.BasePrimitiveSetting', 'goog.tweak.BaseSetting', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.StringSetting'], ['goog.array', 'goog.asserts', 'goog.debug.Logger', 'goog.object']);
goog.addDependency('tweak/registry.js', ['goog.tweak.Registry'], ['goog.asserts', 'goog.debug.Logger', 'goog.object', 'goog.tweak.BaseEntry', 'goog.uri.utils']);
goog.addDependency('tweak/testhelpers.js', ['goog.tweak.testhelpers'], ['goog.tweak']);
-goog.addDependency('tweak/tweak.js', ['goog.tweak', 'goog.tweak.ConfigParams'], ['goog.asserts', 'goog.tweak.Registry']);
+goog.addDependency('tweak/tweak.js', ['goog.tweak', 'goog.tweak.ConfigParams'], ['goog.asserts', 'goog.tweak.BooleanGroup', 'goog.tweak.BooleanInGroupSetting', 'goog.tweak.BooleanSetting', 'goog.tweak.ButtonAction', 'goog.tweak.NumericSetting', 'goog.tweak.Registry', 'goog.tweak.StringSetting']);
goog.addDependency('tweak/tweakui.js', ['goog.tweak.EntriesPanel', 'goog.tweak.TweakUi'], ['goog.array', 'goog.asserts', 'goog.dom.DomHelper', 'goog.object', 'goog.style', 'goog.tweak', 'goog.ui.Zippy']);
goog.addDependency('ui/abstractspellchecker.js', ['goog.ui.AbstractSpellChecker', 'goog.ui.AbstractSpellChecker.AsyncResult'], ['goog.dom', 'goog.dom.classes', 'goog.dom.selection', 'goog.events.EventType', 'goog.math.Coordinate', 'goog.spell.SpellCheck', 'goog.structs.Set', 'goog.style', 'goog.ui.MenuItem', 'goog.ui.MenuSeparator', 'goog.ui.PopupMenu']);
goog.addDependency('ui/activitymonitor.js', ['goog.ui.ActivityMonitor'], ['goog.dom', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventTarget']);
@@ -502,7 +502,7 @@ goog.addDependency('ui/hsvpalette.js', ['goog.ui.HsvPalette'], ['goog.color', 'g
goog.addDependency('ui/idgenerator.js', ['goog.ui.IdGenerator'], []);
goog.addDependency('ui/idletimer.js', ['goog.ui.IdleTimer'], ['goog.Timer', 'goog.events', 'goog.events.EventTarget', 'goog.structs.Set', 'goog.ui.ActivityMonitor']);
goog.addDependency('ui/iframemask.js', ['goog.ui.IframeMask'], ['goog.Disposable', 'goog.Timer', 'goog.dom', 'goog.dom.DomHelper', 'goog.dom.iframe', 'goog.events.EventHandler', 'goog.events.EventTarget', 'goog.style']);
-goog.addDependency('ui/imagelessbuttonrenderer.js', ['goog.ui.ImagelessButtonRenderer'], ['goog.ui.Button', 'goog.ui.ControlContent', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry']);
+goog.addDependency('ui/imagelessbuttonrenderer.js', ['goog.ui.ImagelessButtonRenderer'], ['goog.ui.Button', 'goog.ui.ControlContent', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']);
goog.addDependency('ui/imagelessroundedcorner.js', ['goog.ui.AbstractImagelessRoundedCorner', 'goog.ui.CanvasRoundedCorner', 'goog.ui.ImagelessRoundedCorner', 'goog.ui.VmlRoundedCorner'], ['goog.dom.DomHelper', 'goog.graphics.SolidFill', 'goog.graphics.Stroke', 'goog.graphics.VmlGraphics', 'goog.userAgent']);
goog.addDependency('ui/inputdatepicker.js', ['goog.ui.InputDatePicker'], ['goog.date.DateTime', 'goog.dom', 'goog.i18n.DateTimeParse', 'goog.string', 'goog.ui.Component', 'goog.ui.PopupDatePicker']);
goog.addDependency('ui/itemevent.js', ['goog.ui.ItemEvent'], ['goog.events.Event']);
@@ -560,7 +560,7 @@ goog.addDependency('ui/slider.js', ['goog.ui.Slider', 'goog.ui.Slider.Orientatio
goog.addDependency('ui/sliderbase.js', ['goog.ui.SliderBase', 'goog.ui.SliderBase.Orientation'], ['goog.Timer', 'goog.dom', 'goog.dom.a11y', 'goog.dom.a11y.Role', 'goog.dom.a11y.State', 'goog.dom.classes', 'goog.events', 'goog.events.EventType', 'goog.events.KeyCodes', 'goog.events.KeyHandler', 'goog.events.KeyHandler.EventType', 'goog.events.MouseWheelHandler', 'goog.events.MouseWheelHandler.EventType', 'goog.fx.Animation.EventType', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType', 'goog.fx.dom.SlideFrom', 'goog.math', 'goog.math.Coordinate', 'goog.style', 'goog.ui.Component', 'goog.ui.Component.EventType', 'goog.ui.RangeModel']);
goog.addDependency('ui/splitbehavior.js', ['goog.ui.SplitBehavior', 'goog.ui.SplitBehavior.DefaultHandlers'], ['goog.Disposable', 'goog.array', 'goog.dispose', 'goog.dom', 'goog.dom.DomHelper', 'goog.dom.classes', 'goog.events', 'goog.events.EventHandler', 'goog.events.EventType', 'goog.string', 'goog.ui.Button.Side', 'goog.ui.Component', 'goog.ui.Component.Error', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.decorate', 'goog.ui.registry']);
goog.addDependency('ui/splitpane.js', ['goog.ui.SplitPane', 'goog.ui.SplitPane.Orientation'], ['goog.dom', 'goog.dom.classes', 'goog.events.EventType', 'goog.fx.Dragger', 'goog.fx.Dragger.EventType', 'goog.math.Rect', 'goog.math.Size', 'goog.style', 'goog.ui.Component', 'goog.ui.Component.EventType', 'goog.userAgent']);
-goog.addDependency('ui/style/app/buttonrenderer.js', ['goog.ui.style.app.ButtonRenderer'], ['goog.ui.Button', 'goog.ui.ControlContent', 'goog.ui.CustomButtonRenderer', 'goog.ui.registry']);
+goog.addDependency('ui/style/app/buttonrenderer.js', ['goog.ui.style.app.ButtonRenderer'], ['goog.ui.Button', 'goog.ui.ControlContent', 'goog.ui.CustomButtonRenderer', 'goog.ui.INLINE_BLOCK_CLASSNAME', 'goog.ui.registry']);
goog.addDependency('ui/style/app/menubuttonrenderer.js', ['goog.ui.style.app.MenuButtonRenderer'], ['goog.array', 'goog.dom', 'goog.dom.a11y.Role', 'goog.style', 'goog.ui.ControlContent', 'goog.ui.Menu', 'goog.ui.MenuRenderer', 'goog.ui.style.app.ButtonRenderer']);
goog.addDependency('ui/style/app/primaryactionbuttonrenderer.js', ['goog.ui.style.app.PrimaryActionButtonRenderer'], ['goog.ui.Button', 'goog.ui.registry', 'goog.ui.style.app.ButtonRenderer']);
goog.addDependency('ui/submenu.js', ['goog.ui.SubMenu'], ['goog.Timer', 'goog.dom', 'goog.dom.classes', 'goog.events.KeyCodes', 'goog.positioning.AnchoredViewportPosition', 'goog.positioning.Corner', 'goog.style', 'goog.ui.Component', 'goog.ui.Component.EventType', 'goog.ui.Component.State', 'goog.ui.ControlContent', 'goog.ui.Menu', 'goog.ui.MenuItem', 'goog.ui.SubMenuRenderer', 'goog.ui.registry']);
View
97 closure/goog/dom/dom.js
@@ -593,7 +593,7 @@ goog.dom.createDom = function(tagName, opt_attributes, var_args) {
/**
* Helper for {@code createDom}.
* @param {!Document} doc The document to create the DOM in.
- * @param {Arguments} args Argument object passed from the callers. See
+ * @param {!Arguments} args Argument object passed from the callers. See
* {@code goog.dom.createDom} for details.
* @return {!Element} Reference to a DOM node.
* @private
@@ -636,32 +636,46 @@ goog.dom.createDom_ = function(doc, args) {
}
if (args.length > 2) {
- var childHandler = function(child) {
- // TODO(user): More coercion, ala MochiKit?
- if (child) {
- element.appendChild(goog.isString(child) ?
- doc.createTextNode(child) : child);
- }
- };
-
- for (var i = 2; i < args.length; i++) {
- var arg = args[i];
- // TODO(user): Fix isArrayLike to return false for a text node.
- if (goog.isArrayLike(arg) && !goog.dom.isNodeLike(arg)) {
- // If the argument is a node list, not a real array, use a clone,
- // because forEach can't be used to mutate a NodeList.
- goog.array.forEach(goog.dom.isNodeList(arg) ?
- goog.array.clone(arg) : arg,
- childHandler);
- } else {
- childHandler(arg);
- }
- }
+ goog.dom.append_(doc, element, args, 2);
}
return element;
};
+
+/**
+ * Appends a node with text or other nodes.
+ * @param {!Document} doc The document to create new nodes in.
+ * @param {!Node} parent The node to append nodes to.
+ * @param {!Arguments} args The values to add. See {@code goog.dom.append}.
+ * @param {number} startIndex The index of the array to start from.
+ * @private
+ */
+goog.dom.append_ = function(doc, parent, args, startIndex) {
+ function childHandler(child) {
+ // TODO(user): More coercion, ala MochiKit?
+ if (child) {
+ parent.appendChild(goog.isString(child) ?
+ doc.createTextNode(child) : child);
+ }
+ }
+
+ for (var i = startIndex; i < args.length; i++) {
+ var arg = args[i];
+ // TODO(user): Fix isArrayLike to return false for a text node.
+ if (goog.isArrayLike(arg) && !goog.dom.isNodeLike(arg)) {
+ // If the argument is a node list, not a real array, use a clone,
+ // because forEach can't be used to mutate a NodeList.
+ goog.array.forEach(goog.dom.isNodeList(arg) ?
+ goog.array.clone(arg) : arg,
+ childHandler);
+ } else {
+ childHandler(arg);
+ }
+ }
+};
+
+
/**
* Alias for {@code createDom}.
* @param {string} tagName Tag to create.
@@ -857,6 +871,19 @@ goog.dom.appendChild = function(parent, child) {
/**
+ * Appends a node with text or other nodes.
+ * @param {!Node} parent The node to append nodes to.
+ * @param {...goog.dom.Appendable} var_args The things to append to the node.
+ * If this is a Node it is appended as is.
+ * If this is a string then a text node is appended.
+ * If this is an array like object then fields 0 to length - 1 are appended.
+ */
+goog.dom.append = function(parent, var_args) {
+ goog.dom.append_(goog.dom.getOwnerDocument(parent), parent, arguments, 1);
+};
+
+
+/**
* Removes all the child nodes on a DOM node.
* @param {Node} node Node to remove children from.
*/
@@ -1846,6 +1873,13 @@ goog.dom.DomHelper.prototype.getDocumentHeight = function() {
/**
+ * Typedef for use with goog.dom.createDom and goog.dom.append.
+ * @typedef {Object|string|Array|NodeList}
+ */
+goog.dom.Appendable;
+
+
+/**
* Returns a dom node with a set of attributes. This function accepts varargs
* for subsequent nodes to be added. Subsequent nodes will be added to the
* first node as childNodes.
@@ -1864,7 +1898,7 @@ goog.dom.DomHelper.prototype.getDocumentHeight = function() {
* @param {Object|string=} opt_attributes If object, then a map of name-value
* pairs for attributes. If a string, then this is the className of the new
* element.
- * @param {...Object|string|Array|NodeList} var_args Further DOM nodes or
+ * @param {...goog.dom.Appendable} var_args Further DOM nodes or
* strings for text nodes. If one of the var_args is an array or
* NodeList, its elements will be added as childNodes instead.
* @return {!Element} Reference to a DOM node.
@@ -1882,9 +1916,9 @@ goog.dom.DomHelper.prototype.createDom = function(tagName,
* @param {Object|string=} opt_attributes If object, then a map of name-value
* pairs for attributes. If a string, then this is the className of the new
* element.
- * @param {...Object|string|Array|NodeList} var_args Further DOM nodes
- * or strings for text nodes. If one of the var_args is an array, its
- * children will be added as childNodes instead.
+ * @param {...goog.dom.Appendable} var_args Further DOM nodes or strings for
+ * text nodes. If one of the var_args is an array, its children will be
+ * added as childNodes instead.
* @return {!Element} Reference to a DOM node.
* @deprecated Use {@link goog.dom.DomHelper.prototype.createDom} instead.
*/
@@ -1995,6 +2029,17 @@ goog.dom.DomHelper.prototype.appendChild = goog.dom.appendChild;
/**
+ * Appends a node with text or other nodes.
+ * @param {!Node} parent The node to append nodes to.
+ * @param {...goog.dom.Appendable} var_args The things to append to the node.
+ * If this is a Node it is appended as is.
+ * If this is a string then a text node is appended.
+ * If this is an array like object then fields 0 to length - 1 are appended.
+ */
+goog.dom.DomHelper.prototype.append = goog.dom.append;
+
+
+/**
* Removes all the child nodes on a DOM node.
* @param {Node} node Node to remove children from.
*/
View
33 closure/goog/dom/dom_test.js
@@ -1019,3 +1019,36 @@ function testHtmlToDocumentFragment() {
assertNull(div.parentNode);
}
}
+
+function testAppend() {
+ var div = document.createElement('div');
+ var b = document.createElement('b');
+ var c = document.createTextNode('c');
+ goog.dom.append(div, 'a', b, c);
+ assertEqualsCaseAndLeadingWhitespaceInsensitive('a<b></b>c', div.innerHTML);
+}
+
+function testAppend2() {
+ var div = myIframeDoc.createElement('div');
+ var b = myIframeDoc.createElement('b');
+ var c = myIframeDoc.createTextNode('c');
+ goog.dom.append(div, 'a', b, c);
+ assertEqualsCaseAndLeadingWhitespaceInsensitive('a<b></b>c', div.innerHTML);
+}
+
+function testAppend3() {
+ var div = document.createElement('div');
+ var b = document.createElement('b');
+ var c = document.createTextNode('c');
+ goog.dom.append(div, ['a', b, c]);
+ assertEqualsCaseAndLeadingWhitespaceInsensitive('a<b></b>c', div.innerHTML);
+}
+
+function testAppend4() {
+ var div = document.createElement('div');
+ var div2 = document.createElement('div');
+ div2.innerHTML = 'a<b></b>c';
+ goog.dom.append(div, div2.childNodes);
+ assertEqualsCaseAndLeadingWhitespaceInsensitive('a<b></b>c', div.innerHTML);
+ assertFalse(div2.hasChildNodes());
+}
View
6 closure/goog/editor/browserfeature.js
@@ -243,6 +243,8 @@ goog.editor.BrowserFeature = {
// Implements this spec about dragging files from the filesystem to the
// browser: http://www.whatwg/org/specs/web-apps/current-work/#dnd
- SUPPORTS_HTML5_FILE_DRAGGING: goog.userAgent.product.CHROME &&
- goog.userAgent.product.isVersion('4')
+ SUPPORTS_HTML5_FILE_DRAGGING: (goog.userAgent.product.CHROME &&
+ goog.userAgent.product.isVersion('4')) ||
+ (goog.userAgent.product.SAFARI && goog.userAgent.product.isVersion('533'))
+
};
View
8 closure/goog/editor/clicktoeditwrapper.js
@@ -96,14 +96,14 @@ goog.editor.ClickToEditWrapper = function(fieldObj) {
this.enterDocument();
}
- // Whenever the field is made editable, we need to check if there
- // are any carets in it, and if so, use them to render the selection.
this.fieldEventHandler_.
+ // Whenever the field is made editable, we need to check if there
+ // are any carets in it, and if so, use them to render the selection.
listen(
this.fieldObj_, goog.editor.Field.EventType.LOAD,
this.renderSelection_).
- // Whenever the field is made uneditable, we need to set up
- // the click-to-edit listeners.
+ // Whenever the field is made uneditable, we need to set up
+ // the click-to-edit listeners.
listen(
this.fieldObj_, goog.editor.Field.EventType.UNLOAD,
this.enterDocument);
View
8 closure/goog/editor/node.js
@@ -426,12 +426,10 @@ goog.editor.node.getSecondHalfOfNode_ = function(node, startNode, firstChild) {
/**
* Appends all of oldNode's children to newNode. This removes all children from
* oldNode and appends them to newNode. oldNode is left with no children.
- * @param {Node} newNode Node to transfer children to.
+ * @param {!Node} newNode Node to transfer children to.
* @param {Node} oldNode Node to transfer children from.
+ * @deprecated Use goog.dom.append directly instead.
*/
goog.editor.node.transferChildren = function(newNode, oldNode) {
- var child;
- while (child = oldNode.firstChild) {
- newNode.appendChild(child);
- }
+ goog.dom.append(newNode, oldNode.childNodes);
};
View
3  closure/goog/editor/plugins/basictextformatter.js
@@ -1041,8 +1041,7 @@ goog.editor.plugins.BasicTextFormatter.blockquoteHatingCommandsIE_ = {
* @private
*/
goog.editor.plugins.BasicTextFormatter.
- prototype.applySubscriptSuperscriptWorkarounds_ =
- function(command) {
+ prototype.applySubscriptSuperscriptWorkarounds_ = function(command) {
if (!this.queryCommandValue(command)) {
// The current selection doesn't currently have the requested
// command, so we are applying it as opposed to removing it.
View
30 closure/goog/editor/plugins/blockquote.js
@@ -38,15 +38,15 @@ goog.require('goog.functions');
* Plugin to handle splitting block quotes. This plugin does nothing on its
* own and should be used in conjunction with EnterHandler or one of its
* subclasses.
- * @param {boolean} requiresClassnameToSplit Whether to split only blockquotes
+ * @param {boolean} requiresClassNameToSplit Whether to split only blockquotes
* that have the given classname.
- * @param {string=} opt_classname The classname to apply to generated
+ * @param {string=} opt_className The classname to apply to generated
* blockquotes. Defaults to 'tr_bq'.
* @constructor
* @extends {goog.editor.Plugin}
*/
-goog.editor.plugins.Blockquote = function(requiresClassnameToSplit,
- opt_classname) {
+goog.editor.plugins.Blockquote = function(requiresClassNameToSplit,
+ opt_className) {
goog.editor.Plugin.call(this);
/**
@@ -55,7 +55,7 @@ goog.editor.plugins.Blockquote = function(requiresClassnameToSplit,
* @type {boolean}
* @private
*/
- this.requiresClassnameToSplit_ = requiresClassnameToSplit;
+ this.requiresClassNameToSplit_ = requiresClassNameToSplit;
/**
* Classname to put on blockquotes that are generated via the toolbar for
@@ -65,7 +65,7 @@ goog.editor.plugins.Blockquote = function(requiresClassnameToSplit,
* @type {string}
* @private
*/
- this.classname_ = opt_classname || goog.getCssName('tr_bq');
+ this.className_ = opt_className || goog.getCssName('tr_bq');
};
goog.inherits(goog.editor.plugins.Blockquote, goog.editor.Plugin);
@@ -114,23 +114,23 @@ goog.editor.plugins.Blockquote.prototype.isSilentCommand = goog.functions.TRUE;
* set in order for it to count as a blockquote, false to
* enforce that the classname must not be set in order for
* it to count as a blockquote.
- * @param {boolean} requiresClassnameToSplit Whether only blockquotes with the
+ * @param {boolean} requiresClassNameToSplit Whether only blockquotes with the
* class name should be split.
- * @param {string} classname The official blockquote class name.
+ * @param {string} className The official blockquote class name.
* @return {boolean} Whether node is a blockquote and if isAlreadySetup is
* true, then whether this is a setup blockquote.
*/
goog.editor.plugins.Blockquote.isBlockquote = function(node, isAlreadySetup,
- requiresClassnameToSplit, classname) {
+ requiresClassNameToSplit, className) {
if (node.tagName != goog.dom.TagName.BLOCKQUOTE) {
return false;
}
- if (!requiresClassnameToSplit) {
+ if (!requiresClassNameToSplit) {
return isAlreadySetup;
}
- var hasClassname = goog.dom.classes.has(/** @type {Element} */ (node),
- classname);
- return isAlreadySetup ? hasClassname : !hasClassname;
+ var hasClassName = goog.dom.classes.has(/** @type {Element} */ (node),
+ className);
+ return isAlreadySetup ? hasClassName : !hasClassName;
};
@@ -178,7 +178,7 @@ goog.editor.plugins.Blockquote.removeAllWhiteSpaceNodes_ = function(nodes) {
*/
goog.editor.plugins.Blockquote.prototype.isSetupBlockquote = function(node) {
return goog.editor.plugins.Blockquote.isBlockquote(node, true,
- this.requiresClassnameToSplit_, this.classname_);
+ this.requiresClassNameToSplit_, this.className_);
};
@@ -206,7 +206,7 @@ goog.editor.plugins.Blockquote.prototype.execCommandInternal = function(
command, var_args) {
var pos = arguments[1];
if (command == goog.editor.plugins.Blockquote.SPLIT_COMMAND && pos &&
- (this.classname_ || !this.requiresClassnameToSplit_)) {
+ (this.className_ || !this.requiresClassNameToSplit_)) {
return goog.editor.BrowserFeature.HAS_W3C_RANGES ?
this.splitQuotedBlockW3C_(pos) :
this.splitQuotedBlockIE_(/** @type {Node} */ (pos));
View
4 closure/goog/editor/plugins/enterhandler.js
@@ -654,8 +654,8 @@ goog.editor.plugins.EnterHandler.deleteW3cRange_ = function(range) {
*/
var rangeStart = goog.editor.style.getContainer(range.getStartNode());
var redundantContainer = goog.editor.node.getNextSibling(rangeStart);
- if (redundantContainer) {
- goog.editor.node.transferChildren(rangeStart, redundantContainer);
+ if (rangeStart && redundantContainer) {
+ goog.dom.append(rangeStart, redundantContainer.childNodes);
goog.dom.removeNode(redundantContainer);
}
}
View
19 closure/goog/editor/plugins/removeformatting.js
@@ -122,6 +122,25 @@ goog.editor.plugins.RemoveFormatting.prototype.execCommandInternal =
/**
+ * @inheritDoc
+ */
+goog.editor.plugins.RemoveFormatting.prototype.handleKeyboardShortcut =
+ function(e, key, isModifierPressed) {
+ if (!isModifierPressed) {
+ return false;
+ }
+
+ if (key == ' ') {
+ this.fieldObject.execCommand(
+ goog.editor.plugins.RemoveFormatting.REMOVE_FORMATTING_COMMAND);
+ return true;
+ }
+
+ return false;
+}
+
+
+/**
* Removes formatting from the current selection. Removes basic formatting
* (B/I/U) using the browser's execCommand. Then extracts the html from the
* selection to convert, calls either a client's specified removeFormattingFunc
View
28 closure/goog/editor/plugins/removeformatting_test.html
@@ -778,6 +778,34 @@
});
}
+function testKeyboardShortcut_space() {
+ FIELDMOCK.$reset();
+
+ FIELDMOCK.execCommand(
+ goog.editor.plugins.RemoveFormatting.REMOVE_FORMATTING_COMMAND);
+
+ FIELDMOCK.$replay();
+
+ var e = {};
+ var key = ' ';
+ var result = FORMATTER.handleKeyboardShortcut(e, key, true);
+ assertTrue(result);
+
+ FIELDMOCK.$verify();
+}
+
+function testKeyboardShortcut_other() {
+ FIELDMOCK.$reset();
+ FIELDMOCK.$replay();
+
+ var e = {};
+ var key = 'a';
+ var result = FORMATTER.handleKeyboardShortcut(e, key, true);
+ assertFalse(result);
+
+ FIELDMOCK.$verify();
+}
+
</script>
</body>
</html>
View
204 closure/goog/i18n/datetimepatterns.js
@@ -112,7 +112,8 @@ goog.i18n.DateTimePatterns_am = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -124,7 +125,8 @@ goog.i18n.DateTimePatterns_ar = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -136,7 +138,8 @@ goog.i18n.DateTimePatterns_bg = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -148,7 +151,8 @@ goog.i18n.DateTimePatterns_bn = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -160,7 +164,8 @@ goog.i18n.DateTimePatterns_ca = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -172,7 +177,8 @@ goog.i18n.DateTimePatterns_cs = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -184,7 +190,8 @@ goog.i18n.DateTimePatterns_da = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd.'
};
@@ -196,7 +203,8 @@ goog.i18n.DateTimePatterns_de = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -208,7 +216,8 @@ goog.i18n.DateTimePatterns_de_AT = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -220,7 +229,8 @@ goog.i18n.DateTimePatterns_de_CH = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -232,7 +242,8 @@ goog.i18n.DateTimePatterns_el = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -244,7 +255,8 @@ goog.i18n.DateTimePatterns_en = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -256,7 +268,8 @@ goog.i18n.DateTimePatterns_en_AU = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -268,7 +281,8 @@ goog.i18n.DateTimePatterns_en_GB = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -280,7 +294,8 @@ goog.i18n.DateTimePatterns_en_IE = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -292,7 +307,8 @@ goog.i18n.DateTimePatterns_en_IN = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -304,7 +320,8 @@ goog.i18n.DateTimePatterns_en_SG = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -316,7 +333,8 @@ goog.i18n.DateTimePatterns_en_US = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -328,7 +346,8 @@ goog.i18n.DateTimePatterns_en_ZA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -340,7 +359,8 @@ goog.i18n.DateTimePatterns_es = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd \'de\' MMM',
- MONTH_DAY_FULL: 'dd \'de\' MMMM'
+ MONTH_DAY_FULL: 'dd \'de\' MMMM',
+ DAY_ABBR: 'd'
};
@@ -352,7 +372,8 @@ goog.i18n.DateTimePatterns_et = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -364,7 +385,8 @@ goog.i18n.DateTimePatterns_eu = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -376,7 +398,8 @@ goog.i18n.DateTimePatterns_fa = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd LLL',
- MONTH_DAY_FULL: 'dd LLLL'
+ MONTH_DAY_FULL: 'dd LLLL',
+ DAY_ABBR: 'd'
};
@@ -388,7 +411,8 @@ goog.i18n.DateTimePatterns_fi = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -400,7 +424,8 @@ goog.i18n.DateTimePatterns_fil = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -412,7 +437,8 @@ goog.i18n.DateTimePatterns_fr = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -424,7 +450,8 @@ goog.i18n.DateTimePatterns_fr_CA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -436,7 +463,8 @@ goog.i18n.DateTimePatterns_gl = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -448,7 +476,8 @@ goog.i18n.DateTimePatterns_gsw = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -460,7 +489,8 @@ goog.i18n.DateTimePatterns_gu = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -472,7 +502,8 @@ goog.i18n.DateTimePatterns_he = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd בMMM',
- MONTH_DAY_FULL: 'dd בMMMM'
+ MONTH_DAY_FULL: 'dd בMMMM',
+ DAY_ABBR: 'd'
};
@@ -484,7 +515,8 @@ goog.i18n.DateTimePatterns_hi = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -496,7 +528,8 @@ goog.i18n.DateTimePatterns_hr = {
YEAR_MONTH_ABBR: 'MMM.y.',
YEAR_MONTH_FULL: 'MMMM.yyyy.',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd.'
};
@@ -508,7 +541,8 @@ goog.i18n.DateTimePatterns_hu = {
YEAR_MONTH_ABBR: 'y. MMM',
YEAR_MONTH_FULL: 'y. MMMM',
MONTH_DAY_ABBR: 'MMM d.',
- MONTH_DAY_FULL: 'MMMM dd.'
+ MONTH_DAY_FULL: 'MMMM dd.',
+ DAY_ABBR: 'd'
};
@@ -520,7 +554,8 @@ goog.i18n.DateTimePatterns_id = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -532,7 +567,8 @@ goog.i18n.DateTimePatterns_is = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -544,7 +580,8 @@ goog.i18n.DateTimePatterns_it = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -556,7 +593,8 @@ goog.i18n.DateTimePatterns_ja = {
YEAR_MONTH_ABBR: 'y年M月',
YEAR_MONTH_FULL: 'yyyy年M月',
MONTH_DAY_ABBR: 'M月d日',
- MONTH_DAY_FULL: 'M月dd日'
+ MONTH_DAY_FULL: 'M月dd日',
+ DAY_ABBR: 'd日'
};
@@ -568,7 +606,8 @@ goog.i18n.DateTimePatterns_kn = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -580,7 +619,8 @@ goog.i18n.DateTimePatterns_ko = {
YEAR_MONTH_ABBR: 'y년 MMM',
YEAR_MONTH_FULL: 'yyyy년 MMMM',
MONTH_DAY_ABBR: 'MMM d일',
- MONTH_DAY_FULL: 'MMMM dd일'
+ MONTH_DAY_FULL: 'MMMM dd일',
+ DAY_ABBR: 'd'
};
@@ -592,7 +632,8 @@ goog.i18n.DateTimePatterns_lt = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM-d',
- MONTH_DAY_FULL: 'MMMM-dd'
+ MONTH_DAY_FULL: 'MMMM-dd',
+ DAY_ABBR: 'd'
};
@@ -604,7 +645,8 @@ goog.i18n.DateTimePatterns_lv = {
YEAR_MONTH_ABBR: 'yyyy. \'g\'. MMM',
YEAR_MONTH_FULL: 'yyyy. \'g\'. MMMM',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -616,7 +658,8 @@ goog.i18n.DateTimePatterns_ml = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -628,7 +671,8 @@ goog.i18n.DateTimePatterns_mr = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -640,7 +684,8 @@ goog.i18n.DateTimePatterns_ms = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -652,7 +697,8 @@ goog.i18n.DateTimePatterns_mt = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -664,7 +710,8 @@ goog.i18n.DateTimePatterns_nl = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -676,7 +723,8 @@ goog.i18n.DateTimePatterns_or = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -688,7 +736,8 @@ goog.i18n.DateTimePatterns_pl = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -700,7 +749,8 @@ goog.i18n.DateTimePatterns_pt = {
YEAR_MONTH_ABBR: 'MMM \'de\' y',
YEAR_MONTH_FULL: 'MMMM \'de\' yyyy',
MONTH_DAY_ABBR: 'd \'de\' MMM',
- MONTH_DAY_FULL: 'dd \'de\' MMMM'
+ MONTH_DAY_FULL: 'dd \'de\' MMMM',
+ DAY_ABBR: 'd'
};
@@ -712,7 +762,8 @@ goog.i18n.DateTimePatterns_pt_BR = {
YEAR_MONTH_ABBR: 'MMM \'de\' y',
YEAR_MONTH_FULL: 'MMMM \'de\' yyyy',
MONTH_DAY_ABBR: 'd \'de\' MMM',
- MONTH_DAY_FULL: 'dd \'de\' MMMM'
+ MONTH_DAY_FULL: 'dd \'de\' MMMM',
+ DAY_ABBR: 'd'
};
@@ -724,7 +775,8 @@ goog.i18n.DateTimePatterns_pt_PT = {
YEAR_MONTH_ABBR: 'MMM \'de\' y',
YEAR_MONTH_FULL: 'MMMM \'de\' yyyy',
MONTH_DAY_ABBR: 'd \'de\' MMM',
- MONTH_DAY_FULL: 'dd \'de\' MMMM'
+ MONTH_DAY_FULL: 'dd \'de\' MMMM',
+ DAY_ABBR: 'd'
};
@@ -736,7 +788,8 @@ goog.i18n.DateTimePatterns_ro = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -748,7 +801,8 @@ goog.i18n.DateTimePatterns_ru = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -760,7 +814,8 @@ goog.i18n.DateTimePatterns_sk = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd.'
};
@@ -772,7 +827,8 @@ goog.i18n.DateTimePatterns_sl = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd. MMM',
- MONTH_DAY_FULL: 'dd. MMMM'
+ MONTH_DAY_FULL: 'dd. MMMM',
+ DAY_ABBR: 'd'
};
@@ -784,7 +840,8 @@ goog.i18n.DateTimePatterns_sq = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -796,7 +853,8 @@ goog.i18n.DateTimePatterns_sr = {
YEAR_MONTH_ABBR: 'MMM. y',
YEAR_MONTH_FULL: 'MMMM. yyyy',
MONTH_DAY_ABBR: 'MMM d.',
- MONTH_DAY_FULL: 'MMMM dd.'
+ MONTH_DAY_FULL: 'MMMM dd.',
+ DAY_ABBR: 'd'
};
@@ -808,7 +866,8 @@ goog.i18n.DateTimePatterns_sv = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'd:\'e\' MMM',
- MONTH_DAY_FULL: 'dd:\'e\' MMMM'
+ MONTH_DAY_FULL: 'dd:\'e\' MMMM',
+ DAY_ABBR: 'd'
};
@@ -820,7 +879,8 @@ goog.i18n.DateTimePatterns_sw = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -832,7 +892,8 @@ goog.i18n.DateTimePatterns_ta = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -844,7 +905,8 @@ goog.i18n.DateTimePatterns_te = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -856,7 +918,8 @@ goog.i18n.DateTimePatterns_th = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -868,7 +931,8 @@ goog.i18n.DateTimePatterns_tr = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'dd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -880,7 +944,8 @@ goog.i18n.DateTimePatterns_uk = {
YEAR_MONTH_ABBR: 'LLL y',
YEAR_MONTH_FULL: 'LLLL yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -892,7 +957,8 @@ goog.i18n.DateTimePatterns_ur = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -904,7 +970,8 @@ goog.i18n.DateTimePatterns_vi = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -916,7 +983,8 @@ goog.i18n.DateTimePatterns_zh = {
YEAR_MONTH_ABBR: 'y年MMM',
YEAR_MONTH_FULL: 'yyyy年MMMM',
MONTH_DAY_ABBR: 'MMMd日',
- MONTH_DAY_FULL: 'MMMMdd日'
+ MONTH_DAY_FULL: 'MMMMdd日',
+ DAY_ABBR: 'd日'
};
View
1,041 closure/goog/i18n/datetimepatternsext.js
@@ -393,7 +393,8 @@ goog.i18n.DateTimePatterns_af = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -405,7 +406,8 @@ goog.i18n.DateTimePatterns_af_NA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -417,7 +419,8 @@ goog.i18n.DateTimePatterns_af_ZA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -429,7 +432,8 @@ goog.i18n.DateTimePatterns_ak = {
YEAR_MONTH_ABBR: 'MMM yyyy',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -441,7 +445,8 @@ goog.i18n.DateTimePatterns_ak_GH = {
YEAR_MONTH_ABBR: 'MMM yyyy',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -453,7 +458,8 @@ goog.i18n.DateTimePatterns_am_ET = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -465,7 +471,8 @@ goog.i18n.DateTimePatterns_ar_AE = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -477,7 +484,8 @@ goog.i18n.DateTimePatterns_ar_BH = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -489,7 +497,8 @@ goog.i18n.DateTimePatterns_ar_DZ = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -501,7 +510,8 @@ goog.i18n.DateTimePatterns_ar_EG = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -513,7 +523,8 @@ goog.i18n.DateTimePatterns_ar_IQ = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -525,7 +536,8 @@ goog.i18n.DateTimePatterns_ar_JO = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -537,7 +549,8 @@ goog.i18n.DateTimePatterns_ar_KW = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -549,7 +562,8 @@ goog.i18n.DateTimePatterns_ar_LB = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -561,7 +575,8 @@ goog.i18n.DateTimePatterns_ar_LY = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -573,7 +588,8 @@ goog.i18n.DateTimePatterns_ar_MA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -585,7 +601,8 @@ goog.i18n.DateTimePatterns_ar_OM = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -597,7 +614,8 @@ goog.i18n.DateTimePatterns_ar_QA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -609,7 +627,8 @@ goog.i18n.DateTimePatterns_ar_SA = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -621,7 +640,8 @@ goog.i18n.DateTimePatterns_ar_SD = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -633,7 +653,8 @@ goog.i18n.DateTimePatterns_ar_SY = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -645,7 +666,8 @@ goog.i18n.DateTimePatterns_ar_TN = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -657,7 +679,8 @@ goog.i18n.DateTimePatterns_ar_YE = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -669,7 +692,8 @@ goog.i18n.DateTimePatterns_as = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -681,7 +705,8 @@ goog.i18n.DateTimePatterns_as_IN = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -693,7 +718,8 @@ goog.i18n.DateTimePatterns_asa = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -705,7 +731,8 @@ goog.i18n.DateTimePatterns_asa_TZ = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -717,7 +744,8 @@ goog.i18n.DateTimePatterns_az = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -729,7 +757,8 @@ goog.i18n.DateTimePatterns_az_Cyrl = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -741,7 +770,8 @@ goog.i18n.DateTimePatterns_az_Cyrl_AZ = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -753,7 +783,8 @@ goog.i18n.DateTimePatterns_az_Latn = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -765,7 +796,8 @@ goog.i18n.DateTimePatterns_az_Latn_AZ = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -777,7 +809,8 @@ goog.i18n.DateTimePatterns_be = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -789,7 +822,8 @@ goog.i18n.DateTimePatterns_be_BY = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -801,7 +835,8 @@ goog.i18n.DateTimePatterns_bem = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -813,7 +848,8 @@ goog.i18n.DateTimePatterns_bem_ZM = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -825,7 +861,8 @@ goog.i18n.DateTimePatterns_bez = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -837,7 +874,8 @@ goog.i18n.DateTimePatterns_bez_TZ = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};
@@ -849,7 +887,8 @@ goog.i18n.DateTimePatterns_bg_BG = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM y',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -861,7 +900,8 @@ goog.i18n.DateTimePatterns_bm = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -873,7 +913,8 @@ goog.i18n.DateTimePatterns_bm_ML = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -885,7 +926,8 @@ goog.i18n.DateTimePatterns_bn_BD = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -897,7 +939,8 @@ goog.i18n.DateTimePatterns_bn_IN = {
YEAR_MONTH_ABBR: 'MMM y',
YEAR_MONTH_FULL: 'MMMM yyyy',
MONTH_DAY_ABBR: 'd MMM',
- MONTH_DAY_FULL: 'dd MMMM'
+ MONTH_DAY_FULL: 'dd MMMM',
+ DAY_ABBR: 'd'
};
@@ -909,7 +952,8 @@ goog.i18n.DateTimePatterns_bo = {
YEAR_MONTH_ABBR: 'y MMM',
YEAR_MONTH_FULL: 'yyyy MMMM',
MONTH_DAY_ABBR: 'MMM d',
- MONTH_DAY_FULL: 'MMMM dd'
+ MONTH_DAY_FULL: 'MMMM dd',
+ DAY_ABBR: 'd'
};