cx 24.3.1 → 24.3.3

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.
@@ -1,105 +1,105 @@
1
- import { StringTemplate } from "./StringTemplate";
2
- import assert from "assert";
3
-
4
- describe("StringTemplate", function () {
5
- describe("#compile()", function () {
6
- it("returns a selector", function () {
7
- var e = StringTemplate.compile("Hello {person.name}");
8
- var state = {
9
- person: {
10
- name: "Jim",
11
- },
12
- };
13
- assert.equal(e(state), "Hello Jim");
14
- });
15
-
16
- it("properly encodes ' and \"", function () {
17
- var e = StringTemplate.compile('It\'s "working"!');
18
- assert.equal(e({}), 'It\'s "working"!');
19
- });
20
-
21
- it("supports multi-line strings", function () {
22
- var e = StringTemplate.compile("a\nb");
23
- assert.equal(e(), "a\nb");
24
-
25
- var e = StringTemplate.compile("a\r\nb");
26
- assert.equal(e(), "a\r\nb");
27
- });
28
- });
29
-
30
- describe("double brackets are used to escape brackets", function () {
31
- it("double brackets are preserved", function () {
32
- var e = StringTemplate.compile("Hello {{person.name}}");
33
- var state = {
34
- person: {
35
- name: "Jim",
36
- },
37
- };
38
- assert.equal(e(state), "Hello {person.name}");
39
- });
40
-
41
- it("triple brackets are converted to single brackets and a binding", function () {
42
- var e = StringTemplate.compile("Hello {{{person.name}}}");
43
- var state = {
44
- person: {
45
- name: "Jim",
46
- },
47
- };
48
- assert.equal(e(state), "Hello {Jim}");
49
- });
50
- });
51
-
52
- describe("supports formatting", function () {
53
- it("with colon", function () {
54
- var e = StringTemplate.compile("{str:suffix;kg}");
55
- assert.equal(e({ str: "5" }), "5kg");
56
- });
57
-
58
- it("with multiple formats", function () {
59
- var e = StringTemplate.compile("{str:suffix;kg:wrap;(;)}");
60
- assert.equal(e({ str: "5" }), "(5kg)");
61
- });
62
-
63
- it("with null values", function () {
64
- var e = StringTemplate.compile("{str:suffix;kg:|N/A}");
65
- assert.equal(e({ str: null }), "N/A");
66
- });
67
-
68
- it("of null values", function () {
69
- var e = StringTemplate.compile("{str|N/A}");
70
- assert.equal(e({ str: null }), "N/A");
71
- });
72
- });
73
-
74
- describe("supports expressions", function () {
75
- it("using []", function () {
76
- var e = StringTemplate.compile("1 + 2 = {[1+2]}");
77
- assert.equal(e(), "1 + 2 = 3");
78
- });
79
-
80
- it("using %", function () {
81
- var e = StringTemplate.compile("1 + 2 = %{1+2}");
82
- assert.equal(e(), "1 + 2 = 3");
83
- });
84
-
85
- it("with subexpressions", function () {
86
- var e = StringTemplate.compile("1 + 2 = {[%{1+2}]}");
87
- assert.equal(e(), "1 + 2 = 3");
88
- });
89
-
90
- it("with a conditional operator", function () {
91
- var e = StringTemplate.compile("1 + 2 = {[true ? 3 : 2]:s}");
92
- assert.equal(e(), "1 + 2 = 3");
93
- });
94
-
95
- it("with sub-expression formatting", function () {
96
- var e = StringTemplate.compile("{[!!{person.age} ? {person.age:suffix; years old} : 'Age unknown']}");
97
- var state = {
98
- person: {
99
- age: 32,
100
- },
101
- };
102
- assert.equal(e(state), "32 years old");
103
- });
104
- });
105
- });
1
+ import { StringTemplate } from "./StringTemplate";
2
+ import assert from "assert";
3
+
4
+ describe("StringTemplate", function () {
5
+ describe("#compile()", function () {
6
+ it("returns a selector", function () {
7
+ var e = StringTemplate.compile("Hello {person.name}");
8
+ var state = {
9
+ person: {
10
+ name: "Jim",
11
+ },
12
+ };
13
+ assert.equal(e(state), "Hello Jim");
14
+ });
15
+
16
+ it("properly encodes ' and \"", function () {
17
+ var e = StringTemplate.compile('It\'s "working"!');
18
+ assert.equal(e({}), 'It\'s "working"!');
19
+ });
20
+
21
+ it("supports multi-line strings", function () {
22
+ var e = StringTemplate.compile("a\nb");
23
+ assert.equal(e(), "a\nb");
24
+
25
+ var e = StringTemplate.compile("a\r\nb");
26
+ assert.equal(e(), "a\r\nb");
27
+ });
28
+ });
29
+
30
+ describe("double brackets are used to escape brackets", function () {
31
+ it("double brackets are preserved", function () {
32
+ var e = StringTemplate.compile("Hello {{person.name}}");
33
+ var state = {
34
+ person: {
35
+ name: "Jim",
36
+ },
37
+ };
38
+ assert.equal(e(state), "Hello {person.name}");
39
+ });
40
+
41
+ it("triple brackets are converted to single brackets and a binding", function () {
42
+ var e = StringTemplate.compile("Hello {{{person.name}}}");
43
+ var state = {
44
+ person: {
45
+ name: "Jim",
46
+ },
47
+ };
48
+ assert.equal(e(state), "Hello {Jim}");
49
+ });
50
+ });
51
+
52
+ describe("supports formatting", function () {
53
+ it("with colon", function () {
54
+ var e = StringTemplate.compile("{str:suffix;kg}");
55
+ assert.equal(e({ str: "5" }), "5kg");
56
+ });
57
+
58
+ it("with multiple formats", function () {
59
+ var e = StringTemplate.compile("{str:suffix;kg:wrap;(;)}");
60
+ assert.equal(e({ str: "5" }), "(5kg)");
61
+ });
62
+
63
+ it("with null values", function () {
64
+ var e = StringTemplate.compile("{str:suffix;kg:|N/A}");
65
+ assert.equal(e({ str: null }), "N/A");
66
+ });
67
+
68
+ it("of null values", function () {
69
+ var e = StringTemplate.compile("{str|N/A}");
70
+ assert.equal(e({ str: null }), "N/A");
71
+ });
72
+ });
73
+
74
+ describe("supports expressions", function () {
75
+ it("using []", function () {
76
+ var e = StringTemplate.compile("1 + 2 = {[1+2]}");
77
+ assert.equal(e(), "1 + 2 = 3");
78
+ });
79
+
80
+ it("using %", function () {
81
+ var e = StringTemplate.compile("1 + 2 = %{1+2}");
82
+ assert.equal(e(), "1 + 2 = 3");
83
+ });
84
+
85
+ it("with subexpressions", function () {
86
+ var e = StringTemplate.compile("1 + 2 = {[%{1+2}]}");
87
+ assert.equal(e(), "1 + 2 = 3");
88
+ });
89
+
90
+ it("with a conditional operator", function () {
91
+ var e = StringTemplate.compile("1 + 2 = {[true ? 3 : 2]:s}");
92
+ assert.equal(e(), "1 + 2 = 3");
93
+ });
94
+
95
+ it("with sub-expression formatting", function () {
96
+ var e = StringTemplate.compile("{[!!{person.age} ? {person.age:suffix; years old} : 'Age unknown']}");
97
+ var state = {
98
+ person: {
99
+ age: 32,
100
+ },
101
+ };
102
+ assert.equal(e(state), "32 years old");
103
+ });
104
+ });
105
+ });
@@ -1,182 +1,182 @@
1
- import * as Cx from "../core";
2
-
3
- import { View } from "../data/View";
4
- import { Instance } from "./Instance";
5
-
6
- export class Controller<D = any> {
7
- onInit?(): void;
8
-
9
- onExplore?(context?): void;
10
-
11
- onPrepare?(context?): void;
12
-
13
- onCleanup?(context?): void;
14
-
15
- onDestroy?(): void;
16
-
17
- init?(): void;
18
-
19
- store: View<D>;
20
- widget: any;
21
- instance: Instance<D, Controller<D>>;
22
-
23
- addTrigger<V1>(name: string, args: [Cx.AccessorChain<V1>], callback: (v1: V1) => void, autoRun?: boolean): void;
24
- addTrigger<V1, V2>(
25
- name: string,
26
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>],
27
- callback: (v1: V1, v2: V2) => void,
28
- autoRun?: boolean
29
- ): void;
30
- addTrigger<V1, V2, V3>(
31
- name: string,
32
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>],
33
- callback: (v1: V1, v2: V2, v3: V3) => void,
34
- autoRun?: boolean
35
- ): void;
36
- addTrigger<V1, V2, V3, V4>(
37
- name: string,
38
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>, Cx.AccessorChain<V4>],
39
- callback: (v1: V1, v2: V2, v3: V3, v4: V4) => void,
40
- autoRun?: boolean
41
- ): void;
42
- addTrigger<V1, V2, V3, V4, V5>(
43
- name: string,
44
- args: [
45
- Cx.AccessorChain<V1>,
46
- Cx.AccessorChain<V2>,
47
- Cx.AccessorChain<V3>,
48
- Cx.AccessorChain<V4>,
49
- Cx.AccessorChain<V5>
50
- ],
51
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5) => void,
52
- autoRun?: boolean
53
- ): void;
54
- addTrigger<V1, V2, V3, V4, V5, V6>(
55
- name: string,
56
- args: [
57
- Cx.AccessorChain<V1>,
58
- Cx.AccessorChain<V2>,
59
- Cx.AccessorChain<V3>,
60
- Cx.AccessorChain<V4>,
61
- Cx.AccessorChain<V5>,
62
- Cx.AccessorChain<V6>
63
- ],
64
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6) => void,
65
- autoRun?: boolean
66
- ): void;
67
- addTrigger<V1, V2, V3, V4, V5, V6, V7>(
68
- name: string,
69
- args: [
70
- Cx.AccessorChain<V1>,
71
- Cx.AccessorChain<V2>,
72
- Cx.AccessorChain<V3>,
73
- Cx.AccessorChain<V4>,
74
- Cx.AccessorChain<V5>,
75
- Cx.AccessorChain<V6>,
76
- Cx.AccessorChain<V7>
77
- ],
78
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7) => void,
79
- autoRun?: boolean
80
- ): void;
81
- addTrigger<V1, V2, V3, V4, V5, V6, V7, V8>(
82
- name: string,
83
- args: [
84
- Cx.AccessorChain<V1>,
85
- Cx.AccessorChain<V2>,
86
- Cx.AccessorChain<V3>,
87
- Cx.AccessorChain<V4>,
88
- Cx.AccessorChain<V5>,
89
- Cx.AccessorChain<V6>,
90
- Cx.AccessorChain<V7>,
91
- Cx.AccessorChain<V8>
92
- ],
93
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7, v8: v8) => void,
94
- autoRun?: boolean
95
- ): void;
96
-
97
- addTrigger(
98
- name: string,
99
- args: (string | Cx.AccessorChain<any>)[],
100
- callback: (...args) => void,
101
- autoRun?: boolean
102
- ): void;
103
-
104
- addComputable<V1, R>(path: Cx.AccessorChain<R>, args: [Cx.AccessorChain<V1>], callback: (v1: V1) => R): void;
105
- addComputable<V1, V2, R>(
106
- path: Cx.AccessorChain<R>,
107
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>],
108
- callback: (v1: V1, v2: V2) => R
109
- ): void;
110
- addComputable<V1, V2, V3, R>(
111
- path: Cx.AccessorChain<R>,
112
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>],
113
- callback: (v1: V1, v2: V2, v3: V3) => R
114
- ): void;
115
- addComputable<V1, V2, V3, V4, R>(
116
- path: Cx.AccessorChain<R>,
117
- args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>, Cx.AccessorChain<V4>],
118
- callback: (v1: V1, v2: V2, v3: V3, v4: V4) => R
119
- ): void;
120
- addComputable<V1, V2, V3, V4, V5, R>(
121
- path: Cx.AccessorChain<R>,
122
- args: [
123
- Cx.AccessorChain<V1>,
124
- Cx.AccessorChain<V2>,
125
- Cx.AccessorChain<V3>,
126
- Cx.AccessorChain<V4>,
127
- Cx.AccessorChain<V5>
128
- ],
129
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5) => R
130
- ): void;
131
- addComputable<V1, V2, V3, V4, V5, V6, R>(
132
- path: Cx.AccessorChain<R>,
133
- args: [
134
- Cx.AccessorChain<V1>,
135
- Cx.AccessorChain<V2>,
136
- Cx.AccessorChain<V3>,
137
- Cx.AccessorChain<V4>,
138
- Cx.AccessorChain<V5>,
139
- Cx.AccessorChain<V6>
140
- ],
141
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6) => R
142
- ): void;
143
- addComputable<V1, V2, V3, V4, V5, V6, V7, R>(
144
- path: Cx.AccessorChain<R>,
145
- args: [
146
- Cx.AccessorChain<V1>,
147
- Cx.AccessorChain<V2>,
148
- Cx.AccessorChain<V3>,
149
- Cx.AccessorChain<V4>,
150
- Cx.AccessorChain<V5>,
151
- Cx.AccessorChain<V6>,
152
- Cx.AccessorChain<V7>
153
- ],
154
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7) => R
155
- ): void;
156
- addComputable<V1, V2, V3, V4, V5, V6, V7, V8, R>(
157
- path: Cx.AccessorChain<R>,
158
- args: [
159
- Cx.AccessorChain<V1>,
160
- Cx.AccessorChain<V2>,
161
- Cx.AccessorChain<V3>,
162
- Cx.AccessorChain<V4>,
163
- Cx.AccessorChain<V5>,
164
- Cx.AccessorChain<V6>,
165
- Cx.AccessorChain<V7>,
166
- Cx.AccessorChain<V8>
167
- ],
168
- callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7, v8: V8) => R
169
- ): void;
170
-
171
- addComputable(path: string, args: (string | Cx.AccessorChain<any>)[], callback: (...args) => any): void;
172
-
173
- removeTrigger(name: string): void;
174
-
175
- removeComputable(name: string): void;
176
-
177
- /** Invoke a method found on a parent controller. */
178
- invokeParentMethod(methodName: string, ...args: any[]);
179
-
180
- /** Invoke a method of this controller. */
181
- invokeMethod(methodName: string, ...args: any[]);
182
- }
1
+ import * as Cx from "../core";
2
+
3
+ import { View } from "../data/View";
4
+ import { Instance } from "./Instance";
5
+
6
+ export class Controller<D = any> {
7
+ onInit?(): void;
8
+
9
+ onExplore?(context?): void;
10
+
11
+ onPrepare?(context?): void;
12
+
13
+ onCleanup?(context?): void;
14
+
15
+ onDestroy?(): void;
16
+
17
+ init?(): void;
18
+
19
+ store: View<D>;
20
+ widget: any;
21
+ instance: Instance<D, Controller<D>>;
22
+
23
+ addTrigger<V1>(name: string, args: [Cx.AccessorChain<V1>], callback: (v1: V1) => void, autoRun?: boolean): void;
24
+ addTrigger<V1, V2>(
25
+ name: string,
26
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>],
27
+ callback: (v1: V1, v2: V2) => void,
28
+ autoRun?: boolean
29
+ ): void;
30
+ addTrigger<V1, V2, V3>(
31
+ name: string,
32
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>],
33
+ callback: (v1: V1, v2: V2, v3: V3) => void,
34
+ autoRun?: boolean
35
+ ): void;
36
+ addTrigger<V1, V2, V3, V4>(
37
+ name: string,
38
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>, Cx.AccessorChain<V4>],
39
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4) => void,
40
+ autoRun?: boolean
41
+ ): void;
42
+ addTrigger<V1, V2, V3, V4, V5>(
43
+ name: string,
44
+ args: [
45
+ Cx.AccessorChain<V1>,
46
+ Cx.AccessorChain<V2>,
47
+ Cx.AccessorChain<V3>,
48
+ Cx.AccessorChain<V4>,
49
+ Cx.AccessorChain<V5>
50
+ ],
51
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5) => void,
52
+ autoRun?: boolean
53
+ ): void;
54
+ addTrigger<V1, V2, V3, V4, V5, V6>(
55
+ name: string,
56
+ args: [
57
+ Cx.AccessorChain<V1>,
58
+ Cx.AccessorChain<V2>,
59
+ Cx.AccessorChain<V3>,
60
+ Cx.AccessorChain<V4>,
61
+ Cx.AccessorChain<V5>,
62
+ Cx.AccessorChain<V6>
63
+ ],
64
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6) => void,
65
+ autoRun?: boolean
66
+ ): void;
67
+ addTrigger<V1, V2, V3, V4, V5, V6, V7>(
68
+ name: string,
69
+ args: [
70
+ Cx.AccessorChain<V1>,
71
+ Cx.AccessorChain<V2>,
72
+ Cx.AccessorChain<V3>,
73
+ Cx.AccessorChain<V4>,
74
+ Cx.AccessorChain<V5>,
75
+ Cx.AccessorChain<V6>,
76
+ Cx.AccessorChain<V7>
77
+ ],
78
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7) => void,
79
+ autoRun?: boolean
80
+ ): void;
81
+ addTrigger<V1, V2, V3, V4, V5, V6, V7, V8>(
82
+ name: string,
83
+ args: [
84
+ Cx.AccessorChain<V1>,
85
+ Cx.AccessorChain<V2>,
86
+ Cx.AccessorChain<V3>,
87
+ Cx.AccessorChain<V4>,
88
+ Cx.AccessorChain<V5>,
89
+ Cx.AccessorChain<V6>,
90
+ Cx.AccessorChain<V7>,
91
+ Cx.AccessorChain<V8>
92
+ ],
93
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7, v8: v8) => void,
94
+ autoRun?: boolean
95
+ ): void;
96
+
97
+ addTrigger(
98
+ name: string,
99
+ args: (string | Cx.AccessorChain<any>)[],
100
+ callback: (...args) => void,
101
+ autoRun?: boolean
102
+ ): void;
103
+
104
+ addComputable<V1, R>(path: Cx.AccessorChain<R>, args: [Cx.AccessorChain<V1>], callback: (v1: V1) => R): void;
105
+ addComputable<V1, V2, R>(
106
+ path: Cx.AccessorChain<R>,
107
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>],
108
+ callback: (v1: V1, v2: V2) => R
109
+ ): void;
110
+ addComputable<V1, V2, V3, R>(
111
+ path: Cx.AccessorChain<R>,
112
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>],
113
+ callback: (v1: V1, v2: V2, v3: V3) => R
114
+ ): void;
115
+ addComputable<V1, V2, V3, V4, R>(
116
+ path: Cx.AccessorChain<R>,
117
+ args: [Cx.AccessorChain<V1>, Cx.AccessorChain<V2>, Cx.AccessorChain<V3>, Cx.AccessorChain<V4>],
118
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4) => R
119
+ ): void;
120
+ addComputable<V1, V2, V3, V4, V5, R>(
121
+ path: Cx.AccessorChain<R>,
122
+ args: [
123
+ Cx.AccessorChain<V1>,
124
+ Cx.AccessorChain<V2>,
125
+ Cx.AccessorChain<V3>,
126
+ Cx.AccessorChain<V4>,
127
+ Cx.AccessorChain<V5>
128
+ ],
129
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5) => R
130
+ ): void;
131
+ addComputable<V1, V2, V3, V4, V5, V6, R>(
132
+ path: Cx.AccessorChain<R>,
133
+ args: [
134
+ Cx.AccessorChain<V1>,
135
+ Cx.AccessorChain<V2>,
136
+ Cx.AccessorChain<V3>,
137
+ Cx.AccessorChain<V4>,
138
+ Cx.AccessorChain<V5>,
139
+ Cx.AccessorChain<V6>
140
+ ],
141
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6) => R
142
+ ): void;
143
+ addComputable<V1, V2, V3, V4, V5, V6, V7, R>(
144
+ path: Cx.AccessorChain<R>,
145
+ args: [
146
+ Cx.AccessorChain<V1>,
147
+ Cx.AccessorChain<V2>,
148
+ Cx.AccessorChain<V3>,
149
+ Cx.AccessorChain<V4>,
150
+ Cx.AccessorChain<V5>,
151
+ Cx.AccessorChain<V6>,
152
+ Cx.AccessorChain<V7>
153
+ ],
154
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7) => R
155
+ ): void;
156
+ addComputable<V1, V2, V3, V4, V5, V6, V7, V8, R>(
157
+ path: Cx.AccessorChain<R>,
158
+ args: [
159
+ Cx.AccessorChain<V1>,
160
+ Cx.AccessorChain<V2>,
161
+ Cx.AccessorChain<V3>,
162
+ Cx.AccessorChain<V4>,
163
+ Cx.AccessorChain<V5>,
164
+ Cx.AccessorChain<V6>,
165
+ Cx.AccessorChain<V7>,
166
+ Cx.AccessorChain<V8>
167
+ ],
168
+ callback: (v1: V1, v2: V2, v3: V3, v4: V4, v5: V5, v6: V6, v7: V7, v8: V8) => R
169
+ ): void;
170
+
171
+ addComputable(path: string, args: (string | Cx.AccessorChain<any>)[], callback: (...args) => any): void;
172
+
173
+ removeTrigger(name: string): void;
174
+
175
+ removeComputable(name: string): void;
176
+
177
+ /** Invoke a method found on a parent controller. */
178
+ invokeParentMethod(methodName: string, ...args: any[]);
179
+
180
+ /** Invoke a method of this controller. */
181
+ invokeMethod(methodName: string, ...args: any[]);
182
+ }