@triniwiz/nativescript-masonkit 1.0.0-alpha.27 → 1.0.0-alpha.28

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 (52) hide show
  1. package/common.d.ts +138 -0
  2. package/common.js +1546 -0
  3. package/common.js.map +1 -0
  4. package/img/index.android.d.ts +10 -0
  5. package/img/index.android.js +40 -0
  6. package/img/index.android.js.map +1 -0
  7. package/img/index.ios.d.ts +13 -0
  8. package/img/index.ios.js +102 -0
  9. package/img/index.ios.js.map +1 -0
  10. package/index.android.d.ts +5 -0
  11. package/index.android.js +6 -0
  12. package/index.android.js.map +1 -0
  13. package/index.ios.d.ts +5 -0
  14. package/index.ios.js +6 -0
  15. package/index.ios.js.map +1 -0
  16. package/package.json +1 -1
  17. package/scroll/index.android.d.ts +13 -0
  18. package/scroll/index.android.js +75 -0
  19. package/scroll/index.android.js.map +1 -0
  20. package/scroll/index.ios.d.ts +16 -0
  21. package/scroll/index.ios.js +150 -0
  22. package/scroll/index.ios.js.map +1 -0
  23. package/style.d.ts +201 -0
  24. package/style.js +2315 -0
  25. package/style.js.map +1 -0
  26. package/text/index.android.d.ts +30 -0
  27. package/text/index.android.js +142 -0
  28. package/text/index.android.js.map +1 -0
  29. package/text/index.ios.d.ts +39 -0
  30. package/text/index.ios.js +288 -0
  31. package/text/index.ios.js.map +1 -0
  32. package/tree/index.android.d.ts +27 -0
  33. package/tree/index.android.js +72 -0
  34. package/tree/index.android.js.map +1 -0
  35. package/tree/index.ios.d.ts +27 -0
  36. package/tree/index.ios.js +72 -0
  37. package/tree/index.ios.js.map +1 -0
  38. package/utils/index.android.d.ts +187 -0
  39. package/utils/index.android.js +595 -0
  40. package/utils/index.android.js.map +1 -0
  41. package/utils/index.ios.d.ts +198 -0
  42. package/utils/index.ios.js +710 -0
  43. package/utils/index.ios.js.map +1 -0
  44. package/view/index.android.d.ts +13 -0
  45. package/view/index.android.js +82 -0
  46. package/view/index.android.js.map +1 -0
  47. package/view/index.ios.d.ts +17 -0
  48. package/view/index.ios.js +155 -0
  49. package/view/index.ios.js.map +1 -0
  50. package/web.d.ts +55 -0
  51. package/web.js +189 -0
  52. package/web.js.map +1 -0
package/style.js ADDED
@@ -0,0 +1,2315 @@
1
+ import { layout } from '@nativescript/core/utils';
2
+ import { Length as CoreLength } from '@nativescript/core';
3
+ import { _setGridAutoRows, _setGridAutoColumns, _parseGridLine, _parseGridTemplates, _setGridTemplateColumns, _setGridTemplateRows, _getGridTemplateRows, _getGridTemplateColumns } from './utils';
4
+ var StyleKeys;
5
+ (function (StyleKeys) {
6
+ StyleKeys[StyleKeys["DISPLAY"] = 0] = "DISPLAY";
7
+ StyleKeys[StyleKeys["POSITION"] = 4] = "POSITION";
8
+ StyleKeys[StyleKeys["DIRECTION"] = 8] = "DIRECTION";
9
+ StyleKeys[StyleKeys["FLEX_DIRECTION"] = 12] = "FLEX_DIRECTION";
10
+ StyleKeys[StyleKeys["FLEX_WRAP"] = 16] = "FLEX_WRAP";
11
+ StyleKeys[StyleKeys["OVERFLOW_X"] = 20] = "OVERFLOW_X";
12
+ StyleKeys[StyleKeys["OVERFLOW_Y"] = 24] = "OVERFLOW_Y";
13
+ StyleKeys[StyleKeys["ALIGN_ITEMS"] = 28] = "ALIGN_ITEMS";
14
+ StyleKeys[StyleKeys["ALIGN_SELF"] = 32] = "ALIGN_SELF";
15
+ StyleKeys[StyleKeys["ALIGN_CONTENT"] = 36] = "ALIGN_CONTENT";
16
+ StyleKeys[StyleKeys["JUSTIFY_ITEMS"] = 40] = "JUSTIFY_ITEMS";
17
+ StyleKeys[StyleKeys["JUSTIFY_SELF"] = 44] = "JUSTIFY_SELF";
18
+ StyleKeys[StyleKeys["JUSTIFY_CONTENT"] = 48] = "JUSTIFY_CONTENT";
19
+ StyleKeys[StyleKeys["INSET_LEFT_TYPE"] = 52] = "INSET_LEFT_TYPE";
20
+ StyleKeys[StyleKeys["INSET_LEFT_VALUE"] = 56] = "INSET_LEFT_VALUE";
21
+ StyleKeys[StyleKeys["INSET_RIGHT_TYPE"] = 60] = "INSET_RIGHT_TYPE";
22
+ StyleKeys[StyleKeys["INSET_RIGHT_VALUE"] = 64] = "INSET_RIGHT_VALUE";
23
+ StyleKeys[StyleKeys["INSET_TOP_TYPE"] = 68] = "INSET_TOP_TYPE";
24
+ StyleKeys[StyleKeys["INSET_TOP_VALUE"] = 72] = "INSET_TOP_VALUE";
25
+ StyleKeys[StyleKeys["INSET_BOTTOM_TYPE"] = 76] = "INSET_BOTTOM_TYPE";
26
+ StyleKeys[StyleKeys["INSET_BOTTOM_VALUE"] = 80] = "INSET_BOTTOM_VALUE";
27
+ StyleKeys[StyleKeys["MARGIN_LEFT_TYPE"] = 84] = "MARGIN_LEFT_TYPE";
28
+ StyleKeys[StyleKeys["MARGIN_LEFT_VALUE"] = 88] = "MARGIN_LEFT_VALUE";
29
+ StyleKeys[StyleKeys["MARGIN_RIGHT_TYPE"] = 92] = "MARGIN_RIGHT_TYPE";
30
+ StyleKeys[StyleKeys["MARGIN_RIGHT_VALUE"] = 96] = "MARGIN_RIGHT_VALUE";
31
+ StyleKeys[StyleKeys["MARGIN_TOP_TYPE"] = 100] = "MARGIN_TOP_TYPE";
32
+ StyleKeys[StyleKeys["MARGIN_TOP_VALUE"] = 104] = "MARGIN_TOP_VALUE";
33
+ StyleKeys[StyleKeys["MARGIN_BOTTOM_TYPE"] = 108] = "MARGIN_BOTTOM_TYPE";
34
+ StyleKeys[StyleKeys["MARGIN_BOTTOM_VALUE"] = 112] = "MARGIN_BOTTOM_VALUE";
35
+ StyleKeys[StyleKeys["PADDING_LEFT_TYPE"] = 116] = "PADDING_LEFT_TYPE";
36
+ StyleKeys[StyleKeys["PADDING_LEFT_VALUE"] = 120] = "PADDING_LEFT_VALUE";
37
+ StyleKeys[StyleKeys["PADDING_RIGHT_TYPE"] = 124] = "PADDING_RIGHT_TYPE";
38
+ StyleKeys[StyleKeys["PADDING_RIGHT_VALUE"] = 128] = "PADDING_RIGHT_VALUE";
39
+ StyleKeys[StyleKeys["PADDING_TOP_TYPE"] = 132] = "PADDING_TOP_TYPE";
40
+ StyleKeys[StyleKeys["PADDING_TOP_VALUE"] = 136] = "PADDING_TOP_VALUE";
41
+ StyleKeys[StyleKeys["PADDING_BOTTOM_TYPE"] = 140] = "PADDING_BOTTOM_TYPE";
42
+ StyleKeys[StyleKeys["PADDING_BOTTOM_VALUE"] = 144] = "PADDING_BOTTOM_VALUE";
43
+ StyleKeys[StyleKeys["BORDER_LEFT_TYPE"] = 148] = "BORDER_LEFT_TYPE";
44
+ StyleKeys[StyleKeys["BORDER_LEFT_VALUE"] = 152] = "BORDER_LEFT_VALUE";
45
+ StyleKeys[StyleKeys["BORDER_RIGHT_TYPE"] = 156] = "BORDER_RIGHT_TYPE";
46
+ StyleKeys[StyleKeys["BORDER_RIGHT_VALUE"] = 160] = "BORDER_RIGHT_VALUE";
47
+ StyleKeys[StyleKeys["BORDER_TOP_TYPE"] = 164] = "BORDER_TOP_TYPE";
48
+ StyleKeys[StyleKeys["BORDER_TOP_VALUE"] = 168] = "BORDER_TOP_VALUE";
49
+ StyleKeys[StyleKeys["BORDER_BOTTOM_TYPE"] = 172] = "BORDER_BOTTOM_TYPE";
50
+ StyleKeys[StyleKeys["BORDER_BOTTOM_VALUE"] = 176] = "BORDER_BOTTOM_VALUE";
51
+ StyleKeys[StyleKeys["FLEX_GROW"] = 180] = "FLEX_GROW";
52
+ StyleKeys[StyleKeys["FLEX_SHRINK"] = 184] = "FLEX_SHRINK";
53
+ StyleKeys[StyleKeys["FLEX_BASIS_TYPE"] = 188] = "FLEX_BASIS_TYPE";
54
+ StyleKeys[StyleKeys["FLEX_BASIS_VALUE"] = 192] = "FLEX_BASIS_VALUE";
55
+ StyleKeys[StyleKeys["WIDTH_TYPE"] = 196] = "WIDTH_TYPE";
56
+ StyleKeys[StyleKeys["WIDTH_VALUE"] = 200] = "WIDTH_VALUE";
57
+ StyleKeys[StyleKeys["HEIGHT_TYPE"] = 204] = "HEIGHT_TYPE";
58
+ StyleKeys[StyleKeys["HEIGHT_VALUE"] = 208] = "HEIGHT_VALUE";
59
+ StyleKeys[StyleKeys["MIN_WIDTH_TYPE"] = 212] = "MIN_WIDTH_TYPE";
60
+ StyleKeys[StyleKeys["MIN_WIDTH_VALUE"] = 216] = "MIN_WIDTH_VALUE";
61
+ StyleKeys[StyleKeys["MIN_HEIGHT_TYPE"] = 220] = "MIN_HEIGHT_TYPE";
62
+ StyleKeys[StyleKeys["MIN_HEIGHT_VALUE"] = 224] = "MIN_HEIGHT_VALUE";
63
+ StyleKeys[StyleKeys["MAX_WIDTH_TYPE"] = 228] = "MAX_WIDTH_TYPE";
64
+ StyleKeys[StyleKeys["MAX_WIDTH_VALUE"] = 232] = "MAX_WIDTH_VALUE";
65
+ StyleKeys[StyleKeys["MAX_HEIGHT_TYPE"] = 236] = "MAX_HEIGHT_TYPE";
66
+ StyleKeys[StyleKeys["MAX_HEIGHT_VALUE"] = 240] = "MAX_HEIGHT_VALUE";
67
+ StyleKeys[StyleKeys["GAP_ROW_TYPE"] = 244] = "GAP_ROW_TYPE";
68
+ StyleKeys[StyleKeys["GAP_ROW_VALUE"] = 248] = "GAP_ROW_VALUE";
69
+ StyleKeys[StyleKeys["GAP_COLUMN_TYPE"] = 252] = "GAP_COLUMN_TYPE";
70
+ StyleKeys[StyleKeys["GAP_COLUMN_VALUE"] = 256] = "GAP_COLUMN_VALUE";
71
+ StyleKeys[StyleKeys["ASPECT_RATIO"] = 260] = "ASPECT_RATIO";
72
+ StyleKeys[StyleKeys["GRID_AUTO_FLOW"] = 264] = "GRID_AUTO_FLOW";
73
+ StyleKeys[StyleKeys["GRID_COLUMN_START_TYPE"] = 268] = "GRID_COLUMN_START_TYPE";
74
+ StyleKeys[StyleKeys["GRID_COLUMN_START_VALUE"] = 272] = "GRID_COLUMN_START_VALUE";
75
+ StyleKeys[StyleKeys["GRID_COLUMN_END_TYPE"] = 276] = "GRID_COLUMN_END_TYPE";
76
+ StyleKeys[StyleKeys["GRID_COLUMN_END_VALUE"] = 280] = "GRID_COLUMN_END_VALUE";
77
+ StyleKeys[StyleKeys["GRID_ROW_START_TYPE"] = 284] = "GRID_ROW_START_TYPE";
78
+ StyleKeys[StyleKeys["GRID_ROW_START_VALUE"] = 288] = "GRID_ROW_START_VALUE";
79
+ StyleKeys[StyleKeys["GRID_ROW_END_TYPE"] = 292] = "GRID_ROW_END_TYPE";
80
+ StyleKeys[StyleKeys["GRID_ROW_END_VALUE"] = 296] = "GRID_ROW_END_VALUE";
81
+ StyleKeys[StyleKeys["SCROLLBAR_WIDTH"] = 300] = "SCROLLBAR_WIDTH";
82
+ StyleKeys[StyleKeys["TEXT_ALIGN"] = 304] = "TEXT_ALIGN";
83
+ StyleKeys[StyleKeys["BOX_SIZING"] = 308] = "BOX_SIZING";
84
+ StyleKeys[StyleKeys["OVERFLOW"] = 312] = "OVERFLOW";
85
+ StyleKeys[StyleKeys["ITEM_IS_TABLE"] = 316] = "ITEM_IS_TABLE";
86
+ StyleKeys[StyleKeys["ITEM_IS_REPLACED"] = 320] = "ITEM_IS_REPLACED";
87
+ StyleKeys[StyleKeys["DISPLAY_MODE"] = 324] = "DISPLAY_MODE";
88
+ StyleKeys[StyleKeys["FORCE_INLINE"] = 328] = "FORCE_INLINE";
89
+ StyleKeys[StyleKeys["MIN_CONTENT"] = 332] = "MIN_CONTENT";
90
+ StyleKeys[StyleKeys["MAX_CONTENT"] = 336] = "MAX_CONTENT";
91
+ })(StyleKeys || (StyleKeys = {}));
92
+ var TextStyleKeys;
93
+ (function (TextStyleKeys) {
94
+ TextStyleKeys[TextStyleKeys["COLOR"] = 0] = "COLOR";
95
+ TextStyleKeys[TextStyleKeys["DECORATION_LINE"] = 4] = "DECORATION_LINE";
96
+ TextStyleKeys[TextStyleKeys["DECORATION_COLOR"] = 8] = "DECORATION_COLOR";
97
+ TextStyleKeys[TextStyleKeys["TEXT_ALIGN"] = 12] = "TEXT_ALIGN";
98
+ TextStyleKeys[TextStyleKeys["TEXT_JUSTIFY"] = 16] = "TEXT_JUSTIFY";
99
+ TextStyleKeys[TextStyleKeys["BACKGROUND_COLOR"] = 20] = "BACKGROUND_COLOR";
100
+ TextStyleKeys[TextStyleKeys["SIZE"] = 24] = "SIZE";
101
+ TextStyleKeys[TextStyleKeys["TRANSFORM"] = 28] = "TRANSFORM";
102
+ TextStyleKeys[TextStyleKeys["FONT_STYLE_TYPE"] = 32] = "FONT_STYLE_TYPE";
103
+ TextStyleKeys[TextStyleKeys["FONT_STYLE_SLANT"] = 36] = "FONT_STYLE_SLANT";
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";
109
+ })(TextStyleKeys || (TextStyleKeys = {}));
110
+ function parseLengthPercentageAuto(type, value) {
111
+ switch (type) {
112
+ case 0:
113
+ return 'auto';
114
+ case 1:
115
+ return { value, unit: 'px' };
116
+ case 2:
117
+ return { value, unit: '%' };
118
+ }
119
+ }
120
+ function parseLengthPercentage(type, value) {
121
+ switch (type) {
122
+ case 0:
123
+ return { value, unit: 'px' };
124
+ case 1:
125
+ return { value, unit: '%' };
126
+ }
127
+ }
128
+ class StateKeys {
129
+ constructor(bits) {
130
+ this.bits = bits;
131
+ }
132
+ or(other) {
133
+ return new StateKeys(this.bits | other.bits);
134
+ }
135
+ and(other) {
136
+ return new StateKeys(this.bits & other.bits);
137
+ }
138
+ hasFlag(flag) {
139
+ return (this.bits & flag.bits) !== 0n;
140
+ }
141
+ }
142
+ StateKeys.DISPLAY = new StateKeys(1n << 0n);
143
+ StateKeys.POSITION = new StateKeys(1n << 1n);
144
+ StateKeys.DIRECTION = new StateKeys(1n << 2n);
145
+ StateKeys.FLEX_DIRECTION = new StateKeys(1n << 3n);
146
+ StateKeys.FLEX_WRAP = new StateKeys(1n << 4n);
147
+ StateKeys.OVERFLOW_X = new StateKeys(1n << 5n);
148
+ StateKeys.OVERFLOW_Y = new StateKeys(1n << 6n);
149
+ StateKeys.ALIGN_ITEMS = new StateKeys(1n << 7n);
150
+ StateKeys.ALIGN_SELF = new StateKeys(1n << 8n);
151
+ StateKeys.ALIGN_CONTENT = new StateKeys(1n << 9n);
152
+ StateKeys.JUSTIFY_ITEMS = new StateKeys(1n << 10n);
153
+ StateKeys.JUSTIFY_SELF = new StateKeys(1n << 11n);
154
+ StateKeys.JUSTIFY_CONTENT = new StateKeys(1n << 12n);
155
+ StateKeys.INSET = new StateKeys(1n << 13n);
156
+ StateKeys.MARGIN = new StateKeys(1n << 14n);
157
+ StateKeys.PADDING = new StateKeys(1n << 15n);
158
+ StateKeys.BORDER = new StateKeys(1n << 16n);
159
+ StateKeys.FLEX_GROW = new StateKeys(1n << 17n);
160
+ StateKeys.FLEX_SHRINK = new StateKeys(1n << 18n);
161
+ StateKeys.FLEX_BASIS = new StateKeys(1n << 19n);
162
+ StateKeys.SIZE = new StateKeys(1n << 20n);
163
+ StateKeys.MIN_SIZE = new StateKeys(1n << 21n);
164
+ StateKeys.MAX_SIZE = new StateKeys(1n << 22n);
165
+ StateKeys.GAP = new StateKeys(1n << 23n);
166
+ StateKeys.ASPECT_RATIO = new StateKeys(1n << 24n);
167
+ StateKeys.GRID_AUTO_FLOW = new StateKeys(1n << 25n);
168
+ StateKeys.GRID_COLUMN = new StateKeys(1n << 26n);
169
+ StateKeys.GRID_ROW = new StateKeys(1n << 27n);
170
+ StateKeys.SCROLLBAR_WIDTH = new StateKeys(1n << 28n);
171
+ StateKeys.TEXT_ALIGN = new StateKeys(1n << 29n);
172
+ StateKeys.BOX_SIZING = new StateKeys(1n << 30n);
173
+ StateKeys.OVERFLOW = new StateKeys(1n << 31n);
174
+ StateKeys.ITEM_IS_TABLE = new StateKeys(1n << 32n);
175
+ StateKeys.ITEM_IS_REPLACED = new StateKeys(1n << 33n);
176
+ StateKeys.DISPLAY_MODE = new StateKeys(1n << 34n);
177
+ StateKeys.FORCE_INLINE = new StateKeys(1n << 35n);
178
+ StateKeys.MIN_CONTENT = new StateKeys(1n << 36n);
179
+ StateKeys.MAX_CONTENT = new StateKeys(1n << 37n);
180
+ class TextStateKeys {
181
+ constructor(bits) {
182
+ this.bits = bits;
183
+ }
184
+ or(other) {
185
+ return new TextStateKeys(this.bits | other.bits);
186
+ }
187
+ and(other) {
188
+ return new TextStateKeys(this.bits & other.bits);
189
+ }
190
+ hasFlag(flag) {
191
+ return (this.bits & flag.bits) !== 0n;
192
+ }
193
+ }
194
+ TextStateKeys.COLOR = new TextStateKeys(1n << 0n);
195
+ TextStateKeys.DECORATION_LINE = new TextStateKeys(1n << 1n);
196
+ TextStateKeys.DECORATION_COLOR = new TextStateKeys(1n << 2n);
197
+ TextStateKeys.TEXT_ALIGN = new TextStateKeys(1n << 3n);
198
+ TextStateKeys.TEXT_JUSTIFY = new TextStateKeys(1n << 4n);
199
+ TextStateKeys.BACKGROUND_COLOR = new TextStateKeys(1n << 5n);
200
+ TextStateKeys.SIZE = new TextStateKeys(1n << 6n);
201
+ TextStateKeys.TRANSFORM = new TextStateKeys(1n << 7n);
202
+ TextStateKeys.FONT_STYLE = new TextStateKeys(1n << 8n);
203
+ TextStateKeys.FONT_STYLE_SLANT = new TextStateKeys(1n << 9n);
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);
209
+ const getUint16 = (view, offset) => {
210
+ return view.getUint16(offset, true);
211
+ };
212
+ const setUint16 = (view, offset, value) => {
213
+ view.setUint16(offset, value, true);
214
+ };
215
+ const getInt16 = (view, offset) => {
216
+ return view.getInt16(offset, true);
217
+ };
218
+ const setInt16 = (view, offset, value) => {
219
+ view.setInt16(offset, value, true);
220
+ };
221
+ const getUint32 = (view, offset) => {
222
+ return view.getUint32(offset, true);
223
+ };
224
+ const setUint32 = (view, offset, value) => {
225
+ view.setUint32(offset, value, true);
226
+ };
227
+ const getInt32 = (view, offset) => {
228
+ return view.getInt32(offset, true);
229
+ };
230
+ const setInt32 = (view, offset, value) => {
231
+ view.setInt32(offset, value, true);
232
+ };
233
+ const getFloat32 = (view, offset) => {
234
+ return view.getFloat32(offset, true);
235
+ };
236
+ const setFloat32 = (view, offset, value) => {
237
+ view.setFloat32(offset, value, true);
238
+ };
239
+ export class Style {
240
+ constructor() {
241
+ this.isDirty = -1n;
242
+ this.isTextDirty = -1n;
243
+ this.inBatch = false;
244
+ }
245
+ static fromView(view, nativeView, isText = false) {
246
+ //console.time('fromView');
247
+ const ret = new Style();
248
+ ret.view_ = view;
249
+ if (__ANDROID__) {
250
+ const style = nativeView.getStyle();
251
+ if (!isText) {
252
+ const styleBuffer = style.getValues();
253
+ const buffer = ArrayBuffer.from(styleBuffer);
254
+ ret.style_view = new DataView(buffer);
255
+ }
256
+ else {
257
+ const styleBuffer = style.getValues();
258
+ const buffer = ArrayBuffer.from(styleBuffer);
259
+ ret.style_view = new DataView(buffer);
260
+ const textStyleBuffer = nativeView.getTextValues();
261
+ const textBuffer = ArrayBuffer.from(textStyleBuffer);
262
+ ret.text_style_view = new DataView(textBuffer);
263
+ }
264
+ }
265
+ else if (__APPLE__) {
266
+ // todo
267
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
268
+ const style = nativeView.style;
269
+ if (!isText) {
270
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
271
+ const styleBuffer = style.valuesCompat;
272
+ const buffer = interop.bufferFromData(styleBuffer);
273
+ ret.style_view = new DataView(buffer);
274
+ }
275
+ else {
276
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
277
+ const styleBuffer = style.valuesCompat;
278
+ const buffer = interop.bufferFromData(styleBuffer);
279
+ ret.style_view = new DataView(buffer);
280
+ const textStyleBuffer = nativeView.textValues;
281
+ const textBuffer = interop.bufferFromData(textStyleBuffer);
282
+ ret.text_style_view = new DataView(textBuffer);
283
+ }
284
+ }
285
+ //console.timeEnd('fromView');
286
+ return ret;
287
+ }
288
+ resetState() {
289
+ this.isDirty = -1n;
290
+ this.isTextDirty = -1n;
291
+ }
292
+ syncStyle(isText = false) {
293
+ if (__ANDROID__) {
294
+ if (!isText) {
295
+ const view = this.view.android;
296
+ view.syncStyle(this.isDirty.toString());
297
+ }
298
+ else {
299
+ const view = this.view.android;
300
+ view.syncStyle(this.isDirty.toString(), this.isTextDirty.toString());
301
+ }
302
+ }
303
+ else if (__APPLE__) {
304
+ if (!isText) {
305
+ const view = this.view.ios;
306
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
307
+ // @ts-ignore
308
+ view.syncStyle(this.isDirty.toString());
309
+ }
310
+ else {
311
+ const view = this.view.ios;
312
+ view.syncStyleTextState(this.isDirty.toString(), this.isTextDirty.toString());
313
+ }
314
+ }
315
+ this.resetState();
316
+ }
317
+ setOrAppendState(value) {
318
+ if (this.isDirty == -1n) {
319
+ this.isDirty = value.bits;
320
+ }
321
+ else {
322
+ this.isDirty = this.isDirty | value.bits;
323
+ }
324
+ if (!this.inBatch) {
325
+ this.syncStyle(this.text_style_view != null);
326
+ }
327
+ }
328
+ setOrAppendTextState(value) {
329
+ if (this.isTextDirty == -1n) {
330
+ this.isTextDirty = value.bits;
331
+ }
332
+ else {
333
+ this.isTextDirty = this.isTextDirty | value.bits;
334
+ }
335
+ if (!this.inBatch) {
336
+ this.syncStyle(this.text_style_view != null);
337
+ }
338
+ }
339
+ batch(fn) {
340
+ this.inBatch = true;
341
+ fn(this);
342
+ this.inBatch = false;
343
+ this.syncStyle(this.text_style_view != null);
344
+ }
345
+ get view() {
346
+ return this.view_;
347
+ }
348
+ get boxSizing() {
349
+ switch (getUint32(this.style_view, StyleKeys.BOX_SIZING)) {
350
+ case 0:
351
+ return 'border-box';
352
+ case 1:
353
+ return 'content-box';
354
+ }
355
+ }
356
+ set boxSizing(value) {
357
+ let boxSizing = -1;
358
+ switch (value) {
359
+ case 'border-box':
360
+ boxSizing = 0;
361
+ break;
362
+ case 'content-box':
363
+ boxSizing = 1;
364
+ break;
365
+ }
366
+ if (boxSizing !== -1) {
367
+ setUint32(this.style_view, StyleKeys.BOX_SIZING, boxSizing);
368
+ this.setOrAppendState(StateKeys.BOX_SIZING);
369
+ }
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
+ }
480
+ get color() {
481
+ if (!this.text_style_view) {
482
+ // BLACK ?
483
+ return 0;
484
+ }
485
+ return getUint32(this.text_style_view, TextStyleKeys.COLOR);
486
+ }
487
+ set color(value) {
488
+ if (!this.text_style_view) {
489
+ return;
490
+ }
491
+ setUint32(this.text_style_view, TextStyleKeys.COLOR, value);
492
+ this.setOrAppendTextState(TextStateKeys.COLOR);
493
+ }
494
+ get backgroundColor() {
495
+ if (!this.text_style_view) {
496
+ // BLACK ?
497
+ return 0;
498
+ }
499
+ return getUint32(this.text_style_view, TextStyleKeys.BACKGROUND_COLOR);
500
+ }
501
+ set backgroundColor(value) {
502
+ if (!this.text_style_view) {
503
+ return;
504
+ }
505
+ setUint32(this.text_style_view, TextStyleKeys.BACKGROUND_COLOR, value);
506
+ this.setOrAppendTextState(TextStateKeys.BACKGROUND_COLOR);
507
+ }
508
+ get textWrap() {
509
+ if (!this.text_style_view) {
510
+ // BLACK ?
511
+ return 0;
512
+ }
513
+ return getInt32(this.text_style_view, TextStyleKeys.TEXT_ALIGN);
514
+ }
515
+ set textWrap(value) {
516
+ if (!this.text_style_view) {
517
+ return;
518
+ }
519
+ let wrap = -1;
520
+ switch (value) {
521
+ case 'nowrap':
522
+ wrap = 0;
523
+ break;
524
+ case 'wrap':
525
+ wrap = 1;
526
+ break;
527
+ case 'balance':
528
+ wrap = 2;
529
+ break;
530
+ }
531
+ if (typeof value === 'number' && value >= 0 && value < 3) {
532
+ wrap = value;
533
+ }
534
+ if (wrap !== -1) {
535
+ setInt32(this.text_style_view, TextStyleKeys.TEXT_WRAP, wrap);
536
+ this.setOrAppendTextState(TextStateKeys.TEXT_WRAP);
537
+ }
538
+ }
539
+ get styleView() {
540
+ return this.style_view;
541
+ }
542
+ get display() {
543
+ switch (getInt32(this.style_view, StyleKeys.DISPLAY)) {
544
+ case 0:
545
+ return 'none';
546
+ case 1:
547
+ return 'flex';
548
+ case 2:
549
+ return 'grid';
550
+ case 3:
551
+ return 'block';
552
+ case 4:
553
+ return 'inline';
554
+ case 5:
555
+ return 'inline-block';
556
+ case 6:
557
+ return 'inline-flex';
558
+ case 7:
559
+ return 'inline-grid';
560
+ default:
561
+ return 'none';
562
+ }
563
+ }
564
+ set display(value) {
565
+ let display = -1;
566
+ switch (value) {
567
+ case 'none':
568
+ display = 0;
569
+ break;
570
+ case 'flex':
571
+ display = 1;
572
+ break;
573
+ case 'grid':
574
+ display = 2;
575
+ break;
576
+ case 'block':
577
+ display = 3;
578
+ break;
579
+ case 'inline':
580
+ display = 4;
581
+ break;
582
+ case 'inline-block':
583
+ display = 5;
584
+ break;
585
+ case 'inline-flex':
586
+ display = 6;
587
+ break;
588
+ case 'inline-grid':
589
+ display = 7;
590
+ break;
591
+ }
592
+ if (display != -1) {
593
+ setInt32(this.style_view, StyleKeys.DISPLAY, display);
594
+ this.setOrAppendState(StateKeys.DISPLAY);
595
+ }
596
+ }
597
+ get position() {
598
+ switch (getInt32(this.style_view, StyleKeys.POSITION)) {
599
+ case 0:
600
+ return 'relative';
601
+ case 1:
602
+ return 'absolute';
603
+ }
604
+ }
605
+ set position(value) {
606
+ let position = -1;
607
+ switch (value) {
608
+ case 'relative':
609
+ position = 0;
610
+ break;
611
+ case 'absolute':
612
+ position = 1;
613
+ break;
614
+ }
615
+ if (position != -1) {
616
+ setInt32(this.style_view, StyleKeys.POSITION, position);
617
+ this.setOrAppendState(StateKeys.POSITION);
618
+ }
619
+ }
620
+ get flexDirection() {
621
+ switch (getInt32(this.style_view, StyleKeys.FLEX_DIRECTION)) {
622
+ case 0:
623
+ return 'column';
624
+ case 1:
625
+ return 'row';
626
+ case 2:
627
+ return 'column-reverse';
628
+ case 3:
629
+ return 'row-reverse';
630
+ }
631
+ }
632
+ set flexDirection(value) {
633
+ let flex = -1;
634
+ switch (value) {
635
+ case 'column':
636
+ flex = 0;
637
+ break;
638
+ case 'row':
639
+ flex = 1;
640
+ break;
641
+ case 'column-reverse':
642
+ flex = 2;
643
+ break;
644
+ case 'row-reverse':
645
+ flex = 3;
646
+ break;
647
+ }
648
+ if (flex != -1) {
649
+ setInt32(this.style_view, StyleKeys.FLEX_DIRECTION, flex);
650
+ this.setOrAppendState(StateKeys.FLEX_DIRECTION);
651
+ }
652
+ }
653
+ get flexWrap() {
654
+ switch (getInt32(this.style_view, StyleKeys.FLEX_WRAP)) {
655
+ case 0:
656
+ return 'no-wrap';
657
+ case 1:
658
+ return 'wrap';
659
+ case 2:
660
+ return 'wrap-reverse';
661
+ }
662
+ }
663
+ set flexWrap(value) {
664
+ let wrap = -1;
665
+ switch (value) {
666
+ case 'no-wrap':
667
+ wrap = 0;
668
+ break;
669
+ case 'wrap':
670
+ wrap = 1;
671
+ break;
672
+ case 'wrap-reverse':
673
+ wrap = 2;
674
+ break;
675
+ }
676
+ if (wrap != -1) {
677
+ setInt32(this.style_view, StyleKeys.FLEX_WRAP, wrap);
678
+ this.setOrAppendState(StateKeys.FLEX_WRAP);
679
+ }
680
+ }
681
+ // get flex(): string | 'auto' | 'none' | number | 'initial' {
682
+ // return this.style[StyleKeys.FLEX];
683
+ // }
684
+ // get flexFlow(): string
685
+ get minWidth() {
686
+ const type = getInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE);
687
+ const value = getFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE);
688
+ return parseLengthPercentageAuto(type, value);
689
+ }
690
+ set minWidth(value) {
691
+ switch (typeof value) {
692
+ case 'string':
693
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 0);
694
+ break;
695
+ case 'number':
696
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
697
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, layout.toDevicePixels(value));
698
+ break;
699
+ case 'object':
700
+ switch (value.unit) {
701
+ case 'dip':
702
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
703
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, layout.toDevicePixels(value.value));
704
+ break;
705
+ case 'px':
706
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 1);
707
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, value.value);
708
+ break;
709
+ case '%':
710
+ setInt32(this.style_view, StyleKeys.MIN_WIDTH_TYPE, 2);
711
+ setFloat32(this.style_view, StyleKeys.MIN_WIDTH_VALUE, value.value);
712
+ break;
713
+ }
714
+ break;
715
+ }
716
+ this.setOrAppendState(StateKeys.MIN_SIZE);
717
+ }
718
+ get minHeight() {
719
+ const type = getInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE);
720
+ const value = getFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE);
721
+ return parseLengthPercentageAuto(type, value);
722
+ }
723
+ set minHeight(value) {
724
+ switch (typeof value) {
725
+ case 'string':
726
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 0);
727
+ break;
728
+ case 'number':
729
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
730
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, layout.toDevicePixels(value));
731
+ break;
732
+ case 'object':
733
+ switch (value.unit) {
734
+ case 'dip':
735
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
736
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, layout.toDevicePixels(value.value));
737
+ break;
738
+ case 'px':
739
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 1);
740
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, value.value);
741
+ break;
742
+ case '%':
743
+ setInt32(this.style_view, StyleKeys.MIN_HEIGHT_TYPE, 2);
744
+ setFloat32(this.style_view, StyleKeys.MIN_HEIGHT_VALUE, value.value);
745
+ break;
746
+ }
747
+ break;
748
+ }
749
+ this.setOrAppendState(StateKeys.MIN_SIZE);
750
+ }
751
+ get width() {
752
+ const type = getInt32(this.style_view, StyleKeys.WIDTH_TYPE);
753
+ const value = getFloat32(this.style_view, StyleKeys.WIDTH_VALUE);
754
+ return parseLengthPercentageAuto(type, value);
755
+ }
756
+ set width(value) {
757
+ switch (typeof value) {
758
+ case 'string':
759
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 0);
760
+ break;
761
+ case 'number':
762
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
763
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, layout.toDevicePixels(value));
764
+ break;
765
+ case 'object':
766
+ switch (value.unit) {
767
+ case 'dip':
768
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
769
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, layout.toDevicePixels(value.value));
770
+ break;
771
+ case 'px':
772
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 1);
773
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, value.value);
774
+ break;
775
+ case '%':
776
+ setInt32(this.style_view, StyleKeys.WIDTH_TYPE, 2);
777
+ setFloat32(this.style_view, StyleKeys.WIDTH_VALUE, value.value);
778
+ break;
779
+ }
780
+ break;
781
+ }
782
+ this.setOrAppendState(StateKeys.SIZE);
783
+ }
784
+ get height() {
785
+ const type = getInt32(this.style_view, StyleKeys.HEIGHT_TYPE);
786
+ const value = getFloat32(this.style_view, StyleKeys.HEIGHT_VALUE);
787
+ return parseLengthPercentageAuto(type, value);
788
+ }
789
+ set height(value) {
790
+ switch (typeof value) {
791
+ case 'string':
792
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 0);
793
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, 0);
794
+ break;
795
+ case 'number':
796
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
797
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, layout.toDevicePixels(value));
798
+ break;
799
+ case 'object':
800
+ switch (value.unit) {
801
+ case 'dip':
802
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
803
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, layout.toDevicePixels(value.value));
804
+ break;
805
+ case 'px':
806
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 1);
807
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, value.value);
808
+ break;
809
+ case '%':
810
+ setInt32(this.style_view, StyleKeys.HEIGHT_TYPE, 2);
811
+ setFloat32(this.style_view, StyleKeys.HEIGHT_VALUE, value.value);
812
+ break;
813
+ }
814
+ break;
815
+ }
816
+ this.setOrAppendState(StateKeys.SIZE);
817
+ }
818
+ get maxWidth() {
819
+ const type = getInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE);
820
+ const value = getFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE);
821
+ return parseLengthPercentageAuto(type, value);
822
+ }
823
+ set maxWidth(value) {
824
+ switch (typeof value) {
825
+ case 'string':
826
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 0);
827
+ break;
828
+ case 'number':
829
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
830
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, layout.toDevicePixels(value));
831
+ break;
832
+ case 'object':
833
+ switch (value.unit) {
834
+ case 'dip':
835
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
836
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, layout.toDevicePixels(value.value));
837
+ break;
838
+ case 'px':
839
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 1);
840
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, value.value);
841
+ break;
842
+ case '%':
843
+ setInt32(this.style_view, StyleKeys.MAX_WIDTH_TYPE, 2);
844
+ setFloat32(this.style_view, StyleKeys.MAX_WIDTH_VALUE, value.value);
845
+ break;
846
+ }
847
+ break;
848
+ }
849
+ this.setOrAppendState(StateKeys.MAX_SIZE);
850
+ }
851
+ get maxHeight() {
852
+ const type = getInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE);
853
+ const value = getFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE);
854
+ return parseLengthPercentageAuto(type, value);
855
+ }
856
+ set maxHeight(value) {
857
+ switch (typeof value) {
858
+ case 'string':
859
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 0);
860
+ break;
861
+ case 'number':
862
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
863
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, layout.toDevicePixels(value));
864
+ break;
865
+ case 'object':
866
+ switch (value.unit) {
867
+ case 'dip':
868
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
869
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, layout.toDevicePixels(value.value));
870
+ break;
871
+ case 'px':
872
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 1);
873
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, value.value);
874
+ break;
875
+ case '%':
876
+ setInt32(this.style_view, StyleKeys.MAX_HEIGHT_TYPE, 2);
877
+ setFloat32(this.style_view, StyleKeys.MAX_HEIGHT_VALUE, value.value);
878
+ break;
879
+ }
880
+ break;
881
+ }
882
+ this.setOrAppendState(StateKeys.MAX_SIZE);
883
+ }
884
+ get borderLeft() {
885
+ const type = getInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE);
886
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE);
887
+ return parseLengthPercentage(type, value);
888
+ }
889
+ set borderLeft(value) {
890
+ switch (typeof value) {
891
+ case 'number':
892
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
893
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, layout.toDevicePixels(value));
894
+ break;
895
+ case 'object':
896
+ switch (value.unit) {
897
+ case 'dip':
898
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
899
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, layout.toDevicePixels(value.value));
900
+ break;
901
+ case 'px':
902
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 0);
903
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, value.value);
904
+ break;
905
+ case '%':
906
+ setInt32(this.style_view, StyleKeys.BORDER_LEFT_TYPE, 1);
907
+ setFloat32(this.style_view, StyleKeys.BORDER_LEFT_VALUE, value.value);
908
+ break;
909
+ }
910
+ break;
911
+ }
912
+ this.setOrAppendState(StateKeys.BORDER);
913
+ }
914
+ get borderRight() {
915
+ const type = getInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE);
916
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE);
917
+ return parseLengthPercentage(type, value);
918
+ }
919
+ set borderRight(value) {
920
+ switch (typeof value) {
921
+ case 'number':
922
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
923
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, layout.toDevicePixels(value));
924
+ break;
925
+ case 'object':
926
+ switch (value.unit) {
927
+ case 'dip':
928
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
929
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, layout.toDevicePixels(value.value));
930
+ break;
931
+ case 'px':
932
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 0);
933
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, value.value);
934
+ break;
935
+ case '%':
936
+ setInt32(this.style_view, StyleKeys.BORDER_RIGHT_TYPE, 1);
937
+ setFloat32(this.style_view, StyleKeys.BORDER_RIGHT_VALUE, value.value);
938
+ break;
939
+ }
940
+ break;
941
+ }
942
+ this.setOrAppendState(StateKeys.BORDER);
943
+ }
944
+ get borderTop() {
945
+ const type = getInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE);
946
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE);
947
+ return parseLengthPercentage(type, value);
948
+ }
949
+ set borderTop(value) {
950
+ switch (typeof value) {
951
+ case 'number':
952
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
953
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, layout.toDevicePixels(value));
954
+ break;
955
+ case 'object':
956
+ switch (value.unit) {
957
+ case 'dip':
958
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
959
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, layout.toDevicePixels(value.value));
960
+ break;
961
+ case 'px':
962
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 0);
963
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, value.value);
964
+ break;
965
+ case '%':
966
+ setInt32(this.style_view, StyleKeys.BORDER_TOP_TYPE, 1);
967
+ setFloat32(this.style_view, StyleKeys.BORDER_TOP_VALUE, value.value);
968
+ break;
969
+ }
970
+ break;
971
+ }
972
+ this.setOrAppendState(StateKeys.BORDER);
973
+ }
974
+ get borderBottom() {
975
+ const type = getInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE);
976
+ const value = getFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE);
977
+ return parseLengthPercentage(type, value);
978
+ }
979
+ set borderBottom(value) {
980
+ switch (typeof value) {
981
+ case 'number':
982
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
983
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, layout.toDevicePixels(value));
984
+ break;
985
+ case 'object':
986
+ switch (value.unit) {
987
+ case 'dip':
988
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
989
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, layout.toDevicePixels(value.value));
990
+ break;
991
+ case 'px':
992
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 0);
993
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, value.value);
994
+ break;
995
+ case '%':
996
+ setInt32(this.style_view, StyleKeys.BORDER_BOTTOM_TYPE, 1);
997
+ setFloat32(this.style_view, StyleKeys.BORDER_BOTTOM_VALUE, value.value);
998
+ break;
999
+ }
1000
+ break;
1001
+ }
1002
+ this.setOrAppendState(StateKeys.BORDER);
1003
+ }
1004
+ get left() {
1005
+ const type = getInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE);
1006
+ const value = getFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE);
1007
+ return parseLengthPercentageAuto(type, value);
1008
+ }
1009
+ set left(value) {
1010
+ if (value === 'auto') {
1011
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 0);
1012
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, 0);
1013
+ return;
1014
+ }
1015
+ switch (typeof value) {
1016
+ case 'number':
1017
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
1018
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, layout.toDevicePixels(value));
1019
+ break;
1020
+ case 'object':
1021
+ switch (value.unit) {
1022
+ case 'dip':
1023
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
1024
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, layout.toDevicePixels(value.value));
1025
+ break;
1026
+ case 'px':
1027
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 1);
1028
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, value.value);
1029
+ break;
1030
+ case '%':
1031
+ setInt32(this.style_view, StyleKeys.INSET_LEFT_TYPE, 2);
1032
+ setFloat32(this.style_view, StyleKeys.INSET_LEFT_VALUE, value.value);
1033
+ break;
1034
+ }
1035
+ break;
1036
+ }
1037
+ this.setOrAppendState(StateKeys.INSET);
1038
+ }
1039
+ get right() {
1040
+ const type = getInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE);
1041
+ const value = getFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE);
1042
+ return parseLengthPercentageAuto(type, value);
1043
+ }
1044
+ set right(value) {
1045
+ if (value === 'auto') {
1046
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 0);
1047
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, 0);
1048
+ return;
1049
+ }
1050
+ switch (typeof value) {
1051
+ case 'number':
1052
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
1053
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, layout.toDevicePixels(value));
1054
+ break;
1055
+ case 'object':
1056
+ switch (value.unit) {
1057
+ case 'dip':
1058
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
1059
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, layout.toDevicePixels(value.value));
1060
+ break;
1061
+ case 'px':
1062
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 1);
1063
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, value.value);
1064
+ break;
1065
+ case '%':
1066
+ setInt32(this.style_view, StyleKeys.INSET_RIGHT_TYPE, 2);
1067
+ setFloat32(this.style_view, StyleKeys.INSET_RIGHT_VALUE, value.value);
1068
+ break;
1069
+ }
1070
+ break;
1071
+ }
1072
+ this.setOrAppendState(StateKeys.INSET);
1073
+ }
1074
+ get top() {
1075
+ const type = getInt32(this.style_view, StyleKeys.INSET_TOP_TYPE);
1076
+ const value = getFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE);
1077
+ return parseLengthPercentageAuto(type, value);
1078
+ }
1079
+ set top(value) {
1080
+ if (value === 'auto') {
1081
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 0);
1082
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, 0);
1083
+ return;
1084
+ }
1085
+ switch (typeof value) {
1086
+ case 'number':
1087
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
1088
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, layout.toDevicePixels(value));
1089
+ break;
1090
+ case 'object':
1091
+ switch (value.unit) {
1092
+ case 'dip':
1093
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
1094
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, layout.toDevicePixels(value.value));
1095
+ break;
1096
+ case 'px':
1097
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 1);
1098
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, value.value);
1099
+ break;
1100
+ case '%':
1101
+ setInt32(this.style_view, StyleKeys.INSET_TOP_TYPE, 2);
1102
+ setFloat32(this.style_view, StyleKeys.INSET_TOP_VALUE, value.value);
1103
+ break;
1104
+ }
1105
+ break;
1106
+ }
1107
+ this.setOrAppendState(StateKeys.INSET);
1108
+ }
1109
+ get bottom() {
1110
+ const type = getInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE);
1111
+ const value = getFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE);
1112
+ return parseLengthPercentageAuto(type, value);
1113
+ }
1114
+ set bottom(value) {
1115
+ if (value === 'auto') {
1116
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 0);
1117
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, 0);
1118
+ return;
1119
+ }
1120
+ switch (typeof value) {
1121
+ case 'number':
1122
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
1123
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, layout.toDevicePixels(value));
1124
+ break;
1125
+ case 'object':
1126
+ switch (value.unit) {
1127
+ case 'dip':
1128
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
1129
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, layout.toDevicePixels(value.value));
1130
+ break;
1131
+ case 'px':
1132
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 1);
1133
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, value.value);
1134
+ break;
1135
+ case '%':
1136
+ setInt32(this.style_view, StyleKeys.INSET_BOTTOM_TYPE, 2);
1137
+ setFloat32(this.style_view, StyleKeys.INSET_BOTTOM_VALUE, value.value);
1138
+ break;
1139
+ }
1140
+ break;
1141
+ }
1142
+ this.setOrAppendState(StateKeys.INSET);
1143
+ }
1144
+ get marginLeft() {
1145
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE);
1146
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE);
1147
+ return parseLengthPercentageAuto(type, value);
1148
+ }
1149
+ set marginLeft(value) {
1150
+ switch (typeof value) {
1151
+ case 'string':
1152
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 0);
1153
+ break;
1154
+ case 'number':
1155
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
1156
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, layout.toDevicePixels(value));
1157
+ break;
1158
+ case 'object':
1159
+ switch (value.unit) {
1160
+ case 'dip':
1161
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
1162
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, layout.toDevicePixels(value.value));
1163
+ break;
1164
+ case 'px':
1165
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 1);
1166
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, value.value);
1167
+ break;
1168
+ case '%':
1169
+ setInt32(this.style_view, StyleKeys.MARGIN_LEFT_TYPE, 2);
1170
+ setFloat32(this.style_view, StyleKeys.MARGIN_LEFT_VALUE, value.value);
1171
+ break;
1172
+ }
1173
+ break;
1174
+ }
1175
+ this.setOrAppendState(StateKeys.INSET);
1176
+ }
1177
+ get marginRight() {
1178
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE);
1179
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE);
1180
+ return parseLengthPercentageAuto(type, value);
1181
+ }
1182
+ set marginRight(value) {
1183
+ switch (typeof value) {
1184
+ case 'string':
1185
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 0);
1186
+ break;
1187
+ case 'number':
1188
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
1189
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, layout.toDevicePixels(value));
1190
+ break;
1191
+ case 'object':
1192
+ switch (value.unit) {
1193
+ case 'dip':
1194
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
1195
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, layout.toDevicePixels(value.value));
1196
+ break;
1197
+ case 'px':
1198
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 1);
1199
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, value.value);
1200
+ break;
1201
+ case '%':
1202
+ setInt32(this.style_view, StyleKeys.MARGIN_RIGHT_TYPE, 2);
1203
+ setFloat32(this.style_view, StyleKeys.MARGIN_RIGHT_VALUE, value.value);
1204
+ break;
1205
+ }
1206
+ break;
1207
+ }
1208
+ this.setOrAppendState(StateKeys.MARGIN);
1209
+ }
1210
+ get marginTop() {
1211
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE);
1212
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE);
1213
+ return parseLengthPercentageAuto(type, value);
1214
+ }
1215
+ set marginTop(value) {
1216
+ switch (typeof value) {
1217
+ case 'string':
1218
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 0);
1219
+ break;
1220
+ case 'number':
1221
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1222
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, layout.toDevicePixels(value));
1223
+ break;
1224
+ case 'object':
1225
+ switch (value.unit) {
1226
+ case 'dip':
1227
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1228
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, layout.toDevicePixels(value.value));
1229
+ break;
1230
+ case 'px':
1231
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 1);
1232
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, value.value);
1233
+ break;
1234
+ case '%':
1235
+ setInt32(this.style_view, StyleKeys.MARGIN_TOP_TYPE, 2);
1236
+ setFloat32(this.style_view, StyleKeys.MARGIN_TOP_VALUE, value.value);
1237
+ break;
1238
+ }
1239
+ break;
1240
+ }
1241
+ this.setOrAppendState(StateKeys.MARGIN);
1242
+ }
1243
+ get marginBottom() {
1244
+ const type = getInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE);
1245
+ const value = getFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE);
1246
+ return parseLengthPercentageAuto(type, value);
1247
+ }
1248
+ set marginBottom(value) {
1249
+ switch (typeof value) {
1250
+ case 'string':
1251
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 0);
1252
+ break;
1253
+ case 'number':
1254
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1255
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, layout.toDevicePixels(value));
1256
+ break;
1257
+ case 'object':
1258
+ switch (value.unit) {
1259
+ case 'dip':
1260
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1261
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, layout.toDevicePixels(value.value));
1262
+ break;
1263
+ case 'px':
1264
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 1);
1265
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, value.value);
1266
+ break;
1267
+ case '%':
1268
+ setInt32(this.style_view, StyleKeys.MARGIN_BOTTOM_TYPE, 2);
1269
+ setFloat32(this.style_view, StyleKeys.MARGIN_BOTTOM_VALUE, value.value);
1270
+ break;
1271
+ }
1272
+ break;
1273
+ }
1274
+ this.setOrAppendState(StateKeys.MARGIN);
1275
+ }
1276
+ set padding(value) {
1277
+ this.inBatch = true;
1278
+ this.paddingBottom = this.paddingLeft = this.paddingRight = this.paddingTop = value;
1279
+ this.inBatch = false;
1280
+ this.setOrAppendState(StateKeys.PADDING);
1281
+ }
1282
+ get paddingLeft() {
1283
+ const type = getInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE);
1284
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE);
1285
+ return parseLengthPercentage(type, value);
1286
+ }
1287
+ set paddingLeft(value) {
1288
+ switch (typeof value) {
1289
+ case 'number':
1290
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1291
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, layout.toDevicePixels(value));
1292
+ break;
1293
+ case 'object':
1294
+ switch (value.unit) {
1295
+ case 'dip':
1296
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1297
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, layout.toDevicePixels(value.value));
1298
+ break;
1299
+ case 'px':
1300
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 0);
1301
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, value.value);
1302
+ break;
1303
+ case '%':
1304
+ setInt32(this.style_view, StyleKeys.PADDING_LEFT_TYPE, 1);
1305
+ setFloat32(this.style_view, StyleKeys.PADDING_LEFT_VALUE, value.value);
1306
+ break;
1307
+ }
1308
+ break;
1309
+ }
1310
+ this.setOrAppendState(StateKeys.PADDING);
1311
+ }
1312
+ get paddingRight() {
1313
+ const type = getInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE);
1314
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE);
1315
+ return parseLengthPercentage(type, value);
1316
+ }
1317
+ set paddingRight(value) {
1318
+ switch (typeof value) {
1319
+ case 'number':
1320
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1321
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, layout.toDevicePixels(value));
1322
+ break;
1323
+ case 'object':
1324
+ switch (value.unit) {
1325
+ case 'dip':
1326
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1327
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, layout.toDevicePixels(value.value));
1328
+ break;
1329
+ case 'px':
1330
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 0);
1331
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, value.value);
1332
+ break;
1333
+ case '%':
1334
+ setInt32(this.style_view, StyleKeys.PADDING_RIGHT_TYPE, 1);
1335
+ setFloat32(this.style_view, StyleKeys.PADDING_RIGHT_VALUE, value.value);
1336
+ break;
1337
+ }
1338
+ break;
1339
+ }
1340
+ this.setOrAppendState(StateKeys.PADDING);
1341
+ }
1342
+ get paddingTop() {
1343
+ const type = getInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE);
1344
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE);
1345
+ return parseLengthPercentage(type, value);
1346
+ }
1347
+ set paddingTop(value) {
1348
+ switch (typeof value) {
1349
+ case 'number':
1350
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1351
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, layout.toDevicePixels(value));
1352
+ break;
1353
+ case 'object':
1354
+ switch (value.unit) {
1355
+ case 'dip':
1356
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1357
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, layout.toDevicePixels(value.value));
1358
+ break;
1359
+ case 'px':
1360
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 0);
1361
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, value.value);
1362
+ break;
1363
+ case '%':
1364
+ setInt32(this.style_view, StyleKeys.PADDING_TOP_TYPE, 1);
1365
+ setFloat32(this.style_view, StyleKeys.PADDING_TOP_VALUE, value.value);
1366
+ break;
1367
+ }
1368
+ break;
1369
+ }
1370
+ this.setOrAppendState(StateKeys.PADDING);
1371
+ }
1372
+ get paddingBottom() {
1373
+ const type = getInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE);
1374
+ const value = getFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE);
1375
+ return parseLengthPercentage(type, value);
1376
+ }
1377
+ set paddingBottom(value) {
1378
+ switch (typeof value) {
1379
+ case 'number':
1380
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1381
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, layout.toDevicePixels(value));
1382
+ break;
1383
+ case 'object':
1384
+ switch (value.unit) {
1385
+ case 'dip':
1386
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1387
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, layout.toDevicePixels(value.value));
1388
+ break;
1389
+ case 'px':
1390
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 0);
1391
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, value.value);
1392
+ break;
1393
+ case '%':
1394
+ setInt32(this.style_view, StyleKeys.PADDING_BOTTOM_TYPE, 1);
1395
+ setFloat32(this.style_view, StyleKeys.PADDING_BOTTOM_VALUE, value.value);
1396
+ break;
1397
+ }
1398
+ break;
1399
+ }
1400
+ this.setOrAppendState(StateKeys.PADDING);
1401
+ }
1402
+ get gridGap() {
1403
+ return this.gap;
1404
+ }
1405
+ set gridGap(value) {
1406
+ this.gap = value;
1407
+ }
1408
+ get gap() {
1409
+ if (CoreLength.equals(this.rowGap, this.columnGap)) {
1410
+ return `${CoreLength.convertToString(this.rowGap)}`;
1411
+ }
1412
+ return `${CoreLength.convertToString(this.rowGap)} ${CoreLength.convertToString(this.columnGap)}`;
1413
+ }
1414
+ set gap(value) {
1415
+ if (typeof value === 'string') {
1416
+ const values = value.split(/\s+/).filter((item) => item.trim().length !== 0);
1417
+ const length = values.length;
1418
+ if (length === 0) {
1419
+ return;
1420
+ }
1421
+ if (length === 1) {
1422
+ const row = values[0];
1423
+ this.rowGap = CoreLength.parse(row);
1424
+ this.columnGap = CoreLength.parse(row);
1425
+ }
1426
+ if (length > 1) {
1427
+ const row = values[0];
1428
+ const column = values[1];
1429
+ this.rowGap = CoreLength.parse(row);
1430
+ this.columnGap = CoreLength.parse(column);
1431
+ }
1432
+ }
1433
+ }
1434
+ get rowGap() {
1435
+ const type = getInt32(this.style_view, StyleKeys.GAP_ROW_TYPE);
1436
+ const value = getFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE);
1437
+ return parseLengthPercentage(type, value);
1438
+ }
1439
+ set rowGap(value) {
1440
+ switch (typeof value) {
1441
+ case 'number':
1442
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1443
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, layout.toDevicePixels(value));
1444
+ break;
1445
+ case 'object':
1446
+ switch (value.unit) {
1447
+ case 'dip':
1448
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1449
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, layout.toDevicePixels(value.value));
1450
+ break;
1451
+ case 'px':
1452
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 0);
1453
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, value.value);
1454
+ break;
1455
+ case '%':
1456
+ setInt32(this.style_view, StyleKeys.GAP_ROW_TYPE, 1);
1457
+ setFloat32(this.style_view, StyleKeys.GAP_ROW_VALUE, value.value);
1458
+ break;
1459
+ }
1460
+ break;
1461
+ }
1462
+ this.setOrAppendState(StateKeys.GAP);
1463
+ }
1464
+ get columnGap() {
1465
+ const type = getInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE);
1466
+ const value = getFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE);
1467
+ return parseLengthPercentage(type, value);
1468
+ }
1469
+ set columnGap(value) {
1470
+ switch (typeof value) {
1471
+ case 'number':
1472
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1473
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, layout.toDevicePixels(value));
1474
+ break;
1475
+ case 'object':
1476
+ switch (value.unit) {
1477
+ case 'dip':
1478
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1479
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, layout.toDevicePixels(value.value));
1480
+ break;
1481
+ case 'px':
1482
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 0);
1483
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, value.value);
1484
+ break;
1485
+ case '%':
1486
+ setInt32(this.style_view, StyleKeys.GAP_COLUMN_TYPE, 1);
1487
+ setFloat32(this.style_view, StyleKeys.GAP_COLUMN_VALUE, value.value);
1488
+ break;
1489
+ }
1490
+ break;
1491
+ }
1492
+ this.setOrAppendState(StateKeys.GAP);
1493
+ }
1494
+ get aspectRatio() {
1495
+ return getFloat32(this.style_view, StyleKeys.ASPECT_RATIO);
1496
+ }
1497
+ set aspectRatio(value) {
1498
+ setFloat32(this.style_view, StyleKeys.ASPECT_RATIO, value);
1499
+ this.setOrAppendState(StateKeys.ASPECT_RATIO);
1500
+ }
1501
+ get flexBasis() {
1502
+ const type = getInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE);
1503
+ const value = getFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE);
1504
+ return parseLengthPercentageAuto(type, value);
1505
+ }
1506
+ set flexBasis(value) {
1507
+ switch (typeof value) {
1508
+ case 'string':
1509
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 0);
1510
+ break;
1511
+ case 'number':
1512
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1513
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, layout.toDevicePixels(value));
1514
+ break;
1515
+ case 'object':
1516
+ switch (value.unit) {
1517
+ case 'dip':
1518
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1519
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, layout.toDevicePixels(value.value));
1520
+ break;
1521
+ case 'px':
1522
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 1);
1523
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, value.value);
1524
+ break;
1525
+ case '%':
1526
+ setInt32(this.style_view, StyleKeys.FLEX_BASIS_TYPE, 2);
1527
+ setFloat32(this.style_view, StyleKeys.FLEX_BASIS_VALUE, value.value);
1528
+ break;
1529
+ }
1530
+ break;
1531
+ }
1532
+ this.setOrAppendState(StateKeys.FLEX_BASIS);
1533
+ }
1534
+ get alignItems() {
1535
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_ITEMS)) {
1536
+ case -1 /* AlignItems.Normal */:
1537
+ return 'normal';
1538
+ case 0 /* AlignItems.Start */:
1539
+ return 'start';
1540
+ case 1 /* AlignItems.End */:
1541
+ return 'end';
1542
+ case 5 /* AlignItems.FlexStart */:
1543
+ return 'flex-start';
1544
+ case 6 /* AlignItems.FlexEnd */:
1545
+ return 'flex-end';
1546
+ case 2 /* AlignItems.Center */:
1547
+ return 'center';
1548
+ case 3 /* AlignItems.Baseline */:
1549
+ return 'baseline';
1550
+ case 4 /* AlignItems.Stretch */:
1551
+ return 'stretch';
1552
+ }
1553
+ }
1554
+ set alignItems(value) {
1555
+ switch (value) {
1556
+ case 'normal':
1557
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, -1 /* AlignItems.Normal */);
1558
+ break;
1559
+ case 'start':
1560
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 0 /* AlignItems.Start */);
1561
+ break;
1562
+ case 'end':
1563
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 1 /* AlignItems.End */);
1564
+ break;
1565
+ case 'flex-start':
1566
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 5 /* AlignItems.FlexStart */);
1567
+ break;
1568
+ case 'flex-end':
1569
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 6 /* AlignItems.FlexEnd */);
1570
+ break;
1571
+ case 'center':
1572
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 2 /* AlignItems.Center */);
1573
+ break;
1574
+ case 'baseline':
1575
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 3 /* AlignItems.Baseline */);
1576
+ break;
1577
+ case 'stretch':
1578
+ setInt32(this.style_view, StyleKeys.ALIGN_ITEMS, 4 /* AlignItems.Stretch */);
1579
+ break;
1580
+ }
1581
+ this.setOrAppendState(StateKeys.ALIGN_ITEMS);
1582
+ }
1583
+ get alignSelf() {
1584
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_SELF)) {
1585
+ case -1 /* AlignSelf.Normal */:
1586
+ return 'normal';
1587
+ case 0 /* AlignSelf.Start */:
1588
+ return 'start';
1589
+ case 1 /* AlignSelf.End */:
1590
+ return 'end';
1591
+ case 2 /* AlignSelf.Center */:
1592
+ return 'center';
1593
+ case 3 /* AlignSelf.Baseline */:
1594
+ return 'baseline';
1595
+ case 4 /* AlignSelf.Stretch */:
1596
+ return 'stretch';
1597
+ case 5 /* AlignSelf.FlexStart */:
1598
+ return 'flex-start';
1599
+ case 6 /* AlignSelf.FlexEnd */:
1600
+ return 'flex-end';
1601
+ }
1602
+ }
1603
+ set alignSelf(value) {
1604
+ let align = -2;
1605
+ switch (value) {
1606
+ case 'normal':
1607
+ align = -1 /* AlignSelf.Normal */;
1608
+ break;
1609
+ case 'start':
1610
+ align = 0 /* AlignSelf.Start */;
1611
+ break;
1612
+ case 'end':
1613
+ align = 1 /* AlignSelf.End */;
1614
+ break;
1615
+ case 'center':
1616
+ align = 2 /* AlignSelf.Center */;
1617
+ break;
1618
+ case 'baseline':
1619
+ align = 3 /* AlignSelf.Baseline */;
1620
+ break;
1621
+ case 'stretch':
1622
+ align = 4 /* AlignSelf.Stretch */;
1623
+ break;
1624
+ case 'flex-start':
1625
+ align = 5 /* AlignSelf.FlexStart */;
1626
+ break;
1627
+ case 'flex-end':
1628
+ align = 6 /* AlignSelf.FlexEnd */;
1629
+ break;
1630
+ }
1631
+ if (align === -2) {
1632
+ setInt32(this.style_view, StyleKeys.ALIGN_SELF, align);
1633
+ this.setOrAppendState(StateKeys.ALIGN_SELF);
1634
+ }
1635
+ }
1636
+ get alignContent() {
1637
+ switch (getInt32(this.style_view, StyleKeys.ALIGN_CONTENT)) {
1638
+ case -1 /* AlignContent.Normal */:
1639
+ return 'normal';
1640
+ case 5 /* AlignContent.SpaceAround */:
1641
+ return 'space-around';
1642
+ case 4 /* AlignContent.SpaceBetween */:
1643
+ return 'space-between';
1644
+ case 6 /* AlignContent.SpaceEvenly */:
1645
+ return 'space-evenly';
1646
+ case 2 /* AlignContent.Center */:
1647
+ return 'center';
1648
+ case 1 /* AlignContent.End */:
1649
+ return 'end';
1650
+ case 0 /* AlignContent.Start */:
1651
+ return 'start';
1652
+ case 3 /* AlignContent.Stretch */:
1653
+ return 'stretch';
1654
+ }
1655
+ }
1656
+ set alignContent(value) {
1657
+ switch (value) {
1658
+ case 'normal':
1659
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, -1 /* AlignContent.Normal */);
1660
+ break;
1661
+ case 'space-around':
1662
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 5 /* AlignContent.SpaceAround */);
1663
+ break;
1664
+ case 'space-between':
1665
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 4 /* AlignContent.SpaceBetween */);
1666
+ break;
1667
+ case 'space-evenly':
1668
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 6 /* AlignContent.SpaceEvenly */);
1669
+ break;
1670
+ case 'center':
1671
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 2 /* AlignContent.Center */);
1672
+ break;
1673
+ case 'end':
1674
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 1 /* AlignContent.End */);
1675
+ break;
1676
+ case 'start':
1677
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 0 /* AlignContent.Start */);
1678
+ break;
1679
+ case 'stretch':
1680
+ setInt32(this.style_view, StyleKeys.ALIGN_CONTENT, 3 /* AlignContent.Stretch */);
1681
+ break;
1682
+ }
1683
+ this.setOrAppendState(StateKeys.ALIGN_CONTENT);
1684
+ }
1685
+ get justifyItems() {
1686
+ switch (getInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS)) {
1687
+ case -1 /* JustifyItems.Normal */:
1688
+ return 'normal';
1689
+ case 0 /* JustifyItems.Start */:
1690
+ return 'start';
1691
+ case 1 /* JustifyItems.End */:
1692
+ return 'end';
1693
+ case 2 /* JustifyItems.Center */:
1694
+ return 'center';
1695
+ case 3 /* JustifyItems.Baseline */:
1696
+ return 'baseline';
1697
+ case 4 /* JustifyItems.Stretch */:
1698
+ return 'stretch';
1699
+ case 5 /* JustifyItems.FlexStart */:
1700
+ return 'flex-start';
1701
+ case 6 /* JustifyItems.FlexEnd */:
1702
+ return 'flex-end';
1703
+ }
1704
+ }
1705
+ set justifyItems(value) {
1706
+ switch (value) {
1707
+ case 'normal':
1708
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, -1 /* JustifyItems.Normal */);
1709
+ break;
1710
+ case 'start':
1711
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 0 /* JustifyItems.Start */);
1712
+ break;
1713
+ case 'end':
1714
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 1 /* JustifyItems.End */);
1715
+ break;
1716
+ case 'center':
1717
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 2 /* JustifyItems.Center */);
1718
+ break;
1719
+ case 'baseline':
1720
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 3 /* JustifyItems.Baseline */);
1721
+ break;
1722
+ case 'stretch':
1723
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 4 /* JustifyItems.Stretch */);
1724
+ break;
1725
+ case 'flex-start':
1726
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 5 /* JustifyItems.FlexStart */);
1727
+ break;
1728
+ case 'flex-end':
1729
+ setInt32(this.style_view, StyleKeys.JUSTIFY_ITEMS, 6 /* JustifyItems.FlexEnd */);
1730
+ break;
1731
+ }
1732
+ this.setOrAppendState(StateKeys.JUSTIFY_ITEMS);
1733
+ }
1734
+ get justifySelf() {
1735
+ switch (getInt32(this.style_view, StyleKeys.JUSTIFY_SELF)) {
1736
+ case -1 /* JustifySelf.Normal */:
1737
+ return 'normal';
1738
+ case 0 /* JustifySelf.Start */:
1739
+ return 'start';
1740
+ case 1 /* JustifySelf.End */:
1741
+ return 'end';
1742
+ case 2 /* JustifySelf.Center */:
1743
+ return 'center';
1744
+ case 3 /* JustifySelf.Baseline */:
1745
+ return 'baseline';
1746
+ case 4 /* JustifySelf.Stretch */:
1747
+ return 'stretch';
1748
+ case 5 /* JustifySelf.FlexStart */:
1749
+ return 'flex-start';
1750
+ case 6 /* JustifySelf.FlexEnd */:
1751
+ return 'flex-end';
1752
+ }
1753
+ }
1754
+ set justifySelf(value) {
1755
+ switch (value) {
1756
+ case 'normal':
1757
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, -1 /* JustifySelf.Normal */);
1758
+ break;
1759
+ case 'start':
1760
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 0 /* JustifySelf.Start */);
1761
+ break;
1762
+ case 'end':
1763
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 1 /* JustifySelf.End */);
1764
+ break;
1765
+ case 'center':
1766
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 2 /* JustifySelf.Center */);
1767
+ break;
1768
+ case 'baseline':
1769
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 3 /* JustifySelf.Baseline */);
1770
+ break;
1771
+ case 'stretch':
1772
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 4 /* JustifySelf.Stretch */);
1773
+ break;
1774
+ case 'flex-start':
1775
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 5 /* JustifySelf.FlexStart */);
1776
+ break;
1777
+ case 'flex-end':
1778
+ setInt32(this.style_view, StyleKeys.JUSTIFY_SELF, 6 /* JustifySelf.FlexEnd */);
1779
+ break;
1780
+ }
1781
+ this.setOrAppendState(StateKeys.JUSTIFY_SELF);
1782
+ }
1783
+ get justifyContent() {
1784
+ switch (getInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT)) {
1785
+ case -1 /* JustifyContent.Normal */:
1786
+ return 'normal';
1787
+ case 0 /* JustifyContent.Start */:
1788
+ return 'start';
1789
+ case 1 /* JustifyContent.End */:
1790
+ return 'end';
1791
+ case 2 /* JustifyContent.Center */:
1792
+ return 'center';
1793
+ case 3 /* JustifyContent.Stretch */:
1794
+ return 'stretch';
1795
+ case 4 /* JustifyContent.SpaceBetween */:
1796
+ return 'space-between';
1797
+ case 5 /* JustifyContent.SpaceAround */:
1798
+ return 'space-around';
1799
+ case 6 /* JustifyContent.SpaceEvenly */:
1800
+ return 'space-evenly';
1801
+ case 7 /* JustifyContent.FlexStart */:
1802
+ return 'flex-start';
1803
+ case 8 /* JustifyContent.FlexEnd */:
1804
+ return 'flex-end';
1805
+ }
1806
+ }
1807
+ set justifyContent(value) {
1808
+ switch (value) {
1809
+ case 'normal':
1810
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, -1 /* JustifyContent.Normal */);
1811
+ break;
1812
+ case 'space-around':
1813
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 5 /* JustifyContent.SpaceAround */);
1814
+ break;
1815
+ case 'space-between':
1816
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 4 /* JustifyContent.SpaceBetween */);
1817
+ break;
1818
+ case 'space-evenly':
1819
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 6 /* JustifyContent.SpaceEvenly */);
1820
+ break;
1821
+ case 'center':
1822
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 2 /* JustifyContent.Center */);
1823
+ break;
1824
+ case 'end':
1825
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 1 /* JustifyContent.End */);
1826
+ break;
1827
+ case 'start':
1828
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 0 /* JustifyContent.Start */);
1829
+ break;
1830
+ case 'stretch':
1831
+ setInt32(this.style_view, StyleKeys.JUSTIFY_CONTENT, 3 /* JustifyContent.Stretch */);
1832
+ break;
1833
+ }
1834
+ this.setOrAppendState(StateKeys.JUSTIFY_CONTENT);
1835
+ }
1836
+ get gridAutoRows() {
1837
+ return '';
1838
+ }
1839
+ set gridAutoRows(value) {
1840
+ if (typeof value === 'string') {
1841
+ _setGridAutoRows(value, this.view_);
1842
+ }
1843
+ else {
1844
+ }
1845
+ }
1846
+ get gridAutoColumns() {
1847
+ return '';
1848
+ }
1849
+ set gridAutoColumns(value) {
1850
+ if (typeof value === 'string') {
1851
+ _setGridAutoColumns(value, this.view_);
1852
+ }
1853
+ else {
1854
+ }
1855
+ }
1856
+ get gridAutoFlow() {
1857
+ switch (getInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW)) {
1858
+ case 0:
1859
+ return 'row';
1860
+ case 1:
1861
+ return 'column';
1862
+ case 2:
1863
+ return 'row dense';
1864
+ case 3:
1865
+ return 'column dense';
1866
+ }
1867
+ }
1868
+ set gridAutoFlow(value) {
1869
+ switch (value) {
1870
+ case 'row':
1871
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 0);
1872
+ break;
1873
+ case 'column':
1874
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 1);
1875
+ break;
1876
+ case 'row dense':
1877
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 2);
1878
+ break;
1879
+ case 'column dense':
1880
+ setInt32(this.style_view, StyleKeys.GRID_AUTO_FLOW, 3);
1881
+ break;
1882
+ }
1883
+ }
1884
+ get gridRowGap() {
1885
+ return this.rowGap;
1886
+ }
1887
+ set gridRowGap(value) {
1888
+ this.rowGap = value;
1889
+ }
1890
+ get gridColumnGap() {
1891
+ return this.columnGap;
1892
+ }
1893
+ set gridColumnGap(value) {
1894
+ this.columnGap = value;
1895
+ }
1896
+ // gridArea: string;
1897
+ get gridColumn() {
1898
+ if (this.gridColumnStart === this.gridColumnEnd) {
1899
+ return `${this.gridColumnStart}`;
1900
+ }
1901
+ return `${this.gridColumnStart} / ${this.gridColumnEnd}`;
1902
+ }
1903
+ get gridColumnStart() {
1904
+ switch (getInt32(this.style_view, StyleKeys.GRID_COLUMN_START_TYPE)) {
1905
+ case 0:
1906
+ return 'auto';
1907
+ case 1: {
1908
+ const value = getInt16(this.style_view, StyleKeys.GRID_COLUMN_START_VALUE);
1909
+ // if (value === 1) {
1910
+ // return 'auto';
1911
+ // }
1912
+ return `${value}`;
1913
+ }
1914
+ case 2: {
1915
+ const value = getInt16(this.style_view, StyleKeys.GRID_COLUMN_START_VALUE);
1916
+ if (value === 0) {
1917
+ return 'span';
1918
+ }
1919
+ return `span ${value}`;
1920
+ }
1921
+ }
1922
+ }
1923
+ set gridColumnStart(value) {
1924
+ const line = _parseGridLine(value);
1925
+ if (line === null) {
1926
+ return;
1927
+ }
1928
+ switch (line.type) {
1929
+ case 'auto':
1930
+ case 0:
1931
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_START_TYPE, 0);
1932
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_START_VALUE, 1);
1933
+ break;
1934
+ case 'line':
1935
+ case 1:
1936
+ if (line.value !== undefined) {
1937
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_START_TYPE, 1);
1938
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_START_VALUE, line.value);
1939
+ }
1940
+ break;
1941
+ case 'span':
1942
+ case 2:
1943
+ if (line.value !== undefined) {
1944
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_START_TYPE, 2);
1945
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_START_VALUE, line.value);
1946
+ }
1947
+ break;
1948
+ }
1949
+ }
1950
+ get gridColumnEnd() {
1951
+ switch (getInt32(this.style_view, StyleKeys.GRID_COLUMN_END_TYPE)) {
1952
+ case 0:
1953
+ return 'auto';
1954
+ case 1: {
1955
+ const value = getInt16(this.style_view, StyleKeys.GRID_COLUMN_END_VALUE);
1956
+ // if (value === 1) {
1957
+ // return 'auto';
1958
+ // }
1959
+ return `${value}`;
1960
+ }
1961
+ case 2: {
1962
+ const value = getInt16(this.style_view, StyleKeys.GRID_COLUMN_END_VALUE);
1963
+ if (value === 0) {
1964
+ return 'span';
1965
+ }
1966
+ return `span ${value}`;
1967
+ }
1968
+ }
1969
+ }
1970
+ set gridColumnEnd(value) {
1971
+ const line = _parseGridLine(value);
1972
+ if (line === null) {
1973
+ return;
1974
+ }
1975
+ switch (line.type) {
1976
+ case 'auto':
1977
+ case 0:
1978
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_END_TYPE, 0);
1979
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_END_VALUE, 1);
1980
+ break;
1981
+ case 'line':
1982
+ case 1:
1983
+ if (line.value !== undefined) {
1984
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_END_TYPE, 1);
1985
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_END_VALUE, line.value);
1986
+ }
1987
+ break;
1988
+ case 'span':
1989
+ case 2:
1990
+ if (line.value !== undefined) {
1991
+ setInt32(this.style_view, StyleKeys.GRID_COLUMN_END_TYPE, 2);
1992
+ setInt16(this.style_view, StyleKeys.GRID_COLUMN_END_VALUE, line.value);
1993
+ }
1994
+ break;
1995
+ }
1996
+ }
1997
+ get gridRow() {
1998
+ if (this.gridRowStart === this.gridRowEnd) {
1999
+ return `${this.gridRowStart}`;
2000
+ }
2001
+ return `${this.gridRowStart} / ${this.gridRowEnd}`;
2002
+ }
2003
+ get gridRowStart() {
2004
+ switch (getInt32(this.style_view, StyleKeys.GRID_ROW_START_TYPE)) {
2005
+ case 0:
2006
+ return 'auto';
2007
+ case 1: {
2008
+ const value = getInt16(this.style_view, StyleKeys.GRID_ROW_START_VALUE);
2009
+ // if (value === 1) {
2010
+ // return 'auto';
2011
+ // }
2012
+ return `${value}`;
2013
+ }
2014
+ case 2: {
2015
+ const value = getInt16(this.style_view, StyleKeys.GRID_ROW_START_VALUE);
2016
+ if (value === 0) {
2017
+ return 'span';
2018
+ }
2019
+ return `span ${value}`;
2020
+ }
2021
+ }
2022
+ }
2023
+ set gridRowStart(value) {
2024
+ const line = _parseGridLine(value);
2025
+ if (line === null) {
2026
+ return;
2027
+ }
2028
+ switch (line.type) {
2029
+ case 'auto':
2030
+ case 0:
2031
+ setInt32(this.style_view, StyleKeys.GRID_ROW_START_TYPE, 0);
2032
+ setInt16(this.style_view, StyleKeys.GRID_ROW_START_VALUE, 1);
2033
+ break;
2034
+ case 'line':
2035
+ case 1:
2036
+ if (line.value !== undefined) {
2037
+ setInt32(this.style_view, StyleKeys.GRID_ROW_START_TYPE, 1);
2038
+ setInt16(this.style_view, StyleKeys.GRID_ROW_START_VALUE, line.value);
2039
+ }
2040
+ break;
2041
+ case 'span':
2042
+ case 2:
2043
+ if (line.value !== undefined) {
2044
+ setInt32(this.style_view, StyleKeys.GRID_ROW_START_TYPE, 2);
2045
+ setInt16(this.style_view, StyleKeys.GRID_ROW_START_VALUE, line.value);
2046
+ }
2047
+ break;
2048
+ }
2049
+ }
2050
+ get gridRowEnd() {
2051
+ switch (getInt32(this.style_view, StyleKeys.GRID_ROW_END_TYPE)) {
2052
+ case 0:
2053
+ return 'auto';
2054
+ case 1: {
2055
+ const value = getInt16(this.style_view, StyleKeys.GRID_ROW_END_VALUE);
2056
+ // if (value === 1) {
2057
+ // return 'auto';
2058
+ // }
2059
+ return `${value}`;
2060
+ }
2061
+ case 2: {
2062
+ const value = getInt16(this.style_view, StyleKeys.GRID_ROW_END_VALUE);
2063
+ if (value === 0) {
2064
+ return 'span';
2065
+ }
2066
+ return `span ${value}`;
2067
+ }
2068
+ }
2069
+ }
2070
+ set gridRowEnd(value) {
2071
+ const line = _parseGridLine(value);
2072
+ if (line === null) {
2073
+ return;
2074
+ }
2075
+ switch (line.type) {
2076
+ case 'auto':
2077
+ case 0:
2078
+ setInt32(this.style_view, StyleKeys.GRID_ROW_END_TYPE, 0);
2079
+ setInt16(this.style_view, StyleKeys.GRID_ROW_END_VALUE, 1);
2080
+ break;
2081
+ case 'line':
2082
+ case 1:
2083
+ if (line.value !== undefined) {
2084
+ setInt32(this.style_view, StyleKeys.GRID_ROW_END_TYPE, 1);
2085
+ setInt16(this.style_view, StyleKeys.GRID_ROW_END_VALUE, line.value);
2086
+ }
2087
+ break;
2088
+ case 'span':
2089
+ case 2:
2090
+ if (line.value !== undefined) {
2091
+ setInt32(this.style_view, StyleKeys.GRID_ROW_END_TYPE, 2);
2092
+ setInt16(this.style_view, StyleKeys.GRID_ROW_END_VALUE, line.value);
2093
+ }
2094
+ break;
2095
+ }
2096
+ }
2097
+ set gridTemplateRows(value) {
2098
+ if (Array.isArray(value)) {
2099
+ _setGridTemplateRows(value, this.view);
2100
+ }
2101
+ else {
2102
+ _setGridTemplateRows(_parseGridTemplates(value), this.view);
2103
+ }
2104
+ }
2105
+ get gridTemplateRows() {
2106
+ return _getGridTemplateRows(this.view);
2107
+ }
2108
+ get gridTemplateColumns() {
2109
+ return _getGridTemplateColumns(this.view);
2110
+ }
2111
+ set gridTemplateColumns(value) {
2112
+ if (Array.isArray(value)) {
2113
+ _setGridTemplateColumns(value, this.view);
2114
+ }
2115
+ else {
2116
+ _setGridTemplateColumns(_parseGridTemplates(value), this.view);
2117
+ }
2118
+ }
2119
+ get overflow() {
2120
+ const x = this.overflowX;
2121
+ const y = this.overflowY;
2122
+ if (x === y) {
2123
+ return x;
2124
+ }
2125
+ return `${x} ${y}`;
2126
+ }
2127
+ set overflow(value) {
2128
+ switch (value) {
2129
+ case 'visible':
2130
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
2131
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
2132
+ break;
2133
+ case 'hidden':
2134
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
2135
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
2136
+ break;
2137
+ case 'scroll':
2138
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
2139
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
2140
+ break;
2141
+ default:
2142
+ {
2143
+ const values = value.split(' ');
2144
+ switch (values[0]) {
2145
+ case 'visible':
2146
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
2147
+ break;
2148
+ case 'hidden':
2149
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
2150
+ break;
2151
+ case 'scroll':
2152
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
2153
+ break;
2154
+ case 'clip':
2155
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 3);
2156
+ break;
2157
+ case 'auto':
2158
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 4);
2159
+ break;
2160
+ }
2161
+ switch (values[1]) {
2162
+ case 'visible':
2163
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
2164
+ break;
2165
+ case 'hidden':
2166
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
2167
+ break;
2168
+ case 'scroll':
2169
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
2170
+ break;
2171
+ case 'clip':
2172
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 3);
2173
+ break;
2174
+ case 'auto':
2175
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 4);
2176
+ break;
2177
+ }
2178
+ }
2179
+ break;
2180
+ }
2181
+ }
2182
+ get overflowX() {
2183
+ switch (getInt32(this.style_view, StyleKeys.OVERFLOW_X)) {
2184
+ case 0:
2185
+ return 'visible';
2186
+ case 1:
2187
+ return 'hidden';
2188
+ case 2:
2189
+ return 'scroll';
2190
+ }
2191
+ }
2192
+ set overflowX(value) {
2193
+ switch (value) {
2194
+ case 'visible':
2195
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 0);
2196
+ break;
2197
+ case 'hidden':
2198
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 1);
2199
+ break;
2200
+ case 'scroll':
2201
+ setInt32(this.style_view, StyleKeys.OVERFLOW_X, 2);
2202
+ break;
2203
+ }
2204
+ }
2205
+ get overflowY() {
2206
+ switch (getInt32(this.style_view, StyleKeys.OVERFLOW_Y)) {
2207
+ case 0:
2208
+ return 'visible';
2209
+ case 1:
2210
+ return 'hidden';
2211
+ case 2:
2212
+ return 'scroll';
2213
+ }
2214
+ }
2215
+ set overflowY(value) {
2216
+ switch (value) {
2217
+ case 'visible':
2218
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 0);
2219
+ break;
2220
+ case 'hidden':
2221
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 1);
2222
+ break;
2223
+ case 'scroll':
2224
+ setInt32(this.style_view, StyleKeys.OVERFLOW_Y, 2);
2225
+ break;
2226
+ }
2227
+ }
2228
+ get flexGrow() {
2229
+ return getFloat32(this.style_view, StyleKeys.FLEX_GROW);
2230
+ }
2231
+ set flexGrow(value) {
2232
+ setFloat32(this.style_view, StyleKeys.FLEX_GROW, value);
2233
+ }
2234
+ get flexShrink() {
2235
+ return getFloat32(this.style_view, StyleKeys.FLEX_SHRINK);
2236
+ }
2237
+ set flexShrink(value) {
2238
+ setFloat32(this.style_view, StyleKeys.FLEX_SHRINK, value);
2239
+ }
2240
+ get scrollBarWidth() {
2241
+ return getFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH);
2242
+ }
2243
+ set scrollBarWidth(value) {
2244
+ if (typeof value === 'number') {
2245
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, value);
2246
+ }
2247
+ else if (typeof value === 'object') {
2248
+ switch (value.unit) {
2249
+ case 'dip':
2250
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, layout.toDevicePixels(value.value));
2251
+ break;
2252
+ case 'px':
2253
+ setFloat32(this.style_view, StyleKeys.SCROLLBAR_WIDTH, value.value);
2254
+ break;
2255
+ }
2256
+ }
2257
+ }
2258
+ toJSON() {
2259
+ return {
2260
+ display: this.display,
2261
+ position: this.position,
2262
+ flexDirection: this.flexDirection,
2263
+ flexWrap: this.flexWrap,
2264
+ justifyContent: this.justifyContent,
2265
+ alignItems: this.alignItems,
2266
+ alignContent: this.alignContent,
2267
+ alignSelf: this.alignSelf,
2268
+ flexGrow: this.flexGrow,
2269
+ minWidth: this.minWidth,
2270
+ minHeight: this.minHeight,
2271
+ maxWidth: this.maxWidth,
2272
+ maxHeight: this.maxHeight,
2273
+ width: this.width,
2274
+ height: this.height,
2275
+ inset: {
2276
+ left: this.left,
2277
+ right: this.right,
2278
+ top: this.top,
2279
+ bottom: this.bottom,
2280
+ },
2281
+ margin: {
2282
+ left: this.marginLeft,
2283
+ right: this.marginRight,
2284
+ top: this.marginTop,
2285
+ bottom: this.marginBottom,
2286
+ },
2287
+ padding: {
2288
+ left: this.paddingLeft,
2289
+ right: this.paddingRight,
2290
+ top: this.paddingTop,
2291
+ bottom: this.paddingBottom,
2292
+ },
2293
+ border: {
2294
+ left: this.borderLeft,
2295
+ right: this.borderRight,
2296
+ top: this.borderTop,
2297
+ bottom: this.borderBottom,
2298
+ },
2299
+ aspectRatio: this.aspectRatio,
2300
+ flexBasis: this.flexBasis,
2301
+ overflow: this.overflow,
2302
+ flexShrink: this.flexShrink,
2303
+ scrollBarWidth: this.scrollBarWidth,
2304
+ gap: this.gap,
2305
+ gridAutoFlow: this.gridAutoFlow,
2306
+ gridAutoColumns: this.gridAutoColumns,
2307
+ gridAutoRows: this.gridAutoRows,
2308
+ gridColumn: this.gridColumn,
2309
+ gridRow: this.gridRow,
2310
+ gridTemplateRows: this.gridTemplateRows,
2311
+ gridTemplateColumns: this.gridTemplateColumns,
2312
+ };
2313
+ }
2314
+ }
2315
+ //# sourceMappingURL=style.js.map