@triniwiz/nativescript-masonkit 1.0.0-alpha.24 → 1.0.0-alpha.25

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.
Files changed (66) hide show
  1. package/common.d.ts +6 -5
  2. package/common.js +44 -12
  3. package/common.js.map +1 -1
  4. package/img/index.android.d.ts +0 -1
  5. package/img/index.android.js +2 -3
  6. package/img/index.android.js.map +1 -1
  7. package/img/index.ios.d.ts +1 -1
  8. package/img/index.ios.js +28 -18
  9. package/img/index.ios.js.map +1 -1
  10. package/package.json +1 -1
  11. package/platforms/android/masonkit-release.aar +0 -0
  12. package/platforms/ios/Mason.xcframework/Info.plist +5 -5
  13. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +122 -11
  14. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason.h +0 -5
  15. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/NSObject+MasonElement_Defaults.h +100 -0
  16. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  17. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  18. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +29619 -25969
  19. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +314 -181
  20. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  21. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +314 -181
  22. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  23. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +3066 -2864
  24. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +244 -22
  25. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason.h +0 -5
  26. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/NSObject+MasonElement_Defaults.h +100 -0
  27. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  28. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  29. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  30. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +17763 -14134
  31. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +314 -181
  32. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  33. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +314 -181
  34. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +17763 -14134
  35. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +314 -181
  36. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  37. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +314 -181
  38. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +28 -28
  39. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  40. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +3059 -2864
  41. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +2986 -2779
  42. package/scroll/index.android.d.ts +1 -2
  43. package/scroll/index.android.js +27 -14
  44. package/scroll/index.android.js.map +1 -1
  45. package/scroll/index.ios.d.ts +1 -2
  46. package/scroll/index.ios.js +46 -21
  47. package/scroll/index.ios.js.map +1 -1
  48. package/style.d.ts +6 -0
  49. package/style.js +117 -6
  50. package/style.js.map +1 -1
  51. package/text/index.android.d.ts +2 -1
  52. package/text/index.android.js +12 -8
  53. package/text/index.android.js.map +1 -1
  54. package/text/index.ios.d.ts +4 -4
  55. package/text/index.ios.js +56 -40
  56. package/text/index.ios.js.map +1 -1
  57. package/utils/index.android.js +4 -4
  58. package/utils/index.android.js.map +1 -1
  59. package/utils/index.ios.js +11 -11
  60. package/utils/index.ios.js.map +1 -1
  61. package/view/index.android.d.ts +1 -2
  62. package/view/index.android.js +28 -15
  63. package/view/index.android.js.map +1 -1
  64. package/view/index.ios.d.ts +1 -2
  65. package/view/index.ios.js +43 -19
  66. package/view/index.ios.js.map +1 -1
@@ -2,12 +2,11 @@ import { style_, ViewBase } from '../common';
2
2
  export declare class Scroll extends ViewBase {
3
3
  [style_]: any;
4
4
  private _view;
5
- _hasNativeView: boolean;
6
5
  _inBatch: boolean;
7
6
  constructor();
8
7
  get _styleHelper(): any;
9
8
  createNativeView(): org.nativescript.mason.masonkit.Scroll;
10
- disposeNativeView(): void;
9
+ set text(value: any);
11
10
  get android(): org.nativescript.mason.masonkit.Scroll;
12
11
  _addViewToNativeVisualTree(child: MasonChild, atIndex?: number): boolean;
13
12
  _removeViewFromNativeVisualTree(view: MasonChild): void;
@@ -1,16 +1,13 @@
1
1
  import { Utils } from '@nativescript/core';
2
- import { style_, ViewBase } from '../common';
2
+ import { isMasonView_, style_, ViewBase } from '../common';
3
3
  import { Style } from '../style';
4
4
  import { Tree } from '../tree';
5
5
  export class Scroll extends ViewBase {
6
6
  constructor() {
7
7
  super();
8
- this._hasNativeView = false;
9
8
  this._inBatch = false;
10
- const view = Tree.instance.createView(Utils.android.getCurrentActivity() || Utils.android.getApplicationContext());
11
- this._hasNativeView = true;
12
- this._view = view;
13
- this._isMasonView = true;
9
+ this._view = Tree.instance.createView(Utils.android.getCurrentActivity() || Utils.android.getApplicationContext());
10
+ this[isMasonView_] = true;
14
11
  }
15
12
  get _styleHelper() {
16
13
  if (this[style_] === undefined) {
@@ -21,9 +18,29 @@ export class Scroll extends ViewBase {
21
18
  createNativeView() {
22
19
  return this._view;
23
20
  }
24
- disposeNativeView() {
25
- this._hasNativeView = false;
26
- super.disposeNativeView();
21
+ set text(value) {
22
+ const nativeView = this._view;
23
+ if (nativeView) {
24
+ // hacking vue3 to handle text nodes
25
+ if (global.VUE3_ELEMENT_REF) {
26
+ const view_ref = this[global.VUE3_ELEMENT_REF];
27
+ if (Array.isArray(view_ref.childNodes)) {
28
+ if (view_ref.childNodes.length === 0) {
29
+ nativeView.addChildAt(value || '', -1);
30
+ return;
31
+ }
32
+ view_ref.childNodes.forEach((node, index) => {
33
+ if (node.nodeType === 'text') {
34
+ nativeView.addChildAt(node.text || '', index);
35
+ }
36
+ });
37
+ }
38
+ }
39
+ else {
40
+ // will replace all nodes with a new text node
41
+ // nativeView.setTextContent(value);
42
+ }
43
+ }
27
44
  }
28
45
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
29
46
  // @ts-ignore
@@ -33,8 +50,6 @@ export class Scroll extends ViewBase {
33
50
  // @ts-ignore
34
51
  _addViewToNativeVisualTree(child, atIndex = -1) {
35
52
  const nativeView = this._view;
36
- // @ts-ignore
37
- child._masonParent = this;
38
53
  if (nativeView && child.nativeViewProtected) {
39
54
  child._hasNativeView = true;
40
55
  child._isMasonChild = true;
@@ -45,9 +60,7 @@ export class Scroll extends ViewBase {
45
60
  }
46
61
  // @ts-ignore
47
62
  _removeViewFromNativeVisualTree(view) {
48
- view._masonParent = undefined;
49
- view._isMasonView = false;
50
- view._isMasonChild = false;
63
+ view[isMasonView_] = false;
51
64
  // @ts-ignore
52
65
  super._removeViewFromNativeVisualTree(view);
53
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,MAAM,OAAO,MAAO,SAAQ,QAAQ;IAKlC;QACE,KAAK,EAAE,CAAC;QAHV,mBAAc,GAAG,KAAK,CAAC;QACvB,aAAQ,GAAG,KAAK,CAAC;QAGf,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAU,CAAC;QAC5H,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,YAAY;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,KAAK,CAAC,iBAAiB,EAAE,CAAC;IAC5B,CAAC;IAED,6DAA6D;IAC7D,aAAa;IACb,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAA+C,CAAC;IAC9D,CAAC;IAED,aAAa;IACN,0BAA0B,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,KAA+C,CAAC;QAExE,aAAa;QACb,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;QAC1B,IAAI,UAAU,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;YAC5C,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5B,KAAK,CAAC,aAAa,GAAG,IAAI,CAAC;YAC3B,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,CAAU,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,aAAa;IACN,+BAA+B,CAAC,IAAgB;QACrD,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,aAAa;QACb,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.android.ts"],"names":[],"mappings":"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"}
@@ -4,14 +4,13 @@ export declare class Scroll extends ViewBase {
4
4
  private _view;
5
5
  constructor();
6
6
  get _styleHelper(): any;
7
- _hasNativeView: boolean;
8
7
  _inBatch: boolean;
9
8
  createNativeView(): MasonScroll;
10
- disposeNativeView(): void;
11
9
  get ios(): MasonScroll;
12
10
  onLayout(left: number, top: number, right: number, bottom: number): void;
13
11
  onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
14
12
  _setNativeViewFrame(nativeView: any, frame: CGRect): void;
13
+ set text(value: string);
15
14
  _addViewToNativeVisualTree(child: MasonChild, atIndex?: number): boolean;
16
15
  _removeViewFromNativeVisualTree(view: MasonChild): void;
17
16
  }
@@ -1,15 +1,13 @@
1
1
  import { Utils, View } from '@nativescript/core';
2
- import { style_, ViewBase } from '../common';
2
+ import { isMasonView_, style_, ViewBase } from '../common';
3
3
  import { Style } from '../style';
4
4
  import { Tree } from '../tree';
5
5
  export class Scroll extends ViewBase {
6
6
  constructor() {
7
7
  super();
8
- this._hasNativeView = false;
9
8
  this._inBatch = false;
10
- const view = Tree.instance.createScrollView();
11
- this._hasNativeView = true;
12
- this._view = view;
9
+ this._view = Tree.instance.createScrollView();
10
+ this[isMasonView_] = true;
13
11
  }
14
12
  get _styleHelper() {
15
13
  if (this[style_] === undefined) {
@@ -20,10 +18,6 @@ export class Scroll extends ViewBase {
20
18
  createNativeView() {
21
19
  return this._view;
22
20
  }
23
- disposeNativeView() {
24
- this._hasNativeView = false;
25
- super.disposeNativeView();
26
- }
27
21
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
28
22
  // @ts-ignore
29
23
  get ios() {
@@ -32,9 +26,12 @@ export class Scroll extends ViewBase {
32
26
  onLayout(left, top, right, bottom) {
33
27
  super.onLayout(left, top, right, bottom);
34
28
  // @ts-ignore
35
- let layout = this._view.node.computedLayout ?? this._view.layout();
29
+ let layout = this._view.node.computedLayout;
36
30
  const children = layout.children;
37
31
  let i = 0;
32
+ if (children.count === 0) {
33
+ return;
34
+ }
38
35
  for (const child of this._children) {
39
36
  layout = children.objectAtIndex(i);
40
37
  const x = layout.x;
@@ -52,13 +49,15 @@ export class Scroll extends ViewBase {
52
49
  const widthMode = Utils.layout.getMeasureSpecMode(widthMeasureSpec);
53
50
  const specHeight = Utils.layout.getMeasureSpecSize(heightMeasureSpec);
54
51
  const heightMode = Utils.layout.getMeasureSpecMode(heightMeasureSpec);
55
- if (!this._isMasonChild) {
52
+ if (!this[isMasonView_]) {
56
53
  // only call compute on the parent
57
54
  if (this.width === 'auto' && this.height === 'auto') {
58
55
  // @ts-ignore
59
- this.ios.computeWithSize(specWidth, specHeight);
56
+ this.ios.mason_computeWithSize(specWidth, specHeight);
57
+ // this.ios.computeWithSize(specWidth, specHeight);
60
58
  // @ts-ignore
61
- const layout = this.ios.layout();
59
+ const layout = this.ios.mason_layout();
60
+ //const layout = this.ios.layout();
62
61
  const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
63
62
  const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
64
63
  this.eachLayoutChild((child) => {
@@ -69,9 +68,10 @@ export class Scroll extends ViewBase {
69
68
  }
70
69
  else {
71
70
  // @ts-ignore
72
- this.ios.computeWithMaxContent();
73
- // @ts-ignore
74
- const layout = this.ios.node.computedLayout ?? this.ios.layout();
71
+ this.ios.mason_computeWithMaxContent();
72
+ // // @ts-ignore
73
+ // this.ios.computeWithMaxContent();
74
+ const layout = this.ios.node.computedLayout;
75
75
  const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
76
76
  const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
77
77
  this.setMeasuredDimension(w, h);
@@ -82,7 +82,7 @@ export class Scroll extends ViewBase {
82
82
  }
83
83
  else {
84
84
  // @ts-ignore
85
- const layout = this.ios.node.computedLayout ?? this.ios.layout();
85
+ const layout = this.ios.node.computedLayout;
86
86
  const w = Utils.layout.makeMeasureSpec(layout.width, Utils.layout.EXACTLY);
87
87
  const h = Utils.layout.makeMeasureSpec(layout.height, Utils.layout.EXACTLY);
88
88
  this.setMeasuredDimension(w, h);
@@ -95,11 +95,38 @@ export class Scroll extends ViewBase {
95
95
  _setNativeViewFrame(nativeView, frame) {
96
96
  nativeView.frame = frame;
97
97
  }
98
+ set text(value) {
99
+ const nativeView = this._view;
100
+ if (nativeView) {
101
+ // hacking vue3 to handle text nodes
102
+ if (global.VUE3_ELEMENT_REF) {
103
+ const view_ref = this[global.VUE3_ELEMENT_REF];
104
+ if (Array.isArray(view_ref.childNodes)) {
105
+ if (view_ref.childNodes.length === 0) {
106
+ // @ts-ignore
107
+ nativeView.mason_addChildAtText(value || '', -1);
108
+ return;
109
+ }
110
+ view_ref.childNodes.forEach((node, index) => {
111
+ if (node.nodeType === 'text') {
112
+ // using replace to avoid accumulating text nodes
113
+ // @ts-ignore
114
+ // nativeView.mason_replaceChildAtText(node.text || '', index);
115
+ nativeView.mason_replaceChildAtText(node.text || '', index);
116
+ }
117
+ });
118
+ }
119
+ }
120
+ else {
121
+ // will replace all nodes with a new text node
122
+ // nativeView.text = value;
123
+ }
124
+ }
125
+ }
98
126
  // @ts-ignore
99
127
  _addViewToNativeVisualTree(child, atIndex = -1) {
100
128
  const nativeView = this._view;
101
129
  // @ts-ignore
102
- child._masonParent = this;
103
130
  if (nativeView && child.nativeViewProtected) {
104
131
  child._hasNativeView = true;
105
132
  child._isMasonChild = true;
@@ -115,9 +142,7 @@ export class Scroll extends ViewBase {
115
142
  }
116
143
  // @ts-ignore
117
144
  _removeViewFromNativeVisualTree(view) {
118
- view._masonParent = undefined;
119
- view._isMasonView = false;
120
- view._isMasonChild = false;
145
+ view[isMasonView_] = false;
121
146
  // @ts-ignore
122
147
  super._removeViewFromNativeVisualTree(view);
123
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.ios.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../packages/nativescript-masonkit/scroll/index.ios.ts"],"names":[],"mappings":"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"}
package/style.d.ts CHANGED
@@ -18,6 +18,12 @@ export declare class Style {
18
18
  get view(): View;
19
19
  get boxSizing(): 'border-box' | 'content-box';
20
20
  set boxSizing(value: 'border-box' | 'content-box');
21
+ get fontSize(): number;
22
+ set fontSize(value: number);
23
+ get fontStyle(): 'normal' | 'italic' | 'oblique' | `oblique ${number}deg`;
24
+ set fontStyle(value: 'normal' | 'italic' | 'oblique' | `oblique ${number}deg`);
25
+ get fontWeight(): '100' | '200' | '300' | 'normal' | '400' | '500' | '600' | 'bold' | '700' | '800' | '900' | number;
26
+ set fontWeight(value: '100' | '200' | '300' | 'normal' | '400' | '500' | '600' | 'bold' | '700' | '800' | '900' | number);
21
27
  get color(): number;
22
28
  set color(value: number);
23
29
  get backgroundColor(): number;
package/style.js CHANGED
@@ -102,6 +102,10 @@ var TextStyleKeys;
102
102
  TextStyleKeys[TextStyleKeys["FONT_STYLE_TYPE"] = 32] = "FONT_STYLE_TYPE";
103
103
  TextStyleKeys[TextStyleKeys["FONT_STYLE_SLANT"] = 36] = "FONT_STYLE_SLANT";
104
104
  TextStyleKeys[TextStyleKeys["TEXT_WRAP"] = 40] = "TEXT_WRAP";
105
+ TextStyleKeys[TextStyleKeys["TEXT_OVERFLOW"] = 44] = "TEXT_OVERFLOW";
106
+ TextStyleKeys[TextStyleKeys["DECORATION_STYLE"] = 48] = "DECORATION_STYLE";
107
+ TextStyleKeys[TextStyleKeys["WHITE_SPACE"] = 52] = "WHITE_SPACE";
108
+ TextStyleKeys[TextStyleKeys["FONT_WEIGHT"] = 56] = "FONT_WEIGHT";
105
109
  })(TextStyleKeys || (TextStyleKeys = {}));
106
110
  function parseLengthPercentageAuto(type, value) {
107
111
  switch (type) {
@@ -198,6 +202,10 @@ TextStateKeys.TRANSFORM = new TextStateKeys(1n << 7n);
198
202
  TextStateKeys.FONT_STYLE = new TextStateKeys(1n << 8n);
199
203
  TextStateKeys.FONT_STYLE_SLANT = new TextStateKeys(1n << 9n);
200
204
  TextStateKeys.TEXT_WRAP = new TextStateKeys(1n << 10n);
205
+ TextStateKeys.TEXT_OVERFLOW = new TextStateKeys(1n << 11n);
206
+ TextStateKeys.DECORATION_STYLE = new TextStateKeys(1n << 12n);
207
+ TextStateKeys.WHITE_SPACE = new TextStateKeys(1n << 13n);
208
+ TextStateKeys.FONT_WEIGHT = new TextStateKeys(1n << 14n);
201
209
  const getUint16 = (view, offset) => {
202
210
  return view.getUint16(offset, true);
203
211
  };
@@ -257,18 +265,15 @@ export class Style {
257
265
  else if (__APPLE__) {
258
266
  // todo
259
267
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
260
- // @ts-ignore
261
268
  const style = nativeView.style;
262
269
  if (!isText) {
263
270
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
264
- // @ts-ignore
265
271
  const styleBuffer = style.valuesCompat;
266
272
  const buffer = interop.bufferFromData(styleBuffer);
267
273
  ret.style_view = new DataView(buffer);
268
274
  }
269
275
  else {
270
276
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
271
- // @ts-ignore
272
277
  const styleBuffer = style.valuesCompat;
273
278
  const buffer = interop.bufferFromData(styleBuffer);
274
279
  ret.style_view = new DataView(buffer);
@@ -285,7 +290,6 @@ export class Style {
285
290
  this.isTextDirty = -1n;
286
291
  }
287
292
  syncStyle(isText = false) {
288
- // console.time('syncStyle');
289
293
  if (__ANDROID__) {
290
294
  if (!isText) {
291
295
  const view = this.view.android;
@@ -299,7 +303,6 @@ export class Style {
299
303
  else if (__APPLE__) {
300
304
  if (!isText) {
301
305
  const view = this.view.ios;
302
- // todo
303
306
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
304
307
  // @ts-ignore
305
308
  view.syncStyle(this.isDirty.toString());
@@ -310,7 +313,6 @@ export class Style {
310
313
  }
311
314
  }
312
315
  this.resetState();
313
- // console.timeEnd('syncStyle');
314
316
  }
315
317
  setOrAppendState(value) {
316
318
  if (this.isDirty == -1n) {
@@ -366,6 +368,115 @@ export class Style {
366
368
  this.setOrAppendState(StateKeys.BOX_SIZING);
367
369
  }
368
370
  }
371
+ get fontSize() {
372
+ if (!this.text_style_view) {
373
+ // BLACK ?
374
+ return 16;
375
+ }
376
+ return getFloat32(this.text_style_view, TextStyleKeys.SIZE);
377
+ }
378
+ set fontSize(value) {
379
+ if (!this.text_style_view) {
380
+ return;
381
+ }
382
+ setFloat32(this.text_style_view, TextStyleKeys.SIZE, value);
383
+ this.setOrAppendTextState(TextStateKeys.SIZE);
384
+ }
385
+ get fontStyle() {
386
+ if (!this.text_style_view) {
387
+ // normal ?
388
+ return 'normal';
389
+ }
390
+ switch (getInt32(this.text_style_view, TextStyleKeys.FONT_STYLE_TYPE)) {
391
+ case 0:
392
+ return 'normal';
393
+ case 1:
394
+ return 'italic';
395
+ case 2:
396
+ return 'oblique';
397
+ default:
398
+ return 'normal';
399
+ }
400
+ }
401
+ set fontStyle(value) {
402
+ if (!this.text_style_view) {
403
+ return;
404
+ }
405
+ let style = -1;
406
+ switch (value) {
407
+ case 'normal':
408
+ style = 0;
409
+ break;
410
+ case 'italic':
411
+ style = 1;
412
+ break;
413
+ case 'oblique':
414
+ style = 2;
415
+ break;
416
+ }
417
+ if (style !== -1) {
418
+ setInt32(this.text_style_view, TextStyleKeys.FONT_STYLE_TYPE, style);
419
+ this.setOrAppendTextState(TextStateKeys.FONT_STYLE);
420
+ }
421
+ }
422
+ get fontWeight() {
423
+ if (!this.text_style_view) {
424
+ // BLACK ?
425
+ return 400;
426
+ }
427
+ return getInt32(this.text_style_view, TextStyleKeys.FONT_WEIGHT);
428
+ }
429
+ set fontWeight(value) {
430
+ if (!this.text_style_view) {
431
+ return;
432
+ }
433
+ let weight = -1;
434
+ switch (value) {
435
+ case '100':
436
+ weight = 100;
437
+ break;
438
+ case '200':
439
+ weight = 200;
440
+ break;
441
+ case '300':
442
+ weight = 300;
443
+ break;
444
+ case 'normal':
445
+ weight = 400;
446
+ break;
447
+ case '400':
448
+ weight = 400;
449
+ break;
450
+ case '500':
451
+ weight = 500;
452
+ break;
453
+ case '600':
454
+ weight = 600;
455
+ break;
456
+ case 'bold':
457
+ weight = 700;
458
+ break;
459
+ case '700':
460
+ weight = 700;
461
+ break;
462
+ case '800':
463
+ weight = 800;
464
+ break;
465
+ case '900':
466
+ weight = 900;
467
+ break;
468
+ default:
469
+ if (typeof value === 'number' && value >= 100 && value <= 1000) {
470
+ weight = value;
471
+ }
472
+ break;
473
+ }
474
+ if (weight !== -1) {
475
+ console.log('Setting font weight to', TextStyleKeys.FONT_WEIGHT, this.text_style_view.byteLength, weight);
476
+ setInt32(this.text_style_view, TextStyleKeys.FONT_WEIGHT, weight);
477
+ this.setOrAppendTextState(TextStateKeys.FONT_WEIGHT);
478
+ }
479
+ }
369
480
  get color() {
370
481
  if (!this.text_style_view) {
371
482
  // BLACK ?