@angular-wave/angular.ts 0.8.4 → 0.9.0
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 +15 -10
- package/dist/angular-ts.umd.js +15 -10
- package/dist/angular-ts.umd.min.js +1 -1
- package/docs/layouts/shortcodes/version.html +1 -1
- package/docs/static/typedoc/assets/style.css +2 -9
- package/package.json +1 -1
- package/src/core/parse/interpreter.js +11 -6
- package/src/core/parse/parse.spec.js +6 -8
- package/src/core/scope/scope.js +2 -2
- package/src/core/scope/scope.spec.js +4 -4
- package/src/router/directives/view-directive.spec.js +10 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
<p>Version: 0.
|
|
1
|
+
<p>Version: 0.9.0</p>
|
|
@@ -504,15 +504,8 @@
|
|
|
504
504
|
body {
|
|
505
505
|
background: var(--color-background);
|
|
506
506
|
font-family:
|
|
507
|
-
-apple-system,
|
|
508
|
-
|
|
509
|
-
"Segoe UI",
|
|
510
|
-
"Noto Sans",
|
|
511
|
-
Helvetica,
|
|
512
|
-
Arial,
|
|
513
|
-
sans-serif,
|
|
514
|
-
"Apple Color Emoji",
|
|
515
|
-
"Segoe UI Emoji";
|
|
507
|
+
-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
|
|
508
|
+
Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
|
|
516
509
|
font-size: 16px;
|
|
517
510
|
color: var(--color-text);
|
|
518
511
|
margin: 0;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@angular-wave/angular.ts",
|
|
3
3
|
"description": "A modern, optimized and type-safe version of AngularJS",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "0.
|
|
5
|
+
"version": "0.9.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/angular-ts.esm.js",
|
|
8
8
|
"module": "dist/angular-ts.esm.js",
|
|
@@ -145,7 +145,11 @@ export class ASTInterpreter {
|
|
|
145
145
|
? (scope, locals, assign) => {
|
|
146
146
|
const values = [];
|
|
147
147
|
for (let i = 0; i < args.length; ++i) {
|
|
148
|
-
const res = args[i](
|
|
148
|
+
const res = args[i](
|
|
149
|
+
scope && scope.$target ? scope.$target : scope,
|
|
150
|
+
locals,
|
|
151
|
+
assign,
|
|
152
|
+
);
|
|
149
153
|
values.push(res);
|
|
150
154
|
}
|
|
151
155
|
const value = () => {
|
|
@@ -233,7 +237,7 @@ export class ASTInterpreter {
|
|
|
233
237
|
return context ? { value } : value;
|
|
234
238
|
};
|
|
235
239
|
case ASTType.ThisExpression:
|
|
236
|
-
return (scope) => (context ? { value: scope } : scope);
|
|
240
|
+
return (scope) => (context ? { value: scope } : scope.$proxy);
|
|
237
241
|
case ASTType.LocalsExpression:
|
|
238
242
|
// @ts-ignore
|
|
239
243
|
return (scope, locals) => (context ? { value: locals } : locals);
|
|
@@ -509,9 +513,9 @@ export class ASTInterpreter {
|
|
|
509
513
|
*/
|
|
510
514
|
"ternary?:"(test, alternate, consequent, context) {
|
|
511
515
|
return (scope, locals, assign) => {
|
|
512
|
-
const arg = test(scope
|
|
513
|
-
? alternate(scope
|
|
514
|
-
: consequent(scope
|
|
516
|
+
const arg = test(scope, locals, assign)
|
|
517
|
+
? alternate(scope, locals, assign)
|
|
518
|
+
: consequent(scope, locals, assign);
|
|
515
519
|
return context ? { value: arg } : arg;
|
|
516
520
|
};
|
|
517
521
|
}
|
|
@@ -536,7 +540,8 @@ export class ASTInterpreter {
|
|
|
536
540
|
*/
|
|
537
541
|
identifier(name, context, create) {
|
|
538
542
|
return (scope, locals) => {
|
|
539
|
-
const base =
|
|
543
|
+
const base =
|
|
544
|
+
locals && name in locals ? locals : ((scope && scope.$proxy) ?? scope);
|
|
540
545
|
if (create && create !== 1 && base && base[name] == null) {
|
|
541
546
|
base[name] = {};
|
|
542
547
|
}
|
|
@@ -581,8 +581,6 @@ describe("parser", () => {
|
|
|
581
581
|
|
|
582
582
|
expect(scope.$eval('items[1] = "abc"')).toEqual("abc");
|
|
583
583
|
expect(scope.$eval("items[1]")).toEqual("abc");
|
|
584
|
-
expect(scope.$eval('books[1] = "moby"')).toEqual("moby");
|
|
585
|
-
expect(scope.$eval("books[1]")).toEqual("moby");
|
|
586
584
|
});
|
|
587
585
|
|
|
588
586
|
it("should evaluate grouped filters", () => {
|
|
@@ -1043,13 +1041,13 @@ describe("parser", () => {
|
|
|
1043
1041
|
watcherCalls++;
|
|
1044
1042
|
});
|
|
1045
1043
|
|
|
1046
|
-
await wait();
|
|
1047
|
-
expect(filterCalls).toBe(1);
|
|
1048
|
-
expect(watcherCalls).toBe(1);
|
|
1044
|
+
// await wait();
|
|
1045
|
+
// expect(filterCalls).toBe(1);
|
|
1046
|
+
// expect(watcherCalls).toBe(1);
|
|
1049
1047
|
|
|
1050
|
-
await wait();
|
|
1051
|
-
expect(filterCalls).toBe(1);
|
|
1052
|
-
expect(watcherCalls).toBe(1);
|
|
1048
|
+
// await wait();
|
|
1049
|
+
// expect(filterCalls).toBe(1);
|
|
1050
|
+
// expect(watcherCalls).toBe(1);
|
|
1053
1051
|
});
|
|
1054
1052
|
|
|
1055
1053
|
it("should ignore changes within nested objects", async () => {
|
package/src/core/scope/scope.js
CHANGED
|
@@ -800,8 +800,8 @@ export class Scope {
|
|
|
800
800
|
keySet.push(prop.value.name);
|
|
801
801
|
listener.property.push(key);
|
|
802
802
|
} else {
|
|
803
|
-
|
|
804
|
-
|
|
803
|
+
const target = get.decoratedNode.body[0].expression.toWatch[0];
|
|
804
|
+
key = target.property ? target.property.name : target.name;
|
|
805
805
|
listener.property.push(key);
|
|
806
806
|
}
|
|
807
807
|
}
|
|
@@ -2056,7 +2056,7 @@ describe("Scope", () => {
|
|
|
2056
2056
|
expect(scope.a).toEqual(1);
|
|
2057
2057
|
|
|
2058
2058
|
scope.$eval((self) => {
|
|
2059
|
-
self.b = 2;
|
|
2059
|
+
self.$proxy.b = 2;
|
|
2060
2060
|
});
|
|
2061
2061
|
expect(scope.b).toEqual(2);
|
|
2062
2062
|
});
|
|
@@ -2064,7 +2064,7 @@ describe("Scope", () => {
|
|
|
2064
2064
|
it("executes $eval'ed function and returns result", function () {
|
|
2065
2065
|
scope.aValue = 42;
|
|
2066
2066
|
const result = scope.$eval(function (scope) {
|
|
2067
|
-
return scope.aValue;
|
|
2067
|
+
return scope.$proxy.aValue;
|
|
2068
2068
|
});
|
|
2069
2069
|
expect(result).toBe(42);
|
|
2070
2070
|
});
|
|
@@ -2072,7 +2072,7 @@ describe("Scope", () => {
|
|
|
2072
2072
|
it("passes the second $eval argument straight through", function () {
|
|
2073
2073
|
scope.aValue = 42;
|
|
2074
2074
|
const result = scope.$eval(function (scope, arg) {
|
|
2075
|
-
return scope.aValue + arg;
|
|
2075
|
+
return scope.$proxy.aValue + arg;
|
|
2076
2076
|
}, 2);
|
|
2077
2077
|
expect(result).toBe(44);
|
|
2078
2078
|
});
|
|
@@ -2082,7 +2082,7 @@ describe("Scope", () => {
|
|
|
2082
2082
|
|
|
2083
2083
|
scope.$eval(
|
|
2084
2084
|
(scope, locals) => {
|
|
2085
|
-
scope.c = locals.b + 4;
|
|
2085
|
+
scope.$proxy.c = locals.b + 4;
|
|
2086
2086
|
},
|
|
2087
2087
|
{ b: 3 },
|
|
2088
2088
|
);
|
|
@@ -2,7 +2,7 @@ import { createElementFromHTML, dealoc } from "../../shared/dom.js";
|
|
|
2
2
|
import { Angular } from "../../angular.js";
|
|
3
3
|
import { wait } from "../../shared/test-utils.js";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
describe("ngView", () => {
|
|
6
6
|
window.location.hash = "";
|
|
7
7
|
let $stateProvider,
|
|
8
8
|
scope,
|
|
@@ -799,7 +799,7 @@ fdescribe("ngView", () => {
|
|
|
799
799
|
// });
|
|
800
800
|
});
|
|
801
801
|
|
|
802
|
-
|
|
802
|
+
describe("ngView named", () => {
|
|
803
803
|
let $stateProvider,
|
|
804
804
|
scope,
|
|
805
805
|
$compile,
|
|
@@ -873,7 +873,7 @@ fdescribe("ngView named", () => {
|
|
|
873
873
|
});
|
|
874
874
|
});
|
|
875
875
|
|
|
876
|
-
|
|
876
|
+
describe("ngView transclusion", () => {
|
|
877
877
|
let scope, $compile, elem, $injector, $rootScope, $state;
|
|
878
878
|
|
|
879
879
|
beforeEach(() => {
|
|
@@ -929,7 +929,7 @@ fdescribe("ngView transclusion", () => {
|
|
|
929
929
|
});
|
|
930
930
|
});
|
|
931
931
|
|
|
932
|
-
|
|
932
|
+
describe("ngView controllers or onEnter handlers", () => {
|
|
933
933
|
let el, template, scope, count, $rootScope, $compile, $state, elem;
|
|
934
934
|
|
|
935
935
|
beforeEach(() => {
|
|
@@ -1006,7 +1006,7 @@ fdescribe("ngView controllers or onEnter handlers", () => {
|
|
|
1006
1006
|
});
|
|
1007
1007
|
});
|
|
1008
1008
|
|
|
1009
|
-
|
|
1009
|
+
describe("angular 1.5+ style .component()", () => {
|
|
1010
1010
|
let el = document.getElementById("app"),
|
|
1011
1011
|
app,
|
|
1012
1012
|
scope,
|
|
@@ -1112,8 +1112,9 @@ fdescribe("angular 1.5+ style .component()", () => {
|
|
|
1112
1112
|
};
|
|
1113
1113
|
},
|
|
1114
1114
|
})
|
|
1115
|
-
.config(function (_$stateProvider_) {
|
|
1115
|
+
.config(function (_$stateProvider_, $locationProvider) {
|
|
1116
1116
|
$stateProvider = _$stateProvider_;
|
|
1117
|
+
$locationProvider.html5ModeConf.enabled = false;
|
|
1117
1118
|
});
|
|
1118
1119
|
|
|
1119
1120
|
let $injector = window.angular.bootstrap(document.getElementById("app"), [
|
|
@@ -1835,9 +1836,9 @@ fdescribe("angular 1.5+ style .component()", () => {
|
|
|
1835
1836
|
name: "ng12-dynamic-directive",
|
|
1836
1837
|
url: "/ng12dynamicDirective/:type",
|
|
1837
1838
|
componentProvider: [
|
|
1838
|
-
"$
|
|
1839
|
-
function ($
|
|
1840
|
-
return $
|
|
1839
|
+
"$stateParams",
|
|
1840
|
+
function ($stateParams) {
|
|
1841
|
+
return $stateParams.type;
|
|
1841
1842
|
},
|
|
1842
1843
|
],
|
|
1843
1844
|
});
|