@urso/core 0.4.34 → 0.4.35

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 (153) hide show
  1. package/.babelrc +11 -11
  2. package/LICENSE +20 -20
  3. package/README.md +220 -220
  4. package/build/js/index.js +1 -1
  5. package/build/js/index.js.LICENSE.txt +32 -32
  6. package/package.json +51 -51
  7. package/src/js/app.js +78 -78
  8. package/src/js/components/_info.js +10 -10
  9. package/src/js/components/base/_info.js +3 -3
  10. package/src/js/components/base/controller.js +78 -78
  11. package/src/js/components/debug/_info.js +7 -7
  12. package/src/js/components/debug/controller.js +38 -38
  13. package/src/js/components/debug/coords.js +23 -23
  14. package/src/js/components/debug/fps.js +34 -34
  15. package/src/js/components/debug/template.js +55 -55
  16. package/src/js/components/debug/timescale.js +60 -60
  17. package/src/js/components/deviceRotate/_info.js +3 -3
  18. package/src/js/components/deviceRotate/controller.js +86 -86
  19. package/src/js/components/fullscreen/_info.js +6 -6
  20. package/src/js/components/fullscreen/android.js +104 -104
  21. package/src/js/components/fullscreen/controller.js +76 -76
  22. package/src/js/components/fullscreen/desktop.js +49 -49
  23. package/src/js/components/fullscreen/ios.js +115 -115
  24. package/src/js/components/layersSwitcher/_info.js +4 -4
  25. package/src/js/components/layersSwitcher/config.js +26 -26
  26. package/src/js/components/layersSwitcher/controller.js +34 -34
  27. package/src/js/components/loader/_info.js +4 -4
  28. package/src/js/components/loader/controller.js +66 -66
  29. package/src/js/components/loader/template.js +70 -70
  30. package/src/js/components/soundInitialPopup/_info.js +3 -3
  31. package/src/js/components/soundInitialPopup/controller.js +42 -42
  32. package/src/js/components/soundInitialPopup/template.js +109 -109
  33. package/src/js/components/stateDriven/_info.js +3 -3
  34. package/src/js/components/stateDriven/controller.js +118 -118
  35. package/src/js/config/load.js +5 -5
  36. package/src/js/config/main.js +10 -10
  37. package/src/js/extra/_info.js +24 -24
  38. package/src/js/extra/browserEvents.js +38 -38
  39. package/src/js/extra/pixiPatch.js +79 -79
  40. package/src/js/extra/setTimeout.js +7 -7
  41. package/src/js/index.js +8 -8
  42. package/src/js/lib/_info.js +13 -13
  43. package/src/js/lib/cache.js +105 -105
  44. package/src/js/lib/composition.js +85 -85
  45. package/src/js/lib/device.js +1286 -1286
  46. package/src/js/lib/helper.js +539 -539
  47. package/src/js/lib/loader.js +127 -127
  48. package/src/js/lib/localData.js +15 -15
  49. package/src/js/lib/logger.js +22 -22
  50. package/src/js/lib/math.js +35 -35
  51. package/src/js/lib/objectPool.js +54 -54
  52. package/src/js/lib/time.js +18 -18
  53. package/src/js/lib/tween.js +147 -147
  54. package/src/js/modules/_info.js +12 -12
  55. package/src/js/modules/assets/_info.js +7 -7
  56. package/src/js/modules/assets/baseModel.js +18 -18
  57. package/src/js/modules/assets/config.js +37 -37
  58. package/src/js/modules/assets/controller.js +46 -46
  59. package/src/js/modules/assets/models/_info.js +11 -11
  60. package/src/js/modules/assets/models/atlas.js +8 -8
  61. package/src/js/modules/assets/models/audiosprite.js +27 -27
  62. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  63. package/src/js/modules/assets/models/container.js +16 -16
  64. package/src/js/modules/assets/models/font.js +8 -8
  65. package/src/js/modules/assets/models/image.js +13 -13
  66. package/src/js/modules/assets/models/json.js +8 -8
  67. package/src/js/modules/assets/models/sound.js +14 -14
  68. package/src/js/modules/assets/models/spine.js +14 -14
  69. package/src/js/modules/assets/service.js +365 -365
  70. package/src/js/modules/i18n/_info.js +4 -4
  71. package/src/js/modules/i18n/config.js +17 -17
  72. package/src/js/modules/i18n/controller.js +78 -78
  73. package/src/js/modules/instances/_info.js +3 -3
  74. package/src/js/modules/instances/controller.js +251 -251
  75. package/src/js/modules/logic/_info.js +4 -4
  76. package/src/js/modules/logic/config/_info.js +2 -2
  77. package/src/js/modules/logic/config/sounds.js +23 -23
  78. package/src/js/modules/logic/controller.js +48 -48
  79. package/src/js/modules/logic/sounds.js +103 -96
  80. package/src/js/modules/objects/_info.js +11 -11
  81. package/src/js/modules/objects/baseModel.js +191 -191
  82. package/src/js/modules/objects/cache.js +99 -99
  83. package/src/js/modules/objects/controller.js +131 -131
  84. package/src/js/modules/objects/create.js +237 -237
  85. package/src/js/modules/objects/find.js +140 -140
  86. package/src/js/modules/objects/models/_info.js +25 -25
  87. package/src/js/modules/objects/models/atlasImage.js +50 -50
  88. package/src/js/modules/objects/models/bitmapText.js +39 -39
  89. package/src/js/modules/objects/models/button.js +189 -189
  90. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  91. package/src/js/modules/objects/models/checkbox.js +96 -96
  92. package/src/js/modules/objects/models/collection.js +54 -54
  93. package/src/js/modules/objects/models/component.js +44 -44
  94. package/src/js/modules/objects/models/container.js +19 -19
  95. package/src/js/modules/objects/models/emitter.js +54 -54
  96. package/src/js/modules/objects/models/graphics.js +38 -38
  97. package/src/js/modules/objects/models/group.js +19 -19
  98. package/src/js/modules/objects/models/hitArea.js +104 -104
  99. package/src/js/modules/objects/models/image.js +34 -34
  100. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  101. package/src/js/modules/objects/models/mask.js +38 -38
  102. package/src/js/modules/objects/models/nineSlicePlane.js +30 -30
  103. package/src/js/modules/objects/models/scrollbox.js +61 -61
  104. package/src/js/modules/objects/models/slider.js +253 -253
  105. package/src/js/modules/objects/models/spine.js +196 -196
  106. package/src/js/modules/objects/models/text.js +59 -59
  107. package/src/js/modules/objects/models/textInput.js +66 -66
  108. package/src/js/modules/objects/models/toggle.js +180 -180
  109. package/src/js/modules/objects/models/world.js +19 -19
  110. package/src/js/modules/objects/propertyAdapter.js +422 -422
  111. package/src/js/modules/objects/proxy.js +211 -211
  112. package/src/js/modules/objects/styles.js +119 -119
  113. package/src/js/modules/observer/_info.js +4 -4
  114. package/src/js/modules/observer/controller.js +99 -99
  115. package/src/js/modules/observer/events.js +44 -44
  116. package/src/js/modules/scenes/_info.js +8 -8
  117. package/src/js/modules/scenes/controller.js +103 -103
  118. package/src/js/modules/scenes/model.js +28 -28
  119. package/src/js/modules/scenes/pixiWrapper.js +237 -237
  120. package/src/js/modules/scenes/resolutions.js +173 -173
  121. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  122. package/src/js/modules/scenes/service.js +139 -139
  123. package/src/js/modules/soundManager/_info.js +3 -3
  124. package/src/js/modules/soundManager/controller.js +100 -99
  125. package/src/js/modules/soundManager/soundSprite.js +243 -205
  126. package/src/js/modules/statesManager/_info.js +12 -12
  127. package/src/js/modules/statesManager/action.js +60 -60
  128. package/src/js/modules/statesManager/actions/_info.js +3 -3
  129. package/src/js/modules/statesManager/all.js +23 -23
  130. package/src/js/modules/statesManager/configStates.js +71 -71
  131. package/src/js/modules/statesManager/controller.js +170 -170
  132. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  133. package/src/js/modules/statesManager/helper.js +27 -27
  134. package/src/js/modules/statesManager/race.js +75 -75
  135. package/src/js/modules/statesManager/sequence.js +47 -47
  136. package/src/js/modules/template/_info.js +6 -6
  137. package/src/js/modules/template/controller.js +28 -28
  138. package/src/js/modules/template/model.js +11 -11
  139. package/src/js/modules/template/service.js +137 -137
  140. package/src/js/modules/template/types.js +45 -45
  141. package/src/js/modules/transport/_info.js +8 -8
  142. package/src/js/modules/transport/baseConnectionType.js +24 -24
  143. package/src/js/modules/transport/config.js +13 -13
  144. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  145. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  146. package/src/js/modules/transport/connectionTypes/xhr.js +44 -44
  147. package/src/js/modules/transport/controller.js +48 -48
  148. package/src/js/modules/transport/decorator.js +17 -17
  149. package/src/js/modules/transport/service.js +153 -153
  150. package/src/js/templates/_info.js +4 -4
  151. package/src/js/templates/groups/_info.js +1 -1
  152. package/src/js/templates/scenes/_info.js +1 -1
  153. package/webpack.config.js +47 -47
@@ -1,211 +1,211 @@
1
- class ModulesObjectsProxy {
2
- constructor() {
3
- this.singleton = true;
4
- this._safeFlag = false;
5
-
6
- this._customSetLogic = this._customSetLogic.bind(this);
7
- this._customGetLogic = this._customGetLogic.bind(this);
8
-
9
- this._propertyAdapter = this.getInstance('PropertyAdapter');
10
- };
11
-
12
- get(model) {
13
- const _this = this;
14
-
15
- let proxy = new Proxy(model, {
16
- get(target, key, receiver) {
17
- const rv = Reflect.get(target, key, receiver);
18
- return _this._customGetLogic({ target: target, proxy: receiver }, key, rv);
19
- },
20
-
21
- set(target, key, value, receiver) {
22
- const rv = Reflect.set(target, key, value, receiver);
23
- _this._customSetLogic(target, key, value, proxy);
24
- return rv;
25
- }
26
- });
27
-
28
- return proxy;
29
- }
30
-
31
- /* targetObject - object from models
32
- * propertyName - property to adapt for PIXI object
33
- * value - value to set
34
- */
35
- _setProperty(target, propertyName, value) {
36
- const isAdaptiveProperty = this._propertyAdapter.isAdaptiveProperty(propertyName);
37
-
38
- if (isAdaptiveProperty)
39
- this._propertyAdapter.propertyChangeHandler(target, propertyName);
40
- else
41
- Urso.helper.recursiveSet(propertyName, value, target._baseObject);
42
- }
43
-
44
- safeSetValueToTarget(target, key, value) {
45
- this._safeFlag = true;
46
-
47
- const originalValue = target._originalModel[key]; // we need to save original value in the end
48
-
49
- //setting value
50
- target[key] = value;
51
-
52
- target._originalModel[key] = originalValue;
53
-
54
- this._safeFlag = false;
55
- }
56
-
57
- //returns reflectValue = value that would be used when target[key] is called
58
- _customGetLogic(object, key, reflectValue) {
59
- const target = object.target;
60
- const wrapKey = this._getAliases()[key];
61
- const isReflectValueObject = typeof reflectValue !== 'undefined'; //&& typeof reflectValue !== 'boolean'; //it was for getting width and height
62
-
63
- if ((isReflectValueObject && (typeof wrapKey != 'undefined')) || !wrapKey)
64
- return reflectValue;
65
-
66
- return Urso.helper.recursiveGet(wrapKey, target._baseObject, reflectValue);
67
- }
68
-
69
- _customSetLogic(target, key, value, proxy) {
70
- if (!this._getOriginalModelExceptions().includes(key))
71
- target._originalModel[key] = value;
72
-
73
- //apply to pixi
74
- const propertyName = this._getAliases()[key];
75
-
76
- if (!propertyName)
77
- return false;
78
-
79
- if (propertyName.startsWith('function.')) {
80
- this._runCustomFunction(propertyName, target);
81
- return true;
82
- }
83
-
84
- this._checkSelectorProperties(key);
85
-
86
- this._setProperty(target, propertyName, value);
87
-
88
- this._checkMaxSize(target);
89
-
90
- //setup dirty to recalc params
91
- if (typeof target._baseObject.dirty !== 'undefined')
92
- target._baseObject.dirty = true;
93
-
94
- return true;
95
- };
96
-
97
- _checkMaxSize(target) {
98
- if (!target.maxWidth && !target.maxHeight)
99
- return;
100
-
101
- let scaleNeed = 1;
102
-
103
- if (target.maxWidth) {
104
- scaleNeed = Math.abs((target._baseObject.scale.x * target.maxWidth) / target._baseObject.width);
105
- }
106
-
107
- if (target.maxHeight) {
108
- const scaleYNeed = Math.abs((target._baseObject.scale.y * target.maxHeight) / target._baseObject.height);
109
-
110
- if (scaleNeed > scaleYNeed)
111
- scaleNeed = scaleYNeed;
112
- }
113
-
114
- if (scaleNeed > 1)
115
- scaleNeed = 1;
116
-
117
- target._baseObject.scale.x = scaleNeed * Math.sign(target._baseObject.scale.x);
118
- target._baseObject.scale.y = scaleNeed * Math.sign(target._baseObject.scale.y);
119
- }
120
-
121
- _runCustomFunction(property, target) {
122
- const funcName = property.replace('function.', '');
123
- if (target[funcName])
124
- target[funcName]();
125
- }
126
-
127
- _checkSelectorProperties(key) {
128
- if (!this._safeFlag && this._getSelectorProperties().includes(key)) {
129
- Urso.logger.error('ModulesObjectsProxy error: you are trying to change selector propertie: ' + key);
130
- Urso.logger.error('Notice: use functions addClass, removeClass, setId, setName');
131
- }
132
- }
133
-
134
- _getSelectorProperties() {
135
- return [
136
- 'id', 'name', 'class'
137
- ];
138
- }
139
-
140
- _getOriginalModelExceptions() {
141
- return [
142
- 'parent', 'contents'
143
- ];
144
- }
145
-
146
- _getAliases() {
147
- return {
148
- 'id': 'id',
149
- 'name': 'name',
150
- 'class': 'class',
151
- 'x': 'x',
152
- 'y': 'y',
153
- 'z': 'z',
154
- 'angle': 'angle',
155
- 'anchorX': 'anchor.x', //'anchor.x',
156
- 'anchorY': 'anchor.y', //'anchor.y',
157
- 'width': 'width', //'width',
158
- 'height': 'height', //'height',
159
- 'stretchingType': 'stretchingType',
160
- 'scaleX': 'scale.x', //'scale.x',
161
- 'scaleY': 'scale.y', //'scale.y',
162
- 'alignX': 'alignX', //'alignX',
163
- 'alignY': 'alignY', //'alignY',
164
- 'parent': 'parent',
165
- 'rightOffset': 'rightOffset',
166
- 'bottomOffset': 'bottomOffset',
167
- 'alpha': 'alpha',
168
- 'visible': 'visible',
169
- 'text': 'text',
170
- //'assetKey': 'function.setAssetKey', /todo
171
- 'frame': 'frame',
172
- 'blendMode': 'blendMode',
173
- 'tint': 'tint',
174
- 'action': 'events.onInputUp._bindings.0._listener', //todo
175
- 'btnFrames.over': 'frames.over',
176
- 'btnFrames.out': 'frames.out',
177
- 'btnFrames.down': 'frames.down',
178
- 'btnFrames.up': 'frames.up',
179
- 'align': 'align',
180
- 'filters': 'filters',
181
- 'lineSpacing': 'lineSpacing',
182
- 'maxWidth': 'maxWidth',
183
- 'maxHeight': 'maxHeight',
184
- 'lineHeight': 'style.lineHeight',
185
- 'fontFamily': 'style.fontFamily',
186
- 'fontSize': 'style.fontSize',
187
- 'fontStyle': 'style.fontStyle',
188
- 'fontWeight': 'style.fontWeight',
189
- 'fill': 'style.fill',
190
- 'fillCustomColors': 'fillCustomColors',
191
- 'stroke': 'style.stroke',
192
- 'strokeThickness': 'style.strokeThickness',
193
- 'dropShadow': 'style.dropShadow',
194
- 'dropShadowColor': 'style.dropShadowColor',
195
- 'dropShadowBlur': 'style.dropShadowBlur',
196
- 'dropShadowAngle': 'style.dropShadowAngle',
197
- 'dropShadowDistance': 'style.dropShadowDistance',
198
- 'wordWrap': 'style.wordWrap',
199
- 'wordWrapWidth': 'style.wordWrapWidth',
200
- 'leading ': 'style.leading',
201
- 'textAlign ': 'style.align',
202
- 'enabled': 'input.enabled',
203
- 'cacheAsBitmap': 'cacheAsBitmap',
204
-
205
- //baseObject functions
206
- 'toGlobal': 'toGlobal'
207
- };
208
- }
209
- }
210
-
211
- module.exports = ModulesObjectsProxy;
1
+ class ModulesObjectsProxy {
2
+ constructor() {
3
+ this.singleton = true;
4
+ this._safeFlag = false;
5
+
6
+ this._customSetLogic = this._customSetLogic.bind(this);
7
+ this._customGetLogic = this._customGetLogic.bind(this);
8
+
9
+ this._propertyAdapter = this.getInstance('PropertyAdapter');
10
+ };
11
+
12
+ get(model) {
13
+ const _this = this;
14
+
15
+ let proxy = new Proxy(model, {
16
+ get(target, key, receiver) {
17
+ const rv = Reflect.get(target, key, receiver);
18
+ return _this._customGetLogic({ target: target, proxy: receiver }, key, rv);
19
+ },
20
+
21
+ set(target, key, value, receiver) {
22
+ const rv = Reflect.set(target, key, value, receiver);
23
+ _this._customSetLogic(target, key, value, proxy);
24
+ return rv;
25
+ }
26
+ });
27
+
28
+ return proxy;
29
+ }
30
+
31
+ /* targetObject - object from models
32
+ * propertyName - property to adapt for PIXI object
33
+ * value - value to set
34
+ */
35
+ _setProperty(target, propertyName, value) {
36
+ const isAdaptiveProperty = this._propertyAdapter.isAdaptiveProperty(propertyName);
37
+
38
+ if (isAdaptiveProperty)
39
+ this._propertyAdapter.propertyChangeHandler(target, propertyName);
40
+ else
41
+ Urso.helper.recursiveSet(propertyName, value, target._baseObject);
42
+ }
43
+
44
+ safeSetValueToTarget(target, key, value) {
45
+ this._safeFlag = true;
46
+
47
+ const originalValue = target._originalModel[key]; // we need to save original value in the end
48
+
49
+ //setting value
50
+ target[key] = value;
51
+
52
+ target._originalModel[key] = originalValue;
53
+
54
+ this._safeFlag = false;
55
+ }
56
+
57
+ //returns reflectValue = value that would be used when target[key] is called
58
+ _customGetLogic(object, key, reflectValue) {
59
+ const target = object.target;
60
+ const wrapKey = this._getAliases()[key];
61
+ const isReflectValueObject = typeof reflectValue !== 'undefined'; //&& typeof reflectValue !== 'boolean'; //it was for getting width and height
62
+
63
+ if ((isReflectValueObject && (typeof wrapKey != 'undefined')) || !wrapKey)
64
+ return reflectValue;
65
+
66
+ return Urso.helper.recursiveGet(wrapKey, target._baseObject, reflectValue);
67
+ }
68
+
69
+ _customSetLogic(target, key, value, proxy) {
70
+ if (!this._getOriginalModelExceptions().includes(key))
71
+ target._originalModel[key] = value;
72
+
73
+ //apply to pixi
74
+ const propertyName = this._getAliases()[key];
75
+
76
+ if (!propertyName)
77
+ return false;
78
+
79
+ if (propertyName.startsWith('function.')) {
80
+ this._runCustomFunction(propertyName, target);
81
+ return true;
82
+ }
83
+
84
+ this._checkSelectorProperties(key);
85
+
86
+ this._setProperty(target, propertyName, value);
87
+
88
+ this._checkMaxSize(target);
89
+
90
+ //setup dirty to recalc params
91
+ if (typeof target._baseObject.dirty !== 'undefined')
92
+ target._baseObject.dirty = true;
93
+
94
+ return true;
95
+ };
96
+
97
+ _checkMaxSize(target) {
98
+ if (!target.maxWidth && !target.maxHeight)
99
+ return;
100
+
101
+ let scaleNeed = 1;
102
+
103
+ if (target.maxWidth) {
104
+ scaleNeed = Math.abs((target._baseObject.scale.x * target.maxWidth) / target._baseObject.width);
105
+ }
106
+
107
+ if (target.maxHeight) {
108
+ const scaleYNeed = Math.abs((target._baseObject.scale.y * target.maxHeight) / target._baseObject.height);
109
+
110
+ if (scaleNeed > scaleYNeed)
111
+ scaleNeed = scaleYNeed;
112
+ }
113
+
114
+ if (scaleNeed > 1)
115
+ scaleNeed = 1;
116
+
117
+ target._baseObject.scale.x = scaleNeed * Math.sign(target._baseObject.scale.x);
118
+ target._baseObject.scale.y = scaleNeed * Math.sign(target._baseObject.scale.y);
119
+ }
120
+
121
+ _runCustomFunction(property, target) {
122
+ const funcName = property.replace('function.', '');
123
+ if (target[funcName])
124
+ target[funcName]();
125
+ }
126
+
127
+ _checkSelectorProperties(key) {
128
+ if (!this._safeFlag && this._getSelectorProperties().includes(key)) {
129
+ Urso.logger.error('ModulesObjectsProxy error: you are trying to change selector propertie: ' + key);
130
+ Urso.logger.error('Notice: use functions addClass, removeClass, setId, setName');
131
+ }
132
+ }
133
+
134
+ _getSelectorProperties() {
135
+ return [
136
+ 'id', 'name', 'class'
137
+ ];
138
+ }
139
+
140
+ _getOriginalModelExceptions() {
141
+ return [
142
+ 'parent', 'contents'
143
+ ];
144
+ }
145
+
146
+ _getAliases() {
147
+ return {
148
+ 'id': 'id',
149
+ 'name': 'name',
150
+ 'class': 'class',
151
+ 'x': 'x',
152
+ 'y': 'y',
153
+ 'z': 'z',
154
+ 'angle': 'angle',
155
+ 'anchorX': 'anchor.x', //'anchor.x',
156
+ 'anchorY': 'anchor.y', //'anchor.y',
157
+ 'width': 'width', //'width',
158
+ 'height': 'height', //'height',
159
+ 'stretchingType': 'stretchingType',
160
+ 'scaleX': 'scale.x', //'scale.x',
161
+ 'scaleY': 'scale.y', //'scale.y',
162
+ 'alignX': 'alignX', //'alignX',
163
+ 'alignY': 'alignY', //'alignY',
164
+ 'parent': 'parent',
165
+ 'rightOffset': 'rightOffset',
166
+ 'bottomOffset': 'bottomOffset',
167
+ 'alpha': 'alpha',
168
+ 'visible': 'visible',
169
+ 'text': 'text',
170
+ //'assetKey': 'function.setAssetKey', /todo
171
+ 'frame': 'frame',
172
+ 'blendMode': 'blendMode',
173
+ 'tint': 'tint',
174
+ 'action': 'events.onInputUp._bindings.0._listener', //todo
175
+ 'btnFrames.over': 'frames.over',
176
+ 'btnFrames.out': 'frames.out',
177
+ 'btnFrames.down': 'frames.down',
178
+ 'btnFrames.up': 'frames.up',
179
+ 'align': 'align',
180
+ 'filters': 'filters',
181
+ 'lineSpacing': 'lineSpacing',
182
+ 'maxWidth': 'maxWidth',
183
+ 'maxHeight': 'maxHeight',
184
+ 'lineHeight': 'style.lineHeight',
185
+ 'fontFamily': 'style.fontFamily',
186
+ 'fontSize': 'style.fontSize',
187
+ 'fontStyle': 'style.fontStyle',
188
+ 'fontWeight': 'style.fontWeight',
189
+ 'fill': 'style.fill',
190
+ 'fillCustomColors': 'fillCustomColors',
191
+ 'stroke': 'style.stroke',
192
+ 'strokeThickness': 'style.strokeThickness',
193
+ 'dropShadow': 'style.dropShadow',
194
+ 'dropShadowColor': 'style.dropShadowColor',
195
+ 'dropShadowBlur': 'style.dropShadowBlur',
196
+ 'dropShadowAngle': 'style.dropShadowAngle',
197
+ 'dropShadowDistance': 'style.dropShadowDistance',
198
+ 'wordWrap': 'style.wordWrap',
199
+ 'wordWrapWidth': 'style.wordWrapWidth',
200
+ 'leading ': 'style.leading',
201
+ 'textAlign ': 'style.align',
202
+ 'enabled': 'input.enabled',
203
+ 'cacheAsBitmap': 'cacheAsBitmap',
204
+
205
+ //baseObject functions
206
+ 'toGlobal': 'toGlobal'
207
+ };
208
+ }
209
+ }
210
+
211
+ module.exports = ModulesObjectsProxy;
@@ -1,119 +1,119 @@
1
- class ModulesObjectsStyles {
2
- constructor() {
3
- this.singleton = true;
4
-
5
- this._cache = {};
6
- this._tempObject = this.getInstance('BaseModel', {})
7
- this._tempTextObject = this.getInstance('Models.Text', {})
8
- }
9
-
10
- refresh(parent) {
11
- if (!parent)
12
- parent = this.getInstance('Controller').getWorld();
13
-
14
- let template = Urso.template.get();
15
- let styles = template.styles;
16
-
17
- this._globalResetStyles();
18
-
19
- //todo consider parent
20
-
21
- for (let [selector, style] of Object.entries(styles))
22
- this._apply(selector, style);
23
- }
24
-
25
- refreshByChangedClassName(className) {
26
- let template = Urso.template.get();
27
- let styles = template.styles;
28
-
29
- this._restoreDefaultsByCache(className);
30
-
31
- for (let [selector, style] of Object.entries(styles))
32
- if (selector.indexOf('.' + className) !== -1)
33
- this._apply(selector, style);
34
- }
35
-
36
- removeFromCache(object) {
37
- for (let selector in this._cache) {
38
- if (this._cache[selector][object._uid]) {
39
- delete this._cache[selector][object._uid];
40
-
41
- if (!Object.keys(this._cache[selector]).length)
42
- delete this._cache[selector];
43
- }
44
- }
45
-
46
- }
47
-
48
- _apply(selector, style) {
49
- let objectsArray = this.getInstance('Controller').findAll(selector);
50
-
51
- for (let object of objectsArray) {
52
- this._addObjectToCache(selector, object);
53
- object._styles[selector] = style;
54
-
55
- for (let [key, value] of Object.entries(style))
56
- if (typeof object._originalModel[key] === 'undefined')
57
- Urso.objects._safeSetValueToTarget(object, key, value);
58
- }
59
- }
60
-
61
- _addObjectToCache(selector, object) {
62
- if (!this._cache[selector])
63
- this._cache[selector] = {};
64
-
65
- this._cache[selector][object._uid] = object;
66
- }
67
-
68
- _globalResetStyles() {
69
- for (let [selector, selectorCache] of Object.entries(this._cache)) {
70
- for (let [uid, object] of Object.entries(selectorCache))
71
- this._removeSelectorStyles(object, selector);
72
-
73
- delete this._cache[selector];
74
- }
75
- }
76
-
77
- _restoreDefaultsByCache(className) {
78
- for (let [selector, selectorCache] of Object.entries(this._cache))
79
- if (selector.indexOf('.' + className) !== -1) {
80
- for (let [uid, object] of Object.entries(selectorCache))
81
- this._removeSelectorStyles(object, selector);
82
-
83
- delete this._cache[selector];
84
- }
85
- }
86
-
87
- _removeSelectorStyles(object, selector) {
88
- delete object._styles[selector];
89
- let template = Urso.template.get();
90
- let styles = template.styles[selector];
91
-
92
- if(!styles){
93
- return;
94
- }
95
-
96
- for (let [key, value] of Object.entries(styles)) {
97
- this._restoreValueByKey(key, object);
98
- }
99
-
100
- }
101
-
102
- _restoreValueByKey(key, object) {
103
- //check own
104
- if (object._originalModel[key])
105
- return;
106
-
107
- const tempObject = (object.type === Urso.types.objects.TEXT) ? this._tempTextObject : this._tempObject;
108
-
109
- //restore defaults
110
- Urso.objects._safeSetValueToTarget(object, key, tempObject[key]);
111
-
112
- //check other styles
113
- for (let [selector, style] of Object.entries(object._styles))
114
- if (typeof style[key] !== 'undefined')
115
- Urso.objects._safeSetValueToTarget(object, key, style[key]);
116
- }
117
- }
118
-
119
- module.exports = ModulesObjectsStyles;
1
+ class ModulesObjectsStyles {
2
+ constructor() {
3
+ this.singleton = true;
4
+
5
+ this._cache = {};
6
+ this._tempObject = this.getInstance('BaseModel', {})
7
+ this._tempTextObject = this.getInstance('Models.Text', {})
8
+ }
9
+
10
+ refresh(parent) {
11
+ if (!parent)
12
+ parent = this.getInstance('Controller').getWorld();
13
+
14
+ let template = Urso.template.get();
15
+ let styles = template.styles;
16
+
17
+ this._globalResetStyles();
18
+
19
+ //todo consider parent
20
+
21
+ for (let [selector, style] of Object.entries(styles))
22
+ this._apply(selector, style);
23
+ }
24
+
25
+ refreshByChangedClassName(className) {
26
+ let template = Urso.template.get();
27
+ let styles = template.styles;
28
+
29
+ this._restoreDefaultsByCache(className);
30
+
31
+ for (let [selector, style] of Object.entries(styles))
32
+ if (selector.indexOf('.' + className) !== -1)
33
+ this._apply(selector, style);
34
+ }
35
+
36
+ removeFromCache(object) {
37
+ for (let selector in this._cache) {
38
+ if (this._cache[selector][object._uid]) {
39
+ delete this._cache[selector][object._uid];
40
+
41
+ if (!Object.keys(this._cache[selector]).length)
42
+ delete this._cache[selector];
43
+ }
44
+ }
45
+
46
+ }
47
+
48
+ _apply(selector, style) {
49
+ let objectsArray = this.getInstance('Controller').findAll(selector);
50
+
51
+ for (let object of objectsArray) {
52
+ this._addObjectToCache(selector, object);
53
+ object._styles[selector] = style;
54
+
55
+ for (let [key, value] of Object.entries(style))
56
+ if (typeof object._originalModel[key] === 'undefined')
57
+ Urso.objects._safeSetValueToTarget(object, key, value);
58
+ }
59
+ }
60
+
61
+ _addObjectToCache(selector, object) {
62
+ if (!this._cache[selector])
63
+ this._cache[selector] = {};
64
+
65
+ this._cache[selector][object._uid] = object;
66
+ }
67
+
68
+ _globalResetStyles() {
69
+ for (let [selector, selectorCache] of Object.entries(this._cache)) {
70
+ for (let [uid, object] of Object.entries(selectorCache))
71
+ this._removeSelectorStyles(object, selector);
72
+
73
+ delete this._cache[selector];
74
+ }
75
+ }
76
+
77
+ _restoreDefaultsByCache(className) {
78
+ for (let [selector, selectorCache] of Object.entries(this._cache))
79
+ if (selector.indexOf('.' + className) !== -1) {
80
+ for (let [uid, object] of Object.entries(selectorCache))
81
+ this._removeSelectorStyles(object, selector);
82
+
83
+ delete this._cache[selector];
84
+ }
85
+ }
86
+
87
+ _removeSelectorStyles(object, selector) {
88
+ delete object._styles[selector];
89
+ let template = Urso.template.get();
90
+ let styles = template.styles[selector];
91
+
92
+ if(!styles){
93
+ return;
94
+ }
95
+
96
+ for (let [key, value] of Object.entries(styles)) {
97
+ this._restoreValueByKey(key, object);
98
+ }
99
+
100
+ }
101
+
102
+ _restoreValueByKey(key, object) {
103
+ //check own
104
+ if (object._originalModel[key])
105
+ return;
106
+
107
+ const tempObject = (object.type === Urso.types.objects.TEXT) ? this._tempTextObject : this._tempObject;
108
+
109
+ //restore defaults
110
+ Urso.objects._safeSetValueToTarget(object, key, tempObject[key]);
111
+
112
+ //check other styles
113
+ for (let [selector, style] of Object.entries(object._styles))
114
+ if (typeof style[key] !== 'undefined')
115
+ Urso.objects._safeSetValueToTarget(object, key, style[key]);
116
+ }
117
+ }
118
+
119
+ module.exports = ModulesObjectsStyles;
@@ -1,4 +1,4 @@
1
- Urso.Core.Modules.Observer = {
2
- Controller: require('./controller.js'),
3
- Events: require('./events.js')
4
- };
1
+ Urso.Core.Modules.Observer = {
2
+ Controller: require('./controller.js'),
3
+ Events: require('./events.js')
4
+ };