@dcl/react-ecs 7.6.8-12260048919.commit-4123b99 → 7.6.8-12415739875.commit-c9a0fe7
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/components/Button/index.js +2 -2
- package/dist/components/Dropdown/index.js +4 -2
- package/dist/components/Input/index.js +4 -2
- package/dist/components/Label/index.js +7 -3
- package/dist/components/Label/types.d.ts +4 -0
- package/dist/components/listeners/types.d.ts +4 -0
- package/dist/components/listeners/types.js +3 -1
- package/dist/components/uiTransform/index.d.ts +1 -1
- package/dist/components/uiTransform/index.js +9 -4
- package/dist/components/uiTransform/types.d.ts +16 -0
- package/dist/components/uiTransform/utils.js +37 -0
- package/dist/react-ecs.d.ts +2 -0
- package/dist/reconciler/index.d.ts +4 -3
- package/dist/reconciler/index.js +36 -9
- package/dist/reconciler/utils.js +2 -0
- package/dist/system.d.ts +2 -0
- package/dist/system.js +16 -1
- package/package.json +3 -3
|
@@ -29,7 +29,7 @@ function getButtonProps(props) {
|
|
|
29
29
|
*/
|
|
30
30
|
/* @__PURE__ */
|
|
31
31
|
export function Button(props) {
|
|
32
|
-
const { uiTransform, uiBackground, onMouseDown, onMouseUp, ...otherProps } = props;
|
|
32
|
+
const { uiTransform, uiBackground, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, ...otherProps } = props;
|
|
33
33
|
const buttonProps = getButtonProps(props);
|
|
34
34
|
const uiBackgroundProps = parseUiBackground({
|
|
35
35
|
...buttonProps.uiBackground,
|
|
@@ -54,5 +54,5 @@ export function Button(props) {
|
|
|
54
54
|
if (uiBackgroundProps && uiBackgroundProps.color)
|
|
55
55
|
uiBackgroundProps.color.a /= 2;
|
|
56
56
|
}
|
|
57
|
-
return (ReactEcs.createElement("entity", { onMouseDown: !!props.disabled ? undefined : onMouseDown, onMouseUp: !!props.disabled ? undefined : onMouseUp, uiTransform: uiTransformProps, uiText: textProps, uiBackground: uiBackgroundProps }));
|
|
57
|
+
return (ReactEcs.createElement("entity", { onMouseDown: !!props.disabled ? undefined : onMouseDown, onMouseUp: !!props.disabled ? undefined : onMouseUp, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, uiTransform: uiTransformProps, uiText: textProps, uiBackground: uiBackgroundProps }));
|
|
58
58
|
}
|
|
@@ -34,13 +34,15 @@ function parseUiDropdown(props) {
|
|
|
34
34
|
*/
|
|
35
35
|
/* @__PURE__ */
|
|
36
36
|
export function Dropdown(props) {
|
|
37
|
-
const { uiTransform, uiBackground, onMouseDown, onMouseUp, ...otherProps } = props;
|
|
37
|
+
const { uiTransform, uiBackground, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, ...otherProps } = props;
|
|
38
38
|
const dropdownProps = parseUiDropdown(otherProps);
|
|
39
39
|
const commonProps = parseProps({
|
|
40
40
|
uiTransform,
|
|
41
41
|
uiBackground,
|
|
42
42
|
onMouseDown,
|
|
43
|
-
onMouseUp
|
|
43
|
+
onMouseUp,
|
|
44
|
+
onMouseEnter,
|
|
45
|
+
onMouseLeave
|
|
44
46
|
});
|
|
45
47
|
return ReactEcs.createElement("entity", { ...commonProps, uiDropdown: dropdownProps });
|
|
46
48
|
}
|
|
@@ -35,13 +35,15 @@ function parseUiInput(props) {
|
|
|
35
35
|
* @category Component
|
|
36
36
|
*/ /* @__PURE__ */
|
|
37
37
|
export function Input(props) {
|
|
38
|
-
const { uiTransform, uiBackground, onMouseDown, onMouseUp, ...otherProps } = props;
|
|
38
|
+
const { uiTransform, uiBackground, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, ...otherProps } = props;
|
|
39
39
|
const inputProps = parseUiInput(otherProps);
|
|
40
40
|
const commonProps = parseProps({
|
|
41
41
|
uiTransform,
|
|
42
42
|
uiBackground,
|
|
43
43
|
onMouseDown,
|
|
44
|
-
onMouseUp
|
|
44
|
+
onMouseUp,
|
|
45
|
+
onMouseEnter,
|
|
46
|
+
onMouseLeave
|
|
45
47
|
});
|
|
46
48
|
return ReactEcs.createElement("entity", { ...commonProps, uiInput: inputProps });
|
|
47
49
|
}
|
|
@@ -16,12 +16,14 @@ export { scaleFontSize } from './utils';
|
|
|
16
16
|
*/
|
|
17
17
|
/* @__PURE__ */
|
|
18
18
|
export function Label(props) {
|
|
19
|
-
const { uiTransform, uiBackground, onMouseDown, onMouseUp, ...uiTextProps } = props;
|
|
19
|
+
const { uiTransform, uiBackground, onMouseDown, onMouseUp, onMouseEnter, onMouseLeave, ...uiTextProps } = props;
|
|
20
20
|
const commonProps = parseProps({
|
|
21
21
|
uiTransform,
|
|
22
22
|
uiBackground,
|
|
23
23
|
onMouseDown,
|
|
24
|
-
onMouseUp
|
|
24
|
+
onMouseUp,
|
|
25
|
+
onMouseEnter,
|
|
26
|
+
onMouseLeave
|
|
25
27
|
});
|
|
26
28
|
const { font, textAlign, fontSize, textWrap, ...textProps } = uiTextProps;
|
|
27
29
|
const uiText = {
|
|
@@ -29,7 +31,9 @@ export function Label(props) {
|
|
|
29
31
|
...getFont(font),
|
|
30
32
|
...getTextAlign(textAlign),
|
|
31
33
|
...getFontSize(fontSize),
|
|
32
|
-
...getTextWrap(textWrap)
|
|
34
|
+
...getTextWrap(textWrap),
|
|
35
|
+
outlineWidth: props.outlineWidth,
|
|
36
|
+
outlineColor: props.outlineColor
|
|
33
37
|
};
|
|
34
38
|
return ReactEcs.createElement("entity", { ...commonProps, uiText: uiText });
|
|
35
39
|
}
|
|
@@ -15,6 +15,10 @@ export interface UiLabelProps {
|
|
|
15
15
|
textAlign?: TextAlignType | undefined;
|
|
16
16
|
/** Label font type. @defaultValue 'sans-serif' */
|
|
17
17
|
font?: UiFontType | undefined;
|
|
18
|
+
/** Outline width of the text. @defaultValue 0 */
|
|
19
|
+
outlineWidth?: number | undefined;
|
|
20
|
+
/** Outline color of the text. @defaultValue `{ r: 0, g: 0, b: 0, a: 1 }` */
|
|
21
|
+
outlineColor?: Color4 | undefined;
|
|
18
22
|
/** Behaviour when text reached. @defaultValue 'wrap' */
|
|
19
23
|
textWrap?: UiTextWrapType | undefined;
|
|
20
24
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAlign, getDisplay, getFlexDirection, getFlexWrap, getJustify, getOverflow, getPointerFilter, getPositionType, parsePosition, parseSize } from './utils';
|
|
1
|
+
import { getAlign, getDisplay, getFlexDirection, getFlexWrap, getJustify, getOverflow, getPointerFilter, getPositionType, getScrollPosition, getScrollVisible, parsePosition, parseSize } from './utils';
|
|
2
2
|
/**
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
@@ -51,14 +51,16 @@ const defaultUiTransform = {
|
|
|
51
51
|
flexBasisUnit: 0 /* YGUnit.YGU_UNDEFINED */,
|
|
52
52
|
widthUnit: 3 /* YGUnit.YGU_AUTO */,
|
|
53
53
|
heightUnit: 0 /* YGUnit.YGU_UNDEFINED */,
|
|
54
|
-
pointerFilter: 0 /* PointerFilterMode.PFM_NONE
|
|
54
|
+
pointerFilter: 0 /* PointerFilterMode.PFM_NONE */,
|
|
55
|
+
opacity: 1,
|
|
56
|
+
zIndex: 0
|
|
55
57
|
};
|
|
56
58
|
/**
|
|
57
59
|
* @public
|
|
58
60
|
*/
|
|
59
61
|
/* @__PURE__ */
|
|
60
62
|
export function parseUiTransform(props = {}) {
|
|
61
|
-
const { height, minHeight, maxHeight, width, minWidth, maxWidth, alignItems, alignContent, flexWrap, ...otherProps } = props;
|
|
63
|
+
const { scrollPosition, scrollVisible, height, minHeight, maxHeight, width, minWidth, maxWidth, alignItems, alignContent, flexWrap, zIndex, ...otherProps } = props;
|
|
62
64
|
return {
|
|
63
65
|
...defaultUiTransform,
|
|
64
66
|
...otherProps,
|
|
@@ -81,6 +83,9 @@ export function parseUiTransform(props = {}) {
|
|
|
81
83
|
// Optional values
|
|
82
84
|
...(alignContent && getAlign('alignContent', alignContent)),
|
|
83
85
|
...(alignItems && getAlign('alignItems', alignItems)),
|
|
84
|
-
...(flexWrap && getFlexWrap(flexWrap))
|
|
86
|
+
...(flexWrap && getFlexWrap(flexWrap)),
|
|
87
|
+
...(scrollPosition && getScrollPosition(scrollPosition)),
|
|
88
|
+
...(scrollVisible && getScrollVisible(scrollVisible)),
|
|
89
|
+
...(zIndex && { zIndex })
|
|
85
90
|
};
|
|
86
91
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Vector2 } from '@dcl/ecs/dist/components/generated/pb/decentraland/common/vectors.gen';
|
|
1
2
|
import { ScaleUnit } from '../types';
|
|
2
3
|
/**
|
|
3
4
|
* unit value specified. i.e. 1 || '100%' || '1px' || '10vw'
|
|
@@ -62,6 +63,11 @@ export type PositionType = 'absolute' | 'relative';
|
|
|
62
63
|
* The pointer filter property determines if the ui element blocks the pointer or not (elements with pointer events always block the pointer regardless of this property)
|
|
63
64
|
*/
|
|
64
65
|
export type PointerFilterType = 'none' | 'block';
|
|
66
|
+
/**
|
|
67
|
+
* @public
|
|
68
|
+
* The scroll-visible determines if the scrollbars are shown when the scroll overflow is enabled
|
|
69
|
+
*/
|
|
70
|
+
export type ScrollVisibleType = 'horizontal' | 'vertical' | 'both' | 'hidden';
|
|
65
71
|
/**
|
|
66
72
|
* Layout props to position things in the canvas
|
|
67
73
|
* @public
|
|
@@ -113,4 +119,14 @@ export interface UiTransformProps {
|
|
|
113
119
|
overflow?: OverflowType;
|
|
114
120
|
/** The pointer filter property determines if the ui element blocks the pointer or not (elements with pointer events always block the pointer regardless of this property) **/
|
|
115
121
|
pointerFilter?: PointerFilterType;
|
|
122
|
+
/** The opacity property sets the opacity level for an element, it's accumulated across children @defaultValue 1 */
|
|
123
|
+
opacity?: number;
|
|
124
|
+
/** A reference value to identify the element, default empty */
|
|
125
|
+
elementId?: string;
|
|
126
|
+
/** default position=(0,0) if it aplies, a vector or a reference-id */
|
|
127
|
+
scrollPosition?: Vector2 | string;
|
|
128
|
+
/** default ShowScrollBar.SSB_BOTH */
|
|
129
|
+
scrollVisible?: ScrollVisibleType;
|
|
130
|
+
/** default 0 */
|
|
131
|
+
zIndex?: number;
|
|
116
132
|
}
|
|
@@ -184,3 +184,40 @@ const parsePointerFilter = {
|
|
|
184
184
|
none: 0 /* PointerFilterMode.PFM_NONE */,
|
|
185
185
|
block: 1 /* PointerFilterMode.PFM_BLOCK */
|
|
186
186
|
};
|
|
187
|
+
/**
|
|
188
|
+
* @internal
|
|
189
|
+
*/
|
|
190
|
+
export function getScrollPosition(scrollPosition) {
|
|
191
|
+
if (typeof scrollPosition === 'string') {
|
|
192
|
+
return {
|
|
193
|
+
scrollPosition: {
|
|
194
|
+
value: {
|
|
195
|
+
$case: 'reference',
|
|
196
|
+
reference: scrollPosition
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
return {
|
|
203
|
+
scrollPosition: {
|
|
204
|
+
value: {
|
|
205
|
+
$case: 'position',
|
|
206
|
+
position: scrollPosition
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
const parseScrollVisible = {
|
|
213
|
+
both: 0 /* ShowScrollBar.SSB_BOTH */,
|
|
214
|
+
hidden: 3 /* ShowScrollBar.SSB_HIDDEN */,
|
|
215
|
+
horizontal: 2 /* ShowScrollBar.SSB_ONLY_HORIZONTAL */,
|
|
216
|
+
vertical: 1 /* ShowScrollBar.SSB_ONLY_VERTICAL */
|
|
217
|
+
};
|
|
218
|
+
/**
|
|
219
|
+
* @internal
|
|
220
|
+
*/
|
|
221
|
+
export function getScrollVisible(scrollVisible) {
|
|
222
|
+
return { scrollVisible: parseScrollVisible[scrollVisible] };
|
|
223
|
+
}
|
package/dist/react-ecs.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Entity, IEngine, PointerEventsSystem } from '@dcl/ecs';
|
|
2
2
|
import { ReactEcs } from '../react-ecs';
|
|
3
|
-
export
|
|
4
|
-
update: (component: ReactEcs.JSX.ReactNode) =>
|
|
3
|
+
export interface DclReconciler {
|
|
4
|
+
update: (component: ReactEcs.JSX.ReactNode) => void;
|
|
5
5
|
getEntities: () => Entity[];
|
|
6
|
-
}
|
|
6
|
+
}
|
|
7
|
+
export declare function createReconciler(engine: Pick<IEngine, 'getComponent' | 'addEntity' | 'removeEntity' | 'defineComponentFromSchema' | 'getEntitiesWith'>, pointerEvents: PointerEventsSystem, rootEntity: Entity | undefined): DclReconciler;
|
package/dist/reconciler/index.js
CHANGED
|
@@ -6,11 +6,13 @@ import { componentKeys, isNotUndefined, noopConfig, propsChanged } from './utils
|
|
|
6
6
|
function getPointerEnum(pointerKey) {
|
|
7
7
|
const pointers = {
|
|
8
8
|
onMouseDown: 1 /* PointerEventType.PET_DOWN */,
|
|
9
|
-
onMouseUp: 0 /* PointerEventType.PET_UP
|
|
9
|
+
onMouseUp: 0 /* PointerEventType.PET_UP */,
|
|
10
|
+
onMouseEnter: 2 /* PointerEventType.PET_HOVER_ENTER */,
|
|
11
|
+
onMouseLeave: 3 /* PointerEventType.PET_HOVER_LEAVE */
|
|
10
12
|
};
|
|
11
13
|
return pointers[pointerKey];
|
|
12
14
|
}
|
|
13
|
-
export function createReconciler(engine, pointerEvents) {
|
|
15
|
+
export function createReconciler(engine, pointerEvents, rootEntity) {
|
|
14
16
|
// Store all the entities so when we destroy the UI we can also destroy them
|
|
15
17
|
const entities = new Set();
|
|
16
18
|
// Store the onChange callbacks to be runned every time a Result has changed
|
|
@@ -24,6 +26,8 @@ export function createReconciler(engine, pointerEvents) {
|
|
|
24
26
|
const UiInputResult = components.UiInputResult(engine);
|
|
25
27
|
const UiDropdown = components.UiDropdown(engine);
|
|
26
28
|
const UiDropdownResult = components.UiDropdownResult(engine);
|
|
29
|
+
const UiScrollResult = components.UiScrollResult(engine);
|
|
30
|
+
const Transform = components.Transform(engine);
|
|
27
31
|
// Component ID Helper
|
|
28
32
|
const getComponentId = {
|
|
29
33
|
uiTransform: UiTransform.componentId,
|
|
@@ -50,6 +54,12 @@ export function createReconciler(engine, pointerEvents) {
|
|
|
50
54
|
else if (update.component === 'onMouseUp') {
|
|
51
55
|
pointerEvents.removeOnPointerUp(instance.entity);
|
|
52
56
|
}
|
|
57
|
+
else if (update.component === 'onMouseEnter') {
|
|
58
|
+
pointerEvents.removeOnPointerHoverEnter(instance.entity);
|
|
59
|
+
}
|
|
60
|
+
else if (update.component === 'onMouseLeave') {
|
|
61
|
+
pointerEvents.removeOnPointerHoverLeave(instance.entity);
|
|
62
|
+
}
|
|
53
63
|
return;
|
|
54
64
|
}
|
|
55
65
|
if (update.props) {
|
|
@@ -59,13 +69,24 @@ export function createReconciler(engine, pointerEvents) {
|
|
|
59
69
|
entityEvent.set(pointerEvent, update.props);
|
|
60
70
|
if (alreadyHasPointerEvent)
|
|
61
71
|
return;
|
|
62
|
-
const pointerEventSystem = update.component === 'onMouseDown'
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
72
|
+
const pointerEventSystem = update.component === 'onMouseDown'
|
|
73
|
+
? pointerEvents.onPointerDown
|
|
74
|
+
: update.component === 'onMouseUp'
|
|
75
|
+
? pointerEvents.onPointerUp
|
|
76
|
+
: update.component === 'onMouseEnter'
|
|
77
|
+
? pointerEvents.onPointerHoverEnter
|
|
78
|
+
: update.component === 'onMouseLeave' && pointerEvents.onPointerHoverLeave;
|
|
79
|
+
if (pointerEventSystem) {
|
|
80
|
+
pointerEventSystem({
|
|
81
|
+
entity: instance.entity,
|
|
82
|
+
opts: {
|
|
83
|
+
button: 0 /* InputAction.IA_POINTER */,
|
|
84
|
+
// We add this showFeedBack so the pointerEventSystem creates a PointerEvent component with our entity
|
|
85
|
+
// This is needed for the renderer to know which entities are clickeables
|
|
86
|
+
showFeedback: true
|
|
87
|
+
}
|
|
88
|
+
}, () => pointerEventCallback(instance.entity, pointerEvent));
|
|
89
|
+
}
|
|
69
90
|
}
|
|
70
91
|
}
|
|
71
92
|
function removeComponent(instance, component) {
|
|
@@ -163,6 +184,10 @@ export function createReconciler(engine, pointerEvents) {
|
|
|
163
184
|
...noopConfig,
|
|
164
185
|
createInstance(type, props) {
|
|
165
186
|
const entity = engine.addEntity();
|
|
187
|
+
// set root
|
|
188
|
+
if (rootEntity !== undefined) {
|
|
189
|
+
Transform.createOrReplace(entity, { parent: rootEntity });
|
|
190
|
+
}
|
|
166
191
|
entities.add(entity);
|
|
167
192
|
const instance = {
|
|
168
193
|
entity,
|
|
@@ -257,6 +282,8 @@ export function createReconciler(engine, pointerEvents) {
|
|
|
257
282
|
if (changeEvents.size) {
|
|
258
283
|
handleOnChange(UiInput.componentId, UiInputResult);
|
|
259
284
|
handleOnChange(UiDropdown.componentId, UiDropdownResult);
|
|
285
|
+
// TODO: maybe as componentId could be a virtual id since the scroll input doesn't exist
|
|
286
|
+
handleOnChange(UiTransform.componentId, UiScrollResult);
|
|
260
287
|
}
|
|
261
288
|
return reconciler.updateContainer(component, root, null);
|
|
262
289
|
},
|
package/dist/reconciler/utils.js
CHANGED
package/dist/system.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Entity } from '@dcl/ecs';
|
|
1
2
|
import type { ReactEcs } from './react-ecs';
|
|
2
3
|
/**
|
|
3
4
|
* @public
|
|
@@ -9,4 +10,5 @@ export type UiComponent = () => ReactEcs.JSX.ReactNode;
|
|
|
9
10
|
export interface ReactBasedUiSystem {
|
|
10
11
|
destroy(): void;
|
|
11
12
|
setUiRenderer(ui: UiComponent): void;
|
|
13
|
+
setTextureRenderer(entity: Entity, ui: UiComponent): void;
|
|
12
14
|
}
|
package/dist/system.js
CHANGED
|
@@ -3,11 +3,15 @@ import { createReconciler } from './reconciler';
|
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
5
|
export function createReactBasedUiSystem(engine, pointerSystem) {
|
|
6
|
-
const renderer = createReconciler(engine, pointerSystem);
|
|
6
|
+
const renderer = createReconciler(engine, pointerSystem, undefined);
|
|
7
7
|
let uiComponent = undefined;
|
|
8
|
+
const textureRenderersAndUis = [];
|
|
8
9
|
function ReactBasedUiSystem() {
|
|
9
10
|
if (uiComponent)
|
|
10
11
|
renderer.update(uiComponent());
|
|
12
|
+
for (const [textureRenderer, ui] of textureRenderersAndUis) {
|
|
13
|
+
textureRenderer.update(ui());
|
|
14
|
+
}
|
|
11
15
|
}
|
|
12
16
|
engine.addSystem(ReactBasedUiSystem, 100e3, '@dcl/react-ecs');
|
|
13
17
|
return {
|
|
@@ -16,9 +20,20 @@ export function createReactBasedUiSystem(engine, pointerSystem) {
|
|
|
16
20
|
for (const entity of renderer.getEntities()) {
|
|
17
21
|
engine.removeEntity(entity);
|
|
18
22
|
}
|
|
23
|
+
for (const [textureRenderer, _] of textureRenderersAndUis) {
|
|
24
|
+
for (const entity of textureRenderer.getEntities()) {
|
|
25
|
+
engine.removeEntity(entity);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
for (const entity of renderer.getEntities()) {
|
|
29
|
+
engine.removeEntity(entity);
|
|
30
|
+
}
|
|
19
31
|
},
|
|
20
32
|
setUiRenderer(ui) {
|
|
21
33
|
uiComponent = ui;
|
|
34
|
+
},
|
|
35
|
+
setTextureRenderer(entity, ui) {
|
|
36
|
+
textureRenderersAndUis.push([createReconciler(engine, pointerSystem, entity), ui]);
|
|
22
37
|
}
|
|
23
38
|
};
|
|
24
39
|
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dcl/react-ecs",
|
|
3
3
|
"description": "Decentraland ECS",
|
|
4
|
-
"version": "7.6.8-
|
|
4
|
+
"version": "7.6.8-12415739875.commit-c9a0fe7",
|
|
5
5
|
"author": "DCL",
|
|
6
6
|
"bugs": "https://github.com/decentraland/js-sdk-toolchain/issues",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@dcl/ecs": "7.6.8-
|
|
8
|
+
"@dcl/ecs": "7.6.8-12415739875.commit-c9a0fe7",
|
|
9
9
|
"react": "^18.2.0",
|
|
10
10
|
"react-reconciler": "^0.29.0"
|
|
11
11
|
},
|
|
@@ -40,5 +40,5 @@
|
|
|
40
40
|
"tsconfig": "./tsconfig.json"
|
|
41
41
|
},
|
|
42
42
|
"types": "./dist/index.d.ts",
|
|
43
|
-
"commit": "
|
|
43
|
+
"commit": "c9a0fe76107e97476e7c04c0184360b719543f47"
|
|
44
44
|
}
|