@angular-wave/angular.ts 0.4.4 → 0.4.5

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 (120) hide show
  1. package/dist/angular-ts.esm.js +2 -2
  2. package/dist/angular-ts.umd.js +2 -12
  3. package/index.html +3 -74
  4. package/package.json +1 -1
  5. package/src/angular.spec.js +5 -0
  6. package/src/animations/animate-css.js +13 -5
  7. package/src/animations/animate-queue.js +21 -22
  8. package/src/animations/animate-runner.js +8 -4
  9. package/src/animations/animate.md +1 -1
  10. package/src/animations/animate.spec.js +21 -0
  11. package/src/animations/animation.js +1 -1
  12. package/src/binding.spec.js +1 -0
  13. package/src/core/compile/compile.js +26 -25
  14. package/src/core/compile/compile.spec.js +266 -17
  15. package/src/core/controller/controller.js +0 -2
  16. package/src/core/di/injector.md +1 -1
  17. package/src/core/di/injector.spec.js +2 -0
  18. package/src/core/di/internal-injector.js +1 -2
  19. package/src/core/interpolate/interpolate.js +3 -16
  20. package/src/core/interpolate/interpolate.spec.js +16 -70
  21. package/src/core/interval/interval-factory.js +50 -0
  22. package/src/core/interval/interval.html +18 -0
  23. package/src/core/interval/interval.js +77 -0
  24. package/src/core/interval/interval.md +123 -0
  25. package/src/core/interval/interval.spec.js +280 -0
  26. package/src/core/interval/interval.test.js +1 -1
  27. package/src/core/location/location.js +47 -39
  28. package/src/core/location/location.spec.js +27 -27
  29. package/src/core/on.spec.js +7 -0
  30. package/src/core/parse/interpreter.js +7 -10
  31. package/src/core/parse/parse.js +5 -26
  32. package/src/core/parse/parse.spec.js +91 -95
  33. package/src/core/prop.spec.js +60 -4
  34. package/src/core/q/q.html +18 -0
  35. package/src/core/q/q.js +472 -0
  36. package/src/core/q/q.md +211 -0
  37. package/src/core/q/q.spec.js +2748 -0
  38. package/src/core/q/q.test.js +12 -0
  39. package/src/core/sce/sce.spec.js +8 -0
  40. package/src/core/{model/model.html → scope/scope.html} +1 -1
  41. package/src/core/scope/scope.js +16 -15
  42. package/src/core/scope/scope.spec.js +1959 -24
  43. package/src/core/scope/scope.test.js +12 -0
  44. package/src/core/timeout/timeout.html +18 -0
  45. package/src/core/timeout/timeout.js +109 -0
  46. package/src/core/timeout/timeout.spec.js +354 -0
  47. package/src/core/timeout/timout.test.js +12 -0
  48. package/src/core/url-utils/url-utils.spec.js +1 -1
  49. package/src/directive/aria/aria.js +6 -3
  50. package/src/directive/aria/aria.spec.js +87 -0
  51. package/src/directive/attrs/attrs.spec.js +5 -0
  52. package/src/directive/attrs/boolean.spec.js +15 -0
  53. package/src/directive/attrs/element-style.spec.js +8 -0
  54. package/src/directive/attrs/src.spec.js +7 -0
  55. package/src/directive/bind/bind.spec.js +33 -0
  56. package/src/directive/bind/bing-html.spec.js +3 -0
  57. package/src/directive/class/class.js +3 -3
  58. package/src/directive/class/class.spec.js +75 -9
  59. package/src/directive/controller/controller.spec.js +13 -0
  60. package/src/directive/events/click.spec.js +3 -0
  61. package/src/directive/events/event.spec.js +6 -0
  62. package/src/directive/form/form.js +3 -2
  63. package/src/directive/form/form.spec.js +65 -0
  64. package/src/directive/if/if.spec.js +4 -0
  65. package/src/directive/include/include.spec.js +59 -8
  66. package/src/directive/init/init.js +2 -6
  67. package/src/directive/init/init.spec.js +2 -0
  68. package/src/directive/input/input.spec.js +136 -0
  69. package/src/directive/messages/messages.spec.js +35 -4
  70. package/src/directive/model/model.js +25 -18
  71. package/src/directive/model/model.spec.js +49 -2
  72. package/src/directive/model-options/model-options.spec.js +6 -0
  73. package/src/directive/non-bindable/non-bindable.spec.js +1 -0
  74. package/src/directive/observe/observe.js +1 -0
  75. package/src/directive/observe/observe.spec.js +1 -0
  76. package/src/directive/options/options.spec.js +34 -0
  77. package/src/directive/ref/href.spec.js +15 -0
  78. package/src/directive/repeat/repeat.spec.js +135 -8
  79. package/src/directive/script/script.spec.js +2 -0
  80. package/src/directive/select/select.js +3 -3
  81. package/src/directive/select/select.spec.js +96 -0
  82. package/src/directive/show-hide/show-hide.js +2 -2
  83. package/src/directive/show-hide/show-hide.spec.js +19 -8
  84. package/src/directive/style/style.spec.js +7 -0
  85. package/src/directive/switch/switch.spec.js +5 -5
  86. package/src/directive/validators/validators.spec.js +1 -0
  87. package/src/loader.js +1 -0
  88. package/src/public.js +10 -2
  89. package/src/router/common/coreservices.js +2 -0
  90. package/src/router/directives/state-directives.js +14 -6
  91. package/src/router/directives/state-directives.spec.js +83 -0
  92. package/src/router/directives/view-directive.js +13 -4
  93. package/src/router/directives/view-directive.spec.js +71 -25
  94. package/src/router/hooks/lazy-load.js +2 -2
  95. package/src/router/hooks/views.js +5 -3
  96. package/src/router/resolve/resolvable.js +6 -3
  97. package/src/router/resolve/resolve-context.js +2 -2
  98. package/src/router/state/state-service.js +4 -4
  99. package/src/router/state/state.spec.js +5 -2
  100. package/src/router/state/state.test.js +1 -1
  101. package/src/router/state/views.js +10 -7
  102. package/src/router/template-factory.js +6 -3
  103. package/src/router/template-factory.spec.js +4 -0
  104. package/src/router/transition/transition-hook.js +1 -1
  105. package/src/router/transition/transition.js +1 -1
  106. package/src/router/view-hook.spec.js +2 -2
  107. package/src/router/view-scroll.js +6 -4
  108. package/src/services/browser.js +5 -8
  109. package/src/services/http/http.js +9 -6
  110. package/src/services/http/http.spec.js +31 -30
  111. package/src/services/http/template-request.spec.js +10 -0
  112. package/src/services/http-backend/http-backend.spec.js +3 -3
  113. package/src/services/template-request.js +4 -2
  114. package/src/shared/common.js +2 -1
  115. package/types/core/location/location.d.ts +36 -31
  116. package/types/core/parse/parse.d.ts +0 -26
  117. package/types/core/scope/scope.d.ts +11 -11
  118. package/src/core/model/model.js +0 -944
  119. package/src/core/model/model.spec.js +0 -3012
  120. package/types/core/model/model.d.ts +0 -204
@@ -387,6 +387,8 @@ describe("ngOptions", () => {
387
387
  "ng-model": "selected",
388
388
  "ng-options": "option.id as option.display for option in values",
389
389
  });
390
+ scope.$digest();
391
+
390
392
  const options = element.find("option");
391
393
  expect(options.length).toEqual(2);
392
394
  expect(options.eq(0)).toEqualOption("FF0000", "red");
@@ -398,6 +400,8 @@ describe("ngOptions", () => {
398
400
  expect(options.eq(0)[0].selected).toBe(true);
399
401
 
400
402
  scope.selected = "0000FF";
403
+ scope.$digest();
404
+
401
405
  expect(options.eq(1)[0].getAttribute("selected")).toBe("selected");
402
406
  expect(options.eq(1).attr("selected")).toBe("selected");
403
407
  expect(options.eq(1)[0].selected).toBe(true);
@@ -434,6 +438,7 @@ describe("ngOptions", () => {
434
438
  { id: 0, label: "x" },
435
439
  { id: 1, label: "y" },
436
440
  ];
441
+ scope.$digest();
437
442
  const options = element.find("option");
438
443
  expect(options.length).toEqual(2);
439
444
  expect(options.eq(0)).toEqualOption(0, "x");
@@ -607,6 +612,8 @@ describe("ngOptions", () => {
607
612
  scope.array.other = "do not watch";
608
613
  scope.array.fn = function () {};
609
614
  scope.selected = "b";
615
+ scope.$digest();
616
+
610
617
  expect(scope.createLabel).toHaveBeenCalledWith("a");
611
618
  expect(scope.createLabel).toHaveBeenCalledWith("b");
612
619
  expect(scope.createLabel).toHaveBeenCalledWith("c");
@@ -628,6 +635,8 @@ describe("ngOptions", () => {
628
635
  $property: "invisible",
629
636
  };
630
637
  scope.selected = "regularProperty";
638
+ scope.$digest();
639
+
631
640
  expect(scope.createLabel).toHaveBeenCalledWith("regularProperty");
632
641
  expect(scope.createLabel).not.toHaveBeenCalledWith("$$private");
633
642
  expect(scope.createLabel).not.toHaveBeenCalledWith("$property");
@@ -679,6 +688,8 @@ describe("ngOptions", () => {
679
688
  expect(optionToSelect.text()).toBe("B");
680
689
 
681
690
  optionToSelect[0].selected = true;
691
+ scope.$digest();
692
+
682
693
  expect(optionToSelect[0].selected).toBe(true);
683
694
  expect(scope.selected).toBe(scope.values[0]);
684
695
  });
@@ -771,6 +782,7 @@ describe("ngOptions", () => {
771
782
 
772
783
  // Change the scope but the options should not change
773
784
  scope.arr = ["w", "x", "y", "z"];
785
+ scope.$digest();
774
786
  options = element.find("option");
775
787
  expect(options.length).toEqual(4);
776
788
  expect(options.eq(0)).toEqualUnknownOption();
@@ -799,23 +811,30 @@ describe("ngOptions", () => {
799
811
  expect(options[2].selected).not.toBe(true);
800
812
 
801
813
  scope.selected = scope.values[0];
814
+ scope.$digest();
815
+
802
816
  expect(options[0].selected).not.toBe(true);
803
817
  expect(options[1].selected).toBe(true);
804
818
  expect(options[2].selected).not.toBe(true);
805
819
 
806
820
  scope.selected = scope.values[1];
821
+ scope.$digest();
822
+
807
823
  expect(options[0].selected).not.toBe(true);
808
824
  expect(options[1].selected).not.toBe(true);
809
825
  expect(options[2].selected).toBe(true);
810
826
 
811
827
  // This will select the empty option
812
828
  scope.selected = null;
829
+ scope.$digest();
830
+
813
831
  expect(options[0].selected).toBe(true);
814
832
  expect(options[1].selected).not.toBe(true);
815
833
  expect(options[2].selected).not.toBe(true);
816
834
 
817
835
  // This will add and select the unknown option
818
836
  scope.selected = "unmatched value";
837
+ scope.$digest();
819
838
  options = element.find("option");
820
839
 
821
840
  expect(options[0].selected).toBe(true);
@@ -825,6 +844,7 @@ describe("ngOptions", () => {
825
844
 
826
845
  // Back to matched value
827
846
  scope.selected = scope.values[1];
847
+ scope.$digest();
828
848
  options = element.find("option");
829
849
 
830
850
  expect(options[0].selected).not.toBe(true);
@@ -1510,6 +1530,7 @@ describe("ngOptions", () => {
1510
1530
  expect(scope.selected).toEqual(scope.arr[1]);
1511
1531
 
1512
1532
  scope.selected = {};
1533
+ scope.$digest();
1513
1534
  expect(options[0].selected).toBeTrue();
1514
1535
  expect(options[1].selected).not.toBeTrue();
1515
1536
  expect(options[2].selected).not.toBeTrue();
@@ -1847,6 +1868,8 @@ describe("ngOptions", () => {
1847
1868
  { cls: "one", name: "Beta" },
1848
1869
  { cls: "two", name: "Gamma" },
1849
1870
  ];
1871
+ scope.$digest();
1872
+
1850
1873
  optgroups = element.find("optgroup");
1851
1874
  expect(optgroups.length).toBe(2);
1852
1875
 
@@ -1872,6 +1895,8 @@ describe("ngOptions", () => {
1872
1895
  { cls: "two", name: "Delta" },
1873
1896
  { cls: "three", name: "Epsilon" },
1874
1897
  );
1898
+ scope.$digest();
1899
+
1875
1900
  optgroups = element.find("optgroup");
1876
1901
  expect(optgroups.length).toBe(3);
1877
1902
 
@@ -2329,6 +2354,8 @@ describe("ngOptions", () => {
2329
2354
  expect(element[0].value).toBe("?");
2330
2355
 
2331
2356
  scope.selected = undefined;
2357
+ scope.$digest();
2358
+
2332
2359
  expect(element[0].value).toBe("");
2333
2360
  });
2334
2361
 
@@ -2587,6 +2614,7 @@ describe("ngOptions", () => {
2587
2614
  createSingleSelect(true);
2588
2615
  // ensure the first option (the blank option) is selected
2589
2616
  expect(element[0].selectedIndex).toEqual(0);
2617
+ scope.$digest();
2590
2618
  // ensure the option has not changed following the digest
2591
2619
  expect(element[0].selectedIndex).toEqual(0);
2592
2620
  });
@@ -2737,6 +2765,7 @@ describe("ngOptions", () => {
2737
2765
  element = $compile(
2738
2766
  '<custom-select ng-model="value" options="options"></custom-select>',
2739
2767
  )(scope);
2768
+ scope.$digest();
2740
2769
  }).not.toThrow();
2741
2770
 
2742
2771
  dealoc(element);
@@ -2911,6 +2940,7 @@ describe("ngOptions", () => {
2911
2940
  scope.values = { 0: "A", 1: "B" };
2912
2941
 
2913
2942
  scope.selected = ["1"];
2943
+ scope.$digest();
2914
2944
  expect(element.find("option")[1].selected).toBe(true);
2915
2945
 
2916
2946
  element.find("option")[0].selected = true;
@@ -3398,6 +3428,7 @@ describe("ngOptions", () => {
3398
3428
  });
3399
3429
 
3400
3430
  it("should fail validation when $asyncValidators fail", () => {
3431
+ let $q = injector.get("$q");
3401
3432
  let defer;
3402
3433
  createSelect({
3403
3434
  name: "select",
@@ -3416,12 +3447,14 @@ describe("ngOptions", () => {
3416
3447
  expect(element).toEqualSelectValue("third");
3417
3448
 
3418
3449
  defer.reject();
3450
+ scope.$digest();
3419
3451
  expect(scope.form.select.$pending).toBeUndefined();
3420
3452
  expect(scope.value).toBeUndefined();
3421
3453
  expect(element).toEqualSelectValue("third");
3422
3454
  });
3423
3455
 
3424
3456
  it("should pass validation when $asyncValidators pass", () => {
3457
+ let $q = injector.get("$q");
3425
3458
  let defer;
3426
3459
  createSelect({
3427
3460
  name: "select",
@@ -3440,6 +3473,7 @@ describe("ngOptions", () => {
3440
3473
  expect(element).toEqualSelectValue("third");
3441
3474
 
3442
3475
  defer.resolve();
3476
+ scope.$digest();
3443
3477
  expect(scope.form.select.$pending).toBeUndefined();
3444
3478
  expect(scope.value).toBe("third");
3445
3479
  expect(element).toEqualSelectValue("third");
@@ -29,6 +29,7 @@ describe("ngHref", () => {
29
29
 
30
30
  it("should interpolate the expression and bind to href", () => {
31
31
  element = $compile('<a ng-href="some/{{id}}"></div>')($rootScope);
32
+ $rootScope.$digest();
32
33
  expect(element.attr("href")).toEqual("some/");
33
34
 
34
35
  $rootScope.$apply(() => {
@@ -41,25 +42,31 @@ describe("ngHref", () => {
41
42
  element = $compile('<a ng-href="{{url}}" rel="{{rel}}"></a>')($rootScope);
42
43
  $rootScope.url = "http://server";
43
44
  $rootScope.rel = "REL";
45
+ $rootScope.$digest();
44
46
  expect(element.attr("href")).toEqual("http://server");
45
47
  expect(element.attr("rel")).toEqual("REL");
46
48
  });
47
49
 
48
50
  it("should bind href even if no interpolation", () => {
49
51
  element = $compile('<a ng-href="http://server"></a>')($rootScope);
52
+ $rootScope.$digest();
50
53
  expect(element.attr("href")).toEqual("http://server");
51
54
  });
52
55
 
53
56
  it("should not set the href if ng-href is empty", () => {
54
57
  $rootScope.url = null;
55
58
  element = $compile('<a ng-href="{{url}}">')($rootScope);
59
+ $rootScope.$digest();
56
60
  expect(element.attr("href")).toEqual(undefined);
57
61
  });
58
62
 
59
63
  it("should remove the href if ng-href changes to empty", () => {
60
64
  $rootScope.url = "http://www.google.com/";
61
65
  element = $compile('<a ng-href="{{url}}">')($rootScope);
66
+ $rootScope.$digest();
67
+
62
68
  $rootScope.url = null;
69
+ $rootScope.$digest();
63
70
  expect(element.attr("href")).toEqual(undefined);
64
71
  });
65
72
 
@@ -67,22 +74,26 @@ describe("ngHref", () => {
67
74
  /* eslint no-script-url: "off" */
68
75
  $rootScope.imageUrl = "javascript:alert(1);";
69
76
  element = $compile('<a ng-href="{{imageUrl}}">')($rootScope);
77
+ $rootScope.$digest();
70
78
  expect(element.attr("href")).toBe("unsafe:javascript:alert(1);");
71
79
  });
72
80
 
73
81
  it("should sanitize non-interpolated url", () => {
74
82
  element = $compile('<a ng-href="javascript:alert(1);">')($rootScope);
83
+ $rootScope.$digest();
75
84
  expect(element.attr("href")).toBe("unsafe:javascript:alert(1);");
76
85
  });
77
86
 
78
87
  it("should bind numbers", () => {
79
88
  element = $compile('<a ng-href="{{1234}}"></a>')($rootScope);
89
+ $rootScope.$digest();
80
90
  expect(element.attr("href")).toEqual("1234");
81
91
  });
82
92
 
83
93
  it("should bind and sanitize the result of a (custom) toString() function", () => {
84
94
  $rootScope.value = {};
85
95
  element = $compile('<a ng-href="{{value}}"></a>')($rootScope);
96
+ $rootScope.$digest();
86
97
  expect(element.attr("href")).toEqual("[object Object]");
87
98
 
88
99
  function SafeClass() {}
@@ -92,6 +103,7 @@ describe("ngHref", () => {
92
103
  };
93
104
 
94
105
  $rootScope.value = new SafeClass();
106
+ $rootScope.$digest();
95
107
  expect(element.attr("href")).toEqual("custom value");
96
108
 
97
109
  function UnsafeClass() {}
@@ -101,6 +113,7 @@ describe("ngHref", () => {
101
113
  };
102
114
 
103
115
  $rootScope.value = new UnsafeClass();
116
+ $rootScope.$digest();
104
117
  expect(element.attr("href")).toEqual("unsafe:javascript:alert(1);");
105
118
  });
106
119
 
@@ -111,6 +124,7 @@ describe("ngHref", () => {
111
124
  $rootScope,
112
125
  );
113
126
  const child = element.children("a");
127
+ $rootScope.$digest();
114
128
  expect(child.attr("xlink:href")).toEqual("some/");
115
129
 
116
130
  $rootScope.$apply(() => {
@@ -124,6 +138,7 @@ describe("ngHref", () => {
124
138
  $rootScope,
125
139
  );
126
140
  const child = element.children("a");
141
+ $rootScope.$digest();
127
142
  expect(child.attr("xlink:href")).toEqual("http://server");
128
143
  });
129
144
  });