Tag: v1.6.0-rc.0
-
chore(version-info): fix `getTaggedVersion`
The version being used was a "raw" version which included the "v" prefix.
-
chore(version-info): fix `getTaggedVersion`
The version being used was a `Semver` object instead of a string.
-
chore(version-info): use branchPattern to check tag
We have two fields in package.json for checking the current version: * branchVersion * branchPattern The `branchVersion` field is used to work out what version to use in the docs application, so we should not update this to the most recent version until that version is on the Google CDN. Otherwise the docs app will break. The `branchPattern` is used to determine what branch we are currently working from and is generally used as a gate-keeper to prevent invalid releases from the wrong branch. The `getTaggedVersion()` method was using the `branchVersion` to check that the tagged commit was valid but this fails when we are moving to a new minor version with release candidates. This fix avoids the problem by doing a custom comparison against the `branchPattern` instead.
-
docs(error/ueoe): add another possible cause
Mention unescaped quotes as another possible cause for this error. Closes #15313
-
chore(gruntfile): check the node version before starting
We specify the node version that is required to run the build in the `.nvmrc` file. So let's check that the current node version satisfies this and report a helpful message if it is not.
-
-
test($compile): ensure equal but different instance changes are detec…
…ted in onChanges Closes #15300
-
refactor($sniffer): remove $sniffer.vendorPrefix
Previously, Angular tried to detect the CSS prefix the browser supports and then use the saved one. This strategy is not ideal as currently some browsers are supporting more than one vendor prefix. The best example is Microsoft Edge that added -webkit- prefixes to be more Web-compatible; Firefox is doing a similar thing on mobile. Some of the -webkit--prefixed things are now even getting into specs to sanction that they're now required for Web compatibility. In some cases Edge even supports only the -webkit--prefixed property; one example is -webkit-appearance. $sniffer.vendorPrefix is no longer used in Angular core outside of $sniffer itself; taking that and the above problems into account, it's better to just remove it. The only remaining use case was an internal use in detection of support for transitions/animations but we can directly check the webkit prefix there manually; no other prefix matters for them anyway. $sniffer is undocumented API so this removal is not a breaking change. However, if you've previously been using it in your code, just paste the following to get the same function: var vendorPrefix = (function() { var prefix, prop, match; var vendorRegex = /^(Moz|webkit|ms)(?=[A-Z])/; for (prop in document.createElement('div').style) { if ((match = vendorRegex.exec(prop))) { prefix = match[0]; break; } } return prefix; })(); The vendorPrefix variable will contain what $sniffer.vendorPrefix used to. Note that we advise to not check for vendor prefixes this way; if you have to do it, it's better to check it separately for each CSS property used for the reasons described at the beginning. If you use jQuery, you don't have to do anything; it automatically adds vendor prefixes to CSS prefixes for you in the .css() method. Fixes #13690 Closes #15287 -
fix(input): fix `step` validation for `input[number]`/`input[range]`
Related to 9a8b8aa and #15257. Fixes the issue discussed in 9a8b8aa#commitcomment-19108436. Fixes #15257 Closes #15264
-
refactor(input): avoid duplicating `step`/`ngStep` tests
gkalpak committedOct 13, 2016 -
docs(a): remove outdated practice
Using a tags as buttons is bad for accessibility and usability
-
chore(docs-app): improve layout when loading partials
Narretz committedOct 19, 2016 By setting the current partial content to hidden, the current height of the window is maintained until the new content is loaded. This prevents flickering caused by the scrollbar (dis)appearing and the footer coming into view.
-
Revert "chore(doc-gen, docs-app): create plnkr examples with correct …
…Angular version" This patch relies on a change in the dgeni example package, which has not been added to dgeni yet. This reverts commit db02008.
-
-
fix($location): prevent infinite digest with IDN urls in Edge
Internationalized Domain Urls, for example urls with Umlaut (Ä, Ö, Ü) cause infinite digest in Edge 38.14393.0.0 because lastIndexOf doesn't work correctly in this version when the search string is the same as the haystack string. The patch uses an implementation based on core.js: https://github.com/zloirock/core-js/blob/v2.4.1/modules/es6.string.starts-with.js#L16 Edge Bug: https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9271625/ Fixes #15217 PR #15235
-
-
fix(jqLite): camelCase keys in jqLite#data
This change aligns jqLite with jQuery 3. The relevant bit of jQuery code is https://github.com/jquery/jquery/blob/3.1.1/src/data/Data.js Close #15126 BREAKING CHANGE: Previously, keys passed to the data method were left untouched. Now they are internally camelCased similarly to how jQuery handles it, i.e. only single (!) hyphens followed by a lowercase letter get converted to an uppercase letter. This means keys `a-b` and `aB` represent the same data piece; writing to one of them will also be reflected if you ask for the other one. If you use Angular with jQuery, it already behaved in this way so no changes are required on your part. To migrate the code follow the examples below: BEFORE: /* 1 */ elem.data('my-key', 2); elem.data('myKey', 3); /* 2 */ elem.data('foo-bar', 42); elem.data()['foo-bar']; // 42 elem.data()['fooBar']; // undefined /* 3 */ elem.data()['foo-bar'] = 1; elem.data()['fooBar'] = 2; elem.data()['foo-bar']; // 1 AFTER: /* 1 */ // Rename one of the keys as they would now map to the same data slot. elem.data('my-key', 2); elem.data('my-key2', 3); /* 2 */ elem.data('foo-bar', 42); elem.data()['foo-bar']; // undefined elem.data()['fooBar']; // 42 /* 3 */ elem.data()['foo-bar'] = 1; elem.data()['fooBar'] = 2; elem.data()['foo-bar']; // 2
-
fix(jqLite): align jqLite camelCasing logic with JQuery
jqLite needs camelCase for it's css method; it should only convert one dash followed by a lowercase letter to an uppercase one; it shouldn't touch underscores, colons or collapse multiple dashes into one. This is behavior of jQuery 3 as well. Also, jqLite's css camelCasing logic was put in a separate function and refactored: now the properties starting from an uppercase letter are used by default (i.e. Webkit, not webkit) and the only exception is for the -ms- prefix that is converted to ms, not Ms. This makes the logic clearer as we're just always changing a dash followed by a lowercase letter by an uppercase one; this is also how it works in jQuery. The camelCasing for the $compile and $sce services retains the previous behaviour. Ref #15126 Fix #7744 BREAKING CHANGE: before, when Angular was used without jQuery, the key passed to the css method was more heavily camelCased; now only a single (!) hyphen followed by a lowercase letter is getting transformed. This also affects APIs that rely on the css method, like ngStyle. If you use Angular with jQuery, it already behaved in this way so no changes are needed on your part. To migrate the code follow the example below: Before: HTML: // All five versions used to be equivalent. <div ng-style={background_color: 'blue'}></div> <div ng-style={'background:color': 'blue'}></div> <div ng-style={'background-color': 'blue'}></div> <div ng-style={'background--color': 'blue'}></div> <div ng-style={backgroundColor: 'blue'}></div> JS: // All five versions used to be equivalent. elem.css('background_color', 'blue'); elem.css('background:color', 'blue'); elem.css('background-color', 'blue'); elem.css('background--color', 'blue'); elem.css('backgroundColor', 'blue'); // All five versions used to be equivalent. var bgColor = elem.css('background_color'); var bgColor = elem.css('background:color'); var bgColor = elem.css('background-color'); var bgColor = elem.css('background--color'); var bgColor = elem.css('backgroundColor'); After: HTML: // Previous five versions are no longer equivalent but these two still are. <div ng-style={'background-color': 'blue'}></div> <div ng-style={backgroundColor: 'blue'}></div> JS: // Previous five versions are no longer equivalent but these two still are. elem.css('background-color', 'blue'); elem.css('backgroundColor', 'blue'); // Previous five versions are no longer equivalent but these two still are. var bgColor = elem.css('background-color'); var bgColor = elem.css('backgroundColor');
-
chore(jqLite): remove the ready handlers instead of setting a flag
This change aligns jqLite with the jQuery implementation. Closes #15237
-
docs(jqLite): remove the removal plan info for bind/unbind
mgol committedOct 12, 2016 We're not going to remove the aliases before jQuery does.
-
refactor(jqLite): deprecate jqLite#ready
mgol committedOct 9, 2016 Use jqLite(fn) instead of jqLite(document).ready(fn).
-
feat(jqLite): implement jqLite(f) as alias to jqLite(document).ready(f)
mgol committedOct 9, 2016 jQuery has supported this form for a long time. As of jQuery 3.0 this form is the preferred one and all others are deprecated so jqLite(f) is now also supported. All internal invocations of jqLite(document).ready(f) (& equivalent) have been replaced by jqLite(f). Tests for these methods have been added as jqLite#ready had no explicit tests so far.