|
@@ -2,6 +2,25 @@
|
|
|
* @license AngularJS v1.2.9
|
|
|
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
|
|
* License: MIT
|
|
|
+ *
|
|
|
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
+ * of this software and associated documentation files (the "Software"), to deal
|
|
|
+ * in the Software without restriction, including without limitation the rights
|
|
|
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
+ * copies of the Software, and to permit persons to whom the Software is
|
|
|
+ * furnished to do so, subject to the following conditions:
|
|
|
+ *
|
|
|
+ * The above copyright notice and this permission notice shall be included in
|
|
|
+ * all copies or substantial portions of the Software.
|
|
|
+ *
|
|
|
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
+ * THE SOFTWARE.
|
|
|
+ *
|
|
|
*/
|
|
|
(function(window, document, undefined) {'use strict';
|
|
|
|
|
@@ -1747,10 +1766,10 @@ function setupModuleLoader(window) {
|
|
|
/* global
|
|
|
angularModule: true,
|
|
|
version: true,
|
|
|
-
|
|
|
+
|
|
|
$LocaleProvider,
|
|
|
$CompileProvider,
|
|
|
-
|
|
|
+
|
|
|
htmlAnchorDirective,
|
|
|
inputDirective,
|
|
|
inputDirective,
|
|
@@ -3414,11 +3433,11 @@ function annotate(fn) {
|
|
|
* var Ping = function() {
|
|
|
* this.$http = $http;
|
|
|
* };
|
|
|
- *
|
|
|
+ *
|
|
|
* Ping.prototype.send = function() {
|
|
|
* return this.$http.get('/ping');
|
|
|
- * };
|
|
|
- *
|
|
|
+ * };
|
|
|
+ *
|
|
|
* return Ping;
|
|
|
* }]);
|
|
|
* </pre>
|
|
@@ -3749,7 +3768,7 @@ function createInjector(modulesToLoad) {
|
|
|
*
|
|
|
* It also watches the `$location.hash()` and scrolls whenever it changes to match any anchor.
|
|
|
* This can be disabled by calling `$anchorScrollProvider.disableAutoScrolling()`.
|
|
|
- *
|
|
|
+ *
|
|
|
* @example
|
|
|
<example>
|
|
|
<file name="index.html">
|
|
@@ -3764,7 +3783,7 @@ function createInjector(modulesToLoad) {
|
|
|
// set the location.hash to the id of
|
|
|
// the element you wish to scroll to.
|
|
|
$location.hash('bottom');
|
|
|
-
|
|
|
+
|
|
|
// call $anchorScroll()
|
|
|
$anchorScroll();
|
|
|
}
|
|
@@ -3852,7 +3871,7 @@ var $animateMinErr = minErr('$animate');
|
|
|
*/
|
|
|
var $AnimateProvider = ['$provide', function($provide) {
|
|
|
|
|
|
-
|
|
|
+
|
|
|
this.$$selectors = {};
|
|
|
|
|
|
|
|
@@ -3993,7 +4012,7 @@ var $AnimateProvider = ['$provide', function($provide) {
|
|
|
* @description Moves the position of the provided element within the DOM to be placed
|
|
|
* either after the `after` element or inside of the `parent` element. Once complete, the
|
|
|
* done() callback will be fired (if provided).
|
|
|
- *
|
|
|
+ *
|
|
|
* @param {jQuery/jqLite element} element the element which will be moved around within the
|
|
|
* DOM
|
|
|
* @param {jQuery/jqLite element} parent the parent element where the element will be
|
|
@@ -4458,9 +4477,9 @@ function $BrowserProvider(){
|
|
|
*
|
|
|
* @description
|
|
|
* Factory that constructs cache objects and gives access to them.
|
|
|
- *
|
|
|
+ *
|
|
|
* <pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* var cache = $cacheFactory('cacheId');
|
|
|
* expect($cacheFactory.get('cacheId')).toBe(cache);
|
|
|
* expect($cacheFactory.get('noSuchCacheId')).not.toBeDefined();
|
|
@@ -4469,8 +4488,8 @@ function $BrowserProvider(){
|
|
|
* cache.put("another key", "another value");
|
|
|
*
|
|
|
* // We've specified no options on creation
|
|
|
- * expect(cache.info()).toEqual({id: 'cacheId', size: 2});
|
|
|
- *
|
|
|
+ * expect(cache.info()).toEqual({id: 'cacheId', size: 2});
|
|
|
+ *
|
|
|
* </pre>
|
|
|
*
|
|
|
*
|
|
@@ -4653,7 +4672,7 @@ function $CacheFactoryProvider() {
|
|
|
* The first time a template is used, it is loaded in the template cache for quick retrieval. You
|
|
|
* can load templates directly into the cache in a `script` tag, or by consuming the
|
|
|
* `$templateCache` service directly.
|
|
|
- *
|
|
|
+ *
|
|
|
* Adding via the `script` tag:
|
|
|
* <pre>
|
|
|
* <html ng-app>
|
|
@@ -4665,29 +4684,29 @@ function $CacheFactoryProvider() {
|
|
|
* ...
|
|
|
* </html>
|
|
|
* </pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* **Note:** the `script` tag containing the template does not need to be included in the `head` of
|
|
|
* the document, but it must be below the `ng-app` definition.
|
|
|
- *
|
|
|
+ *
|
|
|
* Adding via the $templateCache service:
|
|
|
- *
|
|
|
+ *
|
|
|
* <pre>
|
|
|
* var myApp = angular.module('myApp', []);
|
|
|
* myApp.run(function($templateCache) {
|
|
|
* $templateCache.put('templateId.html', 'This is the content of the template');
|
|
|
* });
|
|
|
* </pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* To retrieve the template later, simply use it in your HTML:
|
|
|
* <pre>
|
|
|
* <div ng-include=" 'templateId.html' "></div>
|
|
|
* </pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* or get it via Javascript:
|
|
|
* <pre>
|
|
|
* $templateCache.get('templateId.html')
|
|
|
* </pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* See {@link ng.$cacheFactory $cacheFactory}.
|
|
|
*
|
|
|
*/
|
|
@@ -6809,12 +6828,12 @@ function $DocumentProvider(){
|
|
|
* Any uncaught exception in angular expressions is delegated to this service.
|
|
|
* The default implementation simply delegates to `$log.error` which logs it into
|
|
|
* the browser console.
|
|
|
- *
|
|
|
+ *
|
|
|
* In unit tests, if `angular-mocks.js` is loaded, this service is overridden by
|
|
|
* {@link ngMock.$exceptionHandler mock $exceptionHandler} which aids in testing.
|
|
|
*
|
|
|
* ## Example:
|
|
|
- *
|
|
|
+ *
|
|
|
* <pre>
|
|
|
* angular.module('exceptionOverride', []).factory('$exceptionHandler', function () {
|
|
|
* return function (exception, cause) {
|
|
@@ -6823,7 +6842,7 @@ function $DocumentProvider(){
|
|
|
* };
|
|
|
* });
|
|
|
* </pre>
|
|
|
- *
|
|
|
+ *
|
|
|
* This example will override the normal action of `$exceptionHandler`, to make angular
|
|
|
* exceptions fail hard when they happen, instead of just logging to the console.
|
|
|
*
|
|
@@ -8322,7 +8341,7 @@ function $IntervalProvider() {
|
|
|
* In tests you can use {@link ngMock.$interval#methods_flush `$interval.flush(millis)`} to
|
|
|
* move forward by `millis` milliseconds and trigger any functions scheduled to run in that
|
|
|
* time.
|
|
|
- *
|
|
|
+ *
|
|
|
* <div class="alert alert-warning">
|
|
|
* **Note**: Intervals created by this service must be explicitly destroyed when you are finished
|
|
|
* with them. In particular they are not automatically destroyed when a controller's scope or a
|
|
@@ -8435,7 +8454,7 @@ function $IntervalProvider() {
|
|
|
promise = deferred.promise,
|
|
|
iteration = 0,
|
|
|
skipApply = (isDefined(invokeApply) && !invokeApply);
|
|
|
-
|
|
|
+
|
|
|
count = isDefined(count) ? count : 0,
|
|
|
|
|
|
promise.then(null, null, fn);
|
|
@@ -9270,7 +9289,7 @@ function $LocationProvider(){
|
|
|
* @description
|
|
|
* Simple service for logging. Default implementation safely writes the message
|
|
|
* into the browser's console (if present).
|
|
|
- *
|
|
|
+ *
|
|
|
* The main purpose of this service is to simplify debugging and troubleshooting.
|
|
|
*
|
|
|
* The default is to log `debug` messages. You can use
|
|
@@ -9307,7 +9326,7 @@ function $LocationProvider(){
|
|
|
function $LogProvider(){
|
|
|
var debug = true,
|
|
|
self = this;
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @ngdoc property
|
|
|
* @name ng.$logProvider#debugEnabled
|
|
@@ -9324,7 +9343,7 @@ function $LogProvider(){
|
|
|
return debug;
|
|
|
}
|
|
|
};
|
|
|
-
|
|
|
+
|
|
|
this.$get = ['$window', function($window){
|
|
|
return {
|
|
|
/**
|
|
@@ -9366,12 +9385,12 @@ function $LogProvider(){
|
|
|
* Write an error message
|
|
|
*/
|
|
|
error: consoleLog('error'),
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @ngdoc method
|
|
|
* @name ng.$log#debug
|
|
|
* @methodOf ng.$log
|
|
|
- *
|
|
|
+ *
|
|
|
* @description
|
|
|
* Write a debug message
|
|
|
*/
|
|
@@ -12823,7 +12842,7 @@ function $SceDelegateProvider() {
|
|
|
* allowing only the files in a specific directory to do this. Ensuring that the internal API
|
|
|
* exposed by that code doesn't markup arbitrary values as safe then becomes a more manageable task.
|
|
|
*
|
|
|
- * In the case of AngularJS' SCE service, one uses {@link ng.$sce#methods_trustAs $sce.trustAs}
|
|
|
+ * In the case of AngularJS' SCE service, one uses {@link ng.$sce#methods_trustAs $sce.trustAs}
|
|
|
* (and shorthand methods such as {@link ng.$sce#methods_trustAsHtml $sce.trustAsHtml}, etc.) to
|
|
|
* obtain values that will be accepted by SCE / privileged contexts.
|
|
|
*
|
|
@@ -13572,7 +13591,7 @@ function $TimeoutProvider() {
|
|
|
* will invoke `fn` within the {@link ng.$rootScope.Scope#methods_$apply $apply} block.
|
|
|
* @returns {Promise} Promise that will be resolved when the timeout is reached. The value this
|
|
|
* promise will be resolved with is the return value of the `fn` function.
|
|
|
- *
|
|
|
+ *
|
|
|
*/
|
|
|
function timeout(fn, delay, invokeApply) {
|
|
|
var deferred = $q.defer(),
|
|
@@ -13806,7 +13825,7 @@ function $WindowProvider(){
|
|
|
*
|
|
|
* The filter function is registered with the `$injector` under the filter name suffix with
|
|
|
* `Filter`.
|
|
|
- *
|
|
|
+ *
|
|
|
* <pre>
|
|
|
* it('should be the same instance', inject(
|
|
|
* function($filterProvider) {
|
|
@@ -13882,7 +13901,7 @@ function $FilterProvider($provide) {
|
|
|
}];
|
|
|
|
|
|
////////////////////////////////////////
|
|
|
-
|
|
|
+
|
|
|
/* global
|
|
|
currencyFilter: false,
|
|
|
dateFilter: false,
|
|
@@ -14590,9 +14609,9 @@ var uppercaseFilter = valueFn(uppercase);
|
|
|
* the value and sign (positive or negative) of `limit`.
|
|
|
*
|
|
|
* @param {Array|string} input Source array or string to be limited.
|
|
|
- * @param {string|number} limit The length of the returned array or string. If the `limit` number
|
|
|
+ * @param {string|number} limit The length of the returned array or string. If the `limit` number
|
|
|
* is positive, `limit` number of items from the beginning of the source array/string are copied.
|
|
|
- * If the number is negative, `limit` number of items from the end of the source array/string
|
|
|
+ * If the number is negative, `limit` number of items from the end of the source array/string
|
|
|
* are copied. The `limit` will be trimmed if it exceeds `array.length`
|
|
|
* @returns {Array|string} A new sub-array or substring of length `limit` or less if input array
|
|
|
* had less than `limit` elements.
|
|
@@ -14642,7 +14661,7 @@ var uppercaseFilter = valueFn(uppercase);
|
|
|
function limitToFilter(){
|
|
|
return function(input, limit) {
|
|
|
if (!isArray(input) && !isString(input)) return input;
|
|
|
-
|
|
|
+
|
|
|
limit = int(limit);
|
|
|
|
|
|
if (isString(input)) {
|
|
@@ -15044,7 +15063,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
</doc:example>
|
|
|
*
|
|
|
* @element INPUT
|
|
|
- * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy,
|
|
|
+ * @param {expression} ngDisabled If the {@link guide/expression expression} is truthy,
|
|
|
* then special attribute "disabled" will be set on the element
|
|
|
*/
|
|
|
|
|
@@ -15079,7 +15098,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
</doc:example>
|
|
|
*
|
|
|
* @element INPUT
|
|
|
- * @param {expression} ngChecked If the {@link guide/expression expression} is truthy,
|
|
|
+ * @param {expression} ngChecked If the {@link guide/expression expression} is truthy,
|
|
|
* then special attribute "checked" will be set on the element
|
|
|
*/
|
|
|
|
|
@@ -15114,7 +15133,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
</doc:example>
|
|
|
*
|
|
|
* @element INPUT
|
|
|
- * @param {expression} ngReadonly If the {@link guide/expression expression} is truthy,
|
|
|
+ * @param {expression} ngReadonly If the {@link guide/expression expression} is truthy,
|
|
|
* then special attribute "readonly" will be set on the element
|
|
|
*/
|
|
|
|
|
@@ -15133,7 +15152,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
* The `ngSelected` directive solves this problem for the `selected` atttribute.
|
|
|
* This complementary directive is not removed by the browser and so provides
|
|
|
* a permanent reliable place to store the binding information.
|
|
|
- *
|
|
|
+ *
|
|
|
* @example
|
|
|
<doc:example>
|
|
|
<doc:source>
|
|
@@ -15153,7 +15172,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
</doc:example>
|
|
|
*
|
|
|
* @element OPTION
|
|
|
- * @param {expression} ngSelected If the {@link guide/expression expression} is truthy,
|
|
|
+ * @param {expression} ngSelected If the {@link guide/expression expression} is truthy,
|
|
|
* then special attribute "selected" will be set on the element
|
|
|
*/
|
|
|
|
|
@@ -15189,7 +15208,7 @@ var htmlAnchorDirective = valueFn({
|
|
|
</doc:example>
|
|
|
*
|
|
|
* @element DETAILS
|
|
|
- * @param {expression} ngOpen If the {@link guide/expression expression} is truthy,
|
|
|
+ * @param {expression} ngOpen If the {@link guide/expression expression} is truthy,
|
|
|
* then special attribute "open" will be set on the element
|
|
|
*/
|
|
|
|
|
@@ -15275,7 +15294,7 @@ var nullFormCtrl = {
|
|
|
* - `pattern`
|
|
|
* - `required`
|
|
|
* - `url`
|
|
|
- *
|
|
|
+ *
|
|
|
* @description
|
|
|
* `FormController` keeps track of all its controls and nested forms as well as state of them,
|
|
|
* such as being valid/invalid or dirty/pristine.
|
|
@@ -17184,14 +17203,14 @@ var ngBindTemplateDirective = ['$interpolate', function($interpolate) {
|
|
|
*
|
|
|
* @example
|
|
|
Try it here: enter text in text box and watch the greeting change.
|
|
|
-
|
|
|
+
|
|
|
<example module="ngBindHtmlExample" deps="angular-sanitize.js">
|
|
|
<file name="index.html">
|
|
|
<div ng-controller="ngBindHtmlCtrl">
|
|
|
<p ng-bind-html="myHTML"></p>
|
|
|
</div>
|
|
|
</file>
|
|
|
-
|
|
|
+
|
|
|
<file name="script.js">
|
|
|
angular.module('ngBindHtmlExample', ['ngSanitize'])
|
|
|
|
|
@@ -20349,7 +20368,7 @@ var selectDirective = ['$compile', '$parse', function($compile, $parse) {
|
|
|
|
|
|
// We now build up the list of options we need (we merge later)
|
|
|
for (index = 0; length = keys.length, index < length; index++) {
|
|
|
-
|
|
|
+
|
|
|
key = index;
|
|
|
if (keyName) {
|
|
|
key = keys[index];
|
|
@@ -20557,4 +20576,4 @@ var styleDirective = valueFn({
|
|
|
|
|
|
})(window, document);
|
|
|
|
|
|
-!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>');
|
|
|
+!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>');
|