@triniwiz/nativescript-masonkit 1.0.0-alpha.2 → 1.0.0-alpha.21

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 (64) hide show
  1. package/common.d.ts +67 -30
  2. package/common.js +609 -1094
  3. package/common.js.map +1 -1
  4. package/helpers.d.ts +116 -94
  5. package/helpers.js +471 -2538
  6. package/helpers.js.map +1 -1
  7. package/index.android.d.ts +53 -18
  8. package/index.android.js +190 -61
  9. package/index.android.js.map +1 -1
  10. package/index.d.ts +161 -17
  11. package/index.ios.d.ts +69 -19
  12. package/index.ios.js +438 -93
  13. package/index.ios.js.map +1 -1
  14. package/package.json +4 -4
  15. package/platforms/android/include.gradle +22 -1
  16. package/platforms/android/masonkit-release.aar +0 -0
  17. package/platforms/ios/Mason.xcframework/Info.plist +9 -5
  18. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason-Swift.h +495 -313
  19. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/Mason.h +11 -0
  20. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Headers/mason_native.h +215 -818
  21. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Info.plist +0 -0
  22. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Mason +0 -0
  23. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  24. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.abi.json +34507 -20240
  25. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.private.swiftinterface +660 -310
  26. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  27. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios.swiftinterface +660 -310
  28. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/Modules/module.modulemap +1 -1
  29. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  30. package/platforms/ios/Mason.xcframework/ios-arm64/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +2421 -0
  31. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason-Swift.h +1053 -689
  32. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/Mason.h +11 -0
  33. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Headers/mason_native.h +215 -818
  34. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Info.plist +0 -0
  35. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Mason +0 -0
  36. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  37. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  38. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.abi.json +34507 -20240
  39. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +660 -310
  40. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  41. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/arm64-apple-ios-simulator.swiftinterface +660 -310
  42. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.abi.json +34507 -20240
  43. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +660 -310
  44. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  45. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/Mason.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +660 -310
  46. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/Modules/module.modulemap +1 -1
  47. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/_CodeSignature/CodeResources +33 -97
  48. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/DWARF/Mason +0 -0
  49. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/aarch64/Mason.yml +2421 -0
  50. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/dSYMs/Mason.framework.dSYM/Contents/Resources/Relocations/x86_64/Mason.yml +2357 -0
  51. package/style.d.ts +166 -0
  52. package/style.js +1705 -0
  53. package/style.js.map +1 -0
  54. package/web.d.ts +55 -0
  55. package/web.js +189 -0
  56. package/web.js.map +1 -0
  57. package/platforms/ios/Mason.xcframework/ios-arm64/Mason.framework/PrivateHeaders/mason_native.h +0 -676
  58. package/platforms/ios/Mason.xcframework/ios-arm64_x86_64-simulator/Mason.framework/PrivateHeaders/mason_native.h +0 -676
  59. package/platforms/ios/Podfile +0 -1
  60. package/platforms/ios/build.xcconfig +0 -2
  61. package/platforms/ios/src/JSIModule.h +0 -217
  62. package/platforms/ios/src/JSIModule.mm +0 -2788
  63. package/platforms/ios/src/include/mason_native.h +0 -945
  64. package/platforms/ios/src/module.modulemap +0 -4
package/style.js ADDED
@@ -0,0 +1,1705 @@
1
+ import { layout } from '@nativescript/core/utils';
2
+ var StyleKeys;
3
+ (function (StyleKeys) {
4
+ StyleKeys[StyleKeys["DISPLAY"] = 0] = "DISPLAY";
5
+ StyleKeys[StyleKeys["POSITION"] = 4] = "POSITION";
6
+ StyleKeys[StyleKeys["DIRECTION"] = 8] = "DIRECTION";
7
+ StyleKeys[StyleKeys["FLEX_DIRECTION"] = 12] = "FLEX_DIRECTION";
8
+ StyleKeys[StyleKeys["FLEX_WRAP"] = 16] = "FLEX_WRAP";
9
+ StyleKeys[StyleKeys["OVERFLOW_X"] = 20] = "OVERFLOW_X";
10
+ StyleKeys[StyleKeys["OVERFLOW_Y"] = 24] = "OVERFLOW_Y";
11
+ StyleKeys[StyleKeys["ALIGN_ITEMS"] = 28] = "ALIGN_ITEMS";
12
+ StyleKeys[StyleKeys["ALIGN_SELF"] = 32] = "ALIGN_SELF";
13
+ StyleKeys[StyleKeys["ALIGN_CONTENT"] = 36] = "ALIGN_CONTENT";
14
+ StyleKeys[StyleKeys["JUSTIFY_ITEMS"] = 40] = "JUSTIFY_ITEMS";
15
+ StyleKeys[StyleKeys["JUSTIFY_SELF"] = 44] = "JUSTIFY_SELF";
16
+ StyleKeys[StyleKeys["JUSTIFY_CONTENT"] = 48] = "JUSTIFY_CONTENT";
17
+ StyleKeys[StyleKeys["INSET_LEFT_TYPE"] = 52] = "INSET_LEFT_TYPE";
18
+ StyleKeys[StyleKeys["INSET_LEFT_VALUE"] = 56] = "INSET_LEFT_VALUE";
19
+ StyleKeys[StyleKeys["INSET_RIGHT_TYPE"] = 60] = "INSET_RIGHT_TYPE";
20
+ StyleKeys[StyleKeys["INSET_RIGHT_VALUE"] = 64] = "INSET_RIGHT_VALUE";
21
+ StyleKeys[StyleKeys["INSET_TOP_TYPE"] = 68] = "INSET_TOP_TYPE";
22
+ StyleKeys[StyleKeys["INSET_TOP_VALUE"] = 72] = "INSET_TOP_VALUE";
23
+ StyleKeys[StyleKeys["INSET_BOTTOM_TYPE"] = 76] = "INSET_BOTTOM_TYPE";
24
+ StyleKeys[StyleKeys["INSET_BOTTOM_VALUE"] = 80] = "INSET_BOTTOM_VALUE";
25
+ StyleKeys[StyleKeys["MARGIN_LEFT_TYPE"] = 84] = "MARGIN_LEFT_TYPE";
26
+ StyleKeys[StyleKeys["MARGIN_LEFT_VALUE"] = 88] = "MARGIN_LEFT_VALUE";
27
+ StyleKeys[StyleKeys["MARGIN_RIGHT_TYPE"] = 92] = "MARGIN_RIGHT_TYPE";
28
+ StyleKeys[StyleKeys["MARGIN_RIGHT_VALUE"] = 96] = "MARGIN_RIGHT_VALUE";
29
+ StyleKeys[StyleKeys["MARGIN_TOP_TYPE"] = 100] = "MARGIN_TOP_TYPE";
30
+ StyleKeys[StyleKeys["MARGIN_TOP_VALUE"] = 104] = "MARGIN_TOP_VALUE";
31
+ StyleKeys[StyleKeys["MARGIN_BOTTOM_TYPE"] = 108] = "MARGIN_BOTTOM_TYPE";
32
+ StyleKeys[StyleKeys["MARGIN_BOTTOM_VALUE"] = 112] = "MARGIN_BOTTOM_VALUE";
33
+ StyleKeys[StyleKeys["PADDING_LEFT_TYPE"] = 116] = "PADDING_LEFT_TYPE";
34
+ StyleKeys[StyleKeys["PADDING_LEFT_VALUE"] = 120] = "PADDING_LEFT_VALUE";
35
+ StyleKeys[StyleKeys["PADDING_RIGHT_TYPE"] = 124] = "PADDING_RIGHT_TYPE";
36
+ StyleKeys[StyleKeys["PADDING_RIGHT_VALUE"] = 128] = "PADDING_RIGHT_VALUE";
37
+ StyleKeys[StyleKeys["PADDING_TOP_TYPE"] = 132] = "PADDING_TOP_TYPE";
38
+ StyleKeys[StyleKeys["PADDING_TOP_VALUE"] = 136] = "PADDING_TOP_VALUE";
39
+ StyleKeys[StyleKeys["PADDING_BOTTOM_TYPE"] = 140] = "PADDING_BOTTOM_TYPE";
40
+ StyleKeys[StyleKeys["PADDING_BOTTOM_VALUE"] = 144] = "PADDING_BOTTOM_VALUE";
41
+ StyleKeys[StyleKeys["BORDER_LEFT_TYPE"] = 148] = "BORDER_LEFT_TYPE";
42
+ StyleKeys[StyleKeys["BORDER_LEFT_VALUE"] = 152] = "BORDER_LEFT_VALUE";
43
+ StyleKeys[StyleKeys["BORDER_RIGHT_TYPE"] = 156] = "BORDER_RIGHT_TYPE";
44
+ StyleKeys[StyleKeys["BORDER_RIGHT_VALUE"] = 160] = "BORDER_RIGHT_VALUE";
45
+ StyleKeys[StyleKeys["BORDER_TOP_TYPE"] = 164] = "BORDER_TOP_TYPE";
46
+ StyleKeys[StyleKeys["BORDER_TOP_VALUE"] = 168] = "BORDER_TOP_VALUE";
47
+ StyleKeys[StyleKeys["BORDER_BOTTOM_TYPE"] = 172] = "BORDER_BOTTOM_TYPE";
48
+ StyleKeys[StyleKeys["BORDER_BOTTOM_VALUE"] = 176] = "BORDER_BOTTOM_VALUE";
49
+ StyleKeys[StyleKeys["FLEX_GROW"] = 180] = "FLEX_GROW";
50
+ StyleKeys[StyleKeys["FLEX_SHRINK"] = 184] = "FLEX_SHRINK";
51
+ StyleKeys[StyleKeys["FLEX_BASIS_TYPE"] = 188] = "FLEX_BASIS_TYPE";
52
+ StyleKeys[StyleKeys["FLEX_BASIS_VALUE"] = 192] = "FLEX_BASIS_VALUE";
53
+ StyleKeys[StyleKeys["WIDTH_TYPE"] = 196] = "WIDTH_TYPE";
54
+ StyleKeys[StyleKeys["WIDTH_VALUE"] = 200] = "WIDTH_VALUE";
55
+ StyleKeys[StyleKeys["HEIGHT_TYPE"] = 204] = "HEIGHT_TYPE";
56
+ StyleKeys[StyleKeys["HEIGHT_VALUE"] = 208] = "HEIGHT_VALUE";
57
+ StyleKeys[StyleKeys["MIN_WIDTH_TYPE"] = 212] = "MIN_WIDTH_TYPE";
58
+ StyleKeys[StyleKeys["MIN_WIDTH_VALUE"] = 216] = "MIN_WIDTH_VALUE";
59
+ StyleKeys[StyleKeys["MIN_HEIGHT_TYPE"] = 220] = "MIN_HEIGHT_TYPE";
60
+ StyleKeys[StyleKeys["MIN_HEIGHT_VALUE"] = 224] = "MIN_HEIGHT_VALUE";
61
+ StyleKeys[StyleKeys["MAX_WIDTH_TYPE"] = 228] = "MAX_WIDTH_TYPE";
62
+ StyleKeys[StyleKeys["MAX_WIDTH_VALUE"] = 232] = "MAX_WIDTH_VALUE";
63
+ StyleKeys[StyleKeys["MAX_HEIGHT_TYPE"] = 236] = "MAX_HEIGHT_TYPE";
64
+ StyleKeys[StyleKeys["MAX_HEIGHT_VALUE"] = 240] = "MAX_HEIGHT_VALUE";
65
+ StyleKeys[StyleKeys["GAP_ROW_TYPE"] = 244] = "GAP_ROW_TYPE";
66
+ StyleKeys[StyleKeys["GAP_ROW_VALUE"] = 248] = "GAP_ROW_VALUE";
67
+ StyleKeys[StyleKeys["GAP_COLUMN_TYPE"] = 252] = "GAP_COLUMN_TYPE";
68
+ StyleKeys[StyleKeys["GAP_COLUMN_VALUE"] = 256] = "GAP_COLUMN_VALUE";
69
+ StyleKeys[StyleKeys["ASPECT_RATIO"] = 260] = "ASPECT_RATIO";
70
+ StyleKeys[StyleKeys["GRID_AUTO_FLOW"] = 264] = "GRID_AUTO_FLOW";
71
+ StyleKeys[StyleKeys["GRID_COLUMN_START_TYPE"] = 268] = "GRID_COLUMN_START_TYPE";
72
+ StyleKeys[StyleKeys["GRID_COLUMN_START_VALUE"] = 272] = "GRID_COLUMN_START_VALUE";
73
+ StyleKeys[StyleKeys["GRID_COLUMN_END_TYPE"] = 276] = "GRID_COLUMN_END_TYPE";
74
+ StyleKeys[StyleKeys["GRID_COLUMN_END_VALUE"] = 280] = "GRID_COLUMN_END_VALUE";
75
+ StyleKeys[StyleKeys["GRID_ROW_START_TYPE"] = 284] = "GRID_ROW_START_TYPE";
76
+ StyleKeys[StyleKeys["GRID_ROW_START_VALUE"] = 288] = "GRID_ROW_START_VALUE";
77
+ StyleKeys[StyleKeys["GRID_ROW_END_TYPE"] = 292] = "GRID_ROW_END_TYPE";
78
+ StyleKeys[StyleKeys["GRID_ROW_END_VALUE"] = 296] = "GRID_ROW_END_VALUE";
79
+ StyleKeys[StyleKeys["SCROLLBAR_WIDTH"] = 300] = "SCROLLBAR_WIDTH";
80
+ StyleKeys[StyleKeys["TEXT_ALIGN"] = 304] = "TEXT_ALIGN";
81
+ StyleKeys[StyleKeys["BOX_SIZING"] = 308] = "BOX_SIZING";
82
+ StyleKeys[StyleKeys["OVERFLOW"] = 312] = "OVERFLOW";
83
+ StyleKeys[StyleKeys["ITEM_IS_TABLE"] = 316] = "ITEM_IS_TABLE";
84
+ })(StyleKeys || (StyleKeys = {}));
85
+ var TextStyleKeys;
86
+ (function (TextStyleKeys) {
87
+ TextStyleKeys[TextStyleKeys["COLOR"] = 0] = "COLOR";
88
+ TextStyleKeys[TextStyleKeys["DECORATION_LINE"] = 4] = "DECORATION_LINE";
89
+ TextStyleKeys[TextStyleKeys["DECORATION_COLOR"] = 8] = "DECORATION_COLOR";
90
+ TextStyleKeys[TextStyleKeys["TEXT_ALIGN"] = 12] = "TEXT_ALIGN";
91
+ TextStyleKeys[TextStyleKeys["TEXT_JUSTIFY"] = 16] = "TEXT_JUSTIFY";
92
+ TextStyleKeys[TextStyleKeys["BACKGROUND_COLOR"] = 20] = "BACKGROUND_COLOR";
93
+ TextStyleKeys[TextStyleKeys["SIZE"] = 24] = "SIZE";
94
+ TextStyleKeys[TextStyleKeys["TRANSFORM"] = 28] = "TRANSFORM";
95
+ TextStyleKeys[TextStyleKeys["FONT_STYLE_TYPE"] = 32] = "FONT_STYLE_TYPE";
96
+ TextStyleKeys[TextStyleKeys["FONT_STYLE_SLANT"] = 36] = "FONT_STYLE_SLANT";
97
+ TextStyleKeys[TextStyleKeys["TEXT_WRAP"] = 40] = "TEXT_WRAP";
98
+ })(TextStyleKeys || (TextStyleKeys = {}));
99
+ function parseLengthPercentageAuto(type, value) {
100
+ switch (type) {
101
+ case 0:
102
+ return 'auto';
103
+ case 1:
104
+ return { value, unit: 'px' };
105
+ case 2:
106
+ return { value, unit: '%' };
107
+ }
108
+ }
109
+ function parseLengthPercentage(type, value) {
110
+ switch (type) {
111
+ case 0:
112
+ return { value, unit: 'px' };
113
+ case 1:
114
+ return { value, unit: '%' };
115
+ }
116
+ }
117
+ class StateKeys {
118
+ constructor(bits) {
119
+ this.bits = bits;
120
+ }
121
+ or(other) {
122
+ return new StateKeys(this.bits | other.bits);
123
+ }
124
+ and(other) {
125
+ return new StateKeys(this.bits & other.bits);
126
+ }
127
+ hasFlag(flag) {
128
+ return (this.bits & flag.bits) !== 0n;
129
+ }
130
+ }
131
+ StateKeys.DISPLAY = new StateKeys(1n << 0n);
132
+ StateKeys.POSITION = new StateKeys(1n << 1n);
133
+ StateKeys.DIRECTION = new StateKeys(1n << 2n);
134
+ StateKeys.FLEX_DIRECTION = new StateKeys(1n << 3n);
135
+ StateKeys.FLEX_WRAP = new StateKeys(1n << 4n);
136
+ StateKeys.OVERFLOW_X = new StateKeys(1n << 5n);
137
+ StateKeys.OVERFLOW_Y = new StateKeys(1n << 6n);
138
+ StateKeys.ALIGN_ITEMS = new StateKeys(1n << 7n);
139
+ StateKeys.ALIGN_SELF = new StateKeys(1n << 8n);
140
+ StateKeys.ALIGN_CONTENT = new StateKeys(1n << 9n);
141
+ StateKeys.JUSTIFY_ITEMS = new StateKeys(1n << 10n);
142
+ StateKeys.JUSTIFY_SELF = new StateKeys(1n << 11n);
143
+ StateKeys.JUSTIFY_CONTENT = new StateKeys(1n << 12n);
144
+ StateKeys.INSET = new StateKeys(1n << 13n);
145
+ StateKeys.MARGIN = new StateKeys(1n << 14n);
146
+ StateKeys.PADDING = new StateKeys(1n << 15n);
147
+ StateKeys.BORDER = new StateKeys(1n << 16n);
148
+ StateKeys.FLEX_GROW = new StateKeys(1n << 17n);
149
+ StateKeys.FLEX_SHRINK = new StateKeys(1n << 18n);
150
+ StateKeys.FLEX_BASIS = new StateKeys(1n << 19n);
151
+ StateKeys.SIZE = new StateKeys(1n << 20n);
152
+ StateKeys.MIN_SIZE = new StateKeys(1n << 21n);
153
+ StateKeys.MAX_SIZE = new StateKeys(1n << 22n);
154
+ StateKeys.GAP = new StateKeys(1n << 23n);
155
+ StateKeys.ASPECT_RATIO = new StateKeys(1n << 24n);
156
+ StateKeys.GRID_AUTO_FLOW = new StateKeys(1n << 25n);
157
+ StateKeys.GRID_COLUMN = new StateKeys(1n << 26n);
158
+ StateKeys.GRID_ROW = new StateKeys(1n << 27n);
159
+ StateKeys.SCROLLBAR_WIDTH = new StateKeys(1n << 28n);
160
+ StateKeys.TEXT_ALIGN = new StateKeys(1n << 29n);
161
+ StateKeys.BOX_SIZING = new StateKeys(1n << 30n);
162
+ StateKeys.OVERFLOW = new StateKeys(1n << 31n);
163
+ StateKeys.ITEM_IS_TABLE = new StateKeys(1n << 32n);
164
+ class TextStateKeys {
165
+ constructor(bits) {
166
+ this.bits = bits;
167
+ }
168
+ or(other) {
169
+ return new TextStateKeys(this.bits | other.bits);
170
+ }
171
+ and(other) {
172
+ return new TextStateKeys(this.bits & other.bits);
173
+ }
174
+ hasFlag(flag) {
175
+ return (this.bits & flag.bits) !== 0n;
176
+ }
177
+ }
178
+ TextStateKeys.COLOR = new TextStateKeys(1n << 0n);
179
+ TextStateKeys.DECORATION_LINE = new TextStateKeys(1n << 1n);
180
+ TextStateKeys.DECORATION_COLOR = new TextStateKeys(1n << 2n);
181
+ TextStateKeys.TEXT_ALIGN = new TextStateKeys(1n << 3n);
182
+ TextStateKeys.TEXT_JUSTIFY = new TextStateKeys(1n << 4n);
183
+ TextStateKeys.BACKGROUND_COLOR = new TextStateKeys(1n << 5n);
184
+ TextStateKeys.SIZE = new TextStateKeys(1n << 6n);
185
+ TextStateKeys.TRANSFORM = new TextStateKeys(1n << 7n);
186
+ TextStateKeys.FONT_STYLE = new TextStateKeys(1n << 8n);
187
+ TextStateKeys.FONT_STYLE_SLANT = new TextStateKeys(1n << 9n);
188
+ TextStateKeys.TEXT_WRAP = new TextStateKeys(1n << 10n);
189
+ const getUint32 = (view, offset) => {
190
+ return view.getUint32(offset, true);
191
+ };
192
+ const setUint32 = (view, offset, value) => {
193
+ view.setUint32(offset, value, true);
194
+ };
195
+ const getInt32 = (view, offset) => {
196
+ return view.getInt32(offset, true);
197
+ };
198
+ const setInt32 = (view, offset, value) => {
199
+ view.setInt32(offset, value, true);
200
+ };
201
+ const getFloat32 = (view, offset) => {
202
+ return view.getFloat32(offset, true);
203
+ };
204
+ const setFloat32 = (view, offset, value) => {
205
+ view.setFloat32(offset, value, true);
206
+ };
207
+ export class Style {
208
+ constructor() {
209
+ this.isDirty = -1n;
210
+ this.isTextDirty = -1n;
211
+ this.inBatch = false;
212
+ }
213
+ static fromView(view, nativeView, isText = false) {
214
+ //console.time('fromView');
215
+ const ret = new Style();
216
+ ret.view_ = view;
217
+ if (__ANDROID__) {
218
+ const style = nativeView.getStyle();
219
+ if (!isText) {
220
+ const styleBuffer = style.getValues();
221
+ const buffer = ArrayBuffer.from(styleBuffer);
222
+ ret.style_view = new DataView(buffer);
223
+ }
224
+ else {
225
+ const styleBuffer = style.getValues();
226
+ const buffer = ArrayBuffer.from(styleBuffer);
227
+ ret.style_view = new DataView(buffer);
228
+ const textStyleBuffer = nativeView.getTextValues();
229
+ const textBuffer = ArrayBuffer.from(textStyleBuffer);
230
+ ret.text_style_view = new DataView(textBuffer);
231
+ }
232
+ }
233
+ else if (__APPLE__) {
234
+ const style = nativeView.style;
235
+ if (!isText) {
236
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
237
+ // @ts-ignore
238
+ const styleBuffer = style.valuesCompat;
239
+ const buffer = interop.bufferFromData(styleBuffer);
240
+ ret.style_view = new DataView(buffer);
241
+ }
242
+ else {
243
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
244
+ // @ts-ignore
245
+ const styleBuffer = style.valuesCompat;
246
+ const buffer = interop.bufferFromData(styleBuffer);
247
+ ret.style_view = new DataView(buffer);
248
+ const textStyleBuffer = nativeView.textValues;
249
+ const textBuffer = interop.bufferFromData(textStyleBuffer);
250
+ ret.text_style_view = new DataView(textBuffer);
251
+ }
252
+ }
253
+ //console.timeEnd('fromView');
254
+ return ret;
255
+ }
256
+ resetState() {
257
+ this.isDirty = -1n;
258
+ this.isTextDirty = -1n;
259
+ }
260
+ syncStyle(isText = false) {
261
+ // console.time('syncStyle');
262
+ if (__ANDROID__) {
263
+ if (!isText) {
264
+ const view = this.view.android;
265
+ view.syncStyle(this.isDirty.toString());
266
+ }
267
+ else {
268
+ const view = this.view.android;
269
+ view.syncStyle(this.isDirty.toString(), this.isTextDirty.toString());
270
+ }
271
+ }
272
+ else if (__APPLE__) {
273
+ if (!isText) {
274
+ const view = this.view.ios;
275
+ view.syncStyle(this.isDirty.toString());
276
+ }
277
+ else {
278
+ const view = this.view.ios;
279
+ view.syncStyle(this.isDirty.toString(), this.isTextDirty.toString());
280
+ }
281
+ }
282
+ this.resetState();
283
+ // console.timeEnd('syncStyle');
284
+ }
285
+ setOrAppendState(value) {
286
+ if (this.isDirty == -1n) {
287
+ this.isDirty = value.bits;
288
+ }
289
+ else {
290
+ this.isDirty = this.isDirty | value.bits;
291
+ }
292
+ if (!this.inBatch) {
293
+ this.syncStyle(this.text_style_view != null);
294
+ }
295
+ }
296
+ setOrAppendTextState(value) {
297
+ if (this.isTextDirty == -1n) {
298
+ this.isTextDirty = value.bits;
299
+ }
300
+ else {
301
+ this.isTextDirty = this.isTextDirty | value.bits;
302
+ }
303
+ if (!this.inBatch) {
304
+ this.syncStyle(this.text_style_view != null);
305
+ }
306
+ }
307
+ batch(fn) {
308
+ this.inBatch = true;
309
+ fn(this);
310
+ this.inBatch = false;
311
+ this.syncStyle(this.text_style_view != null);
312
+ }
313
+ get view() {
314
+ return this.view_;
315
+ }
316
+ get color() {
317
+ if (!this.text_style_view) {
318
+ // BLACK ?
319
+ return 0;
320
+ }
321
+ return getUint32(this.text_style_view, TextStyleKeys.COLOR);
322
+ }
323
+ set color(value) {
324
+ if (!this.text_style_view) {
325
+ return;
326
+ }
327
+ setUint32(this.text_style_view, TextStyleKeys.COLOR, value);
328
+ this.setOrAppendTextState(TextStateKeys.COLOR);
329
+ }
330
+ get backgroundColor() {
331
+ if (!this.text_style_view) {
332
+ // BLACK ?
333
+ return 0;
334
+ }
335
+ return getUint32(this.text_style_view, TextStyleKeys.BACKGROUND_COLOR);
336
+ }
337
+ set backgroundColor(value) {
338
+ if (!this.text_style_view) {
339
+ return;
340
+ }
341
+ setUint32(this.text_style_view, TextStyleKeys.BACKGROUND_COLOR, value);
342
+ this.setOrAppendTextState(TextStateKeys.BACKGROUND_COLOR);
343
+ }
344
+ get textWrap() {
345
+ if (!this.text_style_view) {
346
+ // BLACK ?
347
+ return 0;
348
+ }
349
+ return getInt32(this.text_style_view, TextStyleKeys.TEXT_ALIGN);
350
+ }
351
+ set textWrap(value) {
352
+ if (!this.text_style_view) {
353
+ return;
354
+ }
355
+ setInt32(this.text_style_view, TextStyleKeys.TEXT_WRAP, value);
356
+ this.setOrAppendTextState(TextStateKeys.TEXT_WRAP);
357
+ }
358
+ get styleView() {
359
+ return this.style_view;
360
+ }
361
+ get display() {
362
+ switch (getInt32(this.style_view, StyleKeys.DISPLAY)) {
363
+ case 0:
364
+ return 'none';
365
+ case 1:
366
+ return 'flex';
367
+ case 2:
368
+ return 'grid';
369
+ case 3:
370
+ return 'block';
371
+ }
372
+ }
373
+ set display(value) {
374
+ let display = -1;
375
+ switch (value) {
376
+ case 'none':
377
+ display = 0;
378
+ break;
379
+ case 'flex':
380
+ display = 1;
381
+ break;
382
+ case 'grid':
383
+ display = 2;
384
+ break;
385
+ case 'block':
386
+ display = 3;
387
+ break;
388
+ }
389
+ if (display != -1) {
390
+ setInt32(this.style_view, StyleKeys.DISPLAY, display);
391
+ this.setOrAppendState(StateKeys.DISPLAY);
392
+ }
393
+ }
394
+ get position() {
395
+ switch (getInt32(this.style_view, StyleKeys.POSITION)) {
396
+ case 0:
397
+ return 'relative';
398
+ case 1:
399
+ return 'absolute';
400
+ }
401
+ }
402
+ set position(value) {
403
+ let position = -1;
404
+ switch (value) {
405
+ case 'relative':
406
+ position = 0;
407
+ break;
408
+ case 'absolute':
409
+ position = 1;
410
+ break;
411
+ }
412
+ if (position != -1) {
413
+ setInt32(this.style_view, StyleKeys.POSITION, position);
414
+ this.setOrAppendState(StateKeys.POSITION);
415
+ }
416
+ }
417
+ get flexDirection() {
418
+ switch (getInt32(this.style_view, StyleKeys.FLEX_DIRECTION)) {
419
+ case 0:
420
+ return 'column';
421
+ case 1:
422
+ return 'row';
423
+ case 2:
424
+ return 'column-reverse';
425
+ case 3:
426
+ return 'row-reverse';
427
+ }
428
+ }
429
+ set flexDirection(value) {
430
+ let flex = -1;
431
+ switch (value) {
432
+ case 'column':
433
+ flex = 0;
434
+ break;
435
+ case 'row':
436
+ flex = 1;
437
+ break;
438
+ case 'column-reverse':
439
+ flex = 2;
440
+ break;
441
+ case 'row-reverse':
442
+ flex = 3;
443
+ break;
444
+ }
445
+ if (flex != -1) {
446
+ setInt32(this.style_view, StyleKeys.FLEX_DIRECTION, flex);
447
+ this.setOrAppendState(StateKeys.FLEX_DIRECTION);
448
+ }
449
+ }
450
+ get flexWrap() {
451
+ switch (getInt32(this.style_view, StyleKeys.FLEX_WRAP)) {
452
+ case 0:
453
+ return 'no-wrap';
454
+ case 1:
455
+ return 'wrap';
456
+ case 2:
457
+ return 'wrap-reverse';
458
+ }
459
+ }
460
+ set flexWrap(value) {
461
+ let wrap = -1;
462
+ switch (value) {
463
+ case 'no-wrap':
464
+ wrap = 0;
465
+ break;
466
+ case 'wrap':
467
+ wrap = 1;
468
+ break;
469
+ case 'wrap-reverse':
470
+ wrap = 2;
471
+ break;
472
+ }
473
+ if (wrap != -1) {
474
+ setInt32(this.style_view, StyleKeys.FLEX_WRAP, wrap);
475
+ this.setOrAppendState(StateKeys.FLEX_WRAP);
476
+ }
477
+ }
478
+ // get flex(): string | 'auto' | 'none' | number | 'initial' {
479
+ // return this.style[StyleKeys.FLEX];
480
+ // }
481
+ // get flexFlow(): string
482
+ get minWidth() {
483
+ const type = getInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE);
484
+ const value = getFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE);
485
+ return parseLengthPercentageAuto(type, value);
486
+ }
487
+ set minWidth(value) {
488
+ switch (typeof value) {
489
+ case 'string':
490
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 0);
491
+ break;
492
+ case 'number':
493
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
494
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, layout.toDevicePixels(value));
495
+ break;
496
+ case 'object':
497
+ switch (value.unit) {
498
+ case 'dip':
499
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
500
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, layout.toDevicePixels(value.value));
501
+ break;
502
+ case 'px':
503
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
504
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, value.value);
505
+ break;
506
+ case '%':
507
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 2);
508
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, value.value);
509
+ break;
510
+ }
511
+ break;
512
+ }
513
+ this.setOrAppendState(StateKeys.MIN_SIZE);
514
+ }
515
+ get minHeight() {
516
+ const type = getInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE);
517
+ const value = getFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE);
518
+ return parseLengthPercentageAuto(type, value);
519
+ }
520
+ set minHeight(value) {
521
+ switch (typeof value) {
522
+ case 'string':
523
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 0);
524
+ break;
525
+ case 'number':
526
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
527
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, layout.toDevicePixels(value));
528
+ break;
529
+ case 'object':
530
+ switch (value.unit) {
531
+ case 'dip':
532
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
533
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, layout.toDevicePixels(value.value));
534
+ break;
535
+ case 'px':
536
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
537
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, value.value);
538
+ break;
539
+ case '%':
540
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 2);
541
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, value.value);
542
+ break;
543
+ }
544
+ break;
545
+ }
546
+ this.setOrAppendState(StateKeys.MIN_SIZE);
547
+ }
548
+ get width() {
549
+ const type = getInt32(this.style_view, StyleKeys.WIDTH_TYPE);
550
+ const value = getFloat32(this.style_view, StyleKeys.WIDTH_VALUE);
551
+ return parseLengthPercentageAuto(type, value);
552
+ }
553
+ set width(value) {
554
+ switch (typeof value) {
555
+ case 'string':
556
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 0);
557
+ break;
558
+ case 'number':
559
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
560
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, layout.toDevicePixels(value));
561
+ break;
562
+ case 'object':
563
+ switch (value.unit) {
564
+ case 'dip':
565
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
566
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, layout.toDevicePixels(value.value));
567
+ break;
568
+ case 'px':
569
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
570
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, value.value);
571
+ break;
572
+ case '%':
573
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 2);
574
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, value.value);
575
+ break;
576
+ }
577
+ break;
578
+ }
579
+ this.setOrAppendState(StateKeys.SIZE);
580
+ }
581
+ get height() {
582
+ const type = getInt32(this.style_view, StyleKeys.HEIGHT_TYPE);
583
+ const value = getFloat32(this.style_view, StyleKeys.HEIGHT_VALUE);
584
+ return parseLengthPercentageAuto(type, value);
585
+ }
586
+ set height(value) {
587
+ switch (typeof value) {
588
+ case 'string':
589
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 0);
590
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, 0);
591
+ break;
592
+ case 'number':
593
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
594
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, layout.toDevicePixels(value));
595
+ break;
596
+ case 'object':
597
+ switch (value.unit) {
598
+ case 'dip':
599
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
600
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, layout.toDevicePixels(value.value));
601
+ break;
602
+ case 'px':
603
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
604
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, value.value);
605
+ break;
606
+ case '%':
607
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 2);
608
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, value.value);
609
+ break;
610
+ }
611
+ break;
612
+ }
613
+ this.setOrAppendState(StateKeys.SIZE);
614
+ }
615
+ get maxWidth() {
616
+ const type = getInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE);
617
+ const value = getFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE);
618
+ return parseLengthPercentageAuto(type, value);
619
+ }
620
+ set maxWidth(value) {
621
+ switch (typeof value) {
622
+ case 'string':
623
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 0);
624
+ break;
625
+ case 'number':
626
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
627
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, layout.toDevicePixels(value));
628
+ break;
629
+ case 'object':
630
+ switch (value.unit) {
631
+ case 'dip':
632
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
633
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, layout.toDevicePixels(value.value));
634
+ break;
635
+ case 'px':
636
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
637
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, value.value);
638
+ break;
639
+ case '%':
640
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 2);
641
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, value.value);
642
+ break;
643
+ }
644
+ break;
645
+ }
646
+ this.setOrAppendState(StateKeys.MAX_SIZE);
647
+ }
648
+ get maxHeight() {
649
+ const type = getInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE);
650
+ const value = getFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE);
651
+ return parseLengthPercentageAuto(type, value);
652
+ }
653
+ set maxHeight(value) {
654
+ switch (typeof value) {
655
+ case 'string':
656
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 0);
657
+ break;
658
+ case 'number':
659
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
660
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, layout.toDevicePixels(value));
661
+ break;
662
+ case 'object':
663
+ switch (value.unit) {
664
+ case 'dip':
665
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
666
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, layout.toDevicePixels(value.value));
667
+ break;
668
+ case 'px':
669
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
670
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, value.value);
671
+ break;
672
+ case '%':
673
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 2);
674
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, value.value);
675
+ break;
676
+ }
677
+ break;
678
+ }
679
+ this.setOrAppendState(StateKeys.MAX_SIZE);
680
+ }
681
+ get borderLeft() {
682
+ const type = getInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE);
683
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE);
684
+ return parseLengthPercentage(type, value);
685
+ }
686
+ set borderLeft(value) {
687
+ switch (typeof value) {
688
+ case 'number':
689
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
690
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, layout.toDevicePixels(value));
691
+ break;
692
+ case 'object':
693
+ switch (value.unit) {
694
+ case 'dip':
695
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
696
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, layout.toDevicePixels(value.value));
697
+ break;
698
+ case 'px':
699
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
700
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, value.value);
701
+ break;
702
+ case '%':
703
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 1);
704
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, value.value);
705
+ break;
706
+ }
707
+ break;
708
+ }
709
+ this.setOrAppendState(StateKeys.BORDER);
710
+ }
711
+ get borderRight() {
712
+ const type = getInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE);
713
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE);
714
+ return parseLengthPercentage(type, value);
715
+ }
716
+ set borderRight(value) {
717
+ switch (typeof value) {
718
+ case 'number':
719
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
720
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, layout.toDevicePixels(value));
721
+ break;
722
+ case 'object':
723
+ switch (value.unit) {
724
+ case 'dip':
725
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
726
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, layout.toDevicePixels(value.value));
727
+ break;
728
+ case 'px':
729
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
730
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, value.value);
731
+ break;
732
+ case '%':
733
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 1);
734
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, value.value);
735
+ break;
736
+ }
737
+ break;
738
+ }
739
+ this.setOrAppendState(StateKeys.BORDER);
740
+ }
741
+ get borderTop() {
742
+ const type = getInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE);
743
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE);
744
+ return parseLengthPercentage(type, value);
745
+ }
746
+ set borderTop(value) {
747
+ switch (typeof value) {
748
+ case 'number':
749
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
750
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, layout.toDevicePixels(value));
751
+ break;
752
+ case 'object':
753
+ switch (value.unit) {
754
+ case 'dip':
755
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
756
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, layout.toDevicePixels(value.value));
757
+ break;
758
+ case 'px':
759
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
760
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, value.value);
761
+ break;
762
+ case '%':
763
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 1);
764
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, value.value);
765
+ break;
766
+ }
767
+ break;
768
+ }
769
+ this.setOrAppendState(StateKeys.BORDER);
770
+ }
771
+ get borderBottom() {
772
+ const type = getInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE);
773
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE);
774
+ return parseLengthPercentage(type, value);
775
+ }
776
+ set borderBottom(value) {
777
+ switch (typeof value) {
778
+ case 'number':
779
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
780
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, layout.toDevicePixels(value));
781
+ break;
782
+ case 'object':
783
+ switch (value.unit) {
784
+ case 'dip':
785
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
786
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, layout.toDevicePixels(value.value));
787
+ break;
788
+ case 'px':
789
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
790
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, value.value);
791
+ break;
792
+ case '%':
793
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 1);
794
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, value.value);
795
+ break;
796
+ }
797
+ break;
798
+ }
799
+ this.setOrAppendState(StateKeys.BORDER);
800
+ }
801
+ get left() {
802
+ const type = getInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE);
803
+ const value = getFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE);
804
+ return parseLengthPercentageAuto(type, value);
805
+ }
806
+ set left(value) {
807
+ if (value === 'auto') {
808
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 0);
809
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, 0);
810
+ return;
811
+ }
812
+ switch (typeof value) {
813
+ case 'number':
814
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
815
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, layout.toDevicePixels(value));
816
+ break;
817
+ case 'object':
818
+ switch (value.unit) {
819
+ case 'dip':
820
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
821
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, layout.toDevicePixels(value.value));
822
+ break;
823
+ case 'px':
824
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
825
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, value.value);
826
+ break;
827
+ case '%':
828
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 2);
829
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, value.value);
830
+ break;
831
+ }
832
+ break;
833
+ }
834
+ this.setOrAppendState(StateKeys.INSET);
835
+ }
836
+ get right() {
837
+ const type = getInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE);
838
+ const value = getFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE);
839
+ return parseLengthPercentageAuto(type, value);
840
+ }
841
+ set right(value) {
842
+ if (value === 'auto') {
843
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 0);
844
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, 0);
845
+ return;
846
+ }
847
+ switch (typeof value) {
848
+ case 'number':
849
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
850
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, layout.toDevicePixels(value));
851
+ break;
852
+ case 'object':
853
+ switch (value.unit) {
854
+ case 'dip':
855
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
856
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, layout.toDevicePixels(value.value));
857
+ break;
858
+ case 'px':
859
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
860
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, value.value);
861
+ break;
862
+ case '%':
863
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 2);
864
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, value.value);
865
+ break;
866
+ }
867
+ break;
868
+ }
869
+ this.setOrAppendState(StateKeys.INSET);
870
+ }
871
+ get top() {
872
+ const type = getInt32(this.style_view, StyleKeys.INSET_TOP_TYPE);
873
+ const value = getFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE);
874
+ return parseLengthPercentageAuto(type, value);
875
+ }
876
+ set top(value) {
877
+ if (value === 'auto') {
878
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 0);
879
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, 0);
880
+ return;
881
+ }
882
+ switch (typeof value) {
883
+ case 'number':
884
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
885
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, layout.toDevicePixels(value));
886
+ break;
887
+ case 'object':
888
+ switch (value.unit) {
889
+ case 'dip':
890
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
891
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, layout.toDevicePixels(value.value));
892
+ break;
893
+ case 'px':
894
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
895
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, value.value);
896
+ break;
897
+ case '%':
898
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 2);
899
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, value.value);
900
+ break;
901
+ }
902
+ break;
903
+ }
904
+ this.setOrAppendState(StateKeys.INSET);
905
+ }
906
+ get bottom() {
907
+ const type = getInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE);
908
+ const value = getFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE);
909
+ return parseLengthPercentageAuto(type, value);
910
+ }
911
+ set bottom(value) {
912
+ if (value === 'auto') {
913
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 0);
914
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, 0);
915
+ return;
916
+ }
917
+ switch (typeof value) {
918
+ case 'number':
919
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
920
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, layout.toDevicePixels(value));
921
+ break;
922
+ case 'object':
923
+ switch (value.unit) {
924
+ case 'dip':
925
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
926
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, layout.toDevicePixels(value.value));
927
+ break;
928
+ case 'px':
929
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
930
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, value.value);
931
+ break;
932
+ case '%':
933
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 2);
934
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, value.value);
935
+ break;
936
+ }
937
+ break;
938
+ }
939
+ this.setOrAppendState(StateKeys.INSET);
940
+ }
941
+ get marginLeft() {
942
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE);
943
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE);
944
+ return parseLengthPercentageAuto(type, value);
945
+ }
946
+ set marginLeft(value) {
947
+ switch (typeof value) {
948
+ case 'string':
949
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 0);
950
+ break;
951
+ case 'number':
952
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
953
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, layout.toDevicePixels(value));
954
+ break;
955
+ case 'object':
956
+ switch (value.unit) {
957
+ case 'dip':
958
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
959
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, layout.toDevicePixels(value.value));
960
+ break;
961
+ case 'px':
962
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
963
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, value.value);
964
+ break;
965
+ case '%':
966
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 2);
967
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, value.value);
968
+ break;
969
+ }
970
+ break;
971
+ }
972
+ this.setOrAppendState(StateKeys.INSET);
973
+ }
974
+ get marginRight() {
975
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE);
976
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE);
977
+ return parseLengthPercentageAuto(type, value);
978
+ }
979
+ set marginRight(value) {
980
+ switch (typeof value) {
981
+ case 'string':
982
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 0);
983
+ break;
984
+ case 'number':
985
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
986
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, layout.toDevicePixels(value));
987
+ break;
988
+ case 'object':
989
+ switch (value.unit) {
990
+ case 'dip':
991
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
992
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, layout.toDevicePixels(value.value));
993
+ break;
994
+ case 'px':
995
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
996
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, value.value);
997
+ break;
998
+ case '%':
999
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 2);
1000
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, value.value);
1001
+ break;
1002
+ }
1003
+ break;
1004
+ }
1005
+ this.setOrAppendState(StateKeys.MARGIN);
1006
+ }
1007
+ get marginTop() {
1008
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE);
1009
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE);
1010
+ return parseLengthPercentageAuto(type, value);
1011
+ }
1012
+ set marginTop(value) {
1013
+ switch (typeof value) {
1014
+ case 'string':
1015
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 0);
1016
+ break;
1017
+ case 'number':
1018
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1019
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, layout.toDevicePixels(value));
1020
+ break;
1021
+ case 'object':
1022
+ switch (value.unit) {
1023
+ case 'dip':
1024
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1025
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, layout.toDevicePixels(value.value));
1026
+ break;
1027
+ case 'px':
1028
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1029
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, value.value);
1030
+ break;
1031
+ case '%':
1032
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 2);
1033
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, value.value);
1034
+ break;
1035
+ }
1036
+ break;
1037
+ }
1038
+ this.setOrAppendState(StateKeys.MARGIN);
1039
+ }
1040
+ get marginBottom() {
1041
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE);
1042
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE);
1043
+ return parseLengthPercentageAuto(type, value);
1044
+ }
1045
+ set marginBottom(value) {
1046
+ switch (typeof value) {
1047
+ case 'string':
1048
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 0);
1049
+ break;
1050
+ case 'number':
1051
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1052
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, layout.toDevicePixels(value));
1053
+ break;
1054
+ case 'object':
1055
+ switch (value.unit) {
1056
+ case 'dip':
1057
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1058
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, layout.toDevicePixels(value.value));
1059
+ break;
1060
+ case 'px':
1061
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1062
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, value.value);
1063
+ break;
1064
+ case '%':
1065
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 2);
1066
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, value.value);
1067
+ break;
1068
+ }
1069
+ break;
1070
+ }
1071
+ this.setOrAppendState(StateKeys.MARGIN);
1072
+ }
1073
+ set padding(value) {
1074
+ this.inBatch = true;
1075
+ this.paddingBottom = this.paddingLeft = this.paddingRight = this.paddingTop = value;
1076
+ this.inBatch = false;
1077
+ this.setOrAppendState(StateKeys.PADDING);
1078
+ }
1079
+ get paddingLeft() {
1080
+ const type = getInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE);
1081
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE);
1082
+ return parseLengthPercentage(type, value);
1083
+ }
1084
+ set paddingLeft(value) {
1085
+ switch (typeof value) {
1086
+ case 'number':
1087
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1088
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, layout.toDevicePixels(value));
1089
+ break;
1090
+ case 'object':
1091
+ switch (value.unit) {
1092
+ case 'dip':
1093
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1094
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, layout.toDevicePixels(value.value));
1095
+ break;
1096
+ case 'px':
1097
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1098
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, value.value);
1099
+ break;
1100
+ case '%':
1101
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 1);
1102
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, value.value);
1103
+ break;
1104
+ }
1105
+ break;
1106
+ }
1107
+ this.setOrAppendState(StateKeys.PADDING);
1108
+ }
1109
+ get paddingRight() {
1110
+ const type = getInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE);
1111
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE);
1112
+ return parseLengthPercentage(type, value);
1113
+ }
1114
+ set paddingRight(value) {
1115
+ switch (typeof value) {
1116
+ case 'number':
1117
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1118
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, layout.toDevicePixels(value));
1119
+ break;
1120
+ case 'object':
1121
+ switch (value.unit) {
1122
+ case 'dip':
1123
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1124
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, layout.toDevicePixels(value.value));
1125
+ break;
1126
+ case 'px':
1127
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1128
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, value.value);
1129
+ break;
1130
+ case '%':
1131
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 1);
1132
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, value.value);
1133
+ break;
1134
+ }
1135
+ break;
1136
+ }
1137
+ this.setOrAppendState(StateKeys.PADDING);
1138
+ }
1139
+ get paddingTop() {
1140
+ const type = getInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE);
1141
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE);
1142
+ return parseLengthPercentage(type, value);
1143
+ }
1144
+ set paddingTop(value) {
1145
+ switch (typeof value) {
1146
+ case 'number':
1147
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1148
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, layout.toDevicePixels(value));
1149
+ break;
1150
+ case 'object':
1151
+ switch (value.unit) {
1152
+ case 'dip':
1153
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1154
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, layout.toDevicePixels(value.value));
1155
+ break;
1156
+ case 'px':
1157
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1158
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, value.value);
1159
+ break;
1160
+ case '%':
1161
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 1);
1162
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, value.value);
1163
+ break;
1164
+ }
1165
+ break;
1166
+ }
1167
+ this.setOrAppendState(StateKeys.PADDING);
1168
+ }
1169
+ get paddingBottom() {
1170
+ const type = getInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE);
1171
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE);
1172
+ return parseLengthPercentage(type, value);
1173
+ }
1174
+ set paddingBottom(value) {
1175
+ switch (typeof value) {
1176
+ case 'number':
1177
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1178
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, layout.toDevicePixels(value));
1179
+ break;
1180
+ case 'object':
1181
+ switch (value.unit) {
1182
+ case 'dip':
1183
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1184
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, layout.toDevicePixels(value.value));
1185
+ break;
1186
+ case 'px':
1187
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1188
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, value.value);
1189
+ break;
1190
+ case '%':
1191
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 1);
1192
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, value.value);
1193
+ break;
1194
+ }
1195
+ break;
1196
+ }
1197
+ this.setOrAppendState(StateKeys.PADDING);
1198
+ }
1199
+ get gap() {
1200
+ return `${this.rowGap} ${this.columnGap}`;
1201
+ }
1202
+ get rowGap() {
1203
+ const type = getInt32(this.style_view, StyleKeys.GAP_ROW_TYPE);
1204
+ const value = getFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE);
1205
+ return parseLengthPercentage(type, value);
1206
+ }
1207
+ set rowGap(value) {
1208
+ switch (typeof value) {
1209
+ case 'number':
1210
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1211
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, layout.toDevicePixels(value));
1212
+ break;
1213
+ case 'object':
1214
+ switch (value.unit) {
1215
+ case 'dip':
1216
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1217
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, layout.toDevicePixels(value.value));
1218
+ break;
1219
+ case 'px':
1220
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1221
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, value.value);
1222
+ break;
1223
+ case '%':
1224
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 1);
1225
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, value.value);
1226
+ break;
1227
+ }
1228
+ break;
1229
+ }
1230
+ this.setOrAppendState(StateKeys.GAP);
1231
+ }
1232
+ get columnGap() {
1233
+ const type = getInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE);
1234
+ const value = getFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE);
1235
+ return parseLengthPercentage(type, value);
1236
+ }
1237
+ set columnGap(value) {
1238
+ switch (typeof value) {
1239
+ case 'number':
1240
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1241
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, layout.toDevicePixels(value));
1242
+ break;
1243
+ case 'object':
1244
+ switch (value.unit) {
1245
+ case 'dip':
1246
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1247
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, layout.toDevicePixels(value.value));
1248
+ break;
1249
+ case 'px':
1250
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1251
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, value.value);
1252
+ break;
1253
+ case '%':
1254
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 1);
1255
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, value.value);
1256
+ break;
1257
+ }
1258
+ break;
1259
+ }
1260
+ this.setOrAppendState(StateKeys.GAP);
1261
+ }
1262
+ get aspectRatio() {
1263
+ return getFloat32(this.style_view, StyleKeys.ASPECT_RATIO);
1264
+ }
1265
+ set aspectRatio(value) {
1266
+ setFloat32(this.style_view, StyleKeys.ASPECT_RATIO, value);
1267
+ this.setOrAppendState(StateKeys.ASPECT_RATIO);
1268
+ }
1269
+ get flexBasis() {
1270
+ const type = getInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE);
1271
+ const value = getFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE);
1272
+ return parseLengthPercentageAuto(type, value);
1273
+ }
1274
+ set flexBasis(value) {
1275
+ switch (typeof value) {
1276
+ case 'string':
1277
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 0);
1278
+ break;
1279
+ case 'number':
1280
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1281
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, layout.toDevicePixels(value));
1282
+ break;
1283
+ case 'object':
1284
+ switch (value.unit) {
1285
+ case 'dip':
1286
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1287
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, layout.toDevicePixels(value.value));
1288
+ break;
1289
+ case 'px':
1290
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1291
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, value.value);
1292
+ break;
1293
+ case '%':
1294
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 2);
1295
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, value.value);
1296
+ break;
1297
+ }
1298
+ break;
1299
+ }
1300
+ this.setOrAppendState(StateKeys.FLEX_BASIS);
1301
+ }
1302
+ get alignItems() {
1303
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_ITEMS)) {
1304
+ case -1 /* AlignItems.Normal */:
1305
+ return 'normal';
1306
+ case 0 /* AlignItems.Start */:
1307
+ return 'start';
1308
+ case 1 /* AlignItems.End */:
1309
+ return 'end';
1310
+ case 5 /* AlignItems.FlexStart */:
1311
+ return 'flex-start';
1312
+ case 6 /* AlignItems.FlexEnd */:
1313
+ return 'flex-end';
1314
+ case 2 /* AlignItems.Center */:
1315
+ return 'center';
1316
+ case 3 /* AlignItems.Baseline */:
1317
+ return 'baseline';
1318
+ case 4 /* AlignItems.Stretch */:
1319
+ return 'stretch';
1320
+ }
1321
+ }
1322
+ set alignItems(value) {
1323
+ switch (value) {
1324
+ case 'normal':
1325
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, -1 /* AlignItems.Normal */);
1326
+ break;
1327
+ case 'start':
1328
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 0 /* AlignItems.Start */);
1329
+ break;
1330
+ case 'end':
1331
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 1 /* AlignItems.End */);
1332
+ break;
1333
+ case 'flex-start':
1334
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 5 /* AlignItems.FlexStart */);
1335
+ break;
1336
+ case 'flex-end':
1337
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 6 /* AlignItems.FlexEnd */);
1338
+ break;
1339
+ case 'center':
1340
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 2 /* AlignItems.Center */);
1341
+ break;
1342
+ case 'baseline':
1343
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 3 /* AlignItems.Baseline */);
1344
+ break;
1345
+ case 'stretch':
1346
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 4 /* AlignItems.Stretch */);
1347
+ break;
1348
+ }
1349
+ this.setOrAppendState(StateKeys.ALIGN_ITEMS);
1350
+ }
1351
+ get alignSelf() {
1352
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_SELF)) {
1353
+ case -1 /* AlignSelf.Normal */:
1354
+ return 'normal';
1355
+ case 0 /* AlignSelf.Start */:
1356
+ return 'start';
1357
+ case 1 /* AlignSelf.End */:
1358
+ return 'end';
1359
+ case 2 /* AlignSelf.Center */:
1360
+ return 'center';
1361
+ case 3 /* AlignSelf.Baseline */:
1362
+ return 'baseline';
1363
+ case 4 /* AlignSelf.Stretch */:
1364
+ return 'stretch';
1365
+ case 5 /* AlignSelf.FlexStart */:
1366
+ return 'flex-start';
1367
+ case 6 /* AlignSelf.FlexEnd */:
1368
+ return 'flex-end';
1369
+ }
1370
+ }
1371
+ set alignSelf(value) {
1372
+ let align = -2;
1373
+ switch (value) {
1374
+ case 'normal':
1375
+ align = -1 /* AlignSelf.Normal */;
1376
+ break;
1377
+ case 'start':
1378
+ align = 0 /* AlignSelf.Start */;
1379
+ break;
1380
+ case 'end':
1381
+ align = 1 /* AlignSelf.End */;
1382
+ break;
1383
+ case 'center':
1384
+ align = 2 /* AlignSelf.Center */;
1385
+ break;
1386
+ case 'baseline':
1387
+ align = 3 /* AlignSelf.Baseline */;
1388
+ break;
1389
+ case 'stretch':
1390
+ align = 4 /* AlignSelf.Stretch */;
1391
+ break;
1392
+ case 'flex-start':
1393
+ align = 5 /* AlignSelf.FlexStart */;
1394
+ break;
1395
+ case 'flex-end':
1396
+ align = 6 /* AlignSelf.FlexEnd */;
1397
+ break;
1398
+ }
1399
+ if (align === -2) {
1400
+ setInt32(this.style_view, StyleKeys.ALIGN_SELF, align);
1401
+ this.setOrAppendState(StateKeys.ALIGN_SELF);
1402
+ }
1403
+ }
1404
+ get alignContent() {
1405
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_CONTENT)) {
1406
+ case -1 /* AlignContent.Normal */:
1407
+ return 'normal';
1408
+ case 5 /* AlignContent.SpaceAround */:
1409
+ return 'space-around';
1410
+ case 4 /* AlignContent.SpaceBetween */:
1411
+ return 'space-between';
1412
+ case 6 /* AlignContent.SpaceEvenly */:
1413
+ return 'space-evenly';
1414
+ case 2 /* AlignContent.Center */:
1415
+ return 'center';
1416
+ case 1 /* AlignContent.End */:
1417
+ return 'end';
1418
+ case 0 /* AlignContent.Start */:
1419
+ return 'start';
1420
+ case 3 /* AlignContent.Stretch */:
1421
+ return 'stretch';
1422
+ }
1423
+ }
1424
+ set alignContent(value) {
1425
+ switch (value) {
1426
+ case 'normal':
1427
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, -1 /* AlignContent.Normal */);
1428
+ break;
1429
+ case 'space-around':
1430
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 5 /* AlignContent.SpaceAround */);
1431
+ break;
1432
+ case 'space-between':
1433
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 4 /* AlignContent.SpaceBetween */);
1434
+ break;
1435
+ case 'space-evenly':
1436
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 6 /* AlignContent.SpaceEvenly */);
1437
+ break;
1438
+ case 'center':
1439
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 2 /* AlignContent.Center */);
1440
+ break;
1441
+ case 'end':
1442
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 1 /* AlignContent.End */);
1443
+ break;
1444
+ case 'start':
1445
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 0 /* AlignContent.Start */);
1446
+ break;
1447
+ case 'stretch':
1448
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 3 /* AlignContent.Stretch */);
1449
+ break;
1450
+ }
1451
+ this.setOrAppendState(StateKeys.ALIGN_CONTENT);
1452
+ }
1453
+ get justifyContent() {
1454
+ switch (getInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT)) {
1455
+ case -1 /* JustifyContent.Normal */:
1456
+ return 'normal';
1457
+ case 0 /* JustifyContent.Start */:
1458
+ return 'start';
1459
+ case 1 /* JustifyContent.End */:
1460
+ return 'end';
1461
+ case 2 /* JustifyContent.Center */:
1462
+ return 'center';
1463
+ case 3 /* JustifyContent.Stretch */:
1464
+ return 'stretch';
1465
+ case 4 /* JustifyContent.SpaceBetween */:
1466
+ return 'space-between';
1467
+ case 5 /* JustifyContent.SpaceAround */:
1468
+ return 'space-around';
1469
+ case 6 /* JustifyContent.SpaceEvenly */:
1470
+ return 'space-evenly';
1471
+ case 7 /* JustifyContent.FlexStart */:
1472
+ return 'flex-start';
1473
+ case 8 /* JustifyContent.FlexEnd */:
1474
+ return 'flex-end';
1475
+ }
1476
+ }
1477
+ set justifyContent(value) {
1478
+ switch (value) {
1479
+ case 'normal':
1480
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, -1 /* JustifyContent.Normal */);
1481
+ break;
1482
+ case 'space-around':
1483
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 5 /* JustifyContent.SpaceAround */);
1484
+ break;
1485
+ case 'space-between':
1486
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 4 /* JustifyContent.SpaceBetween */);
1487
+ break;
1488
+ case 'space-evenly':
1489
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 6 /* JustifyContent.SpaceEvenly */);
1490
+ break;
1491
+ case 'center':
1492
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 2 /* JustifyContent.Center */);
1493
+ break;
1494
+ case 'end':
1495
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 1 /* JustifyContent.End */);
1496
+ break;
1497
+ case 'start':
1498
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 0 /* JustifyContent.Start */);
1499
+ break;
1500
+ case 'stretch':
1501
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 3 /* JustifyContent.Stretch */);
1502
+ break;
1503
+ }
1504
+ this.setOrAppendState(StateKeys.JUSTIFY_CONTENT);
1505
+ }
1506
+ get gridAutoFlow() {
1507
+ switch (getInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW)) {
1508
+ case 0:
1509
+ return 'row';
1510
+ case 1:
1511
+ return 'column';
1512
+ case 2:
1513
+ return 'row dense';
1514
+ case 3:
1515
+ return 'column dense';
1516
+ }
1517
+ }
1518
+ set gridAutoFlow(value) {
1519
+ switch (value) {
1520
+ case 'row':
1521
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 0);
1522
+ break;
1523
+ case 'column':
1524
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 1);
1525
+ break;
1526
+ case 'row dense':
1527
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 2);
1528
+ break;
1529
+ case 'column dense':
1530
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 3);
1531
+ break;
1532
+ }
1533
+ }
1534
+ get overflow() {
1535
+ const x = this.overflowX;
1536
+ const y = this.overflowY;
1537
+ if (x === y) {
1538
+ return x;
1539
+ }
1540
+ return `${x} ${y}`;
1541
+ }
1542
+ set overflow(value) {
1543
+ switch (value) {
1544
+ case 'visible':
1545
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
1546
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
1547
+ break;
1548
+ case 'hidden':
1549
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
1550
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
1551
+ break;
1552
+ case 'scroll':
1553
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
1554
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
1555
+ break;
1556
+ default:
1557
+ {
1558
+ const values = value.split(' ');
1559
+ switch (values[0]) {
1560
+ case 'visible':
1561
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
1562
+ break;
1563
+ case 'hidden':
1564
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
1565
+ break;
1566
+ case 'scroll':
1567
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
1568
+ break;
1569
+ }
1570
+ switch (values[1]) {
1571
+ case 'visible':
1572
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
1573
+ break;
1574
+ case 'hidden':
1575
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
1576
+ break;
1577
+ case 'scroll':
1578
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
1579
+ break;
1580
+ }
1581
+ }
1582
+ break;
1583
+ }
1584
+ }
1585
+ get overflowX() {
1586
+ switch (getInt32(this.style_view, StyleKeys.OVERFLOW_X)) {
1587
+ case 0:
1588
+ return 'visible';
1589
+ case 1:
1590
+ return 'hidden';
1591
+ case 2:
1592
+ return 'scroll';
1593
+ }
1594
+ }
1595
+ set overflowX(value) {
1596
+ switch (value) {
1597
+ case 'visible':
1598
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
1599
+ break;
1600
+ case 'hidden':
1601
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
1602
+ break;
1603
+ case 'scroll':
1604
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
1605
+ break;
1606
+ }
1607
+ }
1608
+ get overflowY() {
1609
+ switch (getInt32(this.style_view, StyleKeys.OVERFLOW_Y)) {
1610
+ case 0:
1611
+ return 'visible';
1612
+ case 1:
1613
+ return 'hidden';
1614
+ case 2:
1615
+ return 'scroll';
1616
+ }
1617
+ }
1618
+ set overflowY(value) {
1619
+ switch (value) {
1620
+ case 'visible':
1621
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
1622
+ break;
1623
+ case 'hidden':
1624
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
1625
+ break;
1626
+ case 'scroll':
1627
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
1628
+ break;
1629
+ }
1630
+ }
1631
+ get flexGrow() {
1632
+ return getFloat32(this.style_view, StyleKeys.FLEX_GROW);
1633
+ }
1634
+ set flexGrow(value) {
1635
+ setFloat32(this.style_view, StyleKeys.FLEX_GROW, value);
1636
+ }
1637
+ get flexShrink() {
1638
+ return getFloat32(this.style_view, StyleKeys.FLEX_SHRINK);
1639
+ }
1640
+ set flexShrink(value) {
1641
+ setFloat32(this.style_view, StyleKeys.FLEX_SHRINK, value);
1642
+ }
1643
+ get scrollBarWidth() {
1644
+ return getFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH);
1645
+ }
1646
+ set scrollBarWidth(value) {
1647
+ if (typeof value === 'number') {
1648
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, value);
1649
+ }
1650
+ else if (typeof value === 'object') {
1651
+ switch (value.unit) {
1652
+ case 'dip':
1653
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, layout.toDevicePixels(value.value));
1654
+ break;
1655
+ case 'px':
1656
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, value.value);
1657
+ break;
1658
+ }
1659
+ }
1660
+ }
1661
+ toJSON() {
1662
+ return {
1663
+ display: this.display,
1664
+ position: this.position,
1665
+ flexDirection: this.flexDirection,
1666
+ flexWrap: this.flexWrap,
1667
+ justifyContent: this.justifyContent,
1668
+ alignItems: this.alignItems,
1669
+ alignContent: this.alignContent,
1670
+ alignSelf: this.alignSelf,
1671
+ flexGrow: this.flexGrow,
1672
+ minWidth: this.minWidth,
1673
+ minHeight: this.minHeight,
1674
+ maxWidth: this.maxWidth,
1675
+ maxHeight: this.maxHeight,
1676
+ width: this.width,
1677
+ height: this.height,
1678
+ inset: {
1679
+ left: this.left,
1680
+ right: this.right,
1681
+ top: this.top,
1682
+ bottom: this.bottom,
1683
+ },
1684
+ margin: {
1685
+ left: this.marginLeft,
1686
+ right: this.marginRight,
1687
+ top: this.marginTop,
1688
+ bottom: this.marginBottom,
1689
+ },
1690
+ padding: {
1691
+ left: this.paddingLeft,
1692
+ right: this.paddingRight,
1693
+ top: this.paddingTop,
1694
+ bottom: this.paddingBottom,
1695
+ },
1696
+ gap: this.gap,
1697
+ gridAutoFlow: this.gridAutoFlow,
1698
+ gridAutoColumns: this.gridAutoColumns,
1699
+ gridAutoRows: this.gridAutoRows,
1700
+ gridColumn: this.gridColumn,
1701
+ gridRow: this.gridRow,
1702
+ };
1703
+ }
1704
+ }
1705
+ //# sourceMappingURL=style.js.map