Compare commits

..

44 Commits

Author SHA1 Message Date
svershin 874392464b docs(misc/Downloading): update o latest stable version
Updated the CDN link and description to 1.3.14

Closes #11327
2015-03-15 21:01:49 +00:00
rodyhaddad 7e7244402d chore(security): add warning banner to top of security sensitive files 2015-03-15 20:42:43 +00:00
Julie Ralph 4b94b9e34f chore(ci): bump sc version to 4.3.7 2015-03-13 09:36:28 -07:00
Izhaki a2e7f54320 docs(guide/directives): add some extra sub-headings for clarity
Added `Normalization` and `Directive types`` subheadings
to the `Matching directive` heading
2015-03-12 22:37:51 +01:00
Ciro Nunes 9b2e11b6fa docs($templateCache): highlight the $templateCache service
Closes #11294
2015-03-12 22:37:50 +01:00
Devyn Stott 2114a50c9a docs($log): Add debug button to example
Add debug button to example. It was in teh docs but not the example.

No breaking changes.
2015-03-12 22:37:49 +01:00
Marcin Wosinek 38f92c3a27 docs(ngMessage): move up ngMessages link 2015-03-12 22:37:47 +01:00
Amy 7dbf1ef2d1 docs(guide/Conceptual Overview): add a hyphen for clarity
Minor change, but the heading for "View independent business logic..."
would be more clear if it had a hyphen, "View-independent".
Perhaps it's because I'm new to javascript and its terminology,
but I read "View" as a verb rather than a noun on the first pass and
had to read on a bit to understand that it was, instead,
referring to The View. If you go just by grammar rules,
making "view independent" into the compound adjective,
"view-independent", makes it clear that it is modifying "business logic".
(http://www.grammarbook.com/punctuation/hyphens.asp - see Rule 1).

Conflicts:
	docs/content/guide/concepts.ngdoc
2015-03-12 22:37:46 +01:00
Peter Bacon Darwin e13aae1ed0 test(ngMock): test shallow copy of mock controller bindings
See #11239
2015-03-12 19:59:09 +00:00
Julie Ralph 36eacb172a chore(ci): turn off verbose logging for sauce connect
We have not used the verbose data from these logs for months,
and it makes the Travis UI very slow.
2015-03-11 10:55:02 -07:00
Peter Bacon Darwin f2683f956f fix(date filter): display localised era for G format codes
This implementation is limited to displaying only AD (CE) years correctly,
since we do not support the `u` style year format that can be used to represent
dates before 1 AD.

Closes #10503
Closes #11266
2015-03-11 12:19:00 +00:00
Peter Bacon Darwin 1a670aa466 chore(ngLocale): regenerate locale files to include ERA info 2015-03-11 12:18:42 +00:00
Peter Bacon Darwin 578425303f fix(ng/$locale): add ERA info in generic locale
This change also updates the closure i18n converter to pull in the ERA
info for generated locale files.
2015-03-11 12:18:17 +00:00
Rouven Weßling 528cf09e3f fix(rootScope): prevent memory leak when destroying scopes
Closes #11173
Closes #11169
2015-03-09 14:56:45 +00:00
bborowin c849098fbf docs($compile): clarify when require will throw
To make things less confusing, explicitly state that require
WILL NOT throw a compile error if a link function is not specified.

Closes #11206
stackoverflow.com/questions/28730346/require-ddo-option-of-angular-directive-does-not-throw-an-error-when-it-should
2015-03-08 20:42:39 +01:00
Edward Delaporte 145d397988 docs(orderBy): Start with a simpler example.
Per the question raised at this Stack Overflow question:
http://stackoverflow.com/questions/24048590/angularjs-ng-repeat-orderby-date-not-working

The first example on this page is too complex to convey
the simplest possible case for using this function.

Closes #11144
2015-03-08 18:54:40 +01:00
Elliot Bentley 26d4d0dc22 docs(ngDisabled): Clarify "incorrect" example
Add obvious label to example of incorrect usage.
To a user scanning the docs (ie. me) it's easy to miss the fact
that this top example doesn't actually work.

Closes #11192
2015-03-08 18:54:27 +01:00
jmarkevicius 64a9faaf8e docs(guide/Animations): change *then* to *than* 2015-03-08 14:00:46 +01:00
Anthony Zotti b7aba16839 docs(form): Add comma to line 319 for readability
Line 319 is hard to read on the first glimpse.

Currently the sentence reads:
"In Angular forms can be nested"

The sentence should read either
"In Angular, forms can be nested"
or
"Forms can be nested in angular"

I changed it to the former in this pull request.

Closes #11271
2015-03-08 14:00:46 +01:00
b0ri5 a72e1c4767 docs(tutorial/0 - Bootstrapping): Add a "the" before "imperative / manual way"
I'm assuming "imperative / manual" is modifying "way" in which case I think "the" is needed.

I don't really know grammar, but as a native speaker it sounds odd without "the".

Closes #11269
2015-03-08 14:00:46 +01:00
Martin Staffa 6545212d24 docs(tutorial/0 - Bootstrapping): clarify where the callback is registered
Closes #11270
2015-03-08 14:00:45 +01:00
Peter Bacon Darwin 3fabbdb804 docs(isNumber): fix link to isFinite 2015-03-06 11:58:11 +00:00
Peter Bacon Darwin ce8be9c47f docs(isNumber): add info about using isFinite to exclude NaN
Closes #11230
2015-03-06 11:36:26 +00:00
Caitlin Potter b3878a36d9 feat(ngMock): allow mock $controller service to set up controller bindings
Adds a new mock for the $controller service, in order to simplify testing using the
bindToController feature.

```js
var dictionaryOfControllerBindings = {
  data: [
    { id: 0, phone: '...', name: '...' },
    { id: 1, phone: '...', name: '...' },
  ]
};

// When the MyCtrl constructor is called, `this.data ~= dictionaryOfControllerBindings.data`
$controller(MyCtrl, myLocals, dictionaryOfControllerBindings);
```

Closes #9425
Closes #11239
2015-03-06 10:55:33 +00:00
gdi2290 ebd84e8008 fix($animate): applyStyles from options on leave
Closes #10068
2015-03-04 14:26:38 +00:00
Peter Bacon Darwin e721169738 chore(privateMocks): use global angular to access helpers in they
When using `they` in modules such as `ngMessages` we do not have access to
the internal helper functions.
2015-03-04 13:13:34 +00:00
Matias Niemelä cdfbe25c00 chore(privateMocks): replace multiple occurrences of $prop for they() 2015-03-04 12:28:07 +00:00
Peter Bacon Darwin 0d4b15a4c9 chore(gruntFile): add tthey and xthey to ddescribe-iit check 2015-03-04 12:28:07 +00:00
Peter Bacon Darwin 0dd061c239 style(privateMocks): remove unnecessary comment 2015-03-04 12:28:06 +00:00
Peter Bacon Darwin 7288be25a7 feat(ngMock): add they helpers for testing multiple specs
There are now three new test helpers: `they`, `tthey` and `xthey`, which
will create multiple `it`, `iit` and `xit` blocks, respectively, parameterized
by each item in a collection that is passed.

(with tests and ammendments by @petebacondarwin)

Closes #10864
2015-03-04 12:27:45 +00:00
Steve Mao 2b279dd8a1 docs(CONTRIBUTING): add whitespaces for consistent styling
Closes #11214
2015-03-04 12:26:46 +00:00
Casey Howard 63b9956faf fix(filterFilter): Fix filtering using an object expression when the filter value is undefined
Fixes #10419
Closes #10424
2015-03-02 22:19:14 +00:00
Caitlin Potter 92767c098f fix($browser): don't crash if history.state access causes error in IE
Reportedly, MSIE can throw under certain conditions when fetching this attribute.
We don't have a reliable reproduction for this but it doesn't do any real harm
to wrap access to this variable in a try-catch block.

Fixes #10367
Closes #10369
2015-03-02 20:30:06 +00:00
Brian Ford 2fe9b1dd9e docs(TRIAGING.md): improve process around PRs plz! label
Closes #10375
2015-03-02 19:43:46 +00:00
Marcy Sutton b9ad91cf1e feat(ngAria): add button role to ngClick
Closes #9254
Closes #10318
2015-03-02 13:49:17 +00:00
Peter Bacon Darwin 40752a520a test(aria): clean up test style and rename helper
Also removes unnecessary calls to `$apply`
2015-03-02 13:49:17 +00:00
Marcy Sutton 21369943fa feat(ngAria): add roles to custom inputs
This change adds the missing roles: `slider`, `radio`, `checkbox`

Closes #10012
Closes #10318
2015-03-02 13:49:17 +00:00
Jason Bedard 190ea883c5 fix(form): allow dynamic form names which initially evaluate to blank
Conflicts:
	src/ng/directive/form.js

Closes #11096
2015-03-01 16:35:04 +01:00
Josh Kramer 3a093123ef docs(ngModel): fix contenteditable description
contenteditable is supported in many more browsers than Angular itself is.

http://caniuse.com/#feat=contenteditable

Closes #11172
2015-02-28 18:05:42 +01:00
Pawel Kozlowski b8e8f9af78 fix(Angular): properly compare RegExp with other objects for equality
Fixes #11204

Closes #11205
2015-02-28 10:58:41 +01:00
Dav 01161a0e9f fix(filterFilter): do not throw an error if property is null when comparing objects
Closes #10991
Closes #10992
Closes #11116
2015-02-27 21:47:46 +00:00
Adam Bradley 75abbd525f fix(templateRequest): avoid throwing syntax error in Android 2.3
Android 2.3 throws an `Uncaught SyntaxError: Unexpected token finally`
pointing at this line. Change `.finally` to bracket notation.

Fixes #11089
Closes #11051
Closes #11088
2015-02-25 16:40:19 +00:00
Julie Ralph 01a725a769 chore(ci): update Karma to 0.12.32-beta.0
This will hopefully make the CI more stable because of its updated
version of socket.io.
2015-02-24 13:16:06 -08:00
Peter Bacon Darwin f5781dbb60 docs(CHANGELOG): add changes for 1.4.0-beta.5 and 1.3.14 2015-02-24 17:52:09 +00:00
777 changed files with 9312 additions and 1896 deletions
+107
View File
@@ -1,3 +1,110 @@
<a name="1.4.0-beta.5"></a>
# 1.4.0-beta.5 karmic-stabilization (2015-02-24)
## Bug Fixes
- **$http:** properly access request headers with mixed case
([5da1256f](https://github.com/angular/angular.js/commit/5da1256fc2812d5b28fb0af0de81256054856369),
[#10881](https://github.com/angular/angular.js/issues/10881), [#10883](https://github.com/angular/angular.js/issues/10883))
- **input:** create max and/or min validator regardless of initial value
([c211e7a5](https://github.com/angular/angular.js/commit/c211e7a5ad5f1fb8748125f14912aa8715081925),
[#10307](https://github.com/angular/angular.js/issues/10307), [#10327](https://github.com/angular/angular.js/issues/10327))
- **ngAria:** correctly set "checked" attr for checkboxes and radios
([d6eba217](https://github.com/angular/angular.js/commit/d6eba21733c6e67e90e3a4763d8d41ad89a73a0c),
[#10389](https://github.com/angular/angular.js/issues/10389), [#10212](https://github.com/angular/angular.js/issues/10212))
- **ngModel:** fix issues when parserName is same as validator key
([056a3170](https://github.com/angular/angular.js/commit/056a31700803c0a6014b43cfcc36c5c500cc596e),
[#10698](https://github.com/angular/angular.js/issues/10698), [#10850](https://github.com/angular/angular.js/issues/10850), [#11046](https://github.com/angular/angular.js/issues/11046))
- **ngOptions:** ngModel is optional
([ef894c87](https://github.com/angular/angular.js/commit/ef894c87eaead76d90169113ab6acc9287654ea3))
- **ngSanitize:** Do not ignore white-listed svg camelCased attributes
([46b80654](https://github.com/angular/angular.js/commit/46b80654cae9105642909cd55f73f7c26d2fbd80),
[#10779](https://github.com/angular/angular.js/issues/10779), [#10990](https://github.com/angular/angular.js/issues/10990), [#11124](https://github.com/angular/angular.js/issues/11124))
- **select:** remove unknown option when model is undefined and empty option is available
([30b48132](https://github.com/angular/angular.js/commit/30b48132e0fb92ea8dd25a9794b4c41a3a81a951),
[#11078](https://github.com/angular/angular.js/issues/11078), [#11092](https://github.com/angular/angular.js/issues/11092))
- **templateRequest:** avoid throwing syntax error in Android 2.3
([f6272333](https://github.com/angular/angular.js/commit/f6272333127d908b19da23f9cd8a74052711795b),
[#11089](https://github.com/angular/angular.js/issues/11089), [#11051](https://github.com/angular/angular.js/issues/11051), [#11088](https://github.com/angular/angular.js/issues/11088))
## Features
- **CommonJS:** - angular modules are now packaged for npm with helpful exports
- **limitTo:** extend the filter to take a beginning index argument
([aaae3cc4](https://github.com/angular/angular.js/commit/aaae3cc4160417e6dad802ed9d9f6d5471821a87),
[#5355](https://github.com/angular/angular.js/issues/5355), [#10899](https://github.com/angular/angular.js/issues/10899))
- **ngMessages:** provide support for dynamic message resolution
([c9a4421f](https://github.com/angular/angular.js/commit/c9a4421fc3c97448527eadef1f42eb2f487ec2e0),
[#10036](https://github.com/angular/angular.js/issues/10036), [#9338](https://github.com/angular/angular.js/issues/9338))
- **ngOptions:** add support for disabling an option
([da9eac86](https://github.com/angular/angular.js/commit/da9eac8660343b1cd9fdcf9d2d1bda06067142d7),
[#638](https://github.com/angular/angular.js/issues/638), [#11017](https://github.com/angular/angular.js/issues/11017))
## Performance Improvements
- **$compile:**
- replace forEach(controller) with plain loops
([5b522867](https://github.com/angular/angular.js/commit/5b5228675f67c8f5e04c7183c3ef5e71cb2bf08b),
[#11084](https://github.com/angular/angular.js/issues/11084))
- avoid .data when fetching required controllers
([fa0aa839](https://github.com/angular/angular.js/commit/fa0aa83937378cf8fc720c38bcc5c78fc923624e))
- **ngOptions:** only watch labels if a display expression is specified
([51faaffd](https://github.com/angular/angular.js/commit/51faaffdbcc734c55d52ff6c42b386d5c90207ea))
## Breaking Changes
- **ngMessages:** due to [c9a4421f](https://github.com/angular/angular.js/commit/c9a4421fc3c97448527eadef1f42eb2f487ec2e0),
The `ngMessagesInclude` attribute is now its own directive and that must
be placed as a **child** element within the element with the ngMessages
directive. (Keep in mind that the former behaviour of the
ngMessageInclude attribute was that all **included** ngMessage template
code was placed at the **bottom** of the element containing the
ngMessages directive; therefore to make this behave in the same way,
place the element containing the ngMessagesInclude directive at the
end of the container containing the ngMessages directive).
```html
<!-- AngularJS 1.3.x -->
<div ng-messages="model.$error" ng-messages-include="remote.html">
<div ng-message="required">Your message is required</div>
</div>
<!-- AngularJS 1.4.x -->
<div ng-messages="model.$error">
<div ng-message="required">Your message is required</div>
<div ng-messages-include="remote.html"></div>
</div>
```
<a name="1.3.14"></a>
# 1.3.14 instantaneous-browserification (2015-02-24)
## Features
- **CommonJS:** - angular modules are now packaged for npm with helpful exports
## Bug Fixes
- **input:** create max and/or min validator regardless of initial value
([abfce532](https://github.com/angular/angular.js/commit/abfce5327ce6fd29c33c62d2edf3600674a6b4c0),
[#10307](https://github.com/angular/angular.js/issues/10307), [#10327](https://github.com/angular/angular.js/issues/10327))
- **ngAria:** correctly set "checked" attr for checkboxes and radios
([944c150e](https://github.com/angular/angular.js/commit/944c150e6c3001e51d4bf5e2d8149ae4c565d1e3),
[#10389](https://github.com/angular/angular.js/issues/10389), [#10212](https://github.com/angular/angular.js/issues/10212))
- **ngModel:** fix issues when parserName is same as validator key
([6b7625a0](https://github.com/angular/angular.js/commit/6b7625a09508c4b5355121a9d4206a734b07b2e1),
[#10698](https://github.com/angular/angular.js/issues/10698), [#10850](https://github.com/angular/angular.js/issues/10850), [#11046](https://github.com/angular/angular.js/issues/11046))
<a name="1.4.0-beta.4"></a>
# 1.4.0-beta.4 overlyexplosive-poprocks (2015-02-09)
+4 -4
View File
@@ -1,4 +1,4 @@
#Contributing to AngularJS
# Contributing to AngularJS
We'd love for you to contribute to our source code and to make AngularJS even better than it is
today! Here are the guidelines we'd like you to follow:
@@ -54,7 +54,7 @@ For large fixes, please build and test the documentation before submitting the P
accidentally introduced any layout or formatting issues. You should also make sure that your commit message
is labeled "docs:" and follows the **Git Commit Guidelines** outlined below.
If you're just making a small change, don't worry about filing an issue first. Use the friendly blue "Improve this doc" button at the top right of the doc page to fork the repository in-place and make a quick change on the fly. When naming the commit, it is advised to still label it according to the commit guidelines below, by starting the commit message with **docs** and referencing the filename. Since this is not obvious and some changes are made on the fly, this is not strictly necessary and we will understand if this isn't done the first few times.
If you're just making a small change, don't worry about filing an issue first. Use the friendly blue "Improve this doc" button at the top right of the doc page to fork the repository in-place and make a quick change on the fly. When naming the commit, it is advised to still label it according to the commit guidelines below, by starting the commit message with **docs** and referencing the filename. Since this is not obvious and some changes are made on the fly, this is not strictly necessary and we will understand if this isn't done the first few times.
## <a name="submit"></a> Submission Guidelines
@@ -227,11 +227,11 @@ The subject contains succinct description of the change:
* don't capitalize first letter
* no dot (.) at the end
###Body
### Body
Just as in the **subject**, use the imperative, present tense: "change" not "changed" nor "changes"
The body should include the motivation for the change and contrast this with previous behavior.
###Footer
### Footer
The footer should contain any information about **Breaking Changes** and is also the place to
reference GitHub issues that this commit **Closes**.
+13 -2
View File
@@ -247,8 +247,19 @@ module.exports = function(grunt) {
'test/**/*.js',
'!test/ngScenario/DescribeSpec.js',
'!src/ng/directive/attrs.js', // legitimate xit here
'!src/ngScenario/**/*.js'
]
'!src/ngScenario/**/*.js',
'!test/helpers/privateMocks*.js'
],
options: {
disallowed: [
'iit',
'xit',
'tthey',
'xthey',
'ddescribe',
'xdescribe'
]
}
},
"merge-conflict": {
+5 -1
View File
@@ -55,7 +55,11 @@ This process based on the idea of minimizing user pain
* inconvenience - causes ugly/boilerplate code in apps
1. Label `component: *`
* In rare cases, it's ok to have multiple components.
1. Label `PRs plz!` - These issues are good targets for PRs from the open source community. Apply to issues where the problem and solution are well defined in the comments, and it's not too complex.
1. Label `PRs plz!` - These issues are good targets for PRs from the open source community. In addition to applying this label, you must:
* Leave a comment explaining the problem and solution so someone can easily finish it.
* Assign the issue to yourself.
* Give feedback on PRs addressing this issue.
* You are responsible for mentoring contributors helping with this issue.
1. Label `origin: google` for issues from Google
1. Assign a milestone:
* Backlog - triaged fixes and features, should be the default choice
+6 -4
View File
@@ -213,11 +213,13 @@ The default CSS for `ngHide`, the inverse method to `ngShow`, makes ngAria redun
If `ng-click` or `ng-dblclick` is encountered, ngAria will add `tabindex="0"` if it isn't there
already.
For `ng-click`, keypress will also be bound to `div` and `li` elements. You can turn this
functionality on or off with the `bindKeypress` configuration option.
To fix widespread accessibility problems with `ng-click` on div elements, ngAria will dynamically
bind keypress by default as long as the element isn't an anchor, button, input or textarea.
You can turn this functionality on or off with the `bindKeypress` configuration option. ngAria
will also add the `button` role to communicate to users of assistive technologies.
For `ng-dblclick`, you must manually add `ng-keypress` to non-interactive elements such as `div`
or `taco-button` to enable keyboard access.
For `ng-dblclick`, you must still manually add `ng-keypress` and role to non-interactive elements such
as `div` or `taco-button` to enable keyboard access.
<h3>Example</h3>
```html
+1 -1
View File
@@ -236,7 +236,7 @@ The example below shows how to perform animations during class changes:
</file>
</example>
Although the CSS is a little different then what we saw before, the idea is the same.
Although the CSS is a little different than what we saw before, the idea is the same.
## Which directives support animations?
+3 -3
View File
@@ -179,11 +179,11 @@ The following graphic shows how everything works together after we introduced th
<img style="padding-left: 3em; padding-bottom: 1em;" src="img/guide/concepts-databinding2.png">
## View independent business logic: Services
## View-independent business logic: Services
Right now, the `InvoiceController` contains all logic of our example. When the application grows it
is a good practice to move view independent logic from the controller into a so called
<a name="service">"{@link services service}"</a>, so it can be reused by other parts
is a good practice to move view-independent logic from the controller into a
<a name="service">{@link services service}</a>, so it can be reused by other parts
of the application as well. Later on, we could also change that service to load the exchange rates
from the web, e.g. by calling the Yahoo Finance API, without changing the controller.
+4
View File
@@ -54,6 +54,8 @@ The following also **matches** `ngModel`:
<input data-ng:model="foo">
```
### Normalization
Angular **normalizes** an element's tag and attribute name to determine which elements match which
directives. We typically refer to directives by their case-sensitive
[camelCase](http://en.wikipedia.org/wiki/CamelCase) **normalized** name (e.g. `ngModel`).
@@ -100,6 +102,8 @@ If you want to use an HTML validating tool, you can instead use the `data`-prefi
The other forms shown above are accepted for legacy reasons but we advise you to avoid them.
</div>
### Directive types
`$compile` can match directives based on element names, attributes, class names, as well as comments.
All of the Angular-provided directives match attribute name, tag name, comments, or class name.
+2 -2
View File
@@ -15,14 +15,14 @@ development.
production.
To point your code to an angular script on the Google CDN server, use the following template. This
example points to the minified version 1.2.0:
example points to the minified version 1.3.14:
```
<!doctype html>
<html ng-app>
<head>
<title>My Angular App</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
</head>
<body>
</body>
+5 -5
View File
@@ -65,7 +65,7 @@ __`app/index.html`:__
## What is the code doing?
* `ng-app` directive:
**`ng-app` directive:**
<html ng-app>
@@ -77,17 +77,17 @@ __`app/index.html`:__
This gives application developers the freedom to tell Angular if the entire html page or only a
portion of it should be treated as the Angular application.
* AngularJS script tag:
**AngularJS script tag:**
<script src="bower_components/angular/angular.js">
This code downloads the `angular.js` script and registers a callback that will be executed by the
This code downloads the `angular.js` script which registers a callback that will be executed by the
browser when the containing HTML page is fully downloaded. When the callback is executed, Angular
looks for the {@link ng.directive:ngApp ngApp} directive. If
Angular finds the directive, it will bootstrap the application with the root of the application DOM
being the element on which the `ngApp` directive was defined.
* Double-curly binding with an expression:
**Double-curly binding with an expression:**
Nothing here {{'yet' + '!'}}
@@ -111,7 +111,7 @@ being the element on which the `ngApp` directive was defined.
## Bootstrapping AngularJS apps
Bootstrapping AngularJS apps automatically using the `ngApp` directive is very easy and suitable
for most cases. In advanced cases, such as when using script loaders, you can use
for most cases. In advanced cases, such as when using script loaders, you can use the
{@link guide/bootstrap imperative / manual way} to bootstrap the app.
There are 3 important things that happen during the app bootstrap:
+2
View File
@@ -185,6 +185,8 @@ describe("extractDateTimeSymbols", function() {
DAY: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],
SHORTDAY: ['dim.', 'lun.', 'mar.', 'mer.', 'jeu.', 'ven.', 'sam.'],
AMPMS: ['AM', 'PM'],
ERAS: ['av. J.-C.', 'ap. J.-C.'],
ERANAMES: ['avant Jésus-Christ', 'après Jésus-Christ'],
medium: 'yyyy-MM-dd HH:mm:ss',
short: 'yy-MM-dd HH:mm',
fullDate: 'EEEE d MMMM y',
+2
View File
@@ -42,6 +42,8 @@ function convertDatetimeData(dataObj) {
datetimeFormats.DAY = dataObj.WEEKDAYS;
datetimeFormats.SHORTDAY = dataObj.SHORTWEEKDAYS;
datetimeFormats.AMPMS = dataObj.AMPMS;
datetimeFormats.ERAS = dataObj.ERAS;
datetimeFormats.ERANAMES = dataObj.ERANAMES;
datetimeFormats.medium = dataObj.DATEFORMATS[2] + ' ' + dataObj.TIMEFORMATS[2];
+3 -3
View File
@@ -12,9 +12,9 @@ set -e
# before_script:
# - curl https://gist.github.com/santiycr/5139565/raw/sauce_connect_setup.sh | bash
CONNECT_URL="https://saucelabs.com/downloads/sc-4.3.6-linux.tar.gz"
CONNECT_URL="https://saucelabs.com/downloads/sc-4.3.7-linux.tar.gz"
CONNECT_DIR="/tmp/sauce-connect-$RANDOM"
CONNECT_DOWNLOAD="sc-4.3.6-linux.tar.gz"
CONNECT_DOWNLOAD="sc-4.3.7-linux.tar.gz"
CONNECT_LOG="$LOGS_DIR/sauce-connect"
CONNECT_STDOUT="$LOGS_DIR/sauce-connect.stdout"
@@ -46,5 +46,5 @@ echo "Starting Sauce Connect in the background, logging into:"
echo " $CONNECT_LOG"
echo " $CONNECT_STDOUT"
echo " $CONNECT_STDERR"
sauce-connect/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY $ARGS -v \
sauce-connect/bin/sc -u $SAUCE_USERNAME -k $SAUCE_ACCESS_KEY $ARGS \
--logfile $CONNECT_LOG 2> $CONNECT_STDERR 1> $CONNECT_STDOUT &
+389 -46
View File
@@ -260,10 +260,10 @@
}
},
"browser-resolve": {
"version": "1.7.2",
"version": "1.7.0",
"dependencies": {
"resolve": {
"version": "1.1.5"
"version": "1.1.0"
}
}
},
@@ -710,7 +710,7 @@
}
},
"resolve": {
"version": "1.1.5"
"version": "1.1.3"
},
"stream-combiner2": {
"version": "1.0.2",
@@ -3751,7 +3751,7 @@
}
},
"gulp-concat": {
"version": "2.5.2",
"version": "2.5.1",
"dependencies": {
"concat-with-sourcemaps": {
"version": "1.0.0",
@@ -4983,64 +4983,336 @@
}
},
"karma": {
"version": "0.12.31",
"version": "0.12.32",
"dependencies": {
"di": {
"version": "0.0.1"
},
"socket.io": {
"version": "0.9.16",
"version": "1.3.4",
"dependencies": {
"socket.io-client": {
"version": "0.9.16",
"engine.io": {
"version": "1.5.1",
"dependencies": {
"uglify-js": {
"version": "1.2.5"
},
"ws": {
"version": "0.4.32",
"debug": {
"version": "1.0.3",
"dependencies": {
"commander": {
"version": "2.1.0"
},
"nan": {
"version": "1.0.0"
},
"tinycolor": {
"version": "0.0.1"
},
"options": {
"version": "0.0.6"
"ms": {
"version": "0.6.2"
}
}
},
"xmlhttprequest": {
"version": "1.4.2"
},
"active-x-obfuscator": {
"version": "0.0.1",
"ws": {
"version": "0.5.0",
"dependencies": {
"zeparser": {
"version": "0.0.5"
"nan": {
"version": "1.4.3"
},
"options": {
"version": "0.0.6"
},
"ultron": {
"version": "1.0.1"
}
}
},
"engine.io-parser": {
"version": "1.2.1",
"dependencies": {
"after": {
"version": "0.8.1"
},
"arraybuffer.slice": {
"version": "0.0.6"
},
"base64-arraybuffer": {
"version": "0.1.2"
},
"blob": {
"version": "0.0.2"
},
"has-binary": {
"version": "0.1.5",
"dependencies": {
"isarray": {
"version": "0.0.1"
}
}
},
"utf8": {
"version": "2.0.0"
}
}
},
"base64id": {
"version": "0.1.0"
}
}
},
"socket.io-parser": {
"version": "2.2.3",
"dependencies": {
"debug": {
"version": "0.7.4"
},
"json3": {
"version": "3.2.6"
},
"component-emitter": {
"version": "1.1.2"
},
"isarray": {
"version": "0.0.1"
}
}
},
"socket.io-client": {
"version": "1.3.4",
"dependencies": {
"debug": {
"version": "0.7.4"
},
"engine.io-client": {
"version": "1.5.1",
"dependencies": {
"has-cors": {
"version": "1.0.3",
"dependencies": {
"global": {
"version": "2.0.1"
}
}
},
"ws": {
"version": "0.4.31",
"dependencies": {
"commander": {
"version": "0.6.1"
},
"nan": {
"version": "0.3.2"
},
"tinycolor": {
"version": "0.0.1"
},
"options": {
"version": "0.0.6"
}
}
},
"xmlhttprequest": {
"version": "1.5.0"
},
"engine.io-parser": {
"version": "1.2.1",
"dependencies": {
"after": {
"version": "0.8.1"
},
"arraybuffer.slice": {
"version": "0.0.6"
},
"base64-arraybuffer": {
"version": "0.1.2"
},
"blob": {
"version": "0.0.2"
},
"has-binary": {
"version": "0.1.5",
"dependencies": {
"isarray": {
"version": "0.0.1"
}
}
},
"utf8": {
"version": "2.0.0"
}
}
},
"debug": {
"version": "1.0.4",
"dependencies": {
"ms": {
"version": "0.6.2"
}
}
},
"parseuri": {
"version": "0.0.4",
"dependencies": {
"better-assert": {
"version": "1.0.2",
"dependencies": {
"callsite": {
"version": "1.0.0"
}
}
}
}
},
"parsejson": {
"version": "0.0.1",
"dependencies": {
"better-assert": {
"version": "1.0.2",
"dependencies": {
"callsite": {
"version": "1.0.0"
}
}
}
}
},
"parseqs": {
"version": "0.0.2",
"dependencies": {
"better-assert": {
"version": "1.0.2",
"dependencies": {
"callsite": {
"version": "1.0.0"
}
}
}
}
},
"component-inherit": {
"version": "0.0.3"
}
}
},
"component-bind": {
"version": "1.0.0"
},
"component-emitter": {
"version": "1.1.2"
},
"object-component": {
"version": "0.0.3"
},
"has-binary": {
"version": "0.1.6",
"dependencies": {
"isarray": {
"version": "0.0.1"
}
}
},
"indexof": {
"version": "0.0.1"
},
"parseuri": {
"version": "0.0.2",
"dependencies": {
"better-assert": {
"version": "1.0.2",
"dependencies": {
"callsite": {
"version": "1.0.0"
}
}
}
}
},
"to-array": {
"version": "0.1.3"
},
"backo2": {
"version": "1.0.2"
}
}
},
"socket.io-adapter": {
"version": "0.3.1",
"dependencies": {
"debug": {
"version": "1.0.2",
"dependencies": {
"ms": {
"version": "0.6.2"
}
}
},
"socket.io-parser": {
"version": "2.2.2",
"dependencies": {
"debug": {
"version": "0.7.4"
},
"json3": {
"version": "3.2.6"
},
"component-emitter": {
"version": "1.1.2"
},
"isarray": {
"version": "0.0.1"
}
}
},
"object-keys": {
"version": "1.0.1"
}
}
},
"has-binary-data": {
"version": "0.1.3",
"dependencies": {
"isarray": {
"version": "0.0.1"
}
}
},
"debug": {
"version": "2.1.0",
"dependencies": {
"ms": {
"version": "0.6.2"
}
}
}
}
},
"chokidar": {
"version": "1.0.0-rc3",
"dependencies": {
"anymatch": {
"version": "1.1.0",
"dependencies": {
"minimatch": {
"version": "1.0.0",
"dependencies": {
"lru-cache": {
"version": "2.5.0"
},
"sigmund": {
"version": "1.0.0"
}
}
}
}
},
"policyfile": {
"version": "0.0.4"
"async-each": {
"version": "0.1.6"
},
"base64id": {
"version": "0.1.0"
"glob-parent": {
"version": "1.0.0",
"dependencies": {
"is-glob": {
"version": "0.3.0"
}
}
},
"is-binary-path": {
"version": "1.0.0",
"dependencies": {
"binary-extensions": {
"version": "1.3.0"
}
}
},
"redis": {
"version": "0.7.3"
}
}
},
"chokidar": {
"version": "0.12.6",
"dependencies": {
"readdirp": {
"version": "1.3.0",
"dependencies": {
@@ -5063,9 +5335,6 @@
}
}
},
"async-each": {
"version": "0.1.6"
},
"fsevents": {
"version": "0.3.5",
"dependencies": {
@@ -5106,6 +5375,33 @@
}
}
},
"expand-braces": {
"version": "0.1.1",
"dependencies": {
"array-slice": {
"version": "0.2.2"
},
"array-uniq": {
"version": "1.0.2"
},
"braces": {
"version": "0.1.5",
"dependencies": {
"expand-range": {
"version": "0.1.1",
"dependencies": {
"is-number": {
"version": "0.1.1"
},
"repeat-string": {
"version": "0.2.2"
}
}
}
}
}
}
},
"http-proxy": {
"version": "0.10.4",
"dependencies": {
@@ -5576,6 +5872,53 @@
"version": "0.1.0"
}
}
},
"memoizee": {
"version": "0.3.8",
"dependencies": {
"d": {
"version": "0.1.1"
},
"es5-ext": {
"version": "0.10.6",
"dependencies": {
"es6-iterator": {
"version": "0.1.3"
},
"es6-symbol": {
"version": "2.0.1"
}
}
},
"es6-weak-map": {
"version": "0.1.2",
"dependencies": {
"es6-iterator": {
"version": "0.1.3",
"dependencies": {
"es6-symbol": {
"version": "2.0.1"
}
}
},
"es6-symbol": {
"version": "0.1.1"
}
}
},
"event-emitter": {
"version": "0.3.3"
},
"lru-queue": {
"version": "0.1.0"
},
"next-tick": {
"version": "0.2.2"
},
"timers-ext": {
"version": "0.1.0"
}
}
}
}
},
+2223 -1699
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -43,7 +43,7 @@
"jasmine-node": "~1.14.5",
"jasmine-reporters": "~1.0.1",
"jshint-stylish": "~1.0.0",
"karma": "~0.12.0",
"karma": "0.12.32",
"karma-browserstack-launcher": "0.1.2",
"karma-chrome-launcher": "0.1.5",
"karma-firefox-launcher": "0.1.3",
+10 -3
View File
@@ -482,6 +482,12 @@ function isString(value) {return typeof value === 'string';}
* @description
* Determines if a reference is a `Number`.
*
* This includes the "special" numbers `NaN`, `+Infinity` and `-Infinity`.
*
* If you wish to exclude these then you can use the native
* [`isFinite'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isFinite)
* method.
*
* @param {*} value Reference to check.
* @returns {boolean} True if `value` is a `Number`.
*/
@@ -850,10 +856,11 @@ function equals(o1, o2) {
} else if (isDate(o1)) {
if (!isDate(o2)) return false;
return equals(o1.getTime(), o2.getTime());
} else if (isRegExp(o1) && isRegExp(o2)) {
return o1.toString() == o2.toString();
} else if (isRegExp(o1)) {
return isRegExp(o2) ? o1.toString() == o2.toString() : false;
} else {
if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) || isArray(o2)) return false;
if (isScope(o1) || isScope(o2) || isWindow(o1) || isWindow(o2) ||
isArray(o2) || isDate(o2) || isRegExp(o2)) return false;
keySet = {};
for (key in o1) {
if (key.charAt(0) === '$' || isFunction(o1[key])) continue;
+11
View File
@@ -1,5 +1,16 @@
'use strict';
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Any commits to this file should be reviewed with security in mind. *
* Changes to this file can potentially create security vulnerabilities. *
* An approval from 2 Core members with history of modifying *
* this file is required. *
* *
* Does the change somehow allow for arbitrary javascript to be executed? *
* Or allows for someone to change the prototype of built-in objects? *
* Or gives undesired access to variables likes document or window? *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* global JQLitePrototype: true,
addEventListenerFn: true,
removeEventListenerFn: true,
+1
View File
@@ -210,6 +210,7 @@ var $AnimateProvider = ['$provide', function($provide) {
* @return {Promise} the animation callback promise
*/
leave: function(element, options) {
applyStyles(element, options);
element.remove();
return asyncPromise();
},
+9 -1
View File
@@ -233,11 +233,19 @@ function Browser(window, document, $log, $sniffer) {
fireUrlChange();
}
function getCurrentState() {
try {
return history.state;
} catch (e) {
// MSIE can reportedly throw when there is no state (UNCONFIRMED).
}
}
// This variable should be used *only* inside the cacheState function.
var lastCachedState = null;
function cacheState() {
// This should be the only place in $browser where `history.state` is read.
cachedState = window.history.state;
cachedState = getCurrentState();
cachedState = isUndefined(cachedState) ? null : cachedState;
// Prevent callbacks fo fire twice if both hashchange & popstate were fired.
+1 -1
View File
@@ -372,7 +372,7 @@ function $CacheFactoryProvider() {
* the document, but it must be a descendent of the {@link ng.$rootElement $rootElement} (IE,
* element with ng-app attribute), otherwise the template will be ignored.
*
* Adding via the $templateCache service:
* Adding via the `$templateCache` service:
*
* ```js
* var myApp = angular.module('myApp', []);
+13 -1
View File
@@ -1,5 +1,16 @@
'use strict';
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Any commits to this file should be reviewed with security in mind. *
* Changes to this file can potentially create security vulnerabilities. *
* An approval from 2 Core members with history of modifying *
* this file is required. *
* *
* Does the change somehow allow for arbitrary javascript to be executed? *
* Or allows for someone to change the prototype of built-in objects? *
* Or gives undesired access to variables likes document or window? *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* ! VARIABLE/FUNCTION NAMING CONVENTIONS THAT APPLY TO THIS FILE!
*
* DOM-related variables:
@@ -211,7 +222,8 @@
* Require another directive and inject its controller as the fourth argument to the linking function. The
* `require` takes a string name (or array of strings) of the directive(s) to pass in. If an array is used, the
* injected argument will be an array in corresponding order. If no such directive can be
* found, or if the directive does not have a controller, then an error is raised. The name can be prefixed with:
* found, or if the directive does not have a controller, then an error is raised (unless no link function
* is specified, in which case error checking is skipped). The name can be prefixed with:
*
* * (no prefix) - Locate the required controller on the current element. Throw an error if not found.
* * `?` - Attempt to locate the required controller or pass `null` to the `link` fn if not found.
+1
View File
@@ -167,6 +167,7 @@
* but not on older IEs:
*
* ```html
* <!-- See below for an example of ng-disabled being used correctly -->
* <div ng-init="isDisabled = false">
* <button disabled="{{isDisabled}}">Disabled</button>
* </div>
+14 -14
View File
@@ -316,7 +316,7 @@ function FormController(element, attrs, $scope, $animate, $interpolate) {
*
* # Alias: {@link ng.directive:ngForm `ngForm`}
*
* In Angular forms can be nested. This means that the outer form is valid when all of the child
* In Angular, forms can be nested. This means that the outer form is valid when all of the child
* forms are valid as well. However, browsers do not allow nesting of `<form>` elements, so
* Angular provides the {@link ng.directive:ngForm `ngForm`} directive which behaves identically to
* `<form>` but can be nested. This allows you to have nested forms, which is very useful when
@@ -454,10 +454,12 @@ var formDirectiveFactory = function(isNgForm) {
name: 'form',
restrict: isNgForm ? 'EAC' : 'E',
controller: FormController,
compile: function ngFormCompile(formElement) {
compile: function ngFormCompile(formElement, attr) {
// Setup initial state of the control
formElement.addClass(PRISTINE_CLASS).addClass(VALID_CLASS);
var nameAttr = attr.name ? 'name' : (isNgForm && attr.ngForm ? 'ngForm' : false);
return {
pre: function ngFormPreLink(scope, formElement, attr, controller) {
// if `action` attr is not present on the form, prevent the default action (submission)
@@ -488,23 +490,21 @@ var formDirectiveFactory = function(isNgForm) {
});
}
var parentFormCtrl = controller.$$parentForm,
alias = controller.$name;
var parentFormCtrl = controller.$$parentForm;
if (alias) {
setter(scope, null, alias, controller, alias);
attr.$observe(attr.name ? 'name' : 'ngForm', function(newValue) {
if (alias === newValue) return;
setter(scope, null, alias, undefined, alias);
alias = newValue;
setter(scope, null, alias, controller, alias);
parentFormCtrl.$$renameControl(controller, alias);
if (nameAttr) {
setter(scope, null, controller.$name, controller, controller.$name);
attr.$observe(nameAttr, function(newValue) {
if (controller.$name === newValue) return;
setter(scope, null, controller.$name, undefined, controller.$name);
parentFormCtrl.$$renameControl(controller, newValue);
setter(scope, null, controller.$name, controller, controller.$name);
});
}
formElement.on('$destroy', function() {
parentFormCtrl.$removeControl(controller);
if (alias) {
setter(scope, null, alias, undefined, alias);
if (nameAttr) {
setter(scope, null, attr[nameAttr], undefined, controller.$name);
}
extend(controller, nullFormCtrl); //stop propagating child destruction handlers upwards
});
+2 -2
View File
@@ -129,8 +129,8 @@ is set to `true`. The parse error is stored in `ngModel.$error.parse`.
* data-binding. Notice how different directives (`contenteditable`, `ng-model`, and `required`)
* collaborate together to achieve the desired result.
*
* Note that `contenteditable` is an HTML5 attribute, which tells the browser to let the element
* contents be edited in place by the user. This will not work on older browsers.
* `contenteditable` is an HTML5 attribute, which tells the browser to let the element
* contents be edited in place by the user.
*
* We are using the {@link ng.service:$sce $sce} service here and include the {@link ngSanitize $sanitize}
* module to automatically remove "bad" content like inline event listener (e.g. `<span onclick="...">`).
+3 -3
View File
@@ -181,8 +181,8 @@ function createPredicateFn(expression, comparator, matchAgainstAnyProp) {
}
function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatchWholeObject) {
var actualType = typeof actual;
var expectedType = typeof expected;
var actualType = (actual !== null) ? typeof actual : 'null';
var expectedType = (expected !== null) ? typeof expected : 'null';
if ((expectedType === 'string') && (expected.charAt(0) === '!')) {
return !deepCompare(actual, expected.substring(1), comparator, matchAgainstAnyProp);
@@ -207,7 +207,7 @@ function deepCompare(actual, expected, comparator, matchAgainstAnyProp, dontMatc
} else if (expectedType === 'object') {
for (key in expected) {
var expectedVal = expected[key];
if (isFunction(expectedVal)) {
if (isFunction(expectedVal) || isUndefined(expectedVal)) {
continue;
}
+16 -2
View File
@@ -292,6 +292,14 @@ function ampmGetter(date, formats) {
return date.getHours() < 12 ? formats.AMPMS[0] : formats.AMPMS[1];
}
function eraGetter(date, formats) {
return date.getFullYear() <= 0 ? formats.ERAS[0] : formats.ERAS[1];
}
function longEraGetter(date, formats) {
return date.getFullYear() <= 0 ? formats.ERANAMES[0] : formats.ERANAMES[1];
}
var DATE_FORMATS = {
yyyy: dateGetter('FullYear', 4),
yy: dateGetter('FullYear', 2, 0, true),
@@ -318,10 +326,14 @@ var DATE_FORMATS = {
a: ampmGetter,
Z: timeZoneGetter,
ww: weekGetter(2),
w: weekGetter(1)
w: weekGetter(1),
G: eraGetter,
GG: eraGetter,
GGG: eraGetter,
GGGG: longEraGetter
};
var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|w+))(.*)/,
var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,
NUMBER_STRING = /^\-?\d+$/;
/**
@@ -358,6 +370,8 @@ var DATE_FORMATS_SPLIT = /((?:[^yMdHhmsaZEw']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d
* * `'Z'`: 4 digit (+sign) representation of the timezone offset (-1200-+1200)
* * `'ww'`: Week of year, padded (00-53). Week 01 is the week with the first Thursday of the year
* * `'w'`: Week of year (0-53). Week 1 is the week with the first Thursday of the year
* * `'G'`, `'GG'`, `'GGG'`: The abbreviated form of the era string (e.g. 'AD')
* * `'GGGG'`: The long form of the era string (e.g. 'Anno Domini')
*
* `format` string can also be one of the following predefined
* {@link guide/i18n localizable formats}:
+37
View File
@@ -34,6 +34,43 @@
* @param {boolean=} reverse Reverse the order of the array.
* @returns {Array} Sorted copy of the source array.
*
*
* @example
* The example below demonstrates a simple ngRepeat, where the data is sorted
* by age in descending order (predicate is set to `'-age'`).
* `reverse` is not set, which means it defaults to `false`.
<example module="orderByExample">
<file name="index.html">
<script>
angular.module('orderByExample', [])
.controller('ExampleController', ['$scope', function($scope) {
$scope.friends =
[{name:'John', phone:'555-1212', age:10},
{name:'Mary', phone:'555-9876', age:19},
{name:'Mike', phone:'555-4321', age:21},
{name:'Adam', phone:'555-5678', age:35},
{name:'Julie', phone:'555-8765', age:29}];
}]);
</script>
<div ng-controller="ExampleController">
<table class="friend">
<tr>
<th>Name</th>
<th>Phone Number</th>
<th>Age</th>
</tr>
<tr ng-repeat="friend in friends | orderBy:'-age'">
<td>{{friend.name}}</td>
<td>{{friend.phone}}</td>
<td>{{friend.age}}</td>
</tr>
</table>
</div>
</file>
</example>
*
* The predicate and reverse parameters can be controlled dynamically through scope properties,
* as shown in the next example.
* @example
<example module="orderByExample">
<file name="index.html">
+9 -1
View File
@@ -59,7 +59,15 @@ function $LocaleProvider() {
mediumDate: 'MMM d, y',
shortDate: 'M/d/yy',
mediumTime: 'h:mm:ss a',
shortTime: 'h:mm a'
shortTime: 'h:mm a',
ERANAMES: [
"Before Christ",
"Anno Domini"
],
ERAS: [
"BC",
"AD"
]
},
pluralCat: function(num) {
+1
View File
@@ -32,6 +32,7 @@
<button ng-click="$log.warn(message)">warn</button>
<button ng-click="$log.info(message)">info</button>
<button ng-click="$log.error(message)">error</button>
<button ng-click="$log.debug(message)">debug</button>
</div>
</file>
</example>
+11
View File
@@ -1,5 +1,16 @@
'use strict';
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Any commits to this file should be reviewed with security in mind. *
* Changes to this file can potentially create security vulnerabilities. *
* An approval from 2 Core members with history of modifying *
* this file is required. *
* *
* Does the change somehow allow for arbitrary javascript to be executed? *
* Or allows for someone to change the prototype of built-in objects? *
* Or gives undesired access to variables likes document or window? *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
var $parseMinErr = minErr('$parse');
// Sandboxing Angular Expressions
+20 -14
View File
@@ -80,9 +80,27 @@ function $RootScopeProvider() {
return TTL;
};
function createChildScopeClass(parent) {
function ChildScope() {
this.$$watchers = this.$$nextSibling =
this.$$childHead = this.$$childTail = null;
this.$$listeners = {};
this.$$listenerCount = {};
this.$$watchersCount = 0;
this.$id = nextUid();
this.$$ChildScope = null;
}
ChildScope.prototype = parent;
return ChildScope;
}
this.$get = ['$injector', '$exceptionHandler', '$parse', '$browser',
function($injector, $exceptionHandler, $parse, $browser) {
function destroyChildScope($event) {
$event.currentScope.$$destroyed = true;
}
/**
* @ngdoc type
* @name $rootScope.Scope
@@ -205,15 +223,7 @@ function $RootScopeProvider() {
// Only create a child scope class if somebody asks for one,
// but cache it to allow the VM to optimize lookups.
if (!this.$$ChildScope) {
this.$$ChildScope = function ChildScope() {
this.$$watchers = this.$$nextSibling =
this.$$childHead = this.$$childTail = null;
this.$$listeners = {};
this.$$listenerCount = {};
this.$id = nextUid();
this.$$ChildScope = null;
};
this.$$ChildScope.prototype = this;
this.$$ChildScope = createChildScopeClass(this);
}
child = new this.$$ChildScope();
}
@@ -231,13 +241,9 @@ function $RootScopeProvider() {
// prototypically. In all other cases, this property needs to be set
// when the parent scope is destroyed.
// The listener needs to be added after the parent is set
if (isolate || parent != this) child.$on('$destroy', destroyChild);
if (isolate || parent != this) child.$on('$destroy', destroyChildScope);
return child;
function destroyChild() {
child.$$destroyed = true;
}
},
/**
+11
View File
@@ -1,5 +1,16 @@
'use strict';
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Any commits to this file should be reviewed with security in mind. *
* Changes to this file can potentially create security vulnerabilities. *
* An approval from 2 Core members with history of modifying *
* this file is required. *
* *
* Does the change somehow allow for arbitrary javascript to be executed? *
* Or allows for someone to change the prototype of built-in objects? *
* Or gives undesired access to variables likes document or window? *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
var $sceMinErr = minErr('$sce');
var SCE_CONTEXTS = {
+1 -1
View File
@@ -40,7 +40,7 @@ function $TemplateRequestProvider() {
};
return $http.get(tpl, httpOptions)
.finally(function() {
['finally'](function() {
handleRequestFn.totalPendingRequests--;
})
.then(function(response) {
+18 -3
View File
@@ -22,13 +22,13 @@
*
* | Directive | Supported Attributes |
* |---------------------------------------------|----------------------------------------------------------------------------------------|
* | {@link ng.directive:ngModel ngModel} | aria-checked, aria-valuemin, aria-valuemax, aria-valuenow, aria-invalid, aria-required |
* | {@link ng.directive:ngDisabled ngDisabled} | aria-disabled |
* | {@link ng.directive:ngShow ngShow} | aria-hidden |
* | {@link ng.directive:ngHide ngHide} | aria-hidden |
* | {@link ng.directive:ngClick ngClick} | tabindex, keypress event |
* | {@link ng.directive:ngDblclick ngDblclick} | tabindex |
* | {@link module:ngMessages ngMessages} | aria-live |
* | {@link ng.directive:ngModel ngModel} | aria-checked, aria-valuemin, aria-valuemax, aria-valuenow, aria-invalid, aria-required, input roles |
* | {@link ng.directive:ngClick ngClick} | tabindex, keypress event, button role |
*
* Find out more information about each directive by reading the
* {@link guide/accessibility ngAria Developer Guide}.
@@ -193,6 +193,10 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
return $aria.config(normalizedAttr) && !elem.attr(attr);
}
function shouldAttachRole(role, elem) {
return !elem.attr('role') && (elem.attr('type') === role) && (elem[0].nodeName !== 'INPUT');
}
function getShape(attr, elem) {
var type = attr.type,
role = attr.role;
@@ -237,12 +241,18 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
switch (shape) {
case 'radio':
case 'checkbox':
if (shouldAttachRole(shape, elem)) {
elem.attr('role', shape);
}
if (shouldAttachAttr('aria-checked', 'ariaChecked', elem)) {
scope.$watch(ngAriaWatchModelValue, shape === 'radio' ?
getRadioReaction() : ngAriaCheckboxReaction);
}
break;
case 'range':
if (shouldAttachRole(shape, elem)) {
elem.attr('role', 'slider');
}
if ($aria.config('ariaValue')) {
if (attr.min && !elem.attr('aria-valuemin')) {
elem.attr('aria-valuemin', attr.min);
@@ -307,17 +317,22 @@ ngAriaModule.directive('ngShow', ['$aria', function($aria) {
var fn = $parse(attr.ngClick, /* interceptorFn */ null, /* expensiveChecks */ true);
return function(scope, elem, attr) {
var nodeBlackList = ['BUTTON', 'A', 'INPUT', 'TEXTAREA'];
function isNodeOneOf(elem, nodeTypeArray) {
if (nodeTypeArray.indexOf(elem[0].nodeName) !== -1) {
return true;
}
}
if (!elem.attr('role') && !isNodeOneOf(elem, nodeBlackList)) {
elem.attr('role', 'button');
}
if ($aria.config('tabindex') && !elem.attr('tabindex')) {
elem.attr('tabindex', 0);
}
if ($aria.config('bindKeypress') && !attr.ngKeypress && isNodeOneOf(elem, ['DIV', 'LI'])) {
if ($aria.config('bindKeypress') && !attr.ngKeypress && !isNodeOneOf(elem, nodeBlackList)) {
elem.on('keypress', function(event) {
if (event.keyCode === 32 || event.keyCode === 13) {
scope.$apply(callback);
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Gumqata",
"Sabti"
],
"ERANAMES": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"ERAS": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"MONTH": [
"Qunxa Garablu",
"Kudo",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Gumqata",
"Sabti"
],
"ERANAMES": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"ERAS": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"MONTH": [
"Qunxa Garablu",
"Kudo",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Gumqata",
"Sabti"
],
"ERANAMES": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"ERAS": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"MONTH": [
"Qunxa Garablu",
"Kudo",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Gumqata",
"Sabti"
],
"ERANAMES": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"ERAS": [
"Yaasuusuk Duma",
"Yaasuusuk Wadir"
],
"MONTH": [
"Qunxa Garablu",
"Kudo",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"Vrydag",
"Saterdag"
],
"ERANAMES": [
"voor Christus",
"na Christus"
],
"ERAS": [
"v.C.",
"n.C."
],
"MONTH": [
"Januarie",
"Februarie",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"Vrydag",
"Saterdag"
],
"ERANAMES": [
"voor Christus",
"na Christus"
],
"ERAS": [
"v.C.",
"n.C."
],
"MONTH": [
"Januarie",
"Februarie",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"Vrydag",
"Saterdag"
],
"ERANAMES": [
"voor Christus",
"na Christus"
],
"ERAS": [
"v.C.",
"n.C."
],
"MONTH": [
"Januarie",
"Februarie",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"tsu\u0294ugh\u0268\u0302m",
"tsu\u0294ndz\u0268k\u0254\u0294\u0254"
],
"ERANAMES": [
"S\u011be K\u0268\u0300lesto",
"B\u01cea K\u0268\u0300lesto"
],
"ERAS": [
"SK",
"BK"
],
"MONTH": [
"ndz\u0254\u0300\u014b\u0254\u0300n\u00f9m",
"ndz\u0254\u0300\u014b\u0254\u0300k\u0197\u0300z\u00f9\u0294",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"tsu\u0294ugh\u0268\u0302m",
"tsu\u0294ndz\u0268k\u0254\u0294\u0254"
],
"ERANAMES": [
"S\u011be K\u0268\u0300lesto",
"B\u01cea K\u0268\u0300lesto"
],
"ERAS": [
"SK",
"BK"
],
"MONTH": [
"ndz\u0254\u0300\u014b\u0254\u0300n\u00f9m",
"ndz\u0254\u0300\u014b\u0254\u0300k\u0197\u0300z\u00f9\u0294",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Fida",
"Memeneda"
],
"ERANAMES": [
"Ansa Kristo",
"Kristo Ekyiri"
],
"ERAS": [
"AK",
"KE"
],
"MONTH": [
"Sanda-\u0186p\u025bp\u0254n",
"Kwakwar-\u0186gyefuo",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Fida",
"Memeneda"
],
"ERANAMES": [
"Ansa Kristo",
"Kristo Ekyiri"
],
"ERAS": [
"AK",
"KE"
],
"MONTH": [
"Sanda-\u0186p\u025bp\u0254n",
"Kwakwar-\u0186gyefuo",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u12d3\u122d\u1265",
"\u1245\u12f3\u121c"
],
"ERANAMES": [
"\u12d3\u1218\u1270 \u12d3\u1208\u121d",
"\u12d3\u1218\u1270 \u121d\u1215\u1228\u1275"
],
"ERAS": [
"\u12d3/\u12d3",
"\u12d3/\u121d"
],
"MONTH": [
"\u1303\u1295\u12e9\u12c8\u122a",
"\u134c\u1265\u1229\u12c8\u122a",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u12d3\u122d\u1265",
"\u1245\u12f3\u121c"
],
"ERANAMES": [
"\u12d3\u1218\u1270 \u12d3\u1208\u121d",
"\u12d3\u1218\u1270 \u121d\u1215\u1228\u1275"
],
"ERAS": [
"\u12d3/\u12d3",
"\u12d3/\u121d"
],
"MONTH": [
"\u1303\u1295\u12e9\u12c8\u122a",
"\u134c\u1265\u1229\u12c8\u122a",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u062c\u0627\u0646\u0641\u064a",
"\u0641\u064a\u0641\u0631\u064a",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a",
"\u0634\u0628\u0627\u0637",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a",
"\u0634\u0628\u0627\u0637",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a",
"\u0634\u0628\u0627\u0637",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a",
"\u0634\u0628\u0627\u0637",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a",
"\u0634\u0628\u0627\u0637",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u062c\u0627\u0646\u0641\u064a",
"\u0641\u064a\u0641\u0631\u064a",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u0627\u0644\u062c\u0645\u0639\u0629",
"\u0627\u0644\u0633\u0628\u062a"
],
"ERANAMES": [
"\u0642\u0628\u0644 \u0627\u0644\u0645\u064a\u0644\u0627\u062f",
"\u0645\u064a\u0644\u0627\u062f\u064a"
],
"ERAS": [
"\u0642.\u0645",
"\u0645"
],
"MONTH": [
"\u064a\u0646\u0627\u064a\u0631",
"\u0641\u0628\u0631\u0627\u064a\u0631",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0",
"\u09b6\u09a8\u09bf\u09ac\u09be\u09f0"
],
"ERANAMES": [
"BCE",
"CE"
],
"ERAS": [
"BCE",
"CE"
],
"MONTH": [
"\u099c\u09be\u09a8\u09c1\u09f1\u09be\u09f0\u09c0",
"\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09f1\u09be\u09f0\u09c0",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0",
"\u09b6\u09a8\u09bf\u09ac\u09be\u09f0"
],
"ERANAMES": [
"BCE",
"CE"
],
"ERAS": [
"BCE",
"CE"
],
"MONTH": [
"\u099c\u09be\u09a8\u09c1\u09f1\u09be\u09f0\u09c0",
"\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09f1\u09be\u09f0\u09c0",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Ijumaa",
"Jumamosi"
],
"ERANAMES": [
"Kabla yakwe Yethu",
"Baada yakwe Yethu"
],
"ERAS": [
"KM",
"BM"
],
"MONTH": [
"Januari",
"Februari",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Ijumaa",
"Jumamosi"
],
"ERANAMES": [
"Kabla yakwe Yethu",
"Baada yakwe Yethu"
],
"ERAS": [
"KM",
"BM"
],
"MONTH": [
"Januari",
"Februari",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"vienres",
"s\u00e1badu"
],
"ERANAMES": [
"a.C.",
"d.C."
],
"ERAS": [
"a.C.",
"d.C."
],
"MONTH": [
"de xineru",
"de febreru",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"vienres",
"s\u00e1badu"
],
"ERANAMES": [
"a.C.",
"d.C."
],
"ERAS": [
"a.C.",
"d.C."
],
"MONTH": [
"de xineru",
"de febreru",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u04b9\u04af\u043c\u04d9",
"\u0448\u04d9\u043d\u0431\u04d9"
],
"ERANAMES": [
"BCE",
"CE"
],
"ERAS": [
"BCE",
"CE"
],
"MONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u04b9\u04af\u043c\u04d9",
"\u0448\u04d9\u043d\u0431\u04d9"
],
"ERANAMES": [
"BCE",
"CE"
],
"ERAS": [
"BCE",
"CE"
],
"MONTH": [
"\u0458\u0430\u043d\u0432\u0430\u0440",
"\u0444\u0435\u0432\u0440\u0430\u043b",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"c\u00fcm\u0259",
"\u015f\u0259nb\u0259"
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
],
"ERAS": [
"e.\u0259.",
"b.e."
],
"MONTH": [
"yanvar",
"fevral",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"c\u00fcm\u0259",
"\u015f\u0259nb\u0259"
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
],
"ERAS": [
"e.\u0259.",
"b.e."
],
"MONTH": [
"yanvar",
"fevral",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"c\u00fcm\u0259",
"\u015f\u0259nb\u0259"
],
"ERANAMES": [
"eram\u0131zdan \u0259vv\u0259l",
"bizim eram\u0131z\u0131n"
],
"ERAS": [
"e.\u0259.",
"b.e."
],
"MONTH": [
"yanvar",
"fevral",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u014bgw\u00e0 k\u0254\u0254",
"\u014bgw\u00e0 j\u00f4n"
],
"ERANAMES": [
"bis\u016b bi Yes\u00f9 Kr\u01d0st\u00f2",
"i mb\u016bs Yes\u00f9 Kr\u01d0st\u00f2"
],
"ERAS": [
"b.Y.K",
"m.Y.K"
],
"MONTH": [
"K\u0254nd\u0254\u014b",
"M\u00e0c\u025b\u0302l",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u014bgw\u00e0 k\u0254\u0254",
"\u014bgw\u00e0 j\u00f4n"
],
"ERANAMES": [
"bis\u016b bi Yes\u00f9 Kr\u01d0st\u00f2",
"i mb\u016bs Yes\u00f9 Kr\u01d0st\u00f2"
],
"ERAS": [
"b.Y.K",
"m.Y.K"
],
"MONTH": [
"K\u0254nd\u0254\u014b",
"M\u00e0c\u025b\u0302l",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u043f\u044f\u0442\u043d\u0456\u0446\u0430",
"\u0441\u0443\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
],
"ERAS": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
],
"MONTH": [
"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f",
"\u043b\u044e\u0442\u0430\u0433\u0430",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"\u043f\u044f\u0442\u043d\u0456\u0446\u0430",
"\u0441\u0443\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
],
"ERAS": [
"\u0434\u0430 \u043d.\u044d.",
"\u043d.\u044d."
],
"MONTH": [
"\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044f",
"\u043b\u044e\u0442\u0430\u0433\u0430",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Palichisano",
"Pachibelushi"
],
"ERANAMES": [
"Before Yesu",
"After Yesu"
],
"ERAS": [
"BC",
"AD"
],
"MONTH": [
"Januari",
"Februari",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"Palichisano",
"Pachibelushi"
],
"ERANAMES": [
"Before Yesu",
"After Yesu"
],
"ERAS": [
"BC",
"AD"
],
"MONTH": [
"Januari",
"Februari",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"pa hihanu",
"pa shahulembela"
],
"ERANAMES": [
"Kabla ya Mtwaa",
"Baada ya Mtwaa"
],
"ERAS": [
"KM",
"BM"
],
"MONTH": [
"pa mwedzi gwa hutala",
"pa mwedzi gwa wuvili",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"pa hihanu",
"pa shahulembela"
],
"ERANAMES": [
"Kabla ya Mtwaa",
"Baada ya Mtwaa"
],
"ERAS": [
"KM",
"BM"
],
"MONTH": [
"pa mwedzi gwa hutala",
"pa mwedzi gwa wuvili",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u043f\u0435\u0442\u044a\u043a",
"\u0441\u044a\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u043f\u0440\u0435\u0434\u0438 \u0425\u0440\u0438\u0441\u0442\u0430",
"\u0441\u043b\u0435\u0434 \u0425\u0440\u0438\u0441\u0442\u0430"
],
"ERAS": [
"\u043f\u0440.\u0425\u0440.",
"\u0441\u043b.\u0425\u0440."
],
"MONTH": [
"\u044f\u043d\u0443\u0430\u0440\u0438",
"\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438",
+8
View File
@@ -16,6 +16,14 @@ $provide.value("$locale", {
"\u043f\u0435\u0442\u044a\u043a",
"\u0441\u044a\u0431\u043e\u0442\u0430"
],
"ERANAMES": [
"\u043f\u0440\u0435\u0434\u0438 \u0425\u0440\u0438\u0441\u0442\u0430",
"\u0441\u043b\u0435\u0434 \u0425\u0440\u0438\u0441\u0442\u0430"
],
"ERAS": [
"\u043f\u0440.\u0425\u0440.",
"\u0441\u043b.\u0425\u0440."
],
"MONTH": [
"\u044f\u043d\u0443\u0430\u0440\u0438",
"\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"juma",
"sibiri"
],
"ERANAMES": [
"jezu krisiti \u0272\u025b",
"jezu krisiti mink\u025b"
],
"ERAS": [
"J.-C. \u0272\u025b",
"ni J.-C."
],
"MONTH": [
"zanwuye",
"feburuye",
+8
View File
@@ -34,6 +34,14 @@ $provide.value("$locale", {
"juma",
"sibiri"
],
"ERANAMES": [
"jezu krisiti \u0272\u025b",
"jezu krisiti mink\u025b"
],
"ERAS": [
"J.-C. \u0272\u025b",
"ni J.-C."
],
"MONTH": [
"zanwuye",
"feburuye",

Some files were not shown because too many files have changed in this diff Show More