cx 26.0.14 → 26.1.1
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/build/ui/VDOM.d.ts +1 -20
- package/build/ui/VDOM.js +1 -3
- package/build/ui/Widget.d.ts +1 -1
- package/build/ui/Widget.js +0 -5
- package/build/ui/app/startAppLoop.js +2 -10
- package/build/util/Component.js +5 -0
- package/build/util/test/createTestRenderer.d.ts +3 -1
- package/build/util/test/createTestRenderer.js +8 -2
- package/build/widgets/form/Checkbox.d.ts +0 -1
- package/build/widgets/form/Checkbox.js +1 -0
- package/build/widgets/form/ColorField.d.ts +0 -1
- package/build/widgets/form/ColorField.js +2 -2
- package/build/widgets/form/DateTimeField.d.ts +0 -2
- package/build/widgets/form/DateTimeField.js +1 -0
- package/build/widgets/form/DateTimePicker.d.ts +0 -2
- package/build/widgets/form/DateTimePicker.js +1 -0
- package/build/widgets/form/Radio.d.ts +0 -1
- package/build/widgets/form/Slider.js +9 -1
- package/build/widgets/form/Switch.d.ts +0 -1
- package/build/widgets/form/Switch.js +1 -1
- package/build/widgets/form/Wheel.d.ts +0 -1
- package/build/widgets/grid/Grid.d.ts +0 -2
- package/build/widgets/grid/GridCellEditor.js +3 -1
- package/build/widgets/icons/calendar.js +4 -3
- package/build/widgets/icons/check.js +2 -2
- package/build/widgets/icons/clear.js +2 -2
- package/build/widgets/icons/close.js +2 -2
- package/build/widgets/icons/cx.js +2 -2
- package/build/widgets/icons/drop-down.js +2 -2
- package/build/widgets/icons/file.js +2 -2
- package/build/widgets/icons/folder-open.js +2 -2
- package/build/widgets/icons/folder.js +2 -2
- package/build/widgets/icons/forward.js +2 -2
- package/build/widgets/icons/loading.js +2 -2
- package/build/widgets/icons/menu.js +2 -2
- package/build/widgets/icons/pixel-picker.js +2 -2
- package/build/widgets/icons/search.js +2 -2
- package/build/widgets/icons/sort-asc.js +2 -2
- package/build/widgets/icons/square.js +2 -2
- package/build/widgets/overlay/Overlay.d.ts +3 -0
- package/build/widgets/overlay/Overlay.js +3 -2
- package/dist/manifest.js +867 -867
- package/dist/ui.js +4 -18
- package/dist/util.js +4 -0
- package/dist/widgets.js +395 -319
- package/package.json +11 -8
- package/src/charts/Chart.ts +108 -108
- package/src/core.d.ts +182 -182
- package/src/data/Expression.spec.ts +229 -229
- package/src/data/Expression.ts +233 -233
- package/src/data/Grouper.ts +158 -158
- package/src/data/Selector.ts +10 -10
- package/src/data/StringTemplate.spec.ts +132 -132
- package/src/data/StructuredSelector.ts +146 -146
- package/src/data/ZoomIntoPropertyView.spec.ts +64 -64
- package/src/data/comparer.ts +78 -78
- package/src/data/computable.spec.ts +87 -87
- package/src/data/createStructuredSelector.ts +62 -62
- package/src/data/getAccessor.spec.ts +11 -11
- package/src/data/getAccessor.ts +74 -74
- package/src/data/getSelector.spec.ts +43 -43
- package/src/data/getSelector.ts +66 -66
- package/src/data/ops/filter.spec.ts +35 -35
- package/src/data/ops/filter.ts +9 -9
- package/src/data/ops/merge.ts +13 -13
- package/src/data/ops/removeTreeNodes.spec.ts +37 -37
- package/src/data/ops/updateArray.spec.ts +69 -69
- package/src/data/ops/updateArray.ts +31 -31
- package/src/data/test-types.ts +7 -7
- package/src/hooks/invokeCallback.spec.tsx +4 -4
- package/src/hooks/resolveCallback.spec.tsx +4 -4
- package/src/hooks/store.spec.tsx +15 -15
- package/src/hooks/useTrigger.spec.tsx +16 -10
- package/src/hooks/useTrigger.ts +26 -26
- package/src/index.scss +6 -6
- package/src/jsx-runtime.ts +79 -79
- package/src/svg/BoundedObject.ts +101 -101
- package/src/svg/util/Rect.ts +105 -105
- package/src/ui/CSS.ts +87 -87
- package/src/ui/CSSHelper.ts +17 -17
- package/src/ui/ContentResolver.spec.tsx +31 -29
- package/src/ui/Controller.spec.tsx +47 -39
- package/src/ui/Culture.ts +159 -159
- package/src/ui/Cx.spec.tsx +10 -8
- package/src/ui/DataProxy.spec.tsx +18 -18
- package/src/ui/Instance.ts +866 -866
- package/src/ui/IsolatedScope.spec.tsx +16 -9
- package/src/ui/Prop.ts +140 -140
- package/src/ui/PureContainer.spec.tsx +20 -18
- package/src/ui/RenderingContext.ts +99 -99
- package/src/ui/Repeater.spec.tsx +8 -6
- package/src/ui/Rescope.spec.tsx +13 -13
- package/src/ui/Restate.spec.tsx +31 -27
- package/src/ui/StructuredInstanceDataAccessor.ts +32 -32
- package/src/ui/VDOM.ts +1 -34
- package/src/ui/Widget.tsx +0 -7
- package/src/ui/adapter/TreeAdapter.spec.ts +76 -76
- package/src/ui/adapter/TreeAdapter.ts +185 -185
- package/src/ui/app/History.ts +133 -133
- package/src/ui/app/Url.spec.ts +50 -50
- package/src/ui/app/startAppLoop.tsx +5 -9
- package/src/ui/app/startHotAppLoop.ts +41 -41
- package/src/ui/createFunctionalComponent.spec.tsx +20 -18
- package/src/ui/layout/ContentPlaceholder.spec.tsx +46 -34
- package/src/ui/layout/FirstVisibleChildLayout.spec.tsx +31 -19
- package/src/ui/layout/FirstVisibleChildLayout.ts +60 -60
- package/src/ui/selection/PropertySelection.ts +87 -87
- package/src/util/Component.spec.ts +30 -0
- package/src/util/Component.ts +301 -296
- package/src/util/Console.ts +13 -13
- package/src/util/DOM.ts +88 -88
- package/src/util/hasKey.ts +18 -18
- package/src/util/index.ts +55 -55
- package/src/util/isArray.ts +3 -3
- package/src/util/isDefined.ts +3 -3
- package/src/util/isString.ts +3 -3
- package/src/util/test/createTestRenderer.tsx +9 -2
- package/src/widgets/AccessorBindings.spec.tsx +4 -4
- package/src/widgets/DocumentTitle.ts +95 -95
- package/src/widgets/HtmlElement.spec.tsx +6 -6
- package/src/widgets/ReactElementWrapper.spec.tsx +37 -37
- package/src/widgets/autoFocus.ts +9 -9
- package/src/widgets/cx.ts +63 -63
- package/src/widgets/form/Checkbox.tsx +0 -1
- package/src/widgets/form/ColorField.tsx +15 -12
- package/src/widgets/form/DateTimeField.tsx +0 -2
- package/src/widgets/form/DateTimePicker.tsx +0 -2
- package/src/widgets/form/Radio.tsx +0 -1
- package/src/widgets/form/Slider.tsx +12 -4
- package/src/widgets/form/Switch.tsx +2 -3
- package/src/widgets/form/ValidationGroup.spec.tsx +12 -12
- package/src/widgets/form/Wheel.tsx +0 -1
- package/src/widgets/grid/Grid.tsx +0 -1
- package/src/widgets/grid/GridCellEditor.tsx +7 -1
- package/src/widgets/icons/calendar.tsx +20 -15
- package/src/widgets/icons/check.tsx +2 -1
- package/src/widgets/icons/clear.tsx +2 -1
- package/src/widgets/icons/close.tsx +2 -2
- package/src/widgets/icons/cx.tsx +2 -1
- package/src/widgets/icons/drop-down.tsx +2 -1
- package/src/widgets/icons/file.tsx +2 -1
- package/src/widgets/icons/folder-open.tsx +2 -1
- package/src/widgets/icons/folder.tsx +2 -1
- package/src/widgets/icons/forward.tsx +2 -1
- package/src/widgets/icons/loading.tsx +2 -1
- package/src/widgets/icons/menu.tsx +2 -1
- package/src/widgets/icons/pixel-picker.tsx +2 -2
- package/src/widgets/icons/search.tsx +2 -1
- package/src/widgets/icons/sort-asc.tsx +2 -1
- package/src/widgets/icons/square.tsx +2 -1
- package/src/widgets/nav/Route.spec.tsx +2 -2
- package/src/widgets/overlay/Overlay.tsx +5 -1
- package/src/widgets/overlay/captureMouse.ts +195 -195
- package/src/widgets/overlay/createHotPromiseWindowFactory.ts +71 -71
- package/src/widgets/overlay/index.d.ts +11 -11
- package/src/widgets/overlay/tooltip-ops.ts +173 -173
- package/build/data/ArrayElementView.spec.d.ts +0 -1
- package/build/data/ArrayElementView.spec.js +0 -81
- package/build/data/Binding.spec.d.ts +0 -1
- package/build/data/Binding.spec.js +0 -61
- package/build/data/Expression.spec.d.ts +0 -1
- package/build/data/Expression.spec.js +0 -196
- package/build/data/Grouper.spec.d.ts +0 -1
- package/build/data/Grouper.spec.js +0 -48
- package/build/data/Ref.spec.d.ts +0 -1
- package/build/data/Ref.spec.js +0 -72
- package/build/data/Store.spec.d.ts +0 -1
- package/build/data/Store.spec.js +0 -19
- package/build/data/StoreRef.spec.d.ts +0 -1
- package/build/data/StoreRef.spec.js +0 -22
- package/build/data/StringTemplate.spec.d.ts +0 -1
- package/build/data/StringTemplate.spec.js +0 -112
- package/build/data/StructuredSelector.spec.d.ts +0 -1
- package/build/data/StructuredSelector.spec.js +0 -102
- package/build/data/View.spec.d.ts +0 -1
- package/build/data/View.spec.js +0 -44
- package/build/data/ZoomIntoPropertyView.spec.d.ts +0 -1
- package/build/data/ZoomIntoPropertyView.spec.js +0 -54
- package/build/data/comparer.spec.d.ts +0 -1
- package/build/data/comparer.spec.js +0 -50
- package/build/data/computable.spec.d.ts +0 -1
- package/build/data/computable.spec.js +0 -56
- package/build/data/createAccessorModelProxy.spec.d.ts +0 -1
- package/build/data/createAccessorModelProxy.spec.js +0 -30
- package/build/data/createStructuredSelector.spec.d.ts +0 -1
- package/build/data/createStructuredSelector.spec.js +0 -42
- package/build/data/diff/diffs.spec.d.ts +0 -1
- package/build/data/diff/diffs.spec.js +0 -45
- package/build/data/getAccessor.spec.d.ts +0 -1
- package/build/data/getAccessor.spec.js +0 -10
- package/build/data/getSelector.spec.d.ts +0 -1
- package/build/data/getSelector.spec.js +0 -36
- package/build/data/ops/append.spec.d.ts +0 -1
- package/build/data/ops/append.spec.js +0 -24
- package/build/data/ops/filter.spec.d.ts +0 -1
- package/build/data/ops/filter.spec.js +0 -25
- package/build/data/ops/findTreeNode.spec.d.ts +0 -1
- package/build/data/ops/findTreeNode.spec.js +0 -20
- package/build/data/ops/merge.spec.d.ts +0 -1
- package/build/data/ops/merge.spec.js +0 -23
- package/build/data/ops/removeTreeNodes.spec.d.ts +0 -1
- package/build/data/ops/removeTreeNodes.spec.js +0 -35
- package/build/data/ops/updateArray.spec.d.ts +0 -1
- package/build/data/ops/updateArray.spec.js +0 -33
- package/build/data/ops/updateTree.spec.d.ts +0 -1
- package/build/data/ops/updateTree.spec.js +0 -44
- package/build/hooks/invokeCallback.spec.d.ts +0 -1
- package/build/hooks/invokeCallback.spec.js +0 -44
- package/build/hooks/resolveCallback.spec.d.ts +0 -1
- package/build/hooks/resolveCallback.spec.js +0 -35
- package/build/hooks/store.spec.d.ts +0 -1
- package/build/hooks/store.spec.js +0 -48
- package/build/hooks/useTrigger.spec.d.ts +0 -1
- package/build/hooks/useTrigger.spec.js +0 -59
- package/build/ui/Controller.spec.d.ts +0 -1
- package/build/ui/Controller.spec.js +0 -247
- package/build/ui/Cx.spec.d.ts +0 -1
- package/build/ui/Cx.spec.js +0 -153
- package/build/ui/DataProxy.spec.d.ts +0 -1
- package/build/ui/DataProxy.spec.js +0 -208
- package/build/ui/IsolatedScope.spec.d.ts +0 -1
- package/build/ui/IsolatedScope.spec.js +0 -42
- package/build/ui/PureContainer.spec.d.ts +0 -1
- package/build/ui/PureContainer.spec.js +0 -149
- package/build/ui/Repeater.spec.d.ts +0 -1
- package/build/ui/Repeater.spec.js +0 -109
- package/build/ui/Rescope.spec.d.ts +0 -1
- package/build/ui/Rescope.spec.js +0 -134
- package/build/ui/Restate.spec.d.ts +0 -1
- package/build/ui/Restate.spec.js +0 -257
- package/build/ui/adapter/ArrayAdapter.spec.d.ts +0 -1
- package/build/ui/adapter/ArrayAdapter.spec.js +0 -44
- package/build/ui/adapter/TreeAdapter.spec.d.ts +0 -1
- package/build/ui/adapter/TreeAdapter.spec.js +0 -71
- package/build/ui/app/Url.spec.d.ts +0 -1
- package/build/ui/app/Url.spec.js +0 -43
- package/build/ui/createFunctionalComponent.spec.d.ts +0 -1
- package/build/ui/createFunctionalComponent.spec.js +0 -272
- package/build/ui/layout/ContentPlaceholder.spec.d.ts +0 -1
- package/build/ui/layout/ContentPlaceholder.spec.js +0 -333
- package/build/ui/layout/FirstVisibleChildLayout.spec.d.ts +0 -1
- package/build/ui/layout/FirstVisibleChildLayout.spec.js +0 -101
- package/build/util/Format.spec.d.ts +0 -1
- package/build/util/Format.spec.js +0 -58
- package/build/util/TraversalStack.spec.d.ts +0 -1
- package/build/util/TraversalStack.spec.js +0 -43
- package/build/util/date/upperBoundCheck.spec.d.ts +0 -1
- package/build/util/date/upperBoundCheck.spec.js +0 -22
- package/build/util/getSearchQueryPredicate.spec.d.ts +0 -1
- package/build/util/getSearchQueryPredicate.spec.js +0 -33
- package/build/util/isValidIdentifierName.spec.d.ts +0 -1
- package/build/util/isValidIdentifierName.spec.js +0 -28
- package/build/util/routeAppend.spec.d.ts +0 -1
- package/build/util/routeAppend.spec.js +0 -14
- package/build/widgets/AccessorBindings.spec.d.ts +0 -1
- package/build/widgets/AccessorBindings.spec.js +0 -40
- package/build/widgets/HtmlElement.spec.d.ts +0 -1
- package/build/widgets/HtmlElement.spec.js +0 -38
- package/build/widgets/form/ValidationGroup.spec.d.ts +0 -1
- package/build/widgets/form/ValidationGroup.spec.js +0 -62
- package/build/widgets/nav/Route.spec.d.ts +0 -1
- package/build/widgets/nav/Route.spec.js +0 -15
- package/dist/manifest.d.ts +0 -1443
package/src/svg/util/Rect.ts
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
import { isNumber } from "../../util/isNumber";
|
|
2
|
-
import { isArray } from "../../util/isArray";
|
|
3
|
-
|
|
4
|
-
type RectMargin = string | Rect | Array<string | number>;
|
|
5
|
-
|
|
6
|
-
export interface IRect {
|
|
7
|
-
l: number;
|
|
8
|
-
r: number;
|
|
9
|
-
t: number;
|
|
10
|
-
b: number;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
export class Rect implements IRect {
|
|
14
|
-
isRect: boolean = true;
|
|
15
|
-
l: number = 0; //left;
|
|
16
|
-
r: number = 0; //right
|
|
17
|
-
t: number = 0; //top
|
|
18
|
-
b: number = 0; //bottom
|
|
19
|
-
|
|
20
|
-
constructor(config?: { t?: number; r?: number; b?: number; l?: number }) {
|
|
21
|
-
Object.assign(this, config);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
width(): number {
|
|
25
|
-
return this.r - this.l;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
height(): number {
|
|
29
|
-
return this.b - this.t;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
valid(): boolean {
|
|
33
|
-
return this.r > this.l && this.b > this.t;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
makeValid(): Rect {
|
|
37
|
-
return new Rect({
|
|
38
|
-
l: Math.min(this.l, this.r),
|
|
39
|
-
r: Math.max(this.l, this.r),
|
|
40
|
-
t: Math.min(this.t, this.b),
|
|
41
|
-
b: Math.max(this.t, this.b),
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
isEqual(r?: Rect): boolean {
|
|
46
|
-
if (!r || !r.isRect) return false;
|
|
47
|
-
|
|
48
|
-
return r.l == this.l && r.r == this.r && r.t == this.t && r.b == this.b;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static add(a: Rect, b: Rect): Rect {
|
|
52
|
-
return new Rect({
|
|
53
|
-
l: a.l + b.l,
|
|
54
|
-
t: a.t + b.t,
|
|
55
|
-
r: a.r + b.r,
|
|
56
|
-
b: a.b + b.b,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
static multiply(a: Rect, b: Rect): Rect {
|
|
61
|
-
return new Rect({
|
|
62
|
-
l: a.l + (a.r - a.l) * b.l,
|
|
63
|
-
r: a.l + (a.r - a.l) * b.r,
|
|
64
|
-
t: a.t + (a.b - a.t) * b.t,
|
|
65
|
-
b: a.t + (a.b - a.t) * b.b,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
static margin(r: Rect, m?: RectMargin): Rect {
|
|
70
|
-
var mr = Rect.convertMargin(m);
|
|
71
|
-
return Rect.add(r, mr);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
static convertMargin(m?: RectMargin): Rect {
|
|
75
|
-
if (!m) return new Rect();
|
|
76
|
-
|
|
77
|
-
if ((m as any).isRect) return m as Rect;
|
|
78
|
-
|
|
79
|
-
if (isNumber(m)) return new Rect({ l: m as number, t: m as number, r: -(m as number), b: -(m as number) });
|
|
80
|
-
|
|
81
|
-
var mr = Rect.convert(m);
|
|
82
|
-
mr.b = -mr.b;
|
|
83
|
-
mr.r = -mr.r;
|
|
84
|
-
return mr;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
static convert(r?: RectMargin | number): Rect {
|
|
88
|
-
if (!r) return new Rect({ l: 0, r: 0, t: 0, b: 0 });
|
|
89
|
-
|
|
90
|
-
if ((r as any).isRect) return r as Rect;
|
|
91
|
-
|
|
92
|
-
if (typeof r === "string") r = r.split(" ");
|
|
93
|
-
|
|
94
|
-
if (isArray(r)) {
|
|
95
|
-
return new Rect({
|
|
96
|
-
t: parseFloat(r[0] as any),
|
|
97
|
-
r: parseFloat(r[1] as any),
|
|
98
|
-
b: parseFloat(r[2] as any),
|
|
99
|
-
l: parseFloat(r[3] as any),
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
return new Rect(r as any);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
1
|
+
import { isNumber } from "../../util/isNumber";
|
|
2
|
+
import { isArray } from "../../util/isArray";
|
|
3
|
+
|
|
4
|
+
type RectMargin = string | Rect | Array<string | number>;
|
|
5
|
+
|
|
6
|
+
export interface IRect {
|
|
7
|
+
l: number;
|
|
8
|
+
r: number;
|
|
9
|
+
t: number;
|
|
10
|
+
b: number;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export class Rect implements IRect {
|
|
14
|
+
isRect: boolean = true;
|
|
15
|
+
l: number = 0; //left;
|
|
16
|
+
r: number = 0; //right
|
|
17
|
+
t: number = 0; //top
|
|
18
|
+
b: number = 0; //bottom
|
|
19
|
+
|
|
20
|
+
constructor(config?: { t?: number; r?: number; b?: number; l?: number }) {
|
|
21
|
+
Object.assign(this, config);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
width(): number {
|
|
25
|
+
return this.r - this.l;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
height(): number {
|
|
29
|
+
return this.b - this.t;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
valid(): boolean {
|
|
33
|
+
return this.r > this.l && this.b > this.t;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
makeValid(): Rect {
|
|
37
|
+
return new Rect({
|
|
38
|
+
l: Math.min(this.l, this.r),
|
|
39
|
+
r: Math.max(this.l, this.r),
|
|
40
|
+
t: Math.min(this.t, this.b),
|
|
41
|
+
b: Math.max(this.t, this.b),
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
isEqual(r?: Rect): boolean {
|
|
46
|
+
if (!r || !r.isRect) return false;
|
|
47
|
+
|
|
48
|
+
return r.l == this.l && r.r == this.r && r.t == this.t && r.b == this.b;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static add(a: Rect, b: Rect): Rect {
|
|
52
|
+
return new Rect({
|
|
53
|
+
l: a.l + b.l,
|
|
54
|
+
t: a.t + b.t,
|
|
55
|
+
r: a.r + b.r,
|
|
56
|
+
b: a.b + b.b,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static multiply(a: Rect, b: Rect): Rect {
|
|
61
|
+
return new Rect({
|
|
62
|
+
l: a.l + (a.r - a.l) * b.l,
|
|
63
|
+
r: a.l + (a.r - a.l) * b.r,
|
|
64
|
+
t: a.t + (a.b - a.t) * b.t,
|
|
65
|
+
b: a.t + (a.b - a.t) * b.b,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
static margin(r: Rect, m?: RectMargin): Rect {
|
|
70
|
+
var mr = Rect.convertMargin(m);
|
|
71
|
+
return Rect.add(r, mr);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
static convertMargin(m?: RectMargin): Rect {
|
|
75
|
+
if (!m) return new Rect();
|
|
76
|
+
|
|
77
|
+
if ((m as any).isRect) return m as Rect;
|
|
78
|
+
|
|
79
|
+
if (isNumber(m)) return new Rect({ l: m as number, t: m as number, r: -(m as number), b: -(m as number) });
|
|
80
|
+
|
|
81
|
+
var mr = Rect.convert(m);
|
|
82
|
+
mr.b = -mr.b;
|
|
83
|
+
mr.r = -mr.r;
|
|
84
|
+
return mr;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
static convert(r?: RectMargin | number): Rect {
|
|
88
|
+
if (!r) return new Rect({ l: 0, r: 0, t: 0, b: 0 });
|
|
89
|
+
|
|
90
|
+
if ((r as any).isRect) return r as Rect;
|
|
91
|
+
|
|
92
|
+
if (typeof r === "string") r = r.split(" ");
|
|
93
|
+
|
|
94
|
+
if (isArray(r)) {
|
|
95
|
+
return new Rect({
|
|
96
|
+
t: parseFloat(r[0] as any),
|
|
97
|
+
r: parseFloat(r[1] as any),
|
|
98
|
+
b: parseFloat(r[2] as any),
|
|
99
|
+
l: parseFloat(r[3] as any),
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return new Rect(r as any);
|
|
104
|
+
}
|
|
105
|
+
}
|
package/src/ui/CSS.ts
CHANGED
|
@@ -1,87 +1,87 @@
|
|
|
1
|
-
import { CSSHelper } from "./CSSHelper";
|
|
2
|
-
import { parseStyle } from "../util/parseStyle";
|
|
3
|
-
import { isArray } from "../util/isArray";
|
|
4
|
-
|
|
5
|
-
function push(list: any[] | undefined, item: any): any[] {
|
|
6
|
-
if (!item) return list || [];
|
|
7
|
-
if (!list) list = [];
|
|
8
|
-
list.push(item);
|
|
9
|
-
return list;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
function pushMore(list: any[] | undefined, itemArray: any[]): any[] {
|
|
13
|
-
if (!itemArray || itemArray.length == 0) return list || [];
|
|
14
|
-
if (!list) list = [];
|
|
15
|
-
list.push.apply(list, itemArray);
|
|
16
|
-
return list;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function pushMap(list: any[] | undefined, itemArray: any[] | undefined, mapF: (item: any) => any): any[] | undefined {
|
|
20
|
-
return itemArray ? pushMore(list, itemArray.map(mapF)) : list;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function join(list: any[] | undefined): string | undefined {
|
|
24
|
-
return list ? list.join(" ") : undefined;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export class CSS {
|
|
28
|
-
public static classPrefix: string;
|
|
29
|
-
|
|
30
|
-
static resolve(...args: any[]): any[] {
|
|
31
|
-
let list: any[] | undefined = undefined,
|
|
32
|
-
type: string,
|
|
33
|
-
arg: any,
|
|
34
|
-
i: number,
|
|
35
|
-
key: string;
|
|
36
|
-
|
|
37
|
-
for (i = 0; i < args.length; i++) {
|
|
38
|
-
arg = args[i];
|
|
39
|
-
if (arg) {
|
|
40
|
-
type = typeof arg;
|
|
41
|
-
if (type == "string") list = push(list, arg);
|
|
42
|
-
else if (type == "object") {
|
|
43
|
-
if (isArray(arg)) list = pushMore(list, this.resolve(...arg));
|
|
44
|
-
else for (key in arg) if (arg[key]) list = push(list, key);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return list || [];
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
static block(baseClass: string, styleModifiers?: any, stateModifiers?: any): string;
|
|
52
|
-
static block(baseClass?: string, styleModifiers?: any, stateModifiers?: any): string | undefined {
|
|
53
|
-
let list: any[] | undefined;
|
|
54
|
-
if (baseClass) list = push(list, this.classPrefix + "b-" + baseClass);
|
|
55
|
-
list = pushMap(list, this.resolve(styleModifiers), (m) => this.classPrefix + "m-" + m);
|
|
56
|
-
list = pushMap(list, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m);
|
|
57
|
-
return join(list);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
static element(baseClass: string, elementClass: string, stateModifiers?: any): string;
|
|
61
|
-
static element(baseClass?: string, elementClass?: string, stateModifiers?: any): string | undefined {
|
|
62
|
-
let list: any[] | undefined;
|
|
63
|
-
if (baseClass && elementClass) list = push(list, this.classPrefix + "e-" + baseClass + "-" + elementClass);
|
|
64
|
-
list = pushMap(list, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m);
|
|
65
|
-
return join(list);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
static state(stateModifiers: any): string | undefined {
|
|
69
|
-
return join(pushMap(undefined, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m));
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
static mod(mods: any): string | undefined {
|
|
73
|
-
return join(pushMap(undefined, this.resolve(mods), (m) => this.classPrefix + "m-" + m));
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
static expand(...args: any[]): string | undefined {
|
|
77
|
-
return join(this.resolve(...args));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
static parseStyle(str: any): any {
|
|
81
|
-
return parseStyle(str);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
CSS.classPrefix = "cx";
|
|
86
|
-
|
|
87
|
-
CSSHelper.alias("cx", CSS);
|
|
1
|
+
import { CSSHelper } from "./CSSHelper";
|
|
2
|
+
import { parseStyle } from "../util/parseStyle";
|
|
3
|
+
import { isArray } from "../util/isArray";
|
|
4
|
+
|
|
5
|
+
function push(list: any[] | undefined, item: any): any[] {
|
|
6
|
+
if (!item) return list || [];
|
|
7
|
+
if (!list) list = [];
|
|
8
|
+
list.push(item);
|
|
9
|
+
return list;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function pushMore(list: any[] | undefined, itemArray: any[]): any[] {
|
|
13
|
+
if (!itemArray || itemArray.length == 0) return list || [];
|
|
14
|
+
if (!list) list = [];
|
|
15
|
+
list.push.apply(list, itemArray);
|
|
16
|
+
return list;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function pushMap(list: any[] | undefined, itemArray: any[] | undefined, mapF: (item: any) => any): any[] | undefined {
|
|
20
|
+
return itemArray ? pushMore(list, itemArray.map(mapF)) : list;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function join(list: any[] | undefined): string | undefined {
|
|
24
|
+
return list ? list.join(" ") : undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export class CSS {
|
|
28
|
+
public static classPrefix: string;
|
|
29
|
+
|
|
30
|
+
static resolve(...args: any[]): any[] {
|
|
31
|
+
let list: any[] | undefined = undefined,
|
|
32
|
+
type: string,
|
|
33
|
+
arg: any,
|
|
34
|
+
i: number,
|
|
35
|
+
key: string;
|
|
36
|
+
|
|
37
|
+
for (i = 0; i < args.length; i++) {
|
|
38
|
+
arg = args[i];
|
|
39
|
+
if (arg) {
|
|
40
|
+
type = typeof arg;
|
|
41
|
+
if (type == "string") list = push(list, arg);
|
|
42
|
+
else if (type == "object") {
|
|
43
|
+
if (isArray(arg)) list = pushMore(list, this.resolve(...arg));
|
|
44
|
+
else for (key in arg) if (arg[key]) list = push(list, key);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return list || [];
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
static block(baseClass: string, styleModifiers?: any, stateModifiers?: any): string;
|
|
52
|
+
static block(baseClass?: string, styleModifiers?: any, stateModifiers?: any): string | undefined {
|
|
53
|
+
let list: any[] | undefined;
|
|
54
|
+
if (baseClass) list = push(list, this.classPrefix + "b-" + baseClass);
|
|
55
|
+
list = pushMap(list, this.resolve(styleModifiers), (m) => this.classPrefix + "m-" + m);
|
|
56
|
+
list = pushMap(list, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m);
|
|
57
|
+
return join(list);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
static element(baseClass: string, elementClass: string, stateModifiers?: any): string;
|
|
61
|
+
static element(baseClass?: string, elementClass?: string, stateModifiers?: any): string | undefined {
|
|
62
|
+
let list: any[] | undefined;
|
|
63
|
+
if (baseClass && elementClass) list = push(list, this.classPrefix + "e-" + baseClass + "-" + elementClass);
|
|
64
|
+
list = pushMap(list, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m);
|
|
65
|
+
return join(list);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
static state(stateModifiers: any): string | undefined {
|
|
69
|
+
return join(pushMap(undefined, this.resolve(stateModifiers), (m) => this.classPrefix + "s-" + m));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
static mod(mods: any): string | undefined {
|
|
73
|
+
return join(pushMap(undefined, this.resolve(mods), (m) => this.classPrefix + "m-" + m));
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
static expand(...args: any[]): string | undefined {
|
|
77
|
+
return join(this.resolve(...args));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
static parseStyle(str: any): any {
|
|
81
|
+
return parseStyle(str);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
CSS.classPrefix = "cx";
|
|
86
|
+
|
|
87
|
+
CSSHelper.alias("cx", CSS);
|
package/src/ui/CSSHelper.ts
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
var cssHelperCache: { [key: string]: any } = {};
|
|
2
|
-
|
|
3
|
-
export class CSSHelper {
|
|
4
|
-
static get(code: string): any {
|
|
5
|
-
var helper = cssHelperCache[code];
|
|
6
|
-
if (!helper) throw new Error(`Unknown CSS helper '${code}'.`);
|
|
7
|
-
return helper;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
static register(code: string, helper: any): void {
|
|
11
|
-
cssHelperCache[code] = helper;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
static alias(code: string, helper: any): void {
|
|
15
|
-
cssHelperCache[code] = helper;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
1
|
+
var cssHelperCache: { [key: string]: any } = {};
|
|
2
|
+
|
|
3
|
+
export class CSSHelper {
|
|
4
|
+
static get(code: string): any {
|
|
5
|
+
var helper = cssHelperCache[code];
|
|
6
|
+
if (!helper) throw new Error(`Unknown CSS helper '${code}'.`);
|
|
7
|
+
return helper;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
static register(code: string, helper: any): void {
|
|
11
|
+
cssHelperCache[code] = helper;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
static alias(code: string, helper: any): void {
|
|
15
|
+
cssHelperCache[code] = helper;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ContentResolver } from "./ContentResolver";
|
|
2
2
|
import { Store } from "../data/Store";
|
|
3
|
-
import { createTestRenderer } from "../util/test/createTestRenderer";
|
|
3
|
+
import { createTestRenderer, act } from "../util/test/createTestRenderer";
|
|
4
4
|
import assert from "assert";
|
|
5
5
|
import { bind } from "./bind";
|
|
6
6
|
import { createAccessorModelProxy } from "../data/createAccessorModelProxy";
|
|
@@ -16,7 +16,7 @@ interface TestModel {
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
describe("ContentResolver", () => {
|
|
19
|
-
it("resolves content based on params", () => {
|
|
19
|
+
it("resolves content based on params", async () => {
|
|
20
20
|
let widget = (
|
|
21
21
|
<cx>
|
|
22
22
|
<div>
|
|
@@ -31,7 +31,7 @@ describe("ContentResolver", () => {
|
|
|
31
31
|
},
|
|
32
32
|
});
|
|
33
33
|
|
|
34
|
-
const component = createTestRenderer(store, widget);
|
|
34
|
+
const component = await createTestRenderer(store, widget);
|
|
35
35
|
|
|
36
36
|
let tree = component.toJSON();
|
|
37
37
|
assert.deepEqual(tree, {
|
|
@@ -47,7 +47,7 @@ describe("ContentResolver", () => {
|
|
|
47
47
|
});
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
it("re-resolves when params change", () => {
|
|
50
|
+
it("re-resolves when params change", async () => {
|
|
51
51
|
let resolveCount = 0;
|
|
52
52
|
|
|
53
53
|
let widget = (
|
|
@@ -70,7 +70,7 @@ describe("ContentResolver", () => {
|
|
|
70
70
|
},
|
|
71
71
|
});
|
|
72
72
|
|
|
73
|
-
const component = createTestRenderer(store, widget);
|
|
73
|
+
const component = await createTestRenderer(store, widget);
|
|
74
74
|
|
|
75
75
|
let tree = component.toJSON();
|
|
76
76
|
assert.deepEqual(tree, {
|
|
@@ -86,7 +86,9 @@ describe("ContentResolver", () => {
|
|
|
86
86
|
});
|
|
87
87
|
assert.equal(resolveCount, 1);
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
await act(async () => {
|
|
90
|
+
store.set("value", 2);
|
|
91
|
+
});
|
|
90
92
|
tree = component.toJSON();
|
|
91
93
|
assert.deepEqual(tree, {
|
|
92
94
|
type: "div",
|
|
@@ -102,7 +104,7 @@ describe("ContentResolver", () => {
|
|
|
102
104
|
assert.equal(resolveCount, 2);
|
|
103
105
|
});
|
|
104
106
|
|
|
105
|
-
it("does not re-resolve if params are unchanged", () => {
|
|
107
|
+
it("does not re-resolve if params are unchanged", async () => {
|
|
106
108
|
let resolveCount = 0;
|
|
107
109
|
|
|
108
110
|
let widget = (
|
|
@@ -126,7 +128,7 @@ describe("ContentResolver", () => {
|
|
|
126
128
|
},
|
|
127
129
|
});
|
|
128
130
|
|
|
129
|
-
const component = createTestRenderer(store, widget);
|
|
131
|
+
const component = await createTestRenderer(store, widget);
|
|
130
132
|
assert.equal(resolveCount, 1);
|
|
131
133
|
|
|
132
134
|
// Change unrelated data
|
|
@@ -135,7 +137,7 @@ describe("ContentResolver", () => {
|
|
|
135
137
|
assert.equal(resolveCount, 1);
|
|
136
138
|
});
|
|
137
139
|
|
|
138
|
-
it("supports literal values in params", () => {
|
|
140
|
+
it("supports literal values in params", async () => {
|
|
139
141
|
let receivedParams: any = null;
|
|
140
142
|
|
|
141
143
|
let widget = (
|
|
@@ -154,7 +156,7 @@ describe("ContentResolver", () => {
|
|
|
154
156
|
|
|
155
157
|
let store = new Store();
|
|
156
158
|
|
|
157
|
-
const component = createTestRenderer(store, widget);
|
|
159
|
+
const component = await createTestRenderer(store, widget);
|
|
158
160
|
|
|
159
161
|
let tree = component.toJSON();
|
|
160
162
|
assert.deepEqual(tree, {
|
|
@@ -172,7 +174,7 @@ describe("ContentResolver", () => {
|
|
|
172
174
|
assert.equal(receivedParams.name, "test");
|
|
173
175
|
});
|
|
174
176
|
|
|
175
|
-
it("supports mode=prepend", () => {
|
|
177
|
+
it("supports mode=prepend", async () => {
|
|
176
178
|
let widget = (
|
|
177
179
|
<cx>
|
|
178
180
|
<div>
|
|
@@ -185,7 +187,7 @@ describe("ContentResolver", () => {
|
|
|
185
187
|
|
|
186
188
|
let store = new Store();
|
|
187
189
|
|
|
188
|
-
const component = createTestRenderer(store, widget);
|
|
190
|
+
const component = await createTestRenderer(store, widget);
|
|
189
191
|
|
|
190
192
|
let tree = component.toJSON();
|
|
191
193
|
assert.deepEqual(tree, {
|
|
@@ -206,7 +208,7 @@ describe("ContentResolver", () => {
|
|
|
206
208
|
});
|
|
207
209
|
});
|
|
208
210
|
|
|
209
|
-
it("supports mode=append", () => {
|
|
211
|
+
it("supports mode=append", async () => {
|
|
210
212
|
let widget = (
|
|
211
213
|
<cx>
|
|
212
214
|
<div>
|
|
@@ -219,7 +221,7 @@ describe("ContentResolver", () => {
|
|
|
219
221
|
|
|
220
222
|
let store = new Store();
|
|
221
223
|
|
|
222
|
-
const component = createTestRenderer(store, widget);
|
|
224
|
+
const component = await createTestRenderer(store, widget);
|
|
223
225
|
|
|
224
226
|
let tree = component.toJSON();
|
|
225
227
|
assert.deepEqual(tree, {
|
|
@@ -240,7 +242,7 @@ describe("ContentResolver", () => {
|
|
|
240
242
|
});
|
|
241
243
|
});
|
|
242
244
|
|
|
243
|
-
it("supports mode=replace (default)", () => {
|
|
245
|
+
it("supports mode=replace (default)", async () => {
|
|
244
246
|
let widget = (
|
|
245
247
|
<cx>
|
|
246
248
|
<div>
|
|
@@ -253,7 +255,7 @@ describe("ContentResolver", () => {
|
|
|
253
255
|
|
|
254
256
|
let store = new Store();
|
|
255
257
|
|
|
256
|
-
const component = createTestRenderer(store, widget);
|
|
258
|
+
const component = await createTestRenderer(store, widget);
|
|
257
259
|
|
|
258
260
|
let tree = component.toJSON();
|
|
259
261
|
assert.deepEqual(tree, {
|
|
@@ -295,7 +297,7 @@ describe("ContentResolver", () => {
|
|
|
295
297
|
},
|
|
296
298
|
});
|
|
297
299
|
|
|
298
|
-
const component = createTestRenderer(store, widget);
|
|
300
|
+
const component = await createTestRenderer(store, widget);
|
|
299
301
|
|
|
300
302
|
// Initially loading should be true
|
|
301
303
|
assert.equal(store.get("loading"), true);
|
|
@@ -323,7 +325,7 @@ describe("ContentResolver", () => {
|
|
|
323
325
|
});
|
|
324
326
|
});
|
|
325
327
|
|
|
326
|
-
it("supports typed params with accessor chains", () => {
|
|
328
|
+
it("supports typed params with accessor chains", async () => {
|
|
327
329
|
const model = createAccessorModelProxy<TestModel>();
|
|
328
330
|
|
|
329
331
|
// This test verifies type inference works correctly.
|
|
@@ -362,7 +364,7 @@ describe("ContentResolver", () => {
|
|
|
362
364
|
},
|
|
363
365
|
});
|
|
364
366
|
|
|
365
|
-
const component = createTestRenderer(store, widget);
|
|
367
|
+
const component = await createTestRenderer(store, widget);
|
|
366
368
|
|
|
367
369
|
let tree = component.toJSON();
|
|
368
370
|
assert.deepEqual(tree, {
|
|
@@ -378,7 +380,7 @@ describe("ContentResolver", () => {
|
|
|
378
380
|
});
|
|
379
381
|
});
|
|
380
382
|
|
|
381
|
-
it("infers types from literal params", () => {
|
|
383
|
+
it("infers types from literal params", async () => {
|
|
382
384
|
// When using literal values, TypeScript can infer their types
|
|
383
385
|
let widget = (
|
|
384
386
|
<cx>
|
|
@@ -399,7 +401,7 @@ describe("ContentResolver", () => {
|
|
|
399
401
|
|
|
400
402
|
let store = new Store();
|
|
401
403
|
|
|
402
|
-
const component = createTestRenderer(store, widget);
|
|
404
|
+
const component = await createTestRenderer(store, widget);
|
|
403
405
|
|
|
404
406
|
let tree = component.toJSON();
|
|
405
407
|
assert.deepEqual(tree, {
|
|
@@ -415,7 +417,7 @@ describe("ContentResolver", () => {
|
|
|
415
417
|
});
|
|
416
418
|
});
|
|
417
419
|
|
|
418
|
-
it("supports simple Prop params (non-structured)", () => {
|
|
420
|
+
it("supports simple Prop params (non-structured)", async () => {
|
|
419
421
|
const model = createAccessorModelProxy<TestModel>();
|
|
420
422
|
|
|
421
423
|
// Test using a single AccessorChain as params instead of an object
|
|
@@ -444,7 +446,7 @@ describe("ContentResolver", () => {
|
|
|
444
446
|
},
|
|
445
447
|
});
|
|
446
448
|
|
|
447
|
-
const component = createTestRenderer(store, widget);
|
|
449
|
+
const component = await createTestRenderer(store, widget);
|
|
448
450
|
|
|
449
451
|
let tree = component.toJSON();
|
|
450
452
|
assert.deepEqual(tree, {
|
|
@@ -460,7 +462,7 @@ describe("ContentResolver", () => {
|
|
|
460
462
|
});
|
|
461
463
|
});
|
|
462
464
|
|
|
463
|
-
it("supports simple bind() as params", () => {
|
|
465
|
+
it("supports simple bind() as params", async () => {
|
|
464
466
|
let widget = (
|
|
465
467
|
<cx>
|
|
466
468
|
<div>
|
|
@@ -480,7 +482,7 @@ describe("ContentResolver", () => {
|
|
|
480
482
|
},
|
|
481
483
|
});
|
|
482
484
|
|
|
483
|
-
const component = createTestRenderer(store, widget);
|
|
485
|
+
const component = await createTestRenderer(store, widget);
|
|
484
486
|
|
|
485
487
|
let tree = component.toJSON();
|
|
486
488
|
assert.deepEqual(tree, {
|
|
@@ -496,7 +498,7 @@ describe("ContentResolver", () => {
|
|
|
496
498
|
});
|
|
497
499
|
});
|
|
498
500
|
|
|
499
|
-
it("resolves Selector<string> | null to string | null", () => {
|
|
501
|
+
it("resolves Selector<string> | null to string | null", async () => {
|
|
500
502
|
const text: string | null = "Hello {user.name}";
|
|
501
503
|
|
|
502
504
|
let widget = (
|
|
@@ -524,7 +526,7 @@ describe("ContentResolver", () => {
|
|
|
524
526
|
},
|
|
525
527
|
});
|
|
526
528
|
|
|
527
|
-
const component = createTestRenderer(store, widget);
|
|
529
|
+
const component = await createTestRenderer(store, widget);
|
|
528
530
|
let tree = component.toJSON();
|
|
529
531
|
assert.deepEqual(tree, {
|
|
530
532
|
type: "div",
|
|
@@ -533,7 +535,7 @@ describe("ContentResolver", () => {
|
|
|
533
535
|
});
|
|
534
536
|
});
|
|
535
537
|
|
|
536
|
-
it("resolves Prop<string> to string (not any)", () => {
|
|
538
|
+
it("resolves Prop<string> to string (not any)", async () => {
|
|
537
539
|
const model = createAccessorModelProxy<TestModel>();
|
|
538
540
|
|
|
539
541
|
// When params is typed as Prop<string>, onResolve should receive string (not any)
|
|
@@ -565,7 +567,7 @@ describe("ContentResolver", () => {
|
|
|
565
567
|
},
|
|
566
568
|
});
|
|
567
569
|
|
|
568
|
-
const component = createTestRenderer(store, widget);
|
|
570
|
+
const component = await createTestRenderer(store, widget);
|
|
569
571
|
|
|
570
572
|
let tree = component.toJSON();
|
|
571
573
|
assert.deepEqual(tree, {
|