@angular-wave/angular.ts 0.4.2 → 0.4.4

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.
Files changed (150) hide show
  1. package/dist/angular-ts.esm.js +2 -2
  2. package/dist/angular-ts.umd.js +12 -2
  3. package/index.html +74 -3
  4. package/package.json +7 -7
  5. package/src/angular.spec.js +1 -269
  6. package/src/animations/animate-css-driver.js +2 -2
  7. package/src/animations/animate-css.js +12 -21
  8. package/src/animations/animate-js-driver.js +1 -3
  9. package/src/animations/animate-js.js +4 -4
  10. package/src/animations/animate-queue.js +23 -23
  11. package/src/animations/animate-runner.js +4 -8
  12. package/src/animations/animate.md +1 -1
  13. package/src/animations/animate.spec.js +0 -21
  14. package/src/animations/animation.js +4 -4
  15. package/src/animations/shared.js +14 -12
  16. package/src/binding.spec.js +0 -1
  17. package/src/core/cache/cache.js +2 -29
  18. package/src/core/compile/attributes.js +2 -3
  19. package/src/core/compile/compile.js +260 -245
  20. package/src/core/compile/compile.spec.js +63 -317
  21. package/src/core/compile/compile.test.js +1 -1
  22. package/src/core/controller/controller.js +2 -0
  23. package/src/core/di/injector.md +1 -1
  24. package/src/core/di/injector.spec.js +0 -2
  25. package/src/core/di/internal-injector.js +2 -1
  26. package/src/core/interpolate/interpolate.js +16 -3
  27. package/src/core/interpolate/interpolate.spec.js +70 -16
  28. package/src/core/location/location.js +0 -2
  29. package/src/core/location/location.spec.js +27 -27
  30. package/src/core/{scope/scope.html → model/model.html} +1 -1
  31. package/src/core/model/model.js +944 -0
  32. package/src/core/model/model.spec.js +3012 -0
  33. package/src/core/on.spec.js +0 -7
  34. package/src/core/parse/interpreter.js +10 -7
  35. package/src/core/parse/parse.js +28 -7
  36. package/src/core/parse/parse.spec.js +95 -91
  37. package/src/core/prop.spec.js +4 -60
  38. package/src/core/sce/sce.js +1 -2
  39. package/src/core/sce/sce.spec.js +0 -8
  40. package/src/core/scope/scope.js +62 -32
  41. package/src/core/scope/scope.spec.js +25 -1960
  42. package/src/directive/aria/aria.js +3 -6
  43. package/src/directive/aria/aria.spec.js +0 -87
  44. package/src/directive/attrs/attrs.spec.js +0 -5
  45. package/src/directive/{list/list.test.js → attrs/attrs.test.js} +1 -1
  46. package/src/{core/q/q.html → directive/attrs/boolean.html} +1 -1
  47. package/src/directive/attrs/boolean.spec.js +0 -15
  48. package/src/{core/q/q.test.js → directive/attrs/boolean.test.js} +1 -2
  49. package/src/{core/timeout/timeout.html → directive/attrs/element-style.html} +4 -1
  50. package/src/directive/attrs/element-style.spec.js +0 -8
  51. package/src/{core/scope/scope.test.js → directive/attrs/element-style.test.js} +1 -2
  52. package/src/directive/attrs/src.spec.js +0 -7
  53. package/src/directive/bind/bind.spec.js +0 -33
  54. package/src/directive/bind/bing-html.spec.js +1 -4
  55. package/src/{core/interval/interval.html → directive/channel/channel.html} +1 -1
  56. package/src/directive/channel/channel.js +29 -0
  57. package/src/directive/channel/channel.spec.js +52 -0
  58. package/src/directive/channel/channel.test.js +9 -0
  59. package/src/directive/class/class.js +3 -3
  60. package/src/directive/class/class.spec.js +9 -75
  61. package/src/directive/controller/controller.spec.js +0 -13
  62. package/src/directive/events/click.spec.js +0 -3
  63. package/src/directive/events/event.spec.js +0 -6
  64. package/src/directive/form/form.js +14 -22
  65. package/src/directive/form/form.spec.js +0 -65
  66. package/src/directive/if/if.spec.js +2 -7
  67. package/src/directive/if/if.test.js +1 -2
  68. package/src/directive/include/include.js +2 -2
  69. package/src/directive/include/include.spec.js +8 -59
  70. package/src/directive/init/init.js +6 -2
  71. package/src/directive/init/init.spec.js +0 -2
  72. package/src/directive/input/input.js +1 -2
  73. package/src/directive/input/input.spec.js +191 -331
  74. package/src/directive/messages/messages.spec.js +4 -35
  75. package/src/directive/model/model.js +30 -42
  76. package/src/directive/model/model.spec.js +2 -49
  77. package/src/directive/model-options/model-options.js +22 -26
  78. package/src/directive/model-options/model-options.spec.js +0 -6
  79. package/src/directive/non-bindable/non-bindable.spec.js +0 -1
  80. package/src/directive/observe/observe.js +0 -1
  81. package/src/directive/observe/observe.spec.js +0 -1
  82. package/src/directive/options/options.js +1 -3
  83. package/src/directive/options/options.spec.js +3 -38
  84. package/src/directive/ref/href.spec.js +0 -15
  85. package/src/directive/repeat/repeat.js +2 -2
  86. package/src/directive/repeat/repeat.spec.js +56 -192
  87. package/src/directive/script/script.spec.js +0 -2
  88. package/src/directive/select/select.js +3 -3
  89. package/src/directive/select/select.spec.js +9 -106
  90. package/src/directive/show-hide/show-hide.js +2 -2
  91. package/src/directive/show-hide/show-hide.spec.js +8 -19
  92. package/src/directive/style/style.spec.js +0 -7
  93. package/src/directive/switch/switch.js +1 -2
  94. package/src/directive/switch/switch.spec.js +5 -5
  95. package/src/directive/validators/validators.spec.js +0 -1
  96. package/src/loader.js +0 -1
  97. package/src/public.js +75 -80
  98. package/src/router/common/coreservices.js +0 -2
  99. package/src/router/directives/state-directives.js +24 -30
  100. package/src/router/directives/state-directives.spec.js +0 -83
  101. package/src/router/directives/view-directive.js +6 -15
  102. package/src/router/directives/view-directive.spec.js +25 -71
  103. package/src/router/hooks/lazy-load.js +2 -2
  104. package/src/router/hooks/views.js +3 -5
  105. package/src/router/resolve/resolvable.js +3 -6
  106. package/src/router/resolve/resolve-context.js +2 -2
  107. package/src/router/state/state-service.js +4 -4
  108. package/src/router/state/state.spec.js +2 -5
  109. package/src/router/state/views.js +9 -12
  110. package/src/router/template-factory.js +3 -6
  111. package/src/router/template-factory.spec.js +0 -4
  112. package/src/router/transition/transition-hook.js +1 -1
  113. package/src/router/transition/transition.js +1 -1
  114. package/src/router/url/url-service.js +2 -8
  115. package/src/router/url/url-service.spec.js +3 -4
  116. package/src/router/view-hook.spec.js +2 -2
  117. package/src/router/view-scroll.js +4 -6
  118. package/src/services/http/http.js +11 -15
  119. package/src/services/http/http.spec.js +30 -31
  120. package/src/services/http/template-request.spec.js +0 -10
  121. package/src/services/http-backend/http-backend.js +19 -17
  122. package/src/services/http-backend/http-backend.spec.js +3 -3
  123. package/src/services/template-request.js +2 -4
  124. package/src/shared/common.js +6 -10
  125. package/src/shared/jqlite/jqlite.js +14 -15
  126. package/src/shared/jqlite/jqlite.spec.js +2 -2
  127. package/src/shared/utils.js +15 -92
  128. package/types/core/cache/cache.d.ts +1 -1
  129. package/types/core/model/model.d.ts +204 -0
  130. package/types/core/parse/parse.d.ts +26 -0
  131. package/types/core/scope/scope.d.ts +22 -21
  132. package/types/directive/channel/channel.d.ts +11 -0
  133. package/types/directive/form/form.d.ts +1 -0
  134. package/types/shared/common.d.ts +0 -1
  135. package/types/shared/utils.d.ts +0 -35
  136. package/src/core/interval/interval-factory.js +0 -50
  137. package/src/core/interval/interval.js +0 -77
  138. package/src/core/interval/interval.md +0 -123
  139. package/src/core/interval/interval.spec.js +0 -280
  140. package/src/core/q/q.js +0 -472
  141. package/src/core/q/q.md +0 -211
  142. package/src/core/q/q.spec.js +0 -2748
  143. package/src/core/timeout/timeout.js +0 -109
  144. package/src/core/timeout/timeout.spec.js +0 -354
  145. package/src/core/timeout/timout.test.js +0 -12
  146. package/src/directive/list/list.html +0 -18
  147. package/src/directive/list/list.js +0 -46
  148. package/src/directive/list/list.md +0 -22
  149. package/src/directive/list/list.spec.js +0 -172
  150. package/types/directive/list/list.d.ts +0 -4
@@ -41,7 +41,6 @@ describe("ngInclude", () => {
41
41
  );
42
42
  const injector = angular.bootstrap(element);
43
43
  $rootScope = injector.get("$rootScope");
44
- $rootScope.$digest();
45
44
  setTimeout(() => {
46
45
  expect(element.text()).toEqual("hello");
47
46
  dealoc($rootScope);
@@ -57,7 +56,6 @@ describe("ngInclude", () => {
57
56
  $rootScope.fooUrl = $sce.trustAsResourceUrl(
58
57
  "http://localhost:4000/mock/hello",
59
58
  );
60
- $rootScope.$digest();
61
59
  await wait(100);
62
60
  expect(element.text()).toEqual("Hello");
63
61
  dealoc($rootScope);
@@ -73,7 +71,6 @@ describe("ngInclude", () => {
73
71
  $templateCache.set("myUrl", [200, "{{name}}", {}]);
74
72
  $rootScope.name = "misko";
75
73
  $rootScope.url = "myUrl";
76
- $rootScope.$digest();
77
74
  expect(body.text()).toEqual("misko");
78
75
  body.empty();
79
76
  dealoc($rootScope);
@@ -85,8 +82,6 @@ describe("ngInclude", () => {
85
82
  $rootScope = injector.get("$rootScope");
86
83
  $rootScope.expr = "Alibaba";
87
84
  $rootScope.url = "/mock/interpolation";
88
- $rootScope.$digest();
89
-
90
85
  setTimeout(() => {
91
86
  expect(element.text()).toEqual("Alibaba");
92
87
  done();
@@ -98,9 +93,7 @@ describe("ngInclude", () => {
98
93
  const injector = angular.bootstrap(element, ["myModule"]);
99
94
  $rootScope = injector.get("$rootScope");
100
95
  $rootScope.url = "http://example.com/myUrl";
101
- expect(() => {
102
- $rootScope.$digest();
103
- }).toThrowError(/insecurl/);
96
+ expect(() => {}).toThrowError(/insecurl/);
104
97
  });
105
98
 
106
99
  it("should NOT use mistyped expressions ", () => {
@@ -110,9 +103,7 @@ describe("ngInclude", () => {
110
103
  $rootScope.name = "chirayu";
111
104
  let $sce = injector.get("$sce");
112
105
  $rootScope.url = $sce.trustAsUrl("http://example.com/myUrl");
113
- expect(() => {
114
- $rootScope.$digest();
115
- }).toThrowError(/insecurl/);
106
+ expect(() => {}).toThrowError(/insecurl/);
116
107
  });
117
108
 
118
109
  it("should remove previously included text if a falsy value is bound to src", (done) => {
@@ -121,11 +112,9 @@ describe("ngInclude", () => {
121
112
  $rootScope = injector.get("$rootScope");
122
113
  $rootScope.expr = "igor";
123
114
  $rootScope.url = "/mock/interpolation";
124
- $rootScope.$digest();
125
115
  setTimeout(() => {
126
116
  expect(element.text()).toEqual("igor");
127
117
  $rootScope.url = undefined;
128
- $rootScope.$digest();
129
118
  }, 100);
130
119
  setTimeout(() => {
131
120
  expect(element.text()).toEqual("");
@@ -148,8 +137,6 @@ describe("ngInclude", () => {
148
137
  const injector = angular.bootstrap(element, ["myModule"]);
149
138
  $rootScope = injector.get("$rootScope");
150
139
  $rootScope.url = "/mock/interpolation";
151
- $rootScope.$digest();
152
-
153
140
  setTimeout(() => {
154
141
  expect(called).toBe(true);
155
142
  done();
@@ -171,8 +158,6 @@ describe("ngInclude", () => {
171
158
  const injector = angular.bootstrap(element, ["myModule"]);
172
159
  $rootScope = injector.get("$rootScope");
173
160
  $rootScope.url = "/mock/interpolation";
174
- $rootScope.$digest();
175
-
176
161
  setTimeout(() => {
177
162
  expect(called).toBe(true);
178
163
  done();
@@ -195,8 +180,6 @@ describe("ngInclude", () => {
195
180
 
196
181
  const injector = angular.bootstrap(element, ["myModule"]);
197
182
  $rootScope = injector.get("$rootScope");
198
- $rootScope.$digest();
199
-
200
183
  setTimeout(() => {
201
184
  expect(contentLoadedSpy).not.toHaveBeenCalled();
202
185
  expect(contentErrorSpy).toHaveBeenCalled();
@@ -212,12 +195,8 @@ describe("ngInclude", () => {
212
195
  );
213
196
  const injector = angular.bootstrap(element, ["myModule"]);
214
197
  $rootScope = injector.get("$rootScope");
215
- $rootScope.$digest();
216
-
217
198
  expect($rootScope.loaded).not.toBeDefined();
218
199
  $rootScope.url = "/mock/hello";
219
- $rootScope.$digest();
220
-
221
200
  setTimeout(() => {
222
201
  expect(element.text()).toEqual("Hello");
223
202
  expect($rootScope.loaded).toBe(true);
@@ -231,18 +210,14 @@ describe("ngInclude", () => {
231
210
  element = JQLite('<div><ng-include src="url"></ng-include></div>');
232
211
  const injector = angular.bootstrap(element, ["myModule"]);
233
212
  $rootScope = injector.get("$rootScope");
234
- $rootScope.$digest();
235
213
  expect($rootScope.$$childHead).toBeFalsy();
236
214
 
237
215
  $rootScope.url = "/mock/hello";
238
- $rootScope.$digest();
239
-
240
216
  setTimeout(() => {
241
217
  expect($rootScope.$$childHead.$parent).toBe($rootScope);
242
218
  expect(element.text()).toBe("Hello");
243
219
 
244
220
  $rootScope.url = "/mock/401";
245
- $rootScope.$digest();
246
221
  }, 100);
247
222
 
248
223
  setTimeout(() => {
@@ -250,14 +225,12 @@ describe("ngInclude", () => {
250
225
  expect(element.text()).toBe("");
251
226
 
252
227
  $rootScope.url = "/mock/hello";
253
- $rootScope.$digest();
254
228
  }, 200);
255
229
 
256
230
  setTimeout(() => {
257
231
  expect($rootScope.$$childHead.$parent).toBe($rootScope);
258
232
 
259
233
  $rootScope.url = null;
260
- $rootScope.$digest();
261
234
  }, 300);
262
235
 
263
236
  setTimeout(() => {
@@ -272,16 +245,13 @@ describe("ngInclude", () => {
272
245
  const injector = angular.bootstrap(element, ["myModule"]);
273
246
  $rootScope = injector.get("$rootScope");
274
247
  $rootScope.url = "/mock/hello";
275
- $rootScope.$digest();
276
248
  await wait(100);
277
249
 
278
250
  expect(element.text()).toEqual("Hello");
279
251
  $rootScope.url = null;
280
- $rootScope.$digest();
281
252
  await wait(100);
282
253
  expect(element.text()).toEqual("");
283
254
  $rootScope.url = "/mock/hello";
284
- $rootScope.$digest();
285
255
  // No request being made
286
256
  expect(element.text()).toEqual("Hello");
287
257
  });
@@ -292,7 +262,6 @@ describe("ngInclude", () => {
292
262
  const injector = angular.bootstrap(element, ["myModule"]);
293
263
  $rootScope = injector.get("$rootScope");
294
264
  $rootScope.url = "/mock/401";
295
- $rootScope.$digest();
296
265
  expect(element.text()).toBe("");
297
266
  });
298
267
 
@@ -310,7 +279,6 @@ describe("ngInclude", () => {
310
279
  called++;
311
280
  });
312
281
 
313
- $rootScope.$digest();
314
282
  setTimeout(() => {
315
283
  expect(element.text()).toBe("Hello");
316
284
  done();
@@ -325,10 +293,8 @@ describe("ngInclude", () => {
325
293
  const injector = angular.bootstrap(element, ["myModule"]);
326
294
  $rootScope = injector.get("$rootScope");
327
295
  $rootScope.templateUrl = "/mock/hello";
328
- $rootScope.$digest();
329
296
  $rootScope.expr = "test";
330
297
  $rootScope.templateUrl = "/mock/interpolation";
331
- $rootScope.$digest();
332
298
  expect(element.text()).toBe("");
333
299
 
334
300
  setTimeout(() => {
@@ -346,21 +312,15 @@ describe("ngInclude", () => {
346
312
  $rootScope = injector.get("$rootScope");
347
313
  $rootScope.hrefUrl = "fooUrl1";
348
314
  $rootScope.includeUrl = "/mock/hello";
349
- $rootScope.$digest();
350
-
351
315
  await wait(100);
352
316
  expect(element.text()).toBe("Hello");
353
317
  expect(element.find("span").attr("foo")).toBe("#/fooUrl1");
354
318
 
355
319
  $rootScope.hrefUrl = "fooUrl2";
356
- $rootScope.$digest();
357
-
358
320
  expect(element.text()).toBe("Hello");
359
321
  expect(element.find("span").attr("foo")).toBe("#/fooUrl2");
360
322
 
361
323
  $rootScope.includeUrl = "/mock/hello2";
362
- $rootScope.$digest();
363
-
364
324
  await wait(100);
365
325
  expect(element.text()).toBe("Hello2");
366
326
  expect(element.find("span").attr("foo")).toBe("#/fooUrl2");
@@ -378,7 +338,6 @@ describe("ngInclude", () => {
378
338
  element = JQLite("<svg><test></test></svg>");
379
339
  const injector = angular.bootstrap(element, ["myModule"]);
380
340
  $rootScope = injector.get("$rootScope");
381
- $rootScope.$digest();
382
341
  await wait(100);
383
342
  const child = element.find("rect");
384
343
  expect(child.length).toBe(2);
@@ -397,7 +356,6 @@ describe("ngInclude", () => {
397
356
  element = JQLite("<svg><test></test></svg>");
398
357
  const injector = angular.bootstrap(element, ["myModule"]);
399
358
  $rootScope = injector.get("$rootScope");
400
- $rootScope.$digest();
401
359
  await wait(200);
402
360
  expect(element.find("a").length).toBe(0);
403
361
  });
@@ -410,10 +368,7 @@ describe("ngInclude", () => {
410
368
  const injector = angular.bootstrap(element, ["myModule"]);
411
369
  $rootScope = injector.get("$rootScope");
412
370
  $rootScope.show = true;
413
- $rootScope.$digest();
414
371
  $rootScope.show = false;
415
- $rootScope.$digest();
416
-
417
372
  setTimeout(() => {
418
373
  expect(element.text()).toBe("");
419
374
  done();
@@ -428,8 +383,6 @@ describe("ngInclude", () => {
428
383
  const spy = spyOn($rootScope, "$digest").and.callThrough();
429
384
 
430
385
  $rootScope.url = "/mock/hello";
431
- $rootScope.$digest();
432
-
433
386
  setTimeout(() => {
434
387
  expect(element.text()).toEqual("Hello");
435
388
  $rootScope.$apply('url = "/mock/hello2"');
@@ -491,8 +444,6 @@ describe("ngInclude", () => {
491
444
  $rootScope.value = true;
492
445
  });
493
446
 
494
- $rootScope.$digest();
495
-
496
447
  setTimeout(() => {
497
448
  expect(autoScrollSpy).toHaveBeenCalled();
498
449
  done();
@@ -514,8 +465,6 @@ describe("ngInclude", () => {
514
465
  $rootScope.$apply(() => {
515
466
  $rootScope.tpl = "/mock/hello";
516
467
  });
517
- $rootScope.$digest();
518
-
519
468
  setTimeout(() => {
520
469
  expect(autoScrollSpy).not.toHaveBeenCalled();
521
470
  done();
@@ -568,7 +517,7 @@ describe("ngInclude", () => {
568
517
  // expect($animate.queue.shift().event).toBe("enter");
569
518
 
570
519
  // $animate.flush();
571
- // $rootScope.$digest();
520
+ // ;
572
521
 
573
522
  // expect(autoScrollSpy).toHaveBeenCalled();
574
523
  // },
@@ -714,7 +663,7 @@ describe("ngInclude", () => {
714
663
  // element = $compile(
715
664
  // html("<div><div " + 'ng-include="tpl">' + "</div></div>"),
716
665
  // )($rootScope);
717
- // $rootScope.$digest();
666
+ // ;
718
667
 
719
668
  // const animation = $animate.queue.pop();
720
669
  // expect(animation.event).toBe("enter");
@@ -728,14 +677,14 @@ describe("ngInclude", () => {
728
677
  // element = $compile(
729
678
  // html("<div><div " + 'ng-include="tpl">' + "</div></div>"),
730
679
  // )($rootScope);
731
- // $rootScope.$digest();
680
+ // ;
732
681
 
733
682
  // let animation = $animate.queue.shift();
734
683
  // expect(animation.event).toBe("enter");
735
684
  // expect(animation.element.text()).toBe("data");
736
685
 
737
686
  // $rootScope.tpl = "";
738
- // $rootScope.$digest();
687
+ // ;
739
688
 
740
689
  // animation = $animate.queue.shift();
741
690
  // expect(animation.event).toBe("leave");
@@ -750,13 +699,13 @@ describe("ngInclude", () => {
750
699
  // element = $compile(
751
700
  // html("<div><div " + 'ng-include="tpl">' + "</div></div>"),
752
701
  // )($rootScope);
753
- // $rootScope.$digest();
702
+ // ;
754
703
 
755
704
  // const item1 = $animate.queue.shift().element;
756
705
  // expect(item1.text()).toBe("one");
757
706
 
758
707
  // $rootScope.tpl = "two";
759
- // $rootScope.$digest();
708
+ // ;
760
709
 
761
710
  // const itemA = $animate.queue.shift().element;
762
711
  // const itemB = $animate.queue.shift().element;
@@ -6,8 +6,12 @@ export function ngInitDirective() {
6
6
  priority: 450,
7
7
  compile() {
8
8
  return {
9
- pre(scope, _element, attrs) {
10
- scope.$eval(attrs.ngInit);
9
+ pre(scope, element, attrs) {
10
+ if (element.controller()) {
11
+ element.controller().$eval(attrs.ngInit);
12
+ } else {
13
+ scope.$eval(attrs.ngInit);
14
+ }
11
15
  },
12
16
  };
13
17
  },
@@ -39,7 +39,6 @@ describe("ngInit", () => {
39
39
  });
40
40
  injector = angular.bootstrap(element, ["myModule"]);
41
41
  $rootScope = injector.get("$rootScope");
42
- $rootScope.$digest();
43
42
  expect($rootScope.template).toEqual("template2.tpl");
44
43
  setTimeout(() => {
45
44
  expect(element.find("span").text()).toEqual("2");
@@ -59,7 +58,6 @@ describe("ngInit", () => {
59
58
  '<div><div ng-controller="TestCtrl" ' +
60
59
  'ng-init="test=123"></div></div>',
61
60
  )($rootScope);
62
- $rootScope.$digest();
63
61
  expect($rootScope.test).toBeUndefined();
64
62
  expect($rootScope.$$childHead.test).toEqual(123);
65
63
  });
@@ -8,7 +8,6 @@ import {
8
8
  isNumber,
9
9
  isNumberNaN,
10
10
  isDate,
11
- forEach,
12
11
  convertTimezoneToLocal,
13
12
  addDateMinutes,
14
13
  timezoneToOffset,
@@ -286,7 +285,7 @@ export function createDateParser(regexp, mapping) {
286
285
  map = { yyyy: 1970, MM: 1, dd: 1, HH: 0, mm: 0, ss: 0, sss: 0 };
287
286
  }
288
287
 
289
- forEach(parts, (part, index) => {
288
+ Object.entries(parts).forEach(([index, part]) => {
290
289
  if (index < mapping.length) {
291
290
  map[mapping[index]] = +part;
292
291
  }