angularjs-rails 1.2.15 → 1.2.16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/angularjs-rails/version.rb +2 -2
- data/vendor/assets/javascripts/angular-animate.js +11 -8
- data/vendor/assets/javascripts/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/angular-loader.js +4 -4
- data/vendor/assets/javascripts/angular-mocks.js +26 -22
- data/vendor/assets/javascripts/angular-resource.js +4 -1
- data/vendor/assets/javascripts/angular-route.js +1 -1
- data/vendor/assets/javascripts/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/angular-scenario.js +400 -104
- data/vendor/assets/javascripts/angular-touch.js +1 -1
- data/vendor/assets/javascripts/angular.js +400 -104
- data/vendor/assets/javascripts/unstable/angular-animate.js +250 -230
- data/vendor/assets/javascripts/unstable/angular-cookies.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-loader.js +4 -4
- data/vendor/assets/javascripts/unstable/angular-mocks.js +26 -22
- data/vendor/assets/javascripts/unstable/angular-resource.js +4 -1
- data/vendor/assets/javascripts/unstable/angular-route.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-sanitize.js +1 -1
- data/vendor/assets/javascripts/unstable/angular-scenario.js +430 -120
- data/vendor/assets/javascripts/unstable/angular-touch.js +1 -1
- data/vendor/assets/javascripts/unstable/angular.js +430 -120
- metadata +2 -2
@@ -1,5 +1,5 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.3.0-beta.
|
2
|
+
* @license AngularJS v1.3.0-beta.5
|
3
3
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
@@ -68,7 +68,7 @@ function minErr(module) {
|
|
68
68
|
return match;
|
69
69
|
});
|
70
70
|
|
71
|
-
message = message + '\nhttp://errors.angularjs.org/1.3.0-beta.
|
71
|
+
message = message + '\nhttp://errors.angularjs.org/1.3.0-beta.5/' +
|
72
72
|
(module ? module + '/' : '') + code;
|
73
73
|
for (i = 2; i < arguments.length; i++) {
|
74
74
|
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
@@ -1355,7 +1355,7 @@ function angularInit(element, bootstrap) {
|
|
1355
1355
|
* </file>
|
1356
1356
|
* </example>
|
1357
1357
|
*
|
1358
|
-
* @param {
|
1358
|
+
* @param {DOMElement} element DOM element which is the root of angular application.
|
1359
1359
|
* @param {Array<String|Function|Array>=} modules an array of modules to load into the application.
|
1360
1360
|
* Each item in the array should be the name of a predefined module or a (DI annotated)
|
1361
1361
|
* function that will be invoked by the injector as a run block.
|
@@ -1589,9 +1589,9 @@ function setupModuleLoader(window) {
|
|
1589
1589
|
* {@link angular.bootstrap} to simplify this process for you.
|
1590
1590
|
*
|
1591
1591
|
* @param {!string} name The name of the module to create or retrieve.
|
1592
|
-
* @param {Array.<string>=} requires If specified then new module is being created. If
|
1592
|
+
* @param {!Array.<string>=} requires If specified then new module is being created. If
|
1593
1593
|
* unspecified then the module is being retrieved for further configuration.
|
1594
|
-
* @param {Function} configFn Optional configuration function for the module. Same as
|
1594
|
+
* @param {Function=} configFn Optional configuration function for the module. Same as
|
1595
1595
|
* {@link angular.Module#config Module#config()}.
|
1596
1596
|
* @returns {module} new module with the {@link angular.Module} api.
|
1597
1597
|
*/
|
@@ -1919,11 +1919,11 @@ function setupModuleLoader(window) {
|
|
1919
1919
|
* - `codeName` – `{string}` – Code name of the release, such as "jiggling-armfat".
|
1920
1920
|
*/
|
1921
1921
|
var version = {
|
1922
|
-
full: '1.3.0-beta.
|
1922
|
+
full: '1.3.0-beta.5', // all of these placeholder strings will be replaced by grunt's
|
1923
1923
|
major: 1, // package task
|
1924
1924
|
minor: 3,
|
1925
1925
|
dot: 0,
|
1926
|
-
codeName: '
|
1926
|
+
codeName: 'chimeric-glitterfication'
|
1927
1927
|
};
|
1928
1928
|
|
1929
1929
|
|
@@ -2226,6 +2226,81 @@ function jqLitePatchJQueryRemove(name, dispatchThis, filterElems, getterIfNoArgu
|
|
2226
2226
|
}
|
2227
2227
|
}
|
2228
2228
|
|
2229
|
+
var SINGLE_TAG_REGEXP = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
|
2230
|
+
var HTML_REGEXP = /<|&#?\w+;/;
|
2231
|
+
var TAG_NAME_REGEXP = /<([\w:]+)/;
|
2232
|
+
var XHTML_TAG_REGEXP = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi;
|
2233
|
+
|
2234
|
+
var wrapMap = {
|
2235
|
+
'option': [1, '<select multiple="multiple">', '</select>'],
|
2236
|
+
|
2237
|
+
'thead': [1, '<table>', '</table>'],
|
2238
|
+
'col': [2, '<table><colgroup>', '</colgroup></table>'],
|
2239
|
+
'tr': [2, '<table><tbody>', '</tbody></table>'],
|
2240
|
+
'td': [3, '<table><tbody><tr>', '</tr></tbody></table>'],
|
2241
|
+
'_default': [0, "", ""]
|
2242
|
+
};
|
2243
|
+
|
2244
|
+
wrapMap.optgroup = wrapMap.option;
|
2245
|
+
wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
|
2246
|
+
wrapMap.th = wrapMap.td;
|
2247
|
+
|
2248
|
+
function jqLiteIsTextNode(html) {
|
2249
|
+
return !HTML_REGEXP.test(html);
|
2250
|
+
}
|
2251
|
+
|
2252
|
+
function jqLiteBuildFragment(html, context) {
|
2253
|
+
var elem, tmp, tag, wrap,
|
2254
|
+
fragment = context.createDocumentFragment(),
|
2255
|
+
nodes = [], i;
|
2256
|
+
|
2257
|
+
if (jqLiteIsTextNode(html)) {
|
2258
|
+
// Convert non-html into a text node
|
2259
|
+
nodes.push(context.createTextNode(html));
|
2260
|
+
} else {
|
2261
|
+
// Convert html into DOM nodes
|
2262
|
+
tmp = tmp || fragment.appendChild(context.createElement("div"));
|
2263
|
+
tag = (TAG_NAME_REGEXP.exec(html) || ["", ""])[1].toLowerCase();
|
2264
|
+
wrap = wrapMap[tag] || wrapMap._default;
|
2265
|
+
tmp.innerHTML = wrap[1] + html.replace(XHTML_TAG_REGEXP, "<$1></$2>") + wrap[2];
|
2266
|
+
|
2267
|
+
// Descend through wrappers to the right content
|
2268
|
+
i = wrap[0];
|
2269
|
+
while (i--) {
|
2270
|
+
tmp = tmp.lastChild;
|
2271
|
+
}
|
2272
|
+
|
2273
|
+
nodes = concat(nodes, tmp.childNodes);
|
2274
|
+
|
2275
|
+
tmp = fragment.firstChild;
|
2276
|
+
tmp.textContent = "";
|
2277
|
+
}
|
2278
|
+
|
2279
|
+
// Remove wrapper from fragment
|
2280
|
+
fragment.textContent = "";
|
2281
|
+
fragment.innerHTML = ""; // Clear inner HTML
|
2282
|
+
forEach(nodes, function(node) {
|
2283
|
+
fragment.appendChild(node);
|
2284
|
+
});
|
2285
|
+
|
2286
|
+
return fragment;
|
2287
|
+
}
|
2288
|
+
|
2289
|
+
function jqLiteParseHTML(html, context) {
|
2290
|
+
context = context || document;
|
2291
|
+
var parsed;
|
2292
|
+
|
2293
|
+
if ((parsed = SINGLE_TAG_REGEXP.exec(html))) {
|
2294
|
+
return [context.createElement(parsed[1])];
|
2295
|
+
}
|
2296
|
+
|
2297
|
+
if ((parsed = jqLiteBuildFragment(html, context))) {
|
2298
|
+
return parsed.childNodes;
|
2299
|
+
}
|
2300
|
+
|
2301
|
+
return [];
|
2302
|
+
}
|
2303
|
+
|
2229
2304
|
/////////////////////////////////////////////
|
2230
2305
|
function JQLite(element) {
|
2231
2306
|
if (element instanceof JQLite) {
|
@@ -2242,14 +2317,7 @@ function JQLite(element) {
|
|
2242
2317
|
}
|
2243
2318
|
|
2244
2319
|
if (isString(element)) {
|
2245
|
-
|
2246
|
-
// Read about the NoScope elements here:
|
2247
|
-
// http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
|
2248
|
-
div.innerHTML = '<div> </div>' + element; // IE insanity to make NoScope elements work!
|
2249
|
-
div.removeChild(div.firstChild); // remove the superfluous div
|
2250
|
-
jqLiteAddNodes(this, div.childNodes);
|
2251
|
-
var fragment = jqLite(document.createDocumentFragment());
|
2252
|
-
fragment.append(this); // detach the elements from the temporary DOM div.
|
2320
|
+
jqLiteAddNodes(this, jqLiteParseHTML(element));
|
2253
2321
|
} else {
|
2254
2322
|
jqLiteAddNodes(this, element);
|
2255
2323
|
}
|
@@ -4042,8 +4110,9 @@ var $AnimateProvider = ['$provide', function($provide) {
|
|
4042
4110
|
* @ngdoc method
|
4043
4111
|
* @name $animate#enter
|
4044
4112
|
* @function
|
4045
|
-
* @description Inserts the element into the DOM either after the `after` element or
|
4046
|
-
*
|
4113
|
+
* @description Inserts the element into the DOM either after the `after` element or
|
4114
|
+
* as the first child within the `parent` element. Once complete, the done() callback
|
4115
|
+
* will be fired (if provided).
|
4047
4116
|
* @param {DOMElement} element the element which will be inserted into the DOM
|
4048
4117
|
* @param {DOMElement} parent the parent element which will append the element as
|
4049
4118
|
* a child (if the after element is not present)
|
@@ -4053,14 +4122,9 @@ var $AnimateProvider = ['$provide', function($provide) {
|
|
4053
4122
|
* inserted into the DOM
|
4054
4123
|
*/
|
4055
4124
|
enter : function(element, parent, after, done) {
|
4056
|
-
|
4057
|
-
|
4058
|
-
|
4059
|
-
if (!parent || !parent[0]) {
|
4060
|
-
parent = after.parent();
|
4061
|
-
}
|
4062
|
-
parent.append(element);
|
4063
|
-
}
|
4125
|
+
after
|
4126
|
+
? after.after(element)
|
4127
|
+
: parent.prepend(element);
|
4064
4128
|
async(done);
|
4065
4129
|
},
|
4066
4130
|
|
@@ -4575,7 +4639,8 @@ function $BrowserProvider(){
|
|
4575
4639
|
* @name $cacheFactory
|
4576
4640
|
*
|
4577
4641
|
* @description
|
4578
|
-
* Factory that constructs
|
4642
|
+
* Factory that constructs {@link $cacheFactory.Cache Cache} objects and gives access to
|
4643
|
+
* them.
|
4579
4644
|
*
|
4580
4645
|
* ```js
|
4581
4646
|
*
|
@@ -4607,6 +4672,46 @@ function $BrowserProvider(){
|
|
4607
4672
|
* - `{void}` `removeAll()` — Removes all cached values.
|
4608
4673
|
* - `{void}` `destroy()` — Removes references to this cache from $cacheFactory.
|
4609
4674
|
*
|
4675
|
+
* @example
|
4676
|
+
<example module="cacheExampleApp">
|
4677
|
+
<file name="index.html">
|
4678
|
+
<div ng-controller="CacheController">
|
4679
|
+
<input ng-model="newCacheKey" placeholder="Key">
|
4680
|
+
<input ng-model="newCacheValue" placeholder="Value">
|
4681
|
+
<button ng-click="put(newCacheKey, newCacheValue)">Cache</button>
|
4682
|
+
|
4683
|
+
<p ng-if="keys.length">Cached Values</p>
|
4684
|
+
<div ng-repeat="key in keys">
|
4685
|
+
<span ng-bind="key"></span>
|
4686
|
+
<span>: </span>
|
4687
|
+
<b ng-bind="cache.get(key)"></b>
|
4688
|
+
</div>
|
4689
|
+
|
4690
|
+
<p>Cache Info</p>
|
4691
|
+
<div ng-repeat="(key, value) in cache.info()">
|
4692
|
+
<span ng-bind="key"></span>
|
4693
|
+
<span>: </span>
|
4694
|
+
<b ng-bind="value"></b>
|
4695
|
+
</div>
|
4696
|
+
</div>
|
4697
|
+
</file>
|
4698
|
+
<file name="script.js">
|
4699
|
+
angular.module('cacheExampleApp', []).
|
4700
|
+
controller('CacheController', ['$scope', '$cacheFactory', function($scope, $cacheFactory) {
|
4701
|
+
$scope.keys = [];
|
4702
|
+
$scope.cache = $cacheFactory('cacheId');
|
4703
|
+
$scope.put = function(key, value) {
|
4704
|
+
$scope.cache.put(key, value);
|
4705
|
+
$scope.keys.push(key);
|
4706
|
+
};
|
4707
|
+
}]);
|
4708
|
+
</file>
|
4709
|
+
<file name="style.css">
|
4710
|
+
p {
|
4711
|
+
margin: 10px 0 3px;
|
4712
|
+
}
|
4713
|
+
</file>
|
4714
|
+
</example>
|
4610
4715
|
*/
|
4611
4716
|
function $CacheFactoryProvider() {
|
4612
4717
|
|
@@ -4626,8 +4731,65 @@ function $CacheFactoryProvider() {
|
|
4626
4731
|
freshEnd = null,
|
4627
4732
|
staleEnd = null;
|
4628
4733
|
|
4734
|
+
/**
|
4735
|
+
* @ngdoc type
|
4736
|
+
* @name $cacheFactory.Cache
|
4737
|
+
*
|
4738
|
+
* @description
|
4739
|
+
* A cache object used to store and retrieve data, primarily used by
|
4740
|
+
* {@link $http $http} and the {@link ng.directive:script script} directive to cache
|
4741
|
+
* templates and other data.
|
4742
|
+
*
|
4743
|
+
* ```js
|
4744
|
+
* angular.module('superCache')
|
4745
|
+
* .factory('superCache', ['$cacheFactory', function($cacheFactory) {
|
4746
|
+
* return $cacheFactory('super-cache');
|
4747
|
+
* }]);
|
4748
|
+
* ```
|
4749
|
+
*
|
4750
|
+
* Example test:
|
4751
|
+
*
|
4752
|
+
* ```js
|
4753
|
+
* it('should behave like a cache', inject(function(superCache) {
|
4754
|
+
* superCache.put('key', 'value');
|
4755
|
+
* superCache.put('another key', 'another value');
|
4756
|
+
*
|
4757
|
+
* expect(superCache.info()).toEqual({
|
4758
|
+
* id: 'super-cache',
|
4759
|
+
* size: 2
|
4760
|
+
* });
|
4761
|
+
*
|
4762
|
+
* superCache.remove('another key');
|
4763
|
+
* expect(superCache.get('another key')).toBeUndefined();
|
4764
|
+
*
|
4765
|
+
* superCache.removeAll();
|
4766
|
+
* expect(superCache.info()).toEqual({
|
4767
|
+
* id: 'super-cache',
|
4768
|
+
* size: 0
|
4769
|
+
* });
|
4770
|
+
* }));
|
4771
|
+
* ```
|
4772
|
+
*/
|
4629
4773
|
return caches[cacheId] = {
|
4630
4774
|
|
4775
|
+
/**
|
4776
|
+
* @ngdoc method
|
4777
|
+
* @name $cacheFactory.Cache#put
|
4778
|
+
* @function
|
4779
|
+
*
|
4780
|
+
* @description
|
4781
|
+
* Inserts a named entry into the {@link $cacheFactory.Cache Cache} object to be
|
4782
|
+
* retrieved later, and incrementing the size of the cache if the key was not already
|
4783
|
+
* present in the cache. If behaving like an LRU cache, it will also remove stale
|
4784
|
+
* entries from the set.
|
4785
|
+
*
|
4786
|
+
* It will not insert undefined values into the cache.
|
4787
|
+
*
|
4788
|
+
* @param {string} key the key under which the cached data is stored.
|
4789
|
+
* @param {*} value the value to store alongside the key. If it is undefined, the key
|
4790
|
+
* will not be stored.
|
4791
|
+
* @returns {*} the value stored.
|
4792
|
+
*/
|
4631
4793
|
put: function(key, value) {
|
4632
4794
|
if (capacity < Number.MAX_VALUE) {
|
4633
4795
|
var lruEntry = lruHash[key] || (lruHash[key] = {key: key});
|
@@ -4646,7 +4808,17 @@ function $CacheFactoryProvider() {
|
|
4646
4808
|
return value;
|
4647
4809
|
},
|
4648
4810
|
|
4649
|
-
|
4811
|
+
/**
|
4812
|
+
* @ngdoc method
|
4813
|
+
* @name $cacheFactory.Cache#get
|
4814
|
+
* @function
|
4815
|
+
*
|
4816
|
+
* @description
|
4817
|
+
* Retrieves named data stored in the {@link $cacheFactory.Cache Cache} object.
|
4818
|
+
*
|
4819
|
+
* @param {string} key the key of the data to be retrieved
|
4820
|
+
* @returns {*} the value stored.
|
4821
|
+
*/
|
4650
4822
|
get: function(key) {
|
4651
4823
|
if (capacity < Number.MAX_VALUE) {
|
4652
4824
|
var lruEntry = lruHash[key];
|
@@ -4660,6 +4832,16 @@ function $CacheFactoryProvider() {
|
|
4660
4832
|
},
|
4661
4833
|
|
4662
4834
|
|
4835
|
+
/**
|
4836
|
+
* @ngdoc method
|
4837
|
+
* @name $cacheFactory.Cache#remove
|
4838
|
+
* @function
|
4839
|
+
*
|
4840
|
+
* @description
|
4841
|
+
* Removes an entry from the {@link $cacheFactory.Cache Cache} object.
|
4842
|
+
*
|
4843
|
+
* @param {string} key the key of the entry to be removed
|
4844
|
+
*/
|
4663
4845
|
remove: function(key) {
|
4664
4846
|
if (capacity < Number.MAX_VALUE) {
|
4665
4847
|
var lruEntry = lruHash[key];
|
@@ -4678,6 +4860,14 @@ function $CacheFactoryProvider() {
|
|
4678
4860
|
},
|
4679
4861
|
|
4680
4862
|
|
4863
|
+
/**
|
4864
|
+
* @ngdoc method
|
4865
|
+
* @name $cacheFactory.Cache#removeAll
|
4866
|
+
* @function
|
4867
|
+
*
|
4868
|
+
* @description
|
4869
|
+
* Clears the cache object of any entries.
|
4870
|
+
*/
|
4681
4871
|
removeAll: function() {
|
4682
4872
|
data = {};
|
4683
4873
|
size = 0;
|
@@ -4686,6 +4876,15 @@ function $CacheFactoryProvider() {
|
|
4686
4876
|
},
|
4687
4877
|
|
4688
4878
|
|
4879
|
+
/**
|
4880
|
+
* @ngdoc method
|
4881
|
+
* @name $cacheFactory.Cache#destroy
|
4882
|
+
* @function
|
4883
|
+
*
|
4884
|
+
* @description
|
4885
|
+
* Destroys the {@link $cacheFactory.Cache Cache} object entirely,
|
4886
|
+
* removing it from the {@link $cacheFactory $cacheFactory} set.
|
4887
|
+
*/
|
4689
4888
|
destroy: function() {
|
4690
4889
|
data = null;
|
4691
4890
|
stats = null;
|
@@ -4694,6 +4893,22 @@ function $CacheFactoryProvider() {
|
|
4694
4893
|
},
|
4695
4894
|
|
4696
4895
|
|
4896
|
+
/**
|
4897
|
+
* @ngdoc method
|
4898
|
+
* @name $cacheFactory.Cache#info
|
4899
|
+
* @function
|
4900
|
+
*
|
4901
|
+
* @description
|
4902
|
+
* Retrieve information regarding a particular {@link $cacheFactory.Cache Cache}.
|
4903
|
+
*
|
4904
|
+
* @returns {object} an object with the following properties:
|
4905
|
+
* <ul>
|
4906
|
+
* <li>**id**: the id of the cache instance</li>
|
4907
|
+
* <li>**size**: the number of entries kept in the cache instance</li>
|
4908
|
+
* <li>**...**: any additional properties from the options object when creating the
|
4909
|
+
* cache.</li>
|
4910
|
+
* </ul>
|
4911
|
+
*/
|
4697
4912
|
info: function() {
|
4698
4913
|
return extend({}, stats, {size: size});
|
4699
4914
|
}
|
@@ -4880,6 +5095,7 @@ function $TemplateCacheProvider() {
|
|
4880
5095
|
* restrict: 'A',
|
4881
5096
|
* scope: false,
|
4882
5097
|
* controller: function($scope, $element, $attrs, $transclude, otherInjectables) { ... },
|
5098
|
+
* controllerAs: 'stringAlias',
|
4883
5099
|
* require: 'siblingDirectiveName', // or // ['^parentDirectiveName', '?optionalDirectiveName', '?^optionalParent'],
|
4884
5100
|
* compile: function compile(tElement, tAttrs, transclude) {
|
4885
5101
|
* return {
|
@@ -5097,6 +5313,16 @@ function $TemplateCacheProvider() {
|
|
5097
5313
|
* apply to all cloned DOM nodes within the compile function. Specifically, DOM listener registration
|
5098
5314
|
* should be done in a linking function rather than in a compile function.
|
5099
5315
|
* </div>
|
5316
|
+
|
5317
|
+
* <div class="alert alert-warning">
|
5318
|
+
* **Note:** The compile function cannot handle directives that recursively use themselves in their
|
5319
|
+
* own templates or compile functions. Compiling these directives results in an infinite loop and a
|
5320
|
+
* stack overflow errors.
|
5321
|
+
*
|
5322
|
+
* This can be avoided by manually using $compile in the postLink function to imperatively compile
|
5323
|
+
* a directive's template instead of relying on automatic template compilation via `template` or
|
5324
|
+
* `templateUrl` declaration or manual compilation inside the compile function.
|
5325
|
+
* </div>
|
5100
5326
|
*
|
5101
5327
|
* <div class="alert alert-error">
|
5102
5328
|
* **Note:** The `transclude` function that is passed to the compile function is deprecated, as it
|
@@ -5318,8 +5544,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
5318
5544
|
var hasDirectives = {},
|
5319
5545
|
Suffix = 'Directive',
|
5320
5546
|
COMMENT_DIRECTIVE_REGEXP = /^\s*directive\:\s*([\d\w\-_]+)\s+(.*)$/,
|
5321
|
-
CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)
|
5322
|
-
TABLE_CONTENT_REGEXP = /^<\s*(tr|th|td|thead|tbody|tfoot)(\s+[^>]*)?>/i;
|
5547
|
+
CLASS_DIRECTIVE_REGEXP = /(([\d\w\-_]+)(?:\:([^;]+))?;?)/;
|
5323
5548
|
|
5324
5549
|
// Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes
|
5325
5550
|
// The assumption is that future DOM event attribute names will begin with
|
@@ -6064,7 +6289,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
6064
6289
|
|
6065
6290
|
if (directive.replace) {
|
6066
6291
|
replaceDirective = directive;
|
6067
|
-
|
6292
|
+
if (jqLiteIsTextNode(directiveValue)) {
|
6293
|
+
$template = [];
|
6294
|
+
} else {
|
6295
|
+
$template = jqLite(directiveValue);
|
6296
|
+
}
|
6068
6297
|
compileNode = $template[0];
|
6069
6298
|
|
6070
6299
|
if ($template.length != 1 || compileNode.nodeType !== 1) {
|
@@ -6463,27 +6692,6 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
6463
6692
|
}
|
6464
6693
|
|
6465
6694
|
|
6466
|
-
function directiveTemplateContents(template) {
|
6467
|
-
var type;
|
6468
|
-
template = trim(template);
|
6469
|
-
if ((type = TABLE_CONTENT_REGEXP.exec(template))) {
|
6470
|
-
type = type[1].toLowerCase();
|
6471
|
-
var table = jqLite('<table>' + template + '</table>');
|
6472
|
-
if (/(thead|tbody|tfoot)/.test(type)) {
|
6473
|
-
return table.children(type);
|
6474
|
-
}
|
6475
|
-
table = table.children('tbody');
|
6476
|
-
if (type === 'tr') {
|
6477
|
-
return table.children('tr');
|
6478
|
-
}
|
6479
|
-
return table.children('tr').contents();
|
6480
|
-
}
|
6481
|
-
return jqLite('<div>' +
|
6482
|
-
template +
|
6483
|
-
'</div>').contents();
|
6484
|
-
}
|
6485
|
-
|
6486
|
-
|
6487
6695
|
function compileTemplateUrl(directives, $compileNode, tAttrs,
|
6488
6696
|
$rootElement, childTranscludeFn, preLinkFns, postLinkFns, previousCompileContext) {
|
6489
6697
|
var linkQueue = [],
|
@@ -6508,7 +6716,11 @@ function $CompileProvider($provide, $$sanitizeUriProvider) {
|
|
6508
6716
|
content = denormalizeTemplate(content);
|
6509
6717
|
|
6510
6718
|
if (origAsyncDirective.replace) {
|
6511
|
-
|
6719
|
+
if (jqLiteIsTextNode(content)) {
|
6720
|
+
$template = [];
|
6721
|
+
} else {
|
6722
|
+
$template = jqLite(content);
|
6723
|
+
}
|
6512
6724
|
compileNode = $template[0];
|
6513
6725
|
|
6514
6726
|
if ($template.length != 1 || compileNode.nodeType !== 1) {
|
@@ -7286,7 +7498,7 @@ function $HttpProvider() {
|
|
7286
7498
|
*
|
7287
7499
|
* ```
|
7288
7500
|
* module.run(function($http) {
|
7289
|
-
* $http.defaults.headers.common.
|
7501
|
+
* $http.defaults.headers.common.Authorization = 'Basic YmVlcDpib29w'
|
7290
7502
|
* });
|
7291
7503
|
* ```
|
7292
7504
|
*
|
@@ -7580,6 +7792,7 @@ function $HttpProvider() {
|
|
7580
7792
|
* - **status** – `{number}` – HTTP status code of the response.
|
7581
7793
|
* - **headers** – `{function([headerName])}` – Header getter function.
|
7582
7794
|
* - **config** – `{Object}` – The configuration object that was used to generate the request.
|
7795
|
+
* - **statusText** – `{string}` – HTTP status text of the response.
|
7583
7796
|
*
|
7584
7797
|
* @property {Array.<Object>} pendingRequests Array of config objects for currently pending
|
7585
7798
|
* requests. This is primarily meant to be used for debugging purposes.
|
@@ -7954,9 +8167,9 @@ function $HttpProvider() {
|
|
7954
8167
|
} else {
|
7955
8168
|
// serving from cache
|
7956
8169
|
if (isArray(cachedResp)) {
|
7957
|
-
resolvePromise(cachedResp[1], cachedResp[0], copy(cachedResp[2]));
|
8170
|
+
resolvePromise(cachedResp[1], cachedResp[0], copy(cachedResp[2]), cachedResp[3]);
|
7958
8171
|
} else {
|
7959
|
-
resolvePromise(cachedResp, 200, {});
|
8172
|
+
resolvePromise(cachedResp, 200, {}, 'OK');
|
7960
8173
|
}
|
7961
8174
|
}
|
7962
8175
|
} else {
|
@@ -7980,17 +8193,17 @@ function $HttpProvider() {
|
|
7980
8193
|
* - resolves the raw $http promise
|
7981
8194
|
* - calls $apply
|
7982
8195
|
*/
|
7983
|
-
function done(status, response, headersString) {
|
8196
|
+
function done(status, response, headersString, statusText) {
|
7984
8197
|
if (cache) {
|
7985
8198
|
if (isSuccess(status)) {
|
7986
|
-
cache.put(url, [status, response, parseHeaders(headersString)]);
|
8199
|
+
cache.put(url, [status, response, parseHeaders(headersString), statusText]);
|
7987
8200
|
} else {
|
7988
8201
|
// remove promise from the cache
|
7989
8202
|
cache.remove(url);
|
7990
8203
|
}
|
7991
8204
|
}
|
7992
8205
|
|
7993
|
-
resolvePromise(response, status, headersString);
|
8206
|
+
resolvePromise(response, status, headersString, statusText);
|
7994
8207
|
if (!$rootScope.$$phase) $rootScope.$apply();
|
7995
8208
|
}
|
7996
8209
|
|
@@ -7998,7 +8211,7 @@ function $HttpProvider() {
|
|
7998
8211
|
/**
|
7999
8212
|
* Resolves the raw $http promise.
|
8000
8213
|
*/
|
8001
|
-
function resolvePromise(response, status, headers) {
|
8214
|
+
function resolvePromise(response, status, headers, statusText) {
|
8002
8215
|
// normalize internal statuses to 0
|
8003
8216
|
status = Math.max(status, 0);
|
8004
8217
|
|
@@ -8006,7 +8219,8 @@ function $HttpProvider() {
|
|
8006
8219
|
data: response,
|
8007
8220
|
status: status,
|
8008
8221
|
headers: headersGetter(headers),
|
8009
|
-
config: config
|
8222
|
+
config: config,
|
8223
|
+
statusText : statusText
|
8010
8224
|
});
|
8011
8225
|
}
|
8012
8226
|
|
@@ -8137,7 +8351,8 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
|
|
8137
8351
|
completeRequest(callback,
|
8138
8352
|
status || xhr.status,
|
8139
8353
|
response,
|
8140
|
-
responseHeaders
|
8354
|
+
responseHeaders,
|
8355
|
+
xhr.statusText || '');
|
8141
8356
|
}
|
8142
8357
|
};
|
8143
8358
|
|
@@ -8178,7 +8393,7 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
|
|
8178
8393
|
xhr && xhr.abort();
|
8179
8394
|
}
|
8180
8395
|
|
8181
|
-
function completeRequest(callback, status, response, headersString) {
|
8396
|
+
function completeRequest(callback, status, response, headersString, statusText) {
|
8182
8397
|
// cancel timeout and subsequent timeout promise resolution
|
8183
8398
|
timeoutId && $browserDefer.cancel(timeoutId);
|
8184
8399
|
jsonpDone = xhr = null;
|
@@ -8191,9 +8406,10 @@ function createHttpBackend($browser, createXhr, $browserDefer, callbacks, rawDoc
|
|
8191
8406
|
}
|
8192
8407
|
|
8193
8408
|
// normalize IE bug (http://bugs.jquery.com/ticket/1450)
|
8194
|
-
status = status
|
8409
|
+
status = status === 1223 ? 204 : status;
|
8410
|
+
statusText = statusText || '';
|
8195
8411
|
|
8196
|
-
callback(status, response, headersString);
|
8412
|
+
callback(status, response, headersString, statusText);
|
8197
8413
|
$browser.$$completeOutstandingRequest(noop);
|
8198
8414
|
}
|
8199
8415
|
};
|
@@ -9235,8 +9451,7 @@ function locationGetterSetter(property, preprocess) {
|
|
9235
9451
|
* - Clicks on a link.
|
9236
9452
|
* - Represents the URL object as a set of methods (protocol, host, port, path, search, hash).
|
9237
9453
|
*
|
9238
|
-
* For more information see {@link guide
|
9239
|
-
* Services: Using $location}
|
9454
|
+
* For more information see {@link guide/$location Developer Guide: Using $location}
|
9240
9455
|
*/
|
9241
9456
|
|
9242
9457
|
/**
|
@@ -9972,7 +10187,11 @@ var Parser = function (lexer, $filter, options) {
|
|
9972
10187
|
this.options = options;
|
9973
10188
|
};
|
9974
10189
|
|
9975
|
-
Parser.ZERO = function () {
|
10190
|
+
Parser.ZERO = extend(function () {
|
10191
|
+
return 0;
|
10192
|
+
}, {
|
10193
|
+
constant: true
|
10194
|
+
});
|
9976
10195
|
|
9977
10196
|
Parser.prototype = {
|
9978
10197
|
constructor: Parser,
|
@@ -11717,7 +11936,8 @@ function $RootScopeProvider(){
|
|
11717
11936
|
* - `function(newValue, oldValue, scope)`: called with current and previous values as
|
11718
11937
|
* parameters.
|
11719
11938
|
*
|
11720
|
-
* @param {boolean=} objectEquality Compare object
|
11939
|
+
* @param {boolean=} objectEquality Compare for object equality using {@link angular.equals} instead of
|
11940
|
+
* comparing for reference equality.
|
11721
11941
|
* @returns {function()} Returns a deregistration function for this listener.
|
11722
11942
|
*/
|
11723
11943
|
$watch: function(watchExp, listener, objectEquality) {
|
@@ -12138,15 +12358,32 @@ function $RootScopeProvider(){
|
|
12138
12358
|
|
12139
12359
|
forEach(this.$$listenerCount, bind(null, decrementListenerCount, this));
|
12140
12360
|
|
12361
|
+
// sever all the references to parent scopes (after this cleanup, the current scope should
|
12362
|
+
// not be retained by any of our references and should be eligible for garbage collection)
|
12141
12363
|
if (parent.$$childHead == this) parent.$$childHead = this.$$nextSibling;
|
12142
12364
|
if (parent.$$childTail == this) parent.$$childTail = this.$$prevSibling;
|
12143
12365
|
if (this.$$prevSibling) this.$$prevSibling.$$nextSibling = this.$$nextSibling;
|
12144
12366
|
if (this.$$nextSibling) this.$$nextSibling.$$prevSibling = this.$$prevSibling;
|
12145
12367
|
|
12146
|
-
|
12147
|
-
//
|
12368
|
+
|
12369
|
+
// All of the code below is bogus code that works around V8's memory leak via optimized code
|
12370
|
+
// and inline caches.
|
12371
|
+
//
|
12372
|
+
// see:
|
12373
|
+
// - https://code.google.com/p/v8/issues/detail?id=2073#c26
|
12374
|
+
// - https://github.com/angular/angular.js/issues/6794#issuecomment-38648909
|
12375
|
+
// - https://github.com/angular/angular.js/issues/1313#issuecomment-10378451
|
12376
|
+
|
12148
12377
|
this.$parent = this.$$nextSibling = this.$$prevSibling = this.$$childHead =
|
12149
|
-
this.$$childTail = null;
|
12378
|
+
this.$$childTail = this.$root = null;
|
12379
|
+
|
12380
|
+
// don't reset these to null in case some async task tries to register a listener/watch/task
|
12381
|
+
this.$$listeners = {};
|
12382
|
+
this.$$watchers = this.$$asyncQueue = this.$$postDigestQueue = [];
|
12383
|
+
|
12384
|
+
// prevent NPEs since these methods have references to properties we nulled out
|
12385
|
+
this.$destroy = this.$digest = this.$apply = noop;
|
12386
|
+
this.$on = this.$watch = function() { return noop; };
|
12150
12387
|
},
|
12151
12388
|
|
12152
12389
|
/**
|
@@ -13115,7 +13352,7 @@ function $SceDelegateProvider() {
|
|
13115
13352
|
* | `$sce.HTML` | For HTML that's safe to source into the application. The {@link ng.directive:ngBindHtml ngBindHtml} directive uses this context for bindings. |
|
13116
13353
|
* | `$sce.CSS` | For CSS that's safe to source into the application. Currently unused. Feel free to use it in your own directives. |
|
13117
13354
|
* | `$sce.URL` | For URLs that are safe to follow as links. Currently unused (`<a href=` and `<img src=` sanitize their urls and don't constitute an SCE context. |
|
13118
|
-
* | `$sce.RESOURCE_URL` | For URLs that are not only safe to follow as links, but whose
|
13355
|
+
* | `$sce.RESOURCE_URL` | For URLs that are not only safe to follow as links, but whose contents are also safe to include in your application. Examples include `ng-include`, `src` / `ngSrc` bindings for tags other than `IMG` (e.g. `IFRAME`, `OBJECT`, etc.) <br><br>Note that `$sce.RESOURCE_URL` makes a stronger statement about the URL than `$sce.URL` does and therefore contexts requiring values trusted for `$sce.RESOURCE_URL` can be used anywhere that values trusted for `$sce.URL` are required. |
|
13119
13356
|
* | `$sce.JS` | For JavaScript that is safe to execute in your application's context. Currently unused. Feel free to use it in your own directives. |
|
13120
13357
|
*
|
13121
13358
|
* ## Format of items in {@link ng.$sceDelegateProvider#resourceUrlWhitelist resourceUrlWhitelist}/{@link ng.$sceDelegateProvider#resourceUrlBlacklist Blacklist} <a name="resourceUrlPatternItem"></a>
|
@@ -14963,7 +15200,7 @@ function limitToFilter(){
|
|
14963
15200
|
* - `Array`: An array of function or string predicates. The first predicate in the array
|
14964
15201
|
* is used for sorting, but when two items are equivalent, the next predicate is used.
|
14965
15202
|
*
|
14966
|
-
* @param {boolean=} reverse Reverse the order the array.
|
15203
|
+
* @param {boolean=} reverse Reverse the order of the array.
|
14967
15204
|
* @returns {Array} Sorted copy of the source array.
|
14968
15205
|
*
|
14969
15206
|
* @example
|
@@ -15728,6 +15965,10 @@ function FormController(element, attrs, $scope, $animate) {
|
|
15728
15965
|
* does not allow nesting of form elements. It is useful to nest forms, for example if the validity of a
|
15729
15966
|
* sub-group of controls needs to be determined.
|
15730
15967
|
*
|
15968
|
+
* Note: the purpose of `ngForm` is to group controls,
|
15969
|
+
* but not to be a replacement for the `<form>` tag with all of its capabilities
|
15970
|
+
* (e.g. posting to the server, ...).
|
15971
|
+
*
|
15731
15972
|
* @param {string=} ngForm|name Name of the form. If specified, the form controller will be published into
|
15732
15973
|
* related scope, under this name.
|
15733
15974
|
*
|
@@ -16808,7 +17049,6 @@ function addNativeHtml5Validators(ctrl, validatorName, element) {
|
|
16808
17049
|
return value;
|
16809
17050
|
};
|
16810
17051
|
ctrl.$parsers.push(validator);
|
16811
|
-
ctrl.$formatters.push(validator);
|
16812
17052
|
}
|
16813
17053
|
}
|
16814
17054
|
|
@@ -18242,7 +18482,7 @@ var ngBindHtmlDirective = ['$sce', '$parse', function($sce, $parse) {
|
|
18242
18482
|
|
18243
18483
|
function classDirective(name, selector) {
|
18244
18484
|
name = 'ngClass' + name;
|
18245
|
-
return function() {
|
18485
|
+
return ['$animate', function($animate) {
|
18246
18486
|
return {
|
18247
18487
|
restrict: 'AC',
|
18248
18488
|
link: function(scope, element, attr) {
|
@@ -18260,46 +18500,100 @@ function classDirective(name, selector) {
|
|
18260
18500
|
// jshint bitwise: false
|
18261
18501
|
var mod = $index & 1;
|
18262
18502
|
if (mod !== old$index & 1) {
|
18263
|
-
var classes =
|
18503
|
+
var classes = arrayClasses(scope.$eval(attr[name]));
|
18264
18504
|
mod === selector ?
|
18265
|
-
|
18266
|
-
|
18505
|
+
addClasses(classes) :
|
18506
|
+
removeClasses(classes);
|
18267
18507
|
}
|
18268
18508
|
});
|
18269
18509
|
}
|
18270
18510
|
|
18511
|
+
function addClasses(classes) {
|
18512
|
+
var newClasses = digestClassCounts(classes, 1);
|
18513
|
+
attr.$addClass(newClasses);
|
18514
|
+
}
|
18515
|
+
|
18516
|
+
function removeClasses(classes) {
|
18517
|
+
var newClasses = digestClassCounts(classes, -1);
|
18518
|
+
attr.$removeClass(newClasses);
|
18519
|
+
}
|
18520
|
+
|
18521
|
+
function digestClassCounts (classes, count) {
|
18522
|
+
var classCounts = element.data('$classCounts') || {};
|
18523
|
+
var classesToUpdate = [];
|
18524
|
+
forEach(classes, function (className) {
|
18525
|
+
if (count > 0 || classCounts[className]) {
|
18526
|
+
classCounts[className] = (classCounts[className] || 0) + count;
|
18527
|
+
if (classCounts[className] === +(count > 0)) {
|
18528
|
+
classesToUpdate.push(className);
|
18529
|
+
}
|
18530
|
+
}
|
18531
|
+
});
|
18532
|
+
element.data('$classCounts', classCounts);
|
18533
|
+
return classesToUpdate.join(' ');
|
18534
|
+
}
|
18535
|
+
|
18536
|
+
function updateClasses (oldClasses, newClasses) {
|
18537
|
+
var toAdd = arrayDifference(newClasses, oldClasses);
|
18538
|
+
var toRemove = arrayDifference(oldClasses, newClasses);
|
18539
|
+
toRemove = digestClassCounts(toRemove, -1);
|
18540
|
+
toAdd = digestClassCounts(toAdd, 1);
|
18541
|
+
|
18542
|
+
if (toAdd.length === 0) {
|
18543
|
+
$animate.removeClass(element, toRemove);
|
18544
|
+
} else if (toRemove.length === 0) {
|
18545
|
+
$animate.addClass(element, toAdd);
|
18546
|
+
} else {
|
18547
|
+
$animate.setClass(element, toAdd, toRemove);
|
18548
|
+
}
|
18549
|
+
}
|
18271
18550
|
|
18272
18551
|
function ngClassWatchAction(newVal) {
|
18273
18552
|
if (selector === true || scope.$index % 2 === selector) {
|
18274
|
-
var newClasses =
|
18275
|
-
if(!oldVal) {
|
18276
|
-
|
18277
|
-
} else if(!equals(newVal,oldVal)) {
|
18278
|
-
|
18553
|
+
var newClasses = arrayClasses(newVal || []);
|
18554
|
+
if (!oldVal) {
|
18555
|
+
addClasses(newClasses);
|
18556
|
+
} else if (!equals(newVal,oldVal)) {
|
18557
|
+
var oldClasses = arrayClasses(oldVal);
|
18558
|
+
updateClasses(oldClasses, newClasses);
|
18279
18559
|
}
|
18280
18560
|
}
|
18281
18561
|
oldVal = copy(newVal);
|
18282
18562
|
}
|
18563
|
+
}
|
18564
|
+
};
|
18283
18565
|
|
18566
|
+
function arrayDifference(tokens1, tokens2) {
|
18567
|
+
var values = [];
|
18284
18568
|
|
18285
|
-
|
18286
|
-
|
18287
|
-
|
18288
|
-
|
18289
|
-
|
18290
|
-
forEach(classVal, function(v, k) {
|
18291
|
-
if (v) {
|
18292
|
-
classes.push(k);
|
18293
|
-
}
|
18294
|
-
});
|
18295
|
-
return classes.join(' ');
|
18296
|
-
}
|
18297
|
-
|
18298
|
-
return classVal;
|
18569
|
+
outer:
|
18570
|
+
for(var i = 0; i < tokens1.length; i++) {
|
18571
|
+
var token = tokens1[i];
|
18572
|
+
for(var j = 0; j < tokens2.length; j++) {
|
18573
|
+
if(token == tokens2[j]) continue outer;
|
18299
18574
|
}
|
18575
|
+
values.push(token);
|
18300
18576
|
}
|
18301
|
-
|
18302
|
-
|
18577
|
+
return values;
|
18578
|
+
}
|
18579
|
+
|
18580
|
+
function arrayClasses (classVal) {
|
18581
|
+
if (isArray(classVal)) {
|
18582
|
+
return classVal;
|
18583
|
+
} else if (isString(classVal)) {
|
18584
|
+
return classVal.split(' ');
|
18585
|
+
} else if (isObject(classVal)) {
|
18586
|
+
var classes = [], i = 0;
|
18587
|
+
forEach(classVal, function(v, k) {
|
18588
|
+
if (v) {
|
18589
|
+
classes.push(k);
|
18590
|
+
}
|
18591
|
+
});
|
18592
|
+
return classes;
|
18593
|
+
}
|
18594
|
+
return classVal;
|
18595
|
+
}
|
18596
|
+
}];
|
18303
18597
|
}
|
18304
18598
|
|
18305
18599
|
/**
|
@@ -18860,7 +19154,7 @@ var ngControllerDirective = [function() {
|
|
18860
19154
|
* @element ANY
|
18861
19155
|
* @priority 0
|
18862
19156
|
* @param {expression} ngClick {@link guide/expression Expression} to evaluate upon
|
18863
|
-
* click. (Event object is available as `$event`)
|
19157
|
+
* click. ({@link guide/expression#-event- Event object is available as `$event`})
|
18864
19158
|
*
|
18865
19159
|
* @example
|
18866
19160
|
<example>
|
@@ -18941,7 +19235,7 @@ forEach(
|
|
18941
19235
|
* @element ANY
|
18942
19236
|
* @priority 0
|
18943
19237
|
* @param {expression} ngMousedown {@link guide/expression Expression} to evaluate upon
|
18944
|
-
* mousedown. (Event object is available as `$event`)
|
19238
|
+
* mousedown. ({@link guide/expression#-event- Event object is available as `$event`})
|
18945
19239
|
*
|
18946
19240
|
* @example
|
18947
19241
|
<example>
|
@@ -18965,7 +19259,7 @@ forEach(
|
|
18965
19259
|
* @element ANY
|
18966
19260
|
* @priority 0
|
18967
19261
|
* @param {expression} ngMouseup {@link guide/expression Expression} to evaluate upon
|
18968
|
-
* mouseup. (Event object is available as `$event`)
|
19262
|
+
* mouseup. ({@link guide/expression#-event- Event object is available as `$event`})
|
18969
19263
|
*
|
18970
19264
|
* @example
|
18971
19265
|
<example>
|
@@ -18988,7 +19282,7 @@ forEach(
|
|
18988
19282
|
* @element ANY
|
18989
19283
|
* @priority 0
|
18990
19284
|
* @param {expression} ngMouseover {@link guide/expression Expression} to evaluate upon
|
18991
|
-
* mouseover. (Event object is available as `$event`)
|
19285
|
+
* mouseover. ({@link guide/expression#-event- Event object is available as `$event`})
|
18992
19286
|
*
|
18993
19287
|
* @example
|
18994
19288
|
<example>
|
@@ -19012,7 +19306,7 @@ forEach(
|
|
19012
19306
|
* @element ANY
|
19013
19307
|
* @priority 0
|
19014
19308
|
* @param {expression} ngMouseenter {@link guide/expression Expression} to evaluate upon
|
19015
|
-
* mouseenter. (Event object is available as `$event`)
|
19309
|
+
* mouseenter. ({@link guide/expression#-event- Event object is available as `$event`})
|
19016
19310
|
*
|
19017
19311
|
* @example
|
19018
19312
|
<example>
|
@@ -19036,7 +19330,7 @@ forEach(
|
|
19036
19330
|
* @element ANY
|
19037
19331
|
* @priority 0
|
19038
19332
|
* @param {expression} ngMouseleave {@link guide/expression Expression} to evaluate upon
|
19039
|
-
* mouseleave. (Event object is available as `$event`)
|
19333
|
+
* mouseleave. ({@link guide/expression#-event- Event object is available as `$event`})
|
19040
19334
|
*
|
19041
19335
|
* @example
|
19042
19336
|
<example>
|
@@ -19060,7 +19354,7 @@ forEach(
|
|
19060
19354
|
* @element ANY
|
19061
19355
|
* @priority 0
|
19062
19356
|
* @param {expression} ngMousemove {@link guide/expression Expression} to evaluate upon
|
19063
|
-
* mousemove. (Event object is available as `$event`)
|
19357
|
+
* mousemove. ({@link guide/expression#-event- Event object is available as `$event`})
|
19064
19358
|
*
|
19065
19359
|
* @example
|
19066
19360
|
<example>
|
@@ -19127,7 +19421,8 @@ forEach(
|
|
19127
19421
|
*
|
19128
19422
|
* @element ANY
|
19129
19423
|
* @param {expression} ngKeypress {@link guide/expression Expression} to evaluate upon
|
19130
|
-
* keypress. (Event object is available as `$event`
|
19424
|
+
* keypress. ({@link guide/expression#-event- Event object is available as `$event`}
|
19425
|
+
* and can be interrogated for keyCode, altKey, etc.)
|
19131
19426
|
*
|
19132
19427
|
* @example
|
19133
19428
|
<example>
|
@@ -19152,7 +19447,8 @@ forEach(
|
|
19152
19447
|
*
|
19153
19448
|
* @element form
|
19154
19449
|
* @priority 0
|
19155
|
-
* @param {expression} ngSubmit {@link guide/expression Expression} to eval.
|
19450
|
+
* @param {expression} ngSubmit {@link guide/expression Expression} to eval.
|
19451
|
+
* ({@link guide/expression#-event- Event object is available as `$event`})
|
19156
19452
|
*
|
19157
19453
|
* @example
|
19158
19454
|
<example>
|
@@ -19203,7 +19499,7 @@ forEach(
|
|
19203
19499
|
* @element window, input, select, textarea, a
|
19204
19500
|
* @priority 0
|
19205
19501
|
* @param {expression} ngFocus {@link guide/expression Expression} to evaluate upon
|
19206
|
-
* focus. (Event object is available as `$event`)
|
19502
|
+
* focus. ({@link guide/expression#-event- Event object is available as `$event`})
|
19207
19503
|
*
|
19208
19504
|
* @example
|
19209
19505
|
* See {@link ng.directive:ngClick ngClick}
|
@@ -19219,7 +19515,7 @@ forEach(
|
|
19219
19515
|
* @element window, input, select, textarea, a
|
19220
19516
|
* @priority 0
|
19221
19517
|
* @param {expression} ngBlur {@link guide/expression Expression} to evaluate upon
|
19222
|
-
* blur. (Event object is available as `$event`)
|
19518
|
+
* blur. ({@link guide/expression#-event- Event object is available as `$event`})
|
19223
19519
|
*
|
19224
19520
|
* @example
|
19225
19521
|
* See {@link ng.directive:ngClick ngClick}
|
@@ -19235,7 +19531,7 @@ forEach(
|
|
19235
19531
|
* @element window, input, select, textarea, a
|
19236
19532
|
* @priority 0
|
19237
19533
|
* @param {expression} ngCopy {@link guide/expression Expression} to evaluate upon
|
19238
|
-
* copy. (Event object is available as `$event`)
|
19534
|
+
* copy. ({@link guide/expression#-event- Event object is available as `$event`})
|
19239
19535
|
*
|
19240
19536
|
* @example
|
19241
19537
|
<example>
|
@@ -19256,7 +19552,7 @@ forEach(
|
|
19256
19552
|
* @element window, input, select, textarea, a
|
19257
19553
|
* @priority 0
|
19258
19554
|
* @param {expression} ngCut {@link guide/expression Expression} to evaluate upon
|
19259
|
-
* cut. (Event object is available as `$event`)
|
19555
|
+
* cut. ({@link guide/expression#-event- Event object is available as `$event`})
|
19260
19556
|
*
|
19261
19557
|
* @example
|
19262
19558
|
<example>
|
@@ -19277,7 +19573,7 @@ forEach(
|
|
19277
19573
|
* @element window, input, select, textarea, a
|
19278
19574
|
* @priority 0
|
19279
19575
|
* @param {expression} ngPaste {@link guide/expression Expression} to evaluate upon
|
19280
|
-
* paste. (Event object is available as `$event`)
|
19576
|
+
* paste. ({@link guide/expression#-event- Event object is available as `$event`})
|
19281
19577
|
*
|
19282
19578
|
* @example
|
19283
19579
|
<example>
|
@@ -20419,10 +20715,10 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
20419
20715
|
* restating the styles for the .ng-hide class in CSS:
|
20420
20716
|
* ```css
|
20421
20717
|
* .ng-hide {
|
20422
|
-
*
|
20718
|
+
* /* Not to worry, this will override the AngularJS default...
|
20423
20719
|
* display:block!important;
|
20424
20720
|
*
|
20425
|
-
*
|
20721
|
+
* /* this is just another form of hiding an element */
|
20426
20722
|
* position:absolute;
|
20427
20723
|
* top:-9999px;
|
20428
20724
|
* left:-9999px;
|
@@ -20448,10 +20744,20 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
20448
20744
|
* //a working example can be found at the bottom of this page
|
20449
20745
|
* //
|
20450
20746
|
* .my-element.ng-hide-add, .my-element.ng-hide-remove {
|
20451
|
-
*
|
20747
|
+
* /* this is required as of 1.3x to properly
|
20748
|
+
* apply all styling in a show/hide animation */
|
20749
|
+
* transition:0s linear all;
|
20750
|
+
*
|
20751
|
+
* /* this must be set as block so the animation is visible */
|
20452
20752
|
* display:block!important;
|
20453
20753
|
* }
|
20454
20754
|
*
|
20755
|
+
* .my-element.ng-hide-add-active,
|
20756
|
+
* .my-element.ng-hide-remove-active {
|
20757
|
+
* /* the transition is defined in the active class */
|
20758
|
+
* transition:1s linear all;
|
20759
|
+
* }
|
20760
|
+
*
|
20455
20761
|
* .my-element.ng-hide-add { ... }
|
20456
20762
|
* .my-element.ng-hide-add.ng-hide-add-active { ... }
|
20457
20763
|
* .my-element.ng-hide-remove { ... }
|
@@ -20488,8 +20794,6 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
20488
20794
|
</file>
|
20489
20795
|
<file name="animations.css">
|
20490
20796
|
.animate-show {
|
20491
|
-
-webkit-transition:all linear 0.5s;
|
20492
|
-
transition:all linear 0.5s;
|
20493
20797
|
line-height:20px;
|
20494
20798
|
opacity:1;
|
20495
20799
|
padding:10px;
|
@@ -20502,6 +20806,12 @@ var ngRepeatDirective = ['$parse', '$animate', function($parse, $animate) {
|
|
20502
20806
|
display:block!important;
|
20503
20807
|
}
|
20504
20808
|
|
20809
|
+
.animate-show.ng-hide-add.ng-hide-add-active,
|
20810
|
+
.animate-show.ng-hide-remove.ng-hide-remove-active {
|
20811
|
+
-webkit-transition:all linear 0.5s;
|
20812
|
+
transition:all linear 0.5s;
|
20813
|
+
}
|
20814
|
+
|
20505
20815
|
.animate-show.ng-hide {
|
20506
20816
|
line-height:0;
|
20507
20817
|
opacity:0;
|
@@ -20550,7 +20860,7 @@ var ngShowDirective = ['$animate', function($animate) {
|
|
20550
20860
|
* in AngularJS and sets the display style to none (using an !important flag).
|
20551
20861
|
* For CSP mode please add `angular-csp.css` to your html file (see {@link ng.directive:ngCsp ngCsp}).
|
20552
20862
|
*
|
20553
|
-
* ```
|
20863
|
+
* ```html
|
20554
20864
|
* <!-- when $scope.myValue is truthy (element is hidden) -->
|
20555
20865
|
* <div ng-hide="myValue"></div>
|
20556
20866
|
*
|
@@ -21732,4 +22042,4 @@ var styleDirective = valueFn({
|
|
21732
22042
|
|
21733
22043
|
})(window, document);
|
21734
22044
|
|
21735
|
-
!angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}
|
22045
|
+
!angular.$$csp() && angular.element(document).find('head').prepend('<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}</style>');
|