@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.
- package/dist/angular-ts.esm.js +2 -2
- package/dist/angular-ts.umd.js +2 -12
- package/index.html +3 -74
- package/package.json +1 -1
- package/src/angular.spec.js +5 -0
- package/src/animations/animate-css.js +13 -5
- package/src/animations/animate-queue.js +21 -22
- package/src/animations/animate-runner.js +8 -4
- package/src/animations/animate.md +1 -1
- package/src/animations/animate.spec.js +21 -0
- package/src/animations/animation.js +1 -1
- package/src/binding.spec.js +1 -0
- package/src/core/compile/compile.js +26 -25
- package/src/core/compile/compile.spec.js +266 -17
- package/src/core/controller/controller.js +0 -2
- package/src/core/di/injector.md +1 -1
- package/src/core/di/injector.spec.js +2 -0
- package/src/core/di/internal-injector.js +1 -2
- package/src/core/interpolate/interpolate.js +3 -16
- package/src/core/interpolate/interpolate.spec.js +16 -70
- package/src/core/interval/interval-factory.js +50 -0
- package/src/core/interval/interval.html +18 -0
- package/src/core/interval/interval.js +77 -0
- package/src/core/interval/interval.md +123 -0
- package/src/core/interval/interval.spec.js +280 -0
- package/src/core/interval/interval.test.js +1 -1
- package/src/core/location/location.js +47 -39
- package/src/core/location/location.spec.js +27 -27
- package/src/core/on.spec.js +7 -0
- package/src/core/parse/interpreter.js +7 -10
- package/src/core/parse/parse.js +5 -26
- package/src/core/parse/parse.spec.js +91 -95
- package/src/core/prop.spec.js +60 -4
- package/src/core/q/q.html +18 -0
- package/src/core/q/q.js +472 -0
- package/src/core/q/q.md +211 -0
- package/src/core/q/q.spec.js +2748 -0
- package/src/core/q/q.test.js +12 -0
- package/src/core/sce/sce.spec.js +8 -0
- package/src/core/{model/model.html → scope/scope.html} +1 -1
- package/src/core/scope/scope.js +16 -15
- package/src/core/scope/scope.spec.js +1959 -24
- package/src/core/scope/scope.test.js +12 -0
- package/src/core/timeout/timeout.html +18 -0
- package/src/core/timeout/timeout.js +109 -0
- package/src/core/timeout/timeout.spec.js +354 -0
- package/src/core/timeout/timout.test.js +12 -0
- package/src/core/url-utils/url-utils.spec.js +1 -1
- package/src/directive/aria/aria.js +6 -3
- package/src/directive/aria/aria.spec.js +87 -0
- package/src/directive/attrs/attrs.spec.js +5 -0
- package/src/directive/attrs/boolean.spec.js +15 -0
- package/src/directive/attrs/element-style.spec.js +8 -0
- package/src/directive/attrs/src.spec.js +7 -0
- package/src/directive/bind/bind.spec.js +33 -0
- package/src/directive/bind/bing-html.spec.js +3 -0
- package/src/directive/class/class.js +3 -3
- package/src/directive/class/class.spec.js +75 -9
- package/src/directive/controller/controller.spec.js +13 -0
- package/src/directive/events/click.spec.js +3 -0
- package/src/directive/events/event.spec.js +6 -0
- package/src/directive/form/form.js +3 -2
- package/src/directive/form/form.spec.js +65 -0
- package/src/directive/if/if.spec.js +4 -0
- package/src/directive/include/include.spec.js +59 -8
- package/src/directive/init/init.js +2 -6
- package/src/directive/init/init.spec.js +2 -0
- package/src/directive/input/input.spec.js +136 -0
- package/src/directive/messages/messages.spec.js +35 -4
- package/src/directive/model/model.js +25 -18
- package/src/directive/model/model.spec.js +49 -2
- package/src/directive/model-options/model-options.spec.js +6 -0
- package/src/directive/non-bindable/non-bindable.spec.js +1 -0
- package/src/directive/observe/observe.js +1 -0
- package/src/directive/observe/observe.spec.js +1 -0
- package/src/directive/options/options.spec.js +34 -0
- package/src/directive/ref/href.spec.js +15 -0
- package/src/directive/repeat/repeat.spec.js +135 -8
- package/src/directive/script/script.spec.js +2 -0
- package/src/directive/select/select.js +3 -3
- package/src/directive/select/select.spec.js +96 -0
- package/src/directive/show-hide/show-hide.js +2 -2
- package/src/directive/show-hide/show-hide.spec.js +19 -8
- package/src/directive/style/style.spec.js +7 -0
- package/src/directive/switch/switch.spec.js +5 -5
- package/src/directive/validators/validators.spec.js +1 -0
- package/src/loader.js +1 -0
- package/src/public.js +10 -2
- package/src/router/common/coreservices.js +2 -0
- package/src/router/directives/state-directives.js +14 -6
- package/src/router/directives/state-directives.spec.js +83 -0
- package/src/router/directives/view-directive.js +13 -4
- package/src/router/directives/view-directive.spec.js +71 -25
- package/src/router/hooks/lazy-load.js +2 -2
- package/src/router/hooks/views.js +5 -3
- package/src/router/resolve/resolvable.js +6 -3
- package/src/router/resolve/resolve-context.js +2 -2
- package/src/router/state/state-service.js +4 -4
- package/src/router/state/state.spec.js +5 -2
- package/src/router/state/state.test.js +1 -1
- package/src/router/state/views.js +10 -7
- package/src/router/template-factory.js +6 -3
- package/src/router/template-factory.spec.js +4 -0
- package/src/router/transition/transition-hook.js +1 -1
- package/src/router/transition/transition.js +1 -1
- package/src/router/view-hook.spec.js +2 -2
- package/src/router/view-scroll.js +6 -4
- package/src/services/browser.js +5 -8
- package/src/services/http/http.js +9 -6
- package/src/services/http/http.spec.js +31 -30
- package/src/services/http/template-request.spec.js +10 -0
- package/src/services/http-backend/http-backend.spec.js +3 -3
- package/src/services/template-request.js +4 -2
- package/src/shared/common.js +2 -1
- package/types/core/location/location.d.ts +36 -31
- package/types/core/parse/parse.d.ts +0 -26
- package/types/core/scope/scope.d.ts +11 -11
- package/src/core/model/model.js +0 -944
- package/src/core/model/model.spec.js +0 -3012
- 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
|
});
|