@lightningjs/blits 1.45.1 → 2.0.0-beta.1

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 (38) hide show
  1. package/CHANGELOG.md +0 -17
  2. package/README.md +0 -2
  3. package/index.d.ts +23 -86
  4. package/package.json +5 -24
  5. package/scripts/prepublishOnly.js +1 -4
  6. package/src/component/base/methods.js +16 -76
  7. package/src/component/base/utils.js +18 -4
  8. package/src/component/setup/props.js +37 -28
  9. package/src/component/setup/state.js +4 -4
  10. package/src/component.js +25 -16
  11. package/src/components/Circle.js +49 -7
  12. package/src/components/FPScounter.js +226 -88
  13. package/src/components/RouterView.js +50 -5
  14. package/src/components/Sprite.js +61 -20
  15. package/src/engines/L3/element.js +109 -86
  16. package/src/engines/L3/fontLoader.js +26 -31
  17. package/src/engines/L3/shaderLoader.js +56 -6
  18. package/src/focus.js +9 -9
  19. package/src/launch.js +1 -2
  20. package/src/lib/codegenerator/generator.js +117 -16
  21. package/src/lib/colors/colors.js +0 -1
  22. package/src/lib/lifecycle.js +3 -3
  23. package/src/lib/precompiler/precompiler.js +14 -23
  24. package/src/lib/reactivityguard/computedprops.js +1 -6
  25. package/src/lib/shaders/shaders.js +163 -0
  26. package/src/lib/symbols.js +8 -0
  27. package/src/lib/templateparser/parser.js +6 -2
  28. package/src/lib/utils.js +36 -0
  29. package/src/router/router.js +7 -7
  30. package/vite/blitsTips.js +57 -0
  31. package/vite/msdfGenerator.js +52 -6
  32. package/vite/preCompiler.js +5 -15
  33. package/vscode/data/template-attributes.json +112 -0
  34. package/src/plugins/appstate.d.ts +0 -29
  35. package/src/plugins/index.d.ts +0 -29
  36. package/src/plugins/language.d.ts +0 -34
  37. package/src/plugins/storage/storage.d.ts +0 -29
  38. package/src/plugins/theme.d.ts +0 -35
@@ -25,6 +25,47 @@ export default () =>
25
25
  code: {
26
26
  render: function anonymous(parent, component, context, components, effect, getRaw, Log) {
27
27
  const elms = []
28
+ const validAttributes = [
29
+ 'parent',
30
+ 'rotation',
31
+ 'w',
32
+ 'width',
33
+ 'h',
34
+ 'height',
35
+ 'x',
36
+ 'y',
37
+ 'z',
38
+ 'zIndex',
39
+ 'color',
40
+ 'src',
41
+ 'texture',
42
+ 'fit',
43
+ 'rtt',
44
+ 'mount',
45
+ 'pivot',
46
+ 'scale',
47
+ 'show',
48
+ 'alpha',
49
+ 'rounded',
50
+ 'border',
51
+ 'shadow',
52
+ 'shader',
53
+ 'clipping',
54
+ 'overflow',
55
+ 'font',
56
+ 'size',
57
+ 'maxwidth',
58
+ 'maxheight',
59
+ 'maxlines',
60
+ 'textoverflow',
61
+ 'letterspacing',
62
+ 'lineheight',
63
+ 'contain',
64
+ 'align',
65
+ 'content',
66
+ 'placement',
67
+ 'inspector-data',
68
+ ]
28
69
  const elementConfigs = []
29
70
  const forloops = []
30
71
  const props = []
@@ -98,10 +139,16 @@ export default () =>
98
139
  elementConfigs[3]['frame'] = 'fps'
99
140
 
100
141
  skips[3] = []
101
- if (typeof cmps[3] !== 'undefined') {
102
- for (let key in cmps[3][Symbol.for('config')].props) {
103
- delete elementConfigs[3][cmps[3][Symbol.for('config')].props[key]]
104
- skips[3].push(cmps[3][Symbol.for('config')].props[key])
142
+ if (typeof cmps[3] !== 'undefined' && cmps[3][Symbol.for('config')].props !== undefined) {
143
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
144
+ let props = cmps[3][Symbol.for('config')].props
145
+ if (Array.isArray(props) === false)
146
+ props = Object.keys(cmps[3][Symbol.for('config')].props)
147
+ for (let k = 0; k < props.length; k++) {
148
+ const key = props[k]
149
+ if (validAttributes.indexOf(key) !== -1) continue
150
+ delete elementConfigs[3][key]
151
+ skips[3].push(key)
105
152
  }
106
153
  }
107
154
 
@@ -183,10 +230,16 @@ export default () =>
183
230
  elementConfigs[6]['frame'] = component.fps[0]
184
231
 
185
232
  skips[6] = []
186
- if (typeof cmps[6] !== 'undefined') {
187
- for (let key in cmps[6][Symbol.for('config')].props) {
188
- delete elementConfigs[6][cmps[6][Symbol.for('config')].props[key]]
189
- skips[6].push(cmps[6][Symbol.for('config')].props[key])
233
+ if (typeof cmps[6] !== 'undefined' && cmps[6][Symbol.for('config')].props !== undefined) {
234
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
235
+ let props = cmps[6][Symbol.for('config')].props
236
+ if (Array.isArray(props) === false)
237
+ props = Object.keys(cmps[6][Symbol.for('config')].props)
238
+ for (let k = 0; k < props.length; k++) {
239
+ const key = props[k]
240
+ if (validAttributes.indexOf(key) !== -1) continue
241
+ delete elementConfigs[6][key]
242
+ skips[6].push(key)
190
243
  }
191
244
  }
192
245
 
@@ -258,10 +311,16 @@ export default () =>
258
311
  elementConfigs[8]['frame'] = component.fps[1]
259
312
 
260
313
  skips[8] = []
261
- if (typeof cmps[8] !== 'undefined') {
262
- for (let key in cmps[8][Symbol.for('config')].props) {
263
- delete elementConfigs[8][cmps[8][Symbol.for('config')].props[key]]
264
- skips[8].push(cmps[8][Symbol.for('config')].props[key])
314
+ if (typeof cmps[8] !== 'undefined' && cmps[8][Symbol.for('config')].props !== undefined) {
315
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
316
+ let props = cmps[8][Symbol.for('config')].props
317
+ if (Array.isArray(props) === false)
318
+ props = Object.keys(cmps[8][Symbol.for('config')].props)
319
+ for (let k = 0; k < props.length; k++) {
320
+ const key = props[k]
321
+ if (validAttributes.indexOf(key) !== -1) continue
322
+ delete elementConfigs[8][key]
323
+ skips[8].push(key)
265
324
  }
266
325
  }
267
326
 
@@ -333,10 +392,16 @@ export default () =>
333
392
  elementConfigs[10]['frame'] = component.fps[2]
334
393
 
335
394
  skips[10] = []
336
- if (typeof cmps[10] !== 'undefined') {
337
- for (let key in cmps[10][Symbol.for('config')].props) {
338
- delete elementConfigs[10][cmps[10][Symbol.for('config')].props[key]]
339
- skips[10].push(cmps[10][Symbol.for('config')].props[key])
395
+ if (typeof cmps[10] !== 'undefined' && cmps[10][Symbol.for('config')].props !== undefined) {
396
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
397
+ let props = cmps[10][Symbol.for('config')].props
398
+ if (Array.isArray(props) === false)
399
+ props = Object.keys(cmps[10][Symbol.for('config')].props)
400
+ for (let k = 0; k < props.length; k++) {
401
+ const key = props[k]
402
+ if (validAttributes.indexOf(key) !== -1) continue
403
+ delete elementConfigs[10][key]
404
+ skips[10].push(key)
340
405
  }
341
406
  }
342
407
 
@@ -423,10 +488,16 @@ export default () =>
423
488
  elementConfigs[13]['frame'] = 'avg'
424
489
 
425
490
  skips[13] = []
426
- if (typeof cmps[13] !== 'undefined') {
427
- for (let key in cmps[13][Symbol.for('config')].props) {
428
- delete elementConfigs[13][cmps[13][Symbol.for('config')].props[key]]
429
- skips[13].push(cmps[13][Symbol.for('config')].props[key])
491
+ if (typeof cmps[13] !== 'undefined' && cmps[13][Symbol.for('config')].props !== undefined) {
492
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
493
+ let props = cmps[13][Symbol.for('config')].props
494
+ if (Array.isArray(props) === false)
495
+ props = Object.keys(cmps[13][Symbol.for('config')].props)
496
+ for (let k = 0; k < props.length; k++) {
497
+ const key = props[k]
498
+ if (validAttributes.indexOf(key) !== -1) continue
499
+ delete elementConfigs[13][key]
500
+ skips[13].push(key)
430
501
  }
431
502
  }
432
503
 
@@ -509,10 +580,16 @@ export default () =>
509
580
  elementConfigs[16]['frame'] = component.avgFps[0]
510
581
 
511
582
  skips[16] = []
512
- if (typeof cmps[16] !== 'undefined') {
513
- for (let key in cmps[16][Symbol.for('config')].props) {
514
- delete elementConfigs[16][cmps[16][Symbol.for('config')].props[key]]
515
- skips[16].push(cmps[16][Symbol.for('config')].props[key])
583
+ if (typeof cmps[16] !== 'undefined' && cmps[16][Symbol.for('config')].props !== undefined) {
584
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
585
+ let props = cmps[16][Symbol.for('config')].props
586
+ if (Array.isArray(props) === false)
587
+ props = Object.keys(cmps[16][Symbol.for('config')].props)
588
+ for (let k = 0; k < props.length; k++) {
589
+ const key = props[k]
590
+ if (validAttributes.indexOf(key) !== -1) continue
591
+ delete elementConfigs[16][key]
592
+ skips[16].push(key)
516
593
  }
517
594
  }
518
595
 
@@ -584,10 +661,16 @@ export default () =>
584
661
  elementConfigs[18]['frame'] = component.avgFps[1]
585
662
 
586
663
  skips[18] = []
587
- if (typeof cmps[18] !== 'undefined') {
588
- for (let key in cmps[18][Symbol.for('config')].props) {
589
- delete elementConfigs[18][cmps[18][Symbol.for('config')].props[key]]
590
- skips[18].push(cmps[18][Symbol.for('config')].props[key])
664
+ if (typeof cmps[18] !== 'undefined' && cmps[18][Symbol.for('config')].props !== undefined) {
665
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
666
+ let props = cmps[18][Symbol.for('config')].props
667
+ if (Array.isArray(props) === false)
668
+ props = Object.keys(cmps[18][Symbol.for('config')].props)
669
+ for (let k = 0; k < props.length; k++) {
670
+ const key = props[k]
671
+ if (validAttributes.indexOf(key) !== -1) continue
672
+ delete elementConfigs[18][key]
673
+ skips[18].push(key)
591
674
  }
592
675
  }
593
676
 
@@ -659,10 +742,16 @@ export default () =>
659
742
  elementConfigs[20]['frame'] = component.avgFps[2]
660
743
 
661
744
  skips[20] = []
662
- if (typeof cmps[20] !== 'undefined') {
663
- for (let key in cmps[20][Symbol.for('config')].props) {
664
- delete elementConfigs[20][cmps[20][Symbol.for('config')].props[key]]
665
- skips[20].push(cmps[20][Symbol.for('config')].props[key])
745
+ if (typeof cmps[20] !== 'undefined' && cmps[20][Symbol.for('config')].props !== undefined) {
746
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
747
+ let props = cmps[20][Symbol.for('config')].props
748
+ if (Array.isArray(props) === false)
749
+ props = Object.keys(cmps[20][Symbol.for('config')].props)
750
+ for (let k = 0; k < props.length; k++) {
751
+ const key = props[k]
752
+ if (validAttributes.indexOf(key) !== -1) continue
753
+ delete elementConfigs[20][key]
754
+ skips[20].push(key)
666
755
  }
667
756
  }
668
757
 
@@ -750,10 +839,16 @@ export default () =>
750
839
  elementConfigs[23]['frame'] = 'min'
751
840
 
752
841
  skips[23] = []
753
- if (typeof cmps[23] !== 'undefined') {
754
- for (let key in cmps[23][Symbol.for('config')].props) {
755
- delete elementConfigs[23][cmps[23][Symbol.for('config')].props[key]]
756
- skips[23].push(cmps[23][Symbol.for('config')].props[key])
842
+ if (typeof cmps[23] !== 'undefined' && cmps[23][Symbol.for('config')].props !== undefined) {
843
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
844
+ let props = cmps[23][Symbol.for('config')].props
845
+ if (Array.isArray(props) === false)
846
+ props = Object.keys(cmps[23][Symbol.for('config')].props)
847
+ for (let k = 0; k < props.length; k++) {
848
+ const key = props[k]
849
+ if (validAttributes.indexOf(key) !== -1) continue
850
+ delete elementConfigs[23][key]
851
+ skips[23].push(key)
757
852
  }
758
853
  }
759
854
 
@@ -836,10 +931,16 @@ export default () =>
836
931
  elementConfigs[26]['frame'] = component.minFps[0]
837
932
 
838
933
  skips[26] = []
839
- if (typeof cmps[26] !== 'undefined') {
840
- for (let key in cmps[26][Symbol.for('config')].props) {
841
- delete elementConfigs[26][cmps[26][Symbol.for('config')].props[key]]
842
- skips[26].push(cmps[26][Symbol.for('config')].props[key])
934
+ if (typeof cmps[26] !== 'undefined' && cmps[26][Symbol.for('config')].props !== undefined) {
935
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
936
+ let props = cmps[26][Symbol.for('config')].props
937
+ if (Array.isArray(props) === false)
938
+ props = Object.keys(cmps[26][Symbol.for('config')].props)
939
+ for (let k = 0; k < props.length; k++) {
940
+ const key = props[k]
941
+ if (validAttributes.indexOf(key) !== -1) continue
942
+ delete elementConfigs[26][key]
943
+ skips[26].push(key)
843
944
  }
844
945
  }
845
946
 
@@ -911,10 +1012,16 @@ export default () =>
911
1012
  elementConfigs[28]['frame'] = component.minFps[1]
912
1013
 
913
1014
  skips[28] = []
914
- if (typeof cmps[28] !== 'undefined') {
915
- for (let key in cmps[28][Symbol.for('config')].props) {
916
- delete elementConfigs[28][cmps[28][Symbol.for('config')].props[key]]
917
- skips[28].push(cmps[28][Symbol.for('config')].props[key])
1015
+ if (typeof cmps[28] !== 'undefined' && cmps[28][Symbol.for('config')].props !== undefined) {
1016
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1017
+ let props = cmps[28][Symbol.for('config')].props
1018
+ if (Array.isArray(props) === false)
1019
+ props = Object.keys(cmps[28][Symbol.for('config')].props)
1020
+ for (let k = 0; k < props.length; k++) {
1021
+ const key = props[k]
1022
+ if (validAttributes.indexOf(key) !== -1) continue
1023
+ delete elementConfigs[28][key]
1024
+ skips[28].push(key)
918
1025
  }
919
1026
  }
920
1027
 
@@ -986,10 +1093,16 @@ export default () =>
986
1093
  elementConfigs[30]['frame'] = component.minFps[2]
987
1094
 
988
1095
  skips[30] = []
989
- if (typeof cmps[30] !== 'undefined') {
990
- for (let key in cmps[30][Symbol.for('config')].props) {
991
- delete elementConfigs[30][cmps[30][Symbol.for('config')].props[key]]
992
- skips[30].push(cmps[30][Symbol.for('config')].props[key])
1096
+ if (typeof cmps[30] !== 'undefined' && cmps[30][Symbol.for('config')].props !== undefined) {
1097
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1098
+ let props = cmps[30][Symbol.for('config')].props
1099
+ if (Array.isArray(props) === false)
1100
+ props = Object.keys(cmps[30][Symbol.for('config')].props)
1101
+ for (let k = 0; k < props.length; k++) {
1102
+ const key = props[k]
1103
+ if (validAttributes.indexOf(key) !== -1) continue
1104
+ delete elementConfigs[30][key]
1105
+ skips[30].push(key)
993
1106
  }
994
1107
  }
995
1108
 
@@ -1076,10 +1189,16 @@ export default () =>
1076
1189
  elementConfigs[33]['frame'] = 'max'
1077
1190
 
1078
1191
  skips[33] = []
1079
- if (typeof cmps[33] !== 'undefined') {
1080
- for (let key in cmps[33][Symbol.for('config')].props) {
1081
- delete elementConfigs[33][cmps[33][Symbol.for('config')].props[key]]
1082
- skips[33].push(cmps[33][Symbol.for('config')].props[key])
1192
+ if (typeof cmps[33] !== 'undefined' && cmps[33][Symbol.for('config')].props !== undefined) {
1193
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1194
+ let props = cmps[33][Symbol.for('config')].props
1195
+ if (Array.isArray(props) === false)
1196
+ props = Object.keys(cmps[33][Symbol.for('config')].props)
1197
+ for (let k = 0; k < props.length; k++) {
1198
+ const key = props[k]
1199
+ if (validAttributes.indexOf(key) !== -1) continue
1200
+ delete elementConfigs[33][key]
1201
+ skips[33].push(key)
1083
1202
  }
1084
1203
  }
1085
1204
 
@@ -1161,10 +1280,16 @@ export default () =>
1161
1280
  elementConfigs[36]['frame'] = component.maxFps[0]
1162
1281
 
1163
1282
  skips[36] = []
1164
- if (typeof cmps[36] !== 'undefined') {
1165
- for (let key in cmps[36][Symbol.for('config')].props) {
1166
- delete elementConfigs[36][cmps[36][Symbol.for('config')].props[key]]
1167
- skips[36].push(cmps[36][Symbol.for('config')].props[key])
1283
+ if (typeof cmps[36] !== 'undefined' && cmps[36][Symbol.for('config')].props !== undefined) {
1284
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1285
+ let props = cmps[36][Symbol.for('config')].props
1286
+ if (Array.isArray(props) === false)
1287
+ props = Object.keys(cmps[36][Symbol.for('config')].props)
1288
+ for (let k = 0; k < props.length; k++) {
1289
+ const key = props[k]
1290
+ if (validAttributes.indexOf(key) !== -1) continue
1291
+ delete elementConfigs[36][key]
1292
+ skips[36].push(key)
1168
1293
  }
1169
1294
  }
1170
1295
 
@@ -1236,10 +1361,16 @@ export default () =>
1236
1361
  elementConfigs[38]['frame'] = component.maxFps[1]
1237
1362
 
1238
1363
  skips[38] = []
1239
- if (typeof cmps[38] !== 'undefined') {
1240
- for (let key in cmps[38][Symbol.for('config')].props) {
1241
- delete elementConfigs[38][cmps[38][Symbol.for('config')].props[key]]
1242
- skips[38].push(cmps[38][Symbol.for('config')].props[key])
1364
+ if (typeof cmps[38] !== 'undefined' && cmps[38][Symbol.for('config')].props !== undefined) {
1365
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1366
+ let props = cmps[38][Symbol.for('config')].props
1367
+ if (Array.isArray(props) === false)
1368
+ props = Object.keys(cmps[38][Symbol.for('config')].props)
1369
+ for (let k = 0; k < props.length; k++) {
1370
+ const key = props[k]
1371
+ if (validAttributes.indexOf(key) !== -1) continue
1372
+ delete elementConfigs[38][key]
1373
+ skips[38].push(key)
1243
1374
  }
1244
1375
  }
1245
1376
 
@@ -1311,10 +1442,16 @@ export default () =>
1311
1442
  elementConfigs[40]['frame'] = component.maxFps[2]
1312
1443
 
1313
1444
  skips[40] = []
1314
- if (typeof cmps[40] !== 'undefined') {
1315
- for (let key in cmps[40][Symbol.for('config')].props) {
1316
- delete elementConfigs[40][cmps[40][Symbol.for('config')].props[key]]
1317
- skips[40].push(cmps[40][Symbol.for('config')].props[key])
1445
+ if (typeof cmps[40] !== 'undefined' && cmps[40][Symbol.for('config')].props !== undefined) {
1446
+ // attributes that are a prop should be removed from element config (even if it's a know element prop)
1447
+ let props = cmps[40][Symbol.for('config')].props
1448
+ if (Array.isArray(props) === false)
1449
+ props = Object.keys(cmps[40][Symbol.for('config')].props)
1450
+ for (let k = 0; k < props.length; k++) {
1451
+ const key = props[k]
1452
+ if (validAttributes.indexOf(key) !== -1) continue
1453
+ delete elementConfigs[40][key]
1454
+ skips[40].push(key)
1318
1455
  }
1319
1456
  }
1320
1457
 
@@ -1464,10 +1601,11 @@ export default () =>
1464
1601
  props.length = 0
1465
1602
  skips.length = 0
1466
1603
  },
1604
+ skips,
1467
1605
  }
1468
1606
  },
1469
1607
  effects: [
1470
- function anonymous(component, elms, context, components, rootComponent, effect) {
1608
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1471
1609
  if (
1472
1610
  typeof skips === 'undefined' ||
1473
1611
  typeof skips[6] === 'undefined' ||
@@ -1475,10 +1613,10 @@ export default () =>
1475
1613
  )
1476
1614
  elms[6].set('frame', component.fps[0])
1477
1615
  },
1478
- function anonymous(component, elms, context, components, rootComponent, effect) {
1616
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1479
1617
  elms[7][Symbol.for('props')]['frame'] = component.fps[0]
1480
1618
  },
1481
- function anonymous(component, elms, context, components, rootComponent, effect) {
1619
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1482
1620
  if (
1483
1621
  typeof skips === 'undefined' ||
1484
1622
  typeof skips[8] === 'undefined' ||
@@ -1486,10 +1624,10 @@ export default () =>
1486
1624
  )
1487
1625
  elms[8].set('frame', component.fps[1])
1488
1626
  },
1489
- function anonymous(component, elms, context, components, rootComponent, effect) {
1627
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1490
1628
  elms[9][Symbol.for('props')]['frame'] = component.fps[1]
1491
1629
  },
1492
- function anonymous(component, elms, context, components, rootComponent, effect) {
1630
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1493
1631
  if (
1494
1632
  typeof skips === 'undefined' ||
1495
1633
  typeof skips[10] === 'undefined' ||
@@ -1497,10 +1635,10 @@ export default () =>
1497
1635
  )
1498
1636
  elms[10].set('frame', component.fps[2])
1499
1637
  },
1500
- function anonymous(component, elms, context, components, rootComponent, effect) {
1638
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1501
1639
  elms[11][Symbol.for('props')]['frame'] = component.fps[2]
1502
1640
  },
1503
- function anonymous(component, elms, context, components, rootComponent, effect) {
1641
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1504
1642
  if (
1505
1643
  typeof skips === 'undefined' ||
1506
1644
  typeof skips[16] === 'undefined' ||
@@ -1508,10 +1646,10 @@ export default () =>
1508
1646
  )
1509
1647
  elms[16].set('frame', component.avgFps[0])
1510
1648
  },
1511
- function anonymous(component, elms, context, components, rootComponent, effect) {
1649
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1512
1650
  elms[17][Symbol.for('props')]['frame'] = component.avgFps[0]
1513
1651
  },
1514
- function anonymous(component, elms, context, components, rootComponent, effect) {
1652
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1515
1653
  if (
1516
1654
  typeof skips === 'undefined' ||
1517
1655
  typeof skips[18] === 'undefined' ||
@@ -1519,10 +1657,10 @@ export default () =>
1519
1657
  )
1520
1658
  elms[18].set('frame', component.avgFps[1])
1521
1659
  },
1522
- function anonymous(component, elms, context, components, rootComponent, effect) {
1660
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1523
1661
  elms[19][Symbol.for('props')]['frame'] = component.avgFps[1]
1524
1662
  },
1525
- function anonymous(component, elms, context, components, rootComponent, effect) {
1663
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1526
1664
  if (
1527
1665
  typeof skips === 'undefined' ||
1528
1666
  typeof skips[20] === 'undefined' ||
@@ -1530,10 +1668,10 @@ export default () =>
1530
1668
  )
1531
1669
  elms[20].set('frame', component.avgFps[2])
1532
1670
  },
1533
- function anonymous(component, elms, context, components, rootComponent, effect) {
1671
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1534
1672
  elms[21][Symbol.for('props')]['frame'] = component.avgFps[2]
1535
1673
  },
1536
- function anonymous(component, elms, context, components, rootComponent, effect) {
1674
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1537
1675
  if (
1538
1676
  typeof skips === 'undefined' ||
1539
1677
  typeof skips[26] === 'undefined' ||
@@ -1541,10 +1679,10 @@ export default () =>
1541
1679
  )
1542
1680
  elms[26].set('frame', component.minFps[0])
1543
1681
  },
1544
- function anonymous(component, elms, context, components, rootComponent, effect) {
1682
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1545
1683
  elms[27][Symbol.for('props')]['frame'] = component.minFps[0]
1546
1684
  },
1547
- function anonymous(component, elms, context, components, rootComponent, effect) {
1685
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1548
1686
  if (
1549
1687
  typeof skips === 'undefined' ||
1550
1688
  typeof skips[28] === 'undefined' ||
@@ -1552,10 +1690,10 @@ export default () =>
1552
1690
  )
1553
1691
  elms[28].set('frame', component.minFps[1])
1554
1692
  },
1555
- function anonymous(component, elms, context, components, rootComponent, effect) {
1693
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1556
1694
  elms[29][Symbol.for('props')]['frame'] = component.minFps[1]
1557
1695
  },
1558
- function anonymous(component, elms, context, components, rootComponent, effect) {
1696
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1559
1697
  if (
1560
1698
  typeof skips === 'undefined' ||
1561
1699
  typeof skips[30] === 'undefined' ||
@@ -1563,10 +1701,10 @@ export default () =>
1563
1701
  )
1564
1702
  elms[30].set('frame', component.minFps[2])
1565
1703
  },
1566
- function anonymous(component, elms, context, components, rootComponent, effect) {
1704
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1567
1705
  elms[31][Symbol.for('props')]['frame'] = component.minFps[2]
1568
1706
  },
1569
- function anonymous(component, elms, context, components, rootComponent, effect) {
1707
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1570
1708
  if (
1571
1709
  typeof skips === 'undefined' ||
1572
1710
  typeof skips[36] === 'undefined' ||
@@ -1574,10 +1712,10 @@ export default () =>
1574
1712
  )
1575
1713
  elms[36].set('frame', component.maxFps[0])
1576
1714
  },
1577
- function anonymous(component, elms, context, components, rootComponent, effect) {
1715
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1578
1716
  elms[37][Symbol.for('props')]['frame'] = component.maxFps[0]
1579
1717
  },
1580
- function anonymous(component, elms, context, components, rootComponent, effect) {
1718
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1581
1719
  if (
1582
1720
  typeof skips === 'undefined' ||
1583
1721
  typeof skips[38] === 'undefined' ||
@@ -1585,10 +1723,10 @@ export default () =>
1585
1723
  )
1586
1724
  elms[38].set('frame', component.maxFps[1])
1587
1725
  },
1588
- function anonymous(component, elms, context, components, rootComponent, effect) {
1726
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1589
1727
  elms[39][Symbol.for('props')]['frame'] = component.maxFps[1]
1590
1728
  },
1591
- function anonymous(component, elms, context, components, rootComponent, effect) {
1729
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1592
1730
  if (
1593
1731
  typeof skips === 'undefined' ||
1594
1732
  typeof skips[40] === 'undefined' ||
@@ -1596,7 +1734,7 @@ export default () =>
1596
1734
  )
1597
1735
  elms[40].set('frame', component.maxFps[2])
1598
1736
  },
1599
- function anonymous(component, elms, context, components, rootComponent, effect) {
1737
+ function anonymous(component, elms, context, components, rootComponent, skips, effect) {
1600
1738
  elms[41][Symbol.for('props')]['frame'] = component.maxFps[2]
1601
1739
  },
1602
1740
  ],
@@ -28,6 +28,47 @@ export default () =>
28
28
  code: {
29
29
  render: function anonymous(parent, component, context, components, effect, getRaw, Log) {
30
30
  const elms = []
31
+ const validAttributes = [
32
+ 'parent',
33
+ 'rotation',
34
+ 'w',
35
+ 'width',
36
+ 'h',
37
+ 'height',
38
+ 'x',
39
+ 'y',
40
+ 'z',
41
+ 'zIndex',
42
+ 'color',
43
+ 'src',
44
+ 'texture',
45
+ 'fit',
46
+ 'rtt',
47
+ 'mount',
48
+ 'pivot',
49
+ 'scale',
50
+ 'show',
51
+ 'alpha',
52
+ 'rounded',
53
+ 'border',
54
+ 'shadow',
55
+ 'shader',
56
+ 'clipping',
57
+ 'overflow',
58
+ 'font',
59
+ 'size',
60
+ 'maxwidth',
61
+ 'maxheight',
62
+ 'maxlines',
63
+ 'textoverflow',
64
+ 'letterspacing',
65
+ 'lineheight',
66
+ 'contain',
67
+ 'align',
68
+ 'content',
69
+ 'placement',
70
+ 'inspector-data',
71
+ ]
31
72
  const elementConfigs = []
32
73
  const forloops = []
33
74
  const props = []
@@ -48,8 +89,8 @@ export default () =>
48
89
  inSlot === true ? slotComponent : component
49
90
  )
50
91
 
51
- elementConfigs[0]['w'] = parent.node.width * (100 / 100)
52
- elementConfigs[0]['height'] = parent.node.height * (100 / 100)
92
+ elementConfigs[0]['w'] = parent.node.w * (100 / 100)
93
+ elementConfigs[0]['h'] = parent.node.h * (100 / 100)
53
94
  elms[0].populate(elementConfigs[0])
54
95
 
55
96
  if (inSlot === true) {
@@ -72,6 +113,7 @@ export default () =>
72
113
  props.length = 0
73
114
  skips.length = 0
74
115
  },
116
+ skips,
75
117
  }
76
118
  },
77
119
  effects: [],
@@ -84,8 +126,11 @@ export default () =>
84
126
  },
85
127
  hooks: {
86
128
  async ready() {
87
- if (this.parent[symbols.routerHooks] && this.parent[symbols.routerHooks].init) {
88
- await this.parent[symbols.routerHooks].init.apply(this.parent)
129
+ if (
130
+ this[symbols.parent][symbols.routerHooks] &&
131
+ this[symbols.parent][symbols.routerHooks].init
132
+ ) {
133
+ await this[symbols.parent][symbols.routerHooks].init.apply(this[symbols.parent])
89
134
  }
90
135
  hashchangeHandler = () => Router.navigate.apply(this)
91
136
  Router.navigate.apply(this)
@@ -104,7 +149,7 @@ export default () =>
104
149
  back(e) {
105
150
  const navigating = Router.back.call(this)
106
151
  if (navigating === false) {
107
- this.parent.$focus(e)
152
+ this[symbols.parent].$focus(e)
108
153
  }
109
154
  },
110
155
  },