@dcl/react-ecs 7.5.5 → 7.5.6-9700437476.commit-7649f90

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.
@@ -29,7 +29,9 @@ export function Label(props) {
29
29
  ...getFont(font),
30
30
  ...getTextAlign(textAlign),
31
31
  ...getFontSize(fontSize),
32
- ...getTextWrap(textWrap)
32
+ ...getTextWrap(textWrap),
33
+ outlineWidth: props.outlineWidth,
34
+ outlineColor: props.outlineColor
33
35
  };
34
36
  return ReactEcs.createElement("entity", { ...commonProps, uiText: uiText });
35
37
  }
@@ -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,5 +1,5 @@
1
- import { UiTransformProps } from './types';
2
1
  import { PBUiTransform } from '@dcl/ecs/dist/components';
2
+ import { UiTransformProps } from './types';
3
3
  /**
4
4
  * @public
5
5
  */
@@ -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,15 @@ 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
55
56
  };
56
57
  /**
57
58
  * @public
58
59
  */
59
60
  /* @__PURE__ */
60
61
  export function parseUiTransform(props = {}) {
61
- const { height, minHeight, maxHeight, width, minWidth, maxWidth, alignItems, alignContent, flexWrap, ...otherProps } = props;
62
+ const { scrollPosition, scrollVisible, height, minHeight, maxHeight, width, minWidth, maxWidth, alignItems, alignContent, flexWrap, ...otherProps } = props;
62
63
  return {
63
64
  ...defaultUiTransform,
64
65
  ...otherProps,
@@ -81,6 +82,8 @@ export function parseUiTransform(props = {}) {
81
82
  // Optional values
82
83
  ...(alignContent && getAlign('alignContent', alignContent)),
83
84
  ...(alignItems && getAlign('alignItems', alignItems)),
84
- ...(flexWrap && getFlexWrap(flexWrap))
85
+ ...(flexWrap && getFlexWrap(flexWrap)),
86
+ ...(scrollPosition && getScrollPosition(scrollPosition)),
87
+ ...(scrollVisible && getScrollVisible(scrollVisible))
85
88
  };
86
89
  }
@@ -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,12 @@ 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;
116
130
  }
@@ -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
+ }
@@ -24,6 +24,7 @@ export function createReconciler(engine, pointerEvents) {
24
24
  const UiInputResult = components.UiInputResult(engine);
25
25
  const UiDropdown = components.UiDropdown(engine);
26
26
  const UiDropdownResult = components.UiDropdownResult(engine);
27
+ const UiScrollResult = components.UiScrollResult(engine);
27
28
  // Component ID Helper
28
29
  const getComponentId = {
29
30
  uiTransform: UiTransform.componentId,
@@ -257,6 +258,8 @@ export function createReconciler(engine, pointerEvents) {
257
258
  if (changeEvents.size) {
258
259
  handleOnChange(UiInput.componentId, UiInputResult);
259
260
  handleOnChange(UiDropdown.componentId, UiDropdownResult);
261
+ // TODO: maybe as componentId could be a virtual id since the scroll input doesn't exist
262
+ handleOnChange(UiTransform.componentId, UiScrollResult);
260
263
  }
261
264
  return reconciler.updateContainer(component, root, null);
262
265
  },
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@dcl/react-ecs",
3
3
  "description": "Decentraland ECS",
4
- "version": "7.5.5",
4
+ "version": "7.5.6-9700437476.commit-7649f90",
5
5
  "author": "DCL",
6
6
  "bugs": "https://github.com/decentraland/js-sdk-toolchain/issues",
7
7
  "dependencies": {
8
- "@dcl/ecs": "7.5.5",
8
+ "@dcl/ecs": "7.5.6-9700437476.commit-7649f90",
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": "3d8542fb7fd17addf4bfa939ea534bce1d3ce2ba"
43
+ "commit": "7649f9032ea66e6d23262b1f9aa7d0ee35509c74"
44
44
  }