@angular-wave/angular.ts 0.0.60 → 0.0.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/angular-ts.esm.js +2 -2
- package/dist/angular-ts.umd.js +2 -2
- package/package.json +1 -1
- package/src/core/parser/parse.js +14 -0
- package/src/core/parser/parser.js +1 -1
- package/src/core/q/q.js +46 -289
- package/src/core/q/q.md +229 -0
- package/src/core/sanitize/sanitize-uri.js +2 -3
- package/src/core/scope/scope.js +18 -8
- package/src/directive/if/if.js +6 -1
- package/src/filters/limit-to.js +5 -2
- package/src/loader.js +1 -5
- package/src/router/params/param-type.js +2 -1
- package/src/router/state/views.js +3 -0
- package/src/router/transition/reject-factory.js +1 -0
- package/src/router/url/url-rule.js +1 -1
- package/src/router/url/url-service.js +4 -4
- package/src/services/http/http.js +7 -5
- package/src/services/template-request.js +2 -7
- package/src/shared/common.js +1 -1
- package/src/shared/utils.js +1 -1
- package/src/types.js +9 -1
- package/types/core/parser/parse.d.ts +3 -4
- package/types/core/parser/parser.d.ts +1 -1
- package/types/core/q/q.d.ts +2 -2
- package/types/core/sanitize/sanitize-uri.d.ts +4 -5
- package/types/core/scope/scope.d.ts +19 -7
- package/types/loader.d.ts +0 -4
- package/types/router/params/param-type.d.ts +2 -1
- package/types/router/state/views.d.ts +2 -0
- package/types/router/transition/reject-factory.d.ts +1 -0
- package/types/router/url/url-rule.d.ts +0 -1
- package/types/router/url/url-service.d.ts +7 -7
- package/types/services/template-request.d.ts +4 -9
- package/types/types.d.ts +6 -1
- package/types-back/README.md +0 -2
- package/types-back/angular.d.ts +0 -146
- package/types-back/index.d.ts +0 -2126
- package/types-back/jqlite.d.ts +0 -374
- package/types-back/router/core/common/common.d.ts +0 -416
- package/types-back/router/core/common/coreservices.d.ts +0 -77
- package/types-back/router/core/common/glob.d.ts +0 -60
- package/types-back/router/core/common/hof.d.ts +0 -168
- package/types-back/router/core/common/index.d.ts +0 -8
- package/types-back/router/core/common/predicates.d.ts +0 -25
- package/types-back/router/core/common/queue.d.ts +0 -15
- package/types-back/router/core/common/safeConsole.d.ts +0 -5
- package/types-back/router/core/common/strings.d.ts +0 -66
- package/types-back/router/core/common/trace.d.ts +0 -126
- package/types-back/router/core/globals.d.ts +0 -43
- package/types-back/router/core/hooks/coreResolvables.d.ts +0 -6
- package/types-back/router/core/hooks/ignoredTransition.d.ts +0 -4
- package/types-back/router/core/hooks/invalidTransition.d.ts +0 -4
- package/types-back/router/core/hooks/lazyLoad.d.ts +0 -17
- package/types-back/router/core/hooks/onEnterExitRetain.d.ts +0 -10
- package/types-back/router/core/hooks/redirectTo.d.ts +0 -4
- package/types-back/router/core/hooks/resolve.d.ts +0 -11
- package/types-back/router/core/hooks/updateGlobals.d.ts +0 -4
- package/types-back/router/core/hooks/url.d.ts +0 -4
- package/types-back/router/core/hooks/views.d.ts +0 -7
- package/types-back/router/core/index.d.ts +0 -11
- package/types-back/router/core/interface.d.ts +0 -91
- package/types-back/router/core/params/index.d.ts +0 -12
- package/types-back/router/core/params/interface.d.ts +0 -606
- package/types-back/router/core/params/param.d.ts +0 -77
- package/types-back/router/core/params/paramType.d.ts +0 -65
- package/types-back/router/core/params/paramTypes.d.ts +0 -193
- package/types-back/router/core/params/stateParams.d.ts +0 -15
- package/types-back/router/core/path/index.d.ts +0 -2
- package/types-back/router/core/path/pathNode.d.ts +0 -60
- package/types-back/router/core/path/pathUtils.d.ts +0 -105
- package/types-back/router/core/resolve/index.d.ts +0 -3
- package/types-back/router/core/resolve/interface.d.ts +0 -210
- package/types-back/router/core/resolve/resolvable.d.ts +0 -75
- package/types-back/router/core/resolve/resolveContext.d.ts +0 -97
- package/types-back/router/core/router.d.ts +0 -57
- package/types-back/router/core/state/index.d.ts +0 -28
- package/types-back/router/core/state/interface.d.ts +0 -732
- package/types-back/router/core/state/stateBuilder.d.ts +0 -107
- package/types-back/router/core/state/stateMatcher.d.ts +0 -13
- package/types-back/router/core/state/stateObject.d.ts +0 -170
- package/types-back/router/core/state/stateQueueManager.d.ts +0 -27
- package/types-back/router/core/state/stateRegistry.d.ts +0 -138
- package/types-back/router/core/state/stateService.d.ts +0 -386
- package/types-back/router/core/state/targetState.d.ts +0 -105
- package/types-back/router/core/transition/hookBuilder.d.ts +0 -49
- package/types-back/router/core/transition/hookRegistry.d.ts +0 -115
- package/types-back/router/core/transition/index.d.ts +0 -20
- package/types-back/router/core/transition/interface.d.ts +0 -862
- package/types-back/router/core/transition/rejectFactory.d.ts +0 -103
- package/types-back/router/core/transition/transition.d.ts +0 -575
- package/types-back/router/core/transition/transitionEventType.d.ts +0 -26
- package/types-back/router/core/transition/transitionHook.d.ts +0 -96
- package/types-back/router/core/transition/transitionService.d.ts +0 -253
- package/types-back/router/core/url/index.d.ts +0 -8
- package/types-back/router/core/url/interface.d.ts +0 -169
- package/types-back/router/core/url/urlConfig.d.ts +0 -144
- package/types-back/router/core/url/urlMatcher.d.ts +0 -185
- package/types-back/router/core/url/urlMatcherFactory.d.ts +0 -56
- package/types-back/router/core/url/urlRouter.d.ts +0 -101
- package/types-back/router/core/url/urlRule.d.ts +0 -143
- package/types-back/router/core/url/urlRules.d.ts +0 -251
- package/types-back/router/core/url/urlService.d.ts +0 -205
- package/types-back/router/core/view/index.d.ts +0 -2
- package/types-back/router/core/view/interface.d.ts +0 -46
- package/types-back/router/core/view/view.d.ts +0 -176
- package/types-back/router/directives/viewDirective.d.ts +0 -144
- package/types-back/router/index.d.ts +0 -17
- package/types-back/router/interface.d.ts +0 -500
- package/types-back/router/legacy/resolveService.d.ts +0 -47
- package/types-back/router/legacy/stateEvents.d.ts +0 -124
- package/types-back/router/services.d.ts +0 -15
- package/types-back/router/stateFilters.d.ts +0 -10
- package/types-back/router/stateProvider.d.ts +0 -258
- package/types-back/router/statebuilders/onEnterExitRetain.d.ts +0 -13
- package/types-back/router/statebuilders/views.d.ts +0 -53
- package/types-back/router/templateFactory.d.ts +0 -104
- package/types-back/router/viewScroll.d.ts +0 -9
package/src/core/q/q.md
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/\*\*
|
|
2
|
+
|
|
3
|
+
- A service that helps you run functions asynchronously, and use their return values (or exceptions)
|
|
4
|
+
- when they are done processing.
|
|
5
|
+
-
|
|
6
|
+
- This is a [Promises/A+](https://promisesaplus.com/)-compliant implementation of promises/deferred
|
|
7
|
+
- objects inspired by [Kris Kowal's Q](https://github.com/kriskowal/q).
|
|
8
|
+
-
|
|
9
|
+
- $q can be used in two fashions --- one which is more similar to Kris Kowal's Q or jQuery's Deferred
|
|
10
|
+
- implementations, and the other which resembles ES6 (ES2015) promises to some degree.
|
|
11
|
+
-
|
|
12
|
+
- ## $q constructor
|
|
13
|
+
-
|
|
14
|
+
- The streamlined ES6 style promise is essentially just using $q as a constructor which takes a `resolver`
|
|
15
|
+
- function as the first argument. This is similar to the native Promise implementation from ES6,
|
|
16
|
+
- see [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise).
|
|
17
|
+
-
|
|
18
|
+
- While the constructor-style use is supported, not all of the supporting methods from ES6 promises are
|
|
19
|
+
- available yet.
|
|
20
|
+
-
|
|
21
|
+
- It can be used like so:
|
|
22
|
+
-
|
|
23
|
+
- ```js
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
- // for the purpose of this example let's assume that variables `$q` and `okToGreet`
|
|
28
|
+
- // are available in the current lexical scope (they could have been injected or passed in).
|
|
29
|
+
-
|
|
30
|
+
- function asyncGreet(name) {
|
|
31
|
+
- // perform some asynchronous operation, resolve or reject the promise when appropriate.
|
|
32
|
+
- return $q(function(resolve, reject) {
|
|
33
|
+
- setTimeout(function() {
|
|
34
|
+
- if (okToGreet(name)) {
|
|
35
|
+
- resolve('Hello, ' + name + '!');
|
|
36
|
+
- } else {
|
|
37
|
+
- reject('Greeting ' + name + ' is not allowed.');
|
|
38
|
+
- }
|
|
39
|
+
- }, 1000);
|
|
40
|
+
- });
|
|
41
|
+
- }
|
|
42
|
+
-
|
|
43
|
+
- let promise = asyncGreet('Robin Hood');
|
|
44
|
+
- promise.then(function(greeting) {
|
|
45
|
+
- alert('Success: ' + greeting);
|
|
46
|
+
- }, function(reason) {
|
|
47
|
+
- alert('Failed: ' + reason);
|
|
48
|
+
- });
|
|
49
|
+
- ```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
-
|
|
54
|
+
- Note: progress/notify callbacks are not currently supported via the ES6-style interface.
|
|
55
|
+
-
|
|
56
|
+
- Note: unlike ES6 behavior, an exception thrown in the constructor function will NOT implicitly reject the promise.
|
|
57
|
+
-
|
|
58
|
+
- However, the more traditional CommonJS-style usage is still available, and documented below.
|
|
59
|
+
-
|
|
60
|
+
- [The CommonJS Promise proposal](http://wiki.commonjs.org/wiki/Promises) describes a promise as an
|
|
61
|
+
- interface for interacting with an object that represents the result of an action that is
|
|
62
|
+
- performed asynchronously, and may or may not be finished at any given point in time.
|
|
63
|
+
-
|
|
64
|
+
- From the perspective of dealing with error handling, deferred and promise APIs are to
|
|
65
|
+
- asynchronous programming what `try`, `catch` and `throw` keywords are to synchronous programming.
|
|
66
|
+
-
|
|
67
|
+
- ```js
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
- // for the purpose of this example let's assume that variables `$q` and `okToGreet`
|
|
72
|
+
- // are available in the current lexical scope (they could have been injected or passed in).
|
|
73
|
+
-
|
|
74
|
+
- function asyncGreet(name) {
|
|
75
|
+
- let deferred = $q.defer();
|
|
76
|
+
-
|
|
77
|
+
- setTimeout(function() {
|
|
78
|
+
- deferred.notify('About to greet ' + name + '.');
|
|
79
|
+
-
|
|
80
|
+
- if (okToGreet(name)) {
|
|
81
|
+
- deferred.resolve('Hello, ' + name + '!');
|
|
82
|
+
- } else {
|
|
83
|
+
- deferred.reject('Greeting ' + name + ' is not allowed.');
|
|
84
|
+
- }
|
|
85
|
+
- }, 1000);
|
|
86
|
+
-
|
|
87
|
+
- return deferred.promise;
|
|
88
|
+
- }
|
|
89
|
+
-
|
|
90
|
+
- let promise = asyncGreet('Robin Hood');
|
|
91
|
+
- promise.then(function(greeting) {
|
|
92
|
+
- alert('Success: ' + greeting);
|
|
93
|
+
- }, function(reason) {
|
|
94
|
+
- alert('Failed: ' + reason);
|
|
95
|
+
- }, function(update) {
|
|
96
|
+
- alert('Got notification: ' + update);
|
|
97
|
+
- });
|
|
98
|
+
- ```
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
-
|
|
103
|
+
- At first it might not be obvious why this extra complexity is worth the trouble. The payoff
|
|
104
|
+
- comes in the way of guarantees that promise and deferred APIs make, see
|
|
105
|
+
- https://github.com/kriskowal/uncommonjs/blob/master/promises/specification.md.
|
|
106
|
+
-
|
|
107
|
+
- Additionally the promise api allows for composition that is very hard to do with the
|
|
108
|
+
- traditional callback ([CPS](http://en.wikipedia.org/wiki/Continuation-passing_style)) approach.
|
|
109
|
+
- For more on this please see the [Q documentation](https://github.com/kriskowal/q) especially the
|
|
110
|
+
- section on serial or parallel joining of promises.
|
|
111
|
+
-
|
|
112
|
+
- ## The Deferred API
|
|
113
|
+
-
|
|
114
|
+
- A new instance of deferred is constructed by calling `$q.defer()`.
|
|
115
|
+
-
|
|
116
|
+
- The purpose of the deferred object is to expose the associated Promise instance as well as APIs
|
|
117
|
+
- that can be used for signaling the successful or unsuccessful completion, as well as the status
|
|
118
|
+
- of the task.
|
|
119
|
+
-
|
|
120
|
+
- **Methods**
|
|
121
|
+
-
|
|
122
|
+
- - `resolve(value)` – resolves the derived promise with the `value`. If the value is a rejection
|
|
123
|
+
- constructed via `$q.reject`, the promise will be rejected instead.
|
|
124
|
+
- - `reject(reason)` – rejects the derived promise with the `reason`. This is equivalent to
|
|
125
|
+
- resolving it with a rejection constructed via `$q.reject`.
|
|
126
|
+
- - `notify(value)` - provides updates on the status of the promise's execution. This may be called
|
|
127
|
+
- multiple times before the promise is either resolved or rejected.
|
|
128
|
+
-
|
|
129
|
+
- **Properties**
|
|
130
|
+
-
|
|
131
|
+
- - promise – `{Promise}` – promise object associated with this deferred.
|
|
132
|
+
-
|
|
133
|
+
-
|
|
134
|
+
- ## The Promise API
|
|
135
|
+
-
|
|
136
|
+
- A new promise instance is created when a deferred instance is created and can be retrieved by
|
|
137
|
+
- calling `deferred.promise`.
|
|
138
|
+
-
|
|
139
|
+
- The purpose of the promise object is to allow for interested parties to get access to the result
|
|
140
|
+
- of the deferred task when it completes.
|
|
141
|
+
-
|
|
142
|
+
- **Methods**
|
|
143
|
+
-
|
|
144
|
+
- - `then(successCallback, [errorCallback], [notifyCallback])` – regardless of when the promise was or
|
|
145
|
+
- will be resolved or rejected, `then` calls one of the success or error callbacks asynchronously
|
|
146
|
+
- as soon as the result is available. The callbacks are called with a single argument: the result
|
|
147
|
+
- or rejection reason. Additionally, the notify callback may be called zero or more times to
|
|
148
|
+
- provide a progress indication, before the promise is resolved or rejected.
|
|
149
|
+
-
|
|
150
|
+
- This method _returns a new promise_ which is resolved or rejected via the return value of the
|
|
151
|
+
- `successCallback`, `errorCallback` (unless that value is a promise, in which case it is resolved
|
|
152
|
+
- with the value which is resolved in that promise using
|
|
153
|
+
- [promise chaining](http://www.html5rocks.com/en/tutorials/es6/promises/#toc-promises-queues)).
|
|
154
|
+
- It also notifies via the return value of the `notifyCallback` method. The promise cannot be
|
|
155
|
+
- resolved or rejected from the notifyCallback method. The errorCallback and notifyCallback
|
|
156
|
+
- arguments are optional.
|
|
157
|
+
-
|
|
158
|
+
- - `catch(errorCallback)` – shorthand for `promise.then(null, errorCallback)`
|
|
159
|
+
-
|
|
160
|
+
- - `finally(callback, notifyCallback)` – allows you to observe either the fulfillment or rejection of a promise,
|
|
161
|
+
- but to do so without modifying the final value. This is useful to release resources or do some
|
|
162
|
+
- clean-up that needs to be done whether the promise was rejected or resolved. See the [full
|
|
163
|
+
- specification](https://github.com/kriskowal/q/wiki/API-Reference#promisefinallycallback) for
|
|
164
|
+
- more information.
|
|
165
|
+
-
|
|
166
|
+
- ## Chaining promises
|
|
167
|
+
-
|
|
168
|
+
- Because calling the `then` method of a promise returns a new derived promise, it is easily
|
|
169
|
+
- possible to create a chain of promises:
|
|
170
|
+
-
|
|
171
|
+
- ```js
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
- promiseB = promiseA.then(function(result) {
|
|
176
|
+
- return result + 1;
|
|
177
|
+
- });
|
|
178
|
+
-
|
|
179
|
+
- // promiseB will be resolved immediately after promiseA is resolved and its value
|
|
180
|
+
- // will be the result of promiseA incremented by 1
|
|
181
|
+
- ```
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
-
|
|
186
|
+
- It is possible to create chains of any length and since a promise can be resolved with another
|
|
187
|
+
- promise (which will defer its resolution further), it is possible to pause/defer resolution of
|
|
188
|
+
- the promises at any point in the chain. This makes it possible to implement powerful APIs like
|
|
189
|
+
- $http's response interceptors.
|
|
190
|
+
-
|
|
191
|
+
-
|
|
192
|
+
- ## Differences between Kris Kowal's Q and $q
|
|
193
|
+
-
|
|
194
|
+
- There are two main differences:
|
|
195
|
+
-
|
|
196
|
+
- - $q is integrated with the {@link ng.$rootScope.Scope} Scope model observation
|
|
197
|
+
- mechanism in AngularJS, which means faster propagation of resolution or rejection into your
|
|
198
|
+
- models and avoiding unnecessary browser repaints, which would result in flickering UI.
|
|
199
|
+
- - Q has many more features than $q, but that comes at a cost of bytes. $q is tiny, but contains
|
|
200
|
+
- all the important functionality needed for common async tasks.
|
|
201
|
+
-
|
|
202
|
+
- ## Testing
|
|
203
|
+
-
|
|
204
|
+
- ```js
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- it('should simulate promise', inject(function($q, $rootScope) {
|
|
209
|
+
- let deferred = $q.defer();
|
|
210
|
+
- let promise = deferred.promise;
|
|
211
|
+
- let resolvedValue;
|
|
212
|
+
-
|
|
213
|
+
- promise.then(function(value) { resolvedValue = value; });
|
|
214
|
+
- expect(resolvedValue).toBeUndefined();
|
|
215
|
+
-
|
|
216
|
+
- // Simulate resolving of promise
|
|
217
|
+
- deferred.resolve(123);
|
|
218
|
+
- // Note that the 'then' function does not get called synchronously.
|
|
219
|
+
- // This is because we want the promise API to always be async, whether or not
|
|
220
|
+
- // it got called synchronously or asynchronously.
|
|
221
|
+
- expect(resolvedValue).toBeUndefined();
|
|
222
|
+
-
|
|
223
|
+
- // Propagate promise resolution to 'then' functions using $apply().
|
|
224
|
+
- $rootScope.$apply();
|
|
225
|
+
- expect(resolvedValue).toEqual(123);
|
|
226
|
+
- }));
|
|
227
|
+
- ```
|
|
228
|
+
*/
|
|
229
|
+
```
|
|
@@ -28,7 +28,7 @@ export function SanitizeUriProvider() {
|
|
|
28
28
|
* to the DOM it is inactive and potentially malicious code will not be executed.
|
|
29
29
|
*
|
|
30
30
|
* @param {RegExp=} regexp New regexp to trust urls with.
|
|
31
|
-
* @returns {RegExp|
|
|
31
|
+
* @returns {RegExp|SanitizeUriProvider} Current RegExp if called without value or self for
|
|
32
32
|
* chaining otherwise.
|
|
33
33
|
*/
|
|
34
34
|
this.aHrefSanitizationTrustedUrlList = function (regexp) {
|
|
@@ -58,8 +58,7 @@ export function SanitizeUriProvider() {
|
|
|
58
58
|
* to the DOM it is inactive and potentially malicious code will not be executed.
|
|
59
59
|
*
|
|
60
60
|
* @param {RegExp=} regexp New regexp to trust urls with.
|
|
61
|
-
* @returns {RegExp|
|
|
62
|
-
* chaining otherwise.
|
|
61
|
+
* @returns {RegExp|SanitizeUriProvider} Current RegExp if called without value or self for chaining otherwise.
|
|
63
62
|
*/
|
|
64
63
|
this.imgSrcSanitizationTrustedUrlList = function (regexp) {
|
|
65
64
|
if (isDefined(regexp)) {
|
package/src/core/scope/scope.js
CHANGED
|
@@ -28,6 +28,20 @@ export const ScopePhase = {
|
|
|
28
28
|
* @property {Object} locals
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
+
/**
|
|
32
|
+
* @typedef {function(any, any, Scope): any} WatchListener
|
|
33
|
+
* Callback function triggered whenever the value of `watchExpression` changes.
|
|
34
|
+
*
|
|
35
|
+
* @param {any} newVal - The current value of the `watchExpression`.
|
|
36
|
+
* @param {any} oldVal - The previous value of the `watchExpression`.
|
|
37
|
+
* @param {Scope} scope - The current scope in which the `watchExpression` is evaluated.
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @typedef {string | ((scope: Scope) => any)} WatchExpression
|
|
43
|
+
*/
|
|
44
|
+
|
|
31
45
|
/**
|
|
32
46
|
*
|
|
33
47
|
* The default number of `$digest` iterations the scope should attempt to execute before giving up and
|
|
@@ -378,12 +392,7 @@ export class Scope {
|
|
|
378
392
|
*
|
|
379
393
|
* - `string`: Evaluated as {@link guide/expression expression}
|
|
380
394
|
* - `function(scope)`: called with current `scope` as a parameter.
|
|
381
|
-
* @param {
|
|
382
|
-
* of `watchExpression` changes.
|
|
383
|
-
*
|
|
384
|
-
* - `newVal` contains the current value of the `watchExpression`
|
|
385
|
-
* - `oldVal` contains the previous value of the `watchExpression`
|
|
386
|
-
* - `scope` refers to the current scope
|
|
395
|
+
* @param {WatchListener} listener
|
|
387
396
|
* @param {boolean=} [objectEquality=false] Compare for object equality using {@link angular.equals} instead of
|
|
388
397
|
* comparing for reference equality.
|
|
389
398
|
* @returns {function()} Returns a deregistration function for this listener.
|
|
@@ -687,7 +696,7 @@ export class Scope {
|
|
|
687
696
|
}
|
|
688
697
|
}
|
|
689
698
|
}
|
|
690
|
-
|
|
699
|
+
// TODO: fix this type signature
|
|
691
700
|
return this.$watch(changeDetector, $watchCollectionAction);
|
|
692
701
|
}
|
|
693
702
|
|
|
@@ -1282,7 +1291,8 @@ export class Scope {
|
|
|
1282
1291
|
if (expr) {
|
|
1283
1292
|
$$applyAsyncQueue.push(() => scope.$eval(expr));
|
|
1284
1293
|
}
|
|
1285
|
-
|
|
1294
|
+
// TODO: investigate
|
|
1295
|
+
//expr = $parse(expr);
|
|
1286
1296
|
|
|
1287
1297
|
if (applyAsyncId === null) {
|
|
1288
1298
|
applyAsyncId = $browser.defer(flushApplyAsync, null, "$applyAsync");
|
package/src/directive/if/if.js
CHANGED
|
@@ -17,7 +17,12 @@ export function ngIfDirective($animate) {
|
|
|
17
17
|
terminal: true,
|
|
18
18
|
restrict: "A",
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
20
|
+
*
|
|
21
|
+
* @param {*} $scope
|
|
22
|
+
* @param {*} $element
|
|
23
|
+
* @param {*} $attr
|
|
24
|
+
* @param {*} _ctrl
|
|
25
|
+
* @param {*} $transclude
|
|
21
26
|
*/
|
|
22
27
|
link($scope, $element, $attr, _ctrl, $transclude) {
|
|
23
28
|
/** @type {{clone: import("../../shared/jqlite/jqlite").JQLite }} */
|
package/src/filters/limit-to.js
CHANGED
|
@@ -19,14 +19,17 @@ export function limitToFilter() {
|
|
|
19
19
|
if (Math.abs(Number(limit)) === Infinity) {
|
|
20
20
|
limit = Number(limit);
|
|
21
21
|
} else {
|
|
22
|
-
limit = toInt(limit);
|
|
22
|
+
limit = toInt(/** @type {String} */ (limit));
|
|
23
23
|
}
|
|
24
24
|
if (isNumberNaN(limit)) return input;
|
|
25
25
|
|
|
26
26
|
if (isNumber(input)) input = input.toString();
|
|
27
27
|
if (!isArrayLike(input)) return input;
|
|
28
28
|
|
|
29
|
-
begin =
|
|
29
|
+
begin =
|
|
30
|
+
!begin || isNaN(/** @type {any} */ (begin))
|
|
31
|
+
? 0
|
|
32
|
+
: toInt(/** @type {String} */ (begin));
|
|
30
33
|
begin =
|
|
31
34
|
begin < 0 ? Math.max(0, /** @type {[]} */ (input).length + begin) : begin;
|
|
32
35
|
|
package/src/loader.js
CHANGED
|
@@ -275,10 +275,6 @@ export class Angular {
|
|
|
275
275
|
}
|
|
276
276
|
|
|
277
277
|
/**
|
|
278
|
-
* @ngdoc function
|
|
279
|
-
* @name angular.module
|
|
280
|
-
* @module ng
|
|
281
|
-
* @description
|
|
282
278
|
*
|
|
283
279
|
* The `angular.module` is a global place for creating, registering and retrieving AngularJS
|
|
284
280
|
* modules.
|
|
@@ -414,7 +410,7 @@ export class Angular {
|
|
|
414
410
|
|
|
415
411
|
/**
|
|
416
412
|
* @ngdoc property
|
|
417
|
-
* @
|
|
413
|
+
* @type import('./types').Module#requires
|
|
418
414
|
* @module ng
|
|
419
415
|
*
|
|
420
416
|
* @description
|
|
@@ -35,10 +35,11 @@ export class ParamType {
|
|
|
35
35
|
/** @inheritdoc */
|
|
36
36
|
this.inherit = true;
|
|
37
37
|
Object.assign(this, def);
|
|
38
|
+
this.name = undefined;
|
|
38
39
|
}
|
|
39
40
|
// consider these four methods to be "abstract methods" that should be overridden
|
|
40
41
|
/** @inheritdoc */
|
|
41
|
-
is() {
|
|
42
|
+
is(_val) {
|
|
42
43
|
return true;
|
|
43
44
|
}
|
|
44
45
|
/** @inheritdoc */
|
|
@@ -97,6 +97,8 @@ export class Ng1ViewConfig {
|
|
|
97
97
|
this.path = path;
|
|
98
98
|
this.viewDecl = viewDecl;
|
|
99
99
|
this.factory = factory;
|
|
100
|
+
this.component = undefined;
|
|
101
|
+
this.template = undefined;
|
|
100
102
|
|
|
101
103
|
/** @type {Number} */ this.$id = id++;
|
|
102
104
|
this.loaded = false;
|
|
@@ -110,6 +112,7 @@ export class Ng1ViewConfig {
|
|
|
110
112
|
)
|
|
111
113
|
: this.template;
|
|
112
114
|
}
|
|
115
|
+
|
|
113
116
|
load() {
|
|
114
117
|
const $q = services.$q;
|
|
115
118
|
const context = new ResolveContext(this.path);
|
|
@@ -192,11 +192,11 @@ export class UrlRuleFactory {
|
|
|
192
192
|
}
|
|
193
193
|
UrlRuleFactory.isUrlRule = (obj) =>
|
|
194
194
|
obj && ["type", "match", "handler"].every((key) => isDefined(obj[key]));
|
|
195
|
+
|
|
195
196
|
/**
|
|
196
197
|
* A base rule which calls `match`
|
|
197
198
|
*
|
|
198
199
|
* The value from the `match` function is passed through to the `handler`.
|
|
199
|
-
* @type {angular.BaseUrlRule}
|
|
200
200
|
*/
|
|
201
201
|
export class BaseUrlRule {
|
|
202
202
|
constructor(match, handler) {
|
|
@@ -26,7 +26,7 @@ export class UrlService {
|
|
|
26
26
|
];
|
|
27
27
|
|
|
28
28
|
/**
|
|
29
|
-
* @param {
|
|
29
|
+
* @param {import("../../core/location/location").$LocationProvider} $locationProvider
|
|
30
30
|
*/
|
|
31
31
|
constructor($locationProvider, stateService, globals, urlConfigProvider) {
|
|
32
32
|
this.stateService = stateService;
|
|
@@ -53,7 +53,7 @@ export class UrlService {
|
|
|
53
53
|
* The nested [[UrlConfig]] API to configure the URL and retrieve URL information
|
|
54
54
|
*
|
|
55
55
|
* See: [[UrlConfig]] for details
|
|
56
|
-
* @type {
|
|
56
|
+
* @type {import("./url-config").UrlConfigProvider}
|
|
57
57
|
*/
|
|
58
58
|
this.config = urlConfigProvider;
|
|
59
59
|
|
|
@@ -231,7 +231,7 @@ export class UrlService {
|
|
|
231
231
|
hash: this.hash(),
|
|
232
232
|
};
|
|
233
233
|
/**
|
|
234
|
-
* @type {
|
|
234
|
+
* @type {MatchResult}
|
|
235
235
|
*/
|
|
236
236
|
const best = this.match(url);
|
|
237
237
|
const applyResult = pattern([
|
|
@@ -313,7 +313,7 @@ export class UrlService {
|
|
|
313
313
|
*
|
|
314
314
|
* Given a URL (as a [[UrlParts]] object), check all rules and determine the best matching rule.
|
|
315
315
|
* Return the result as a [[MatchResult]].
|
|
316
|
-
* @returns {
|
|
316
|
+
* @returns {any}
|
|
317
317
|
*/
|
|
318
318
|
match(url) {
|
|
319
319
|
url = Object.assign({ path: "", search: {}, hash: "" }, url);
|
|
@@ -275,9 +275,9 @@ function headersGetter(headers) {
|
|
|
275
275
|
* This function is used for both request and response transforming
|
|
276
276
|
*
|
|
277
277
|
* @param {*} data Data to transform.
|
|
278
|
-
* @param {function(string=)} headers HTTP headers getter fn.
|
|
278
|
+
* @param {function(string=):any} headers HTTP headers getter fn.
|
|
279
279
|
* @param {number} status HTTP status code of the response.
|
|
280
|
-
* @param {
|
|
280
|
+
* @param {function(...any): any | Array<Function>} fns Function or an array of functions.
|
|
281
281
|
* @returns {*} Transformed data.
|
|
282
282
|
*/
|
|
283
283
|
function transformData(data, headers, status, fns) {
|
|
@@ -285,9 +285,11 @@ function transformData(data, headers, status, fns) {
|
|
|
285
285
|
return fns(data, headers, status);
|
|
286
286
|
}
|
|
287
287
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
if (Array.isArray(fns)) {
|
|
289
|
+
/** @type {Array<function(...any): any>} */ (fns).forEach((fn) => {
|
|
290
|
+
data = fn(data, headers, status);
|
|
291
|
+
});
|
|
292
|
+
}
|
|
291
293
|
|
|
292
294
|
return data;
|
|
293
295
|
}
|
|
@@ -4,11 +4,6 @@ import { extend, isString, isUndefined, minErr } from "../shared/utils";
|
|
|
4
4
|
var $templateRequestMinErr = minErr("$templateRequest");
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* @ngdoc provider
|
|
8
|
-
* @name $templateRequestProvider
|
|
9
|
-
* @this
|
|
10
|
-
*
|
|
11
|
-
* @description
|
|
12
7
|
* Used to configure the options passed to the {@link $http} service when making a template request.
|
|
13
8
|
*
|
|
14
9
|
* For example, it can be used for specifying the "Accept" header that is sent to the server, when
|
|
@@ -27,8 +22,8 @@ export function TemplateRequestProvider() {
|
|
|
27
22
|
* The {@link $templateRequest} will set the `cache` and the `transformResponse` properties of the
|
|
28
23
|
* options if not overridden here.
|
|
29
24
|
*
|
|
30
|
-
* @param {string=}
|
|
31
|
-
* @returns {string|
|
|
25
|
+
* @param {string=} val new value for the {@link $http} options.
|
|
26
|
+
* @returns {string|TemplateRequestProvider} Returns the {@link $http} options when used as getter and self if used as setter.
|
|
32
27
|
*/
|
|
33
28
|
this.httpOptions = function (val) {
|
|
34
29
|
if (val) {
|
package/src/shared/common.js
CHANGED
|
@@ -345,7 +345,7 @@ export function assertFn(predicateOrMap, errMsg = "assert failure") {
|
|
|
345
345
|
return (obj) => {
|
|
346
346
|
const result = predicateOrMap(obj);
|
|
347
347
|
if (!result) {
|
|
348
|
-
throw new Error(
|
|
348
|
+
throw new Error(errMsg);
|
|
349
349
|
}
|
|
350
350
|
return result;
|
|
351
351
|
};
|
package/src/shared/utils.js
CHANGED
|
@@ -894,7 +894,7 @@ export function toJson(obj, pretty) {
|
|
|
894
894
|
if (!isNumber(pretty)) {
|
|
895
895
|
pretty = pretty ? 2 : null;
|
|
896
896
|
}
|
|
897
|
-
return JSON.stringify(obj, toJsonReplacer, pretty);
|
|
897
|
+
return JSON.stringify(obj, toJsonReplacer, /** @type {Number} */ (pretty));
|
|
898
898
|
}
|
|
899
899
|
|
|
900
900
|
/**
|
package/src/types.js
CHANGED
|
@@ -202,12 +202,18 @@
|
|
|
202
202
|
* https://docs.angularjs.org/api/ng/service/$compile#-controller-
|
|
203
203
|
* http://teropa.info/blog/2015/06/09/transclusion.html
|
|
204
204
|
*
|
|
205
|
-
* @typedef {Object}
|
|
205
|
+
* @typedef {Object} TranscludeFunctionObject
|
|
206
206
|
* @property {function(TScope, CloneAttachFunction, import('./shared/jqlite/jqlite').JQLite=, string=): import('./shared/jqlite/jqlite').JQLite} transcludeWithScope
|
|
207
207
|
* @property {function(CloneAttachFunction=, import('./shared/jqlite/jqlite').JQLite=, string=): import('./shared/jqlite/jqlite').JQLite} transcludeWithoutScope
|
|
208
208
|
* @property {function(string): boolean} isSlotFilled - Returns true if the specified slot contains content (i.e., one or more DOM nodes)
|
|
209
209
|
*/
|
|
210
210
|
|
|
211
|
+
/**
|
|
212
|
+
|
|
213
|
+
*
|
|
214
|
+
* @typedef {function(TScope, CloneAttachFunction, import('./shared/jqlite/jqlite').JQLite=, string=): import('./shared/jqlite/jqlite').JQLite} TranscludeFunction
|
|
215
|
+
*/
|
|
216
|
+
|
|
211
217
|
/**
|
|
212
218
|
* @typedef {function(TScope, CloneAttachFunction, import('./shared/jqlite/jqlite').JQLite=, string=): import('./shared/jqlite/jqlite').JQLite} transcludeWithScope
|
|
213
219
|
*/
|
|
@@ -264,6 +270,8 @@
|
|
|
264
270
|
* HTML template URL.
|
|
265
271
|
* @property {boolean | "element" | { [slot: string]: string } | undefined} [transclude]
|
|
266
272
|
* Transclusion options.
|
|
273
|
+
* @property {function(...any): any} [$$addStateInfo]
|
|
274
|
+
* Hidden properties added by router
|
|
267
275
|
*/
|
|
268
276
|
|
|
269
277
|
/**
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* @property {boolean} constant - Indicates if the expression is constant.
|
|
5
5
|
* @property {boolean} isPure
|
|
6
6
|
* @property {boolean} oneTime
|
|
7
|
+
* @property {function(import('../scope/scope').Scope, import('../scope/scope').WatchListener, boolean, CompiledExpression, string | ((scope: import('../scope/scope').Scope) => any)): any} $$watchDelegate
|
|
7
8
|
* @property {any[]} inputs
|
|
8
9
|
* @property {function(any, any): any} assign - Assigns a value to a context. If value is not provided,
|
|
9
10
|
*/
|
|
@@ -46,10 +47,7 @@ export class $ParseProvider {
|
|
|
46
47
|
* @returns {$ParseProvider}
|
|
47
48
|
*/
|
|
48
49
|
setIdentifierFns: (identifierStart?: (arg0: any) => boolean, identifierContinue?: (arg0: any) => boolean) => $ParseProvider;
|
|
49
|
-
$get: (string | (($filter: any) =>
|
|
50
|
-
(exp: any, interceptorFn: any): any;
|
|
51
|
-
$$getAst: (exp: string) => import("./ast").ASTNode;
|
|
52
|
-
}))[];
|
|
50
|
+
$get: (string | (($filter: (any: any) => any) => ParseService))[];
|
|
53
51
|
}
|
|
54
52
|
export function constantWatchDelegate(scope: any, listener: any, objectEquality: any, parsedExpression: any): any;
|
|
55
53
|
export type CompiledExpressionProps = {
|
|
@@ -63,6 +61,7 @@ export type CompiledExpressionProps = {
|
|
|
63
61
|
constant: boolean;
|
|
64
62
|
isPure: boolean;
|
|
65
63
|
oneTime: boolean;
|
|
64
|
+
$$watchDelegate: (arg0: import("../scope/scope").Scope, arg1: import("../scope/scope").WatchListener, arg2: boolean, arg3: CompiledExpression, arg4: string | ((scope: import("../scope/scope").Scope) => any)) => any;
|
|
66
65
|
inputs: any[];
|
|
67
66
|
/**
|
|
68
67
|
* - Assigns a value to a context. If value is not provided,
|
package/types/core/q/q.d.ts
CHANGED
|
@@ -18,10 +18,10 @@ export class $QProvider {
|
|
|
18
18
|
* This feature is enabled by default.
|
|
19
19
|
*
|
|
20
20
|
* @param {boolean=} value Whether to generate an error when a rejected promise is not handled.
|
|
21
|
-
* @returns {boolean
|
|
21
|
+
* @returns {boolean|$QProvider} Current value when called without a new value or self for
|
|
22
22
|
* chaining otherwise.
|
|
23
23
|
*/
|
|
24
|
-
errorOnUnhandledRejections: (value?: boolean | undefined) => boolean |
|
|
24
|
+
errorOnUnhandledRejections: (value?: boolean | undefined) => boolean | $QProvider;
|
|
25
25
|
}
|
|
26
26
|
export function $$QProvider(): void;
|
|
27
27
|
export class $$QProvider {
|
|
@@ -22,10 +22,10 @@ export class SanitizeUriProvider {
|
|
|
22
22
|
* to the DOM it is inactive and potentially malicious code will not be executed.
|
|
23
23
|
*
|
|
24
24
|
* @param {RegExp=} regexp New regexp to trust urls with.
|
|
25
|
-
* @returns {RegExp|
|
|
25
|
+
* @returns {RegExp|SanitizeUriProvider} Current RegExp if called without value or self for
|
|
26
26
|
* chaining otherwise.
|
|
27
27
|
*/
|
|
28
|
-
aHrefSanitizationTrustedUrlList: (regexp?: RegExp | undefined) => RegExp |
|
|
28
|
+
aHrefSanitizationTrustedUrlList: (regexp?: RegExp | undefined) => RegExp | SanitizeUriProvider;
|
|
29
29
|
/**
|
|
30
30
|
* @description
|
|
31
31
|
* Retrieves or overrides the default regular expression that is used for determining trusted safe
|
|
@@ -45,9 +45,8 @@ export class SanitizeUriProvider {
|
|
|
45
45
|
* to the DOM it is inactive and potentially malicious code will not be executed.
|
|
46
46
|
*
|
|
47
47
|
* @param {RegExp=} regexp New regexp to trust urls with.
|
|
48
|
-
* @returns {RegExp|
|
|
49
|
-
* chaining otherwise.
|
|
48
|
+
* @returns {RegExp|SanitizeUriProvider} Current RegExp if called without value or self for chaining otherwise.
|
|
50
49
|
*/
|
|
51
|
-
imgSrcSanitizationTrustedUrlList: (regexp?: RegExp | undefined) => RegExp |
|
|
50
|
+
imgSrcSanitizationTrustedUrlList: (regexp?: RegExp | undefined) => RegExp | SanitizeUriProvider;
|
|
52
51
|
$get: () => (uri: any, isMediaUrl: any) => any;
|
|
53
52
|
}
|