@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,196 +1,196 @@
1
- class ModulesObjectsModelsSpine extends Urso.Core.Modules.Objects.BaseModel {
2
- constructor(params) {
3
- super(params);
4
-
5
- this.type = Urso.types.objects.SPINE;
6
- this._addBaseObject();
7
- }
8
-
9
- /**
10
- * setup params to object model
11
- * @param {Object} params
12
- */
13
- setupParams(params) {
14
- super.setupParams(params);
15
-
16
- this.assetKey = Urso.helper.recursiveGet('assetKey', params, false);
17
-
18
- this.animation = {
19
- timeScale: Urso.helper.recursiveGet('animation.timeScale', params, 1),
20
- name: Urso.helper.recursiveGet('animation.name', params, false),
21
- loop: Urso.helper.recursiveGet('animation.loop', params, false),
22
- onComplete: Urso.helper.recursiveGet('animation.onComplete', params, false)
23
- };
24
-
25
- params.animation = this.animation; //we redefine original property here
26
- }
27
-
28
- /**
29
- * play spine animation
30
- * @param {String} animationName
31
- * @param {Boolean} [loopFlag]
32
- * @param {Number} [track] - you can define track number for current animation
33
- */
34
- play(animationName, loopFlag = false, track = 0) {
35
- this._baseObject.state.setAnimation(track, animationName, loopFlag);
36
- }
37
-
38
- /**
39
- * play spine animation and execute function after animation completes
40
- * @param {String} animation - name of the animation to be played
41
- * @param {Function} func - function to be executed
42
- */
43
- playAndThen(animation, func) {
44
- this.playInSequenceAndThen([animation], func);
45
- }
46
-
47
- /**
48
- * play spine animations in sequence
49
- * @param {String[]} animations - names of the animations to be played
50
- */
51
- playInSequence(animations) {
52
- this.stop();
53
- const defaultTrack = 0;
54
- animations.forEach(e => this._baseObject.state.addAnimation(defaultTrack, e));
55
- }
56
-
57
- /**
58
- * play spine animations in sequence and execute function after last animation completes
59
- * @param {String[]} animations - names of the animations to be played
60
- * @param {Function} func - function to be executed
61
- */
62
- playInSequenceAndThen(animations, func) {
63
- let animationsLeft = animations.length;
64
- let removeSelf = () => { };
65
- let completer = {
66
- complete: () => {
67
- if (--animationsLeft === 0) {
68
- func();
69
- removeSelf();
70
- }
71
- }
72
- };
73
- removeSelf = () => this._baseObject.state.removeListener(completer);
74
- this._baseObject.state.addListener(completer);
75
- this.playInSequence(animations);
76
- }
77
-
78
- /**
79
- * stop track animation
80
- * @param {Number} [track] - you can define track number to stop
81
- */
82
- stopTrack(track) {
83
- this._baseObject.state.clearTrack(track);
84
- }
85
-
86
- /**
87
- * stop all animations
88
- */
89
- stop() {
90
- this._baseObject.state.clearTracks();
91
- }
92
-
93
- /**
94
- * reset all animations
95
- */
96
- reset() {
97
- this._baseObject.state.setEmptyAnimations();
98
- }
99
-
100
- /**
101
- * add object to spine slot
102
- * @param {String} slotName
103
- * @param {Object} object - created by engine object
104
- */
105
- addToSlot(slotName, object) {
106
- this._addToSlot(slotName, object, false);
107
- }
108
-
109
- /**
110
- * replace spine slot with new object
111
- * @param {String} slotName
112
- * @param {Object} object - created by engine object
113
- */
114
- replaceSlotWith(slotName, object) {
115
- this._addToSlot(slotName, object, true);
116
- }
117
-
118
- /**
119
- * set/update animation config
120
- * @param {*} config
121
- * @param {boolean} [noObjectCreate] dont use this flag out of core
122
- *
123
- * config keys:
124
- timeScale
125
- onComplete
126
- */
127
- setAnimationConfig(config = {}, noObjectCreate) {
128
- this.animation = {
129
- ...this.animation,
130
- ...config
131
- };
132
-
133
- /*if (config.timeScale)
134
- this._baseObject.state.timeScale = config.timeScale;*/ //deprecated - now we use getTimeScale getter
135
-
136
- if (config.onComplete) {
137
- if (this._baseObject.state.listeners.length !== 0) {
138
- Urso.logger.warn('ModulesObjectsModelsSpine setAnimationConfig warning: animation state listeners will be cleared');
139
- }
140
- this._baseObject.state.clearListeners();
141
- this._baseObject.state.addListener({ complete: this.animation.onComplete });
142
- }
143
- }
144
-
145
- /**
146
- * system function
147
- * add object to pixi tree
148
- */
149
- _addBaseObject() {
150
- let spineAsset = Urso.cache.getSpine(this.assetKey);
151
-
152
- if (!spineAsset)
153
- Urso.logger.error('ModulesObjectsModelsSpine assets error: no spine object ' + this.assetKey);
154
-
155
- this._baseObject = new PIXI.spine.Spine(spineAsset.spineData);
156
- //this._baseObject.state.timeScale = this.animation.timeScale;
157
- Object.defineProperty(this._baseObject.state, 'timeScale', { get: this.getTimeScale.bind(this) });
158
-
159
- if (this.animation.onComplete)
160
- this._baseObject.state.addListener({ complete: this.animation.onComplete });
161
-
162
- if (this.animation.name)
163
- this.play(this.animation.name, this.animation.loop);
164
- };
165
-
166
- _addToSlot(slotName, object, replaceSlotContents) {
167
- const spine = this._baseObject;
168
- const slotIndex = spine.spineData.slots.findIndex(({ name }) => name === slotName);
169
- const currentSlot = spine.slotContainers[slotIndex];
170
-
171
- if (currentSlot) {
172
- object._baseObject.scale.y = -1;
173
-
174
- Urso.objects.removeChild(object.parent, object, true);
175
-
176
- if (replaceSlotContents)
177
- currentSlot.removeChildren(); //todo check if its proxy and reset parent
178
-
179
- object.parent = this; //todo make removeChild for addedToSlotObjects
180
- currentSlot.addChild(object._baseObject);
181
- Urso.objects.refreshStyles();
182
- } else {
183
- Urso.logger.warn('ModulesObjectsModelsSpine _addToSlot error: no spine slot ' + slotName);
184
- }
185
- }
186
-
187
- /**
188
- * get animation timeScale
189
- * @returns Number
190
- */
191
- getTimeScale() {
192
- return Urso.scenes.timeScale * this.animation.timeScale;
193
- }
194
- }
195
-
196
- module.exports = ModulesObjectsModelsSpine;
1
+ class ModulesObjectsModelsSpine extends Urso.Core.Modules.Objects.BaseModel {
2
+ constructor(params) {
3
+ super(params);
4
+
5
+ this.type = Urso.types.objects.SPINE;
6
+ this._addBaseObject();
7
+ }
8
+
9
+ /**
10
+ * setup params to object model
11
+ * @param {Object} params
12
+ */
13
+ setupParams(params) {
14
+ super.setupParams(params);
15
+
16
+ this.assetKey = Urso.helper.recursiveGet('assetKey', params, false);
17
+
18
+ this.animation = {
19
+ timeScale: Urso.helper.recursiveGet('animation.timeScale', params, 1),
20
+ name: Urso.helper.recursiveGet('animation.name', params, false),
21
+ loop: Urso.helper.recursiveGet('animation.loop', params, false),
22
+ onComplete: Urso.helper.recursiveGet('animation.onComplete', params, false)
23
+ };
24
+
25
+ params.animation = this.animation; //we redefine original property here
26
+ }
27
+
28
+ /**
29
+ * play spine animation
30
+ * @param {String} animationName
31
+ * @param {Boolean} [loopFlag]
32
+ * @param {Number} [track] - you can define track number for current animation
33
+ */
34
+ play(animationName, loopFlag = false, track = 0) {
35
+ this._baseObject.state.setAnimation(track, animationName, loopFlag);
36
+ }
37
+
38
+ /**
39
+ * play spine animation and execute function after animation completes
40
+ * @param {String} animation - name of the animation to be played
41
+ * @param {Function} func - function to be executed
42
+ */
43
+ playAndThen(animation, func) {
44
+ this.playInSequenceAndThen([animation], func);
45
+ }
46
+
47
+ /**
48
+ * play spine animations in sequence
49
+ * @param {String[]} animations - names of the animations to be played
50
+ */
51
+ playInSequence(animations) {
52
+ this.stop();
53
+ const defaultTrack = 0;
54
+ animations.forEach(e => this._baseObject.state.addAnimation(defaultTrack, e));
55
+ }
56
+
57
+ /**
58
+ * play spine animations in sequence and execute function after last animation completes
59
+ * @param {String[]} animations - names of the animations to be played
60
+ * @param {Function} func - function to be executed
61
+ */
62
+ playInSequenceAndThen(animations, func) {
63
+ let animationsLeft = animations.length;
64
+ let removeSelf = () => { };
65
+ let completer = {
66
+ complete: () => {
67
+ if (--animationsLeft === 0) {
68
+ func();
69
+ removeSelf();
70
+ }
71
+ }
72
+ };
73
+ removeSelf = () => this._baseObject.state.removeListener(completer);
74
+ this._baseObject.state.addListener(completer);
75
+ this.playInSequence(animations);
76
+ }
77
+
78
+ /**
79
+ * stop track animation
80
+ * @param {Number} [track] - you can define track number to stop
81
+ */
82
+ stopTrack(track) {
83
+ this._baseObject.state.clearTrack(track);
84
+ }
85
+
86
+ /**
87
+ * stop all animations
88
+ */
89
+ stop() {
90
+ this._baseObject.state.clearTracks();
91
+ }
92
+
93
+ /**
94
+ * reset all animations
95
+ */
96
+ reset() {
97
+ this._baseObject.state.setEmptyAnimations();
98
+ }
99
+
100
+ /**
101
+ * add object to spine slot
102
+ * @param {String} slotName
103
+ * @param {Object} object - created by engine object
104
+ */
105
+ addToSlot(slotName, object) {
106
+ this._addToSlot(slotName, object, false);
107
+ }
108
+
109
+ /**
110
+ * replace spine slot with new object
111
+ * @param {String} slotName
112
+ * @param {Object} object - created by engine object
113
+ */
114
+ replaceSlotWith(slotName, object) {
115
+ this._addToSlot(slotName, object, true);
116
+ }
117
+
118
+ /**
119
+ * set/update animation config
120
+ * @param {*} config
121
+ * @param {boolean} [noObjectCreate] dont use this flag out of core
122
+ *
123
+ * config keys:
124
+ timeScale
125
+ onComplete
126
+ */
127
+ setAnimationConfig(config = {}, noObjectCreate) {
128
+ this.animation = {
129
+ ...this.animation,
130
+ ...config
131
+ };
132
+
133
+ /*if (config.timeScale)
134
+ this._baseObject.state.timeScale = config.timeScale;*/ //deprecated - now we use getTimeScale getter
135
+
136
+ if (config.onComplete) {
137
+ if (this._baseObject.state.listeners.length !== 0) {
138
+ Urso.logger.warn('ModulesObjectsModelsSpine setAnimationConfig warning: animation state listeners will be cleared');
139
+ }
140
+ this._baseObject.state.clearListeners();
141
+ this._baseObject.state.addListener({ complete: this.animation.onComplete });
142
+ }
143
+ }
144
+
145
+ /**
146
+ * system function
147
+ * add object to pixi tree
148
+ */
149
+ _addBaseObject() {
150
+ let spineAsset = Urso.cache.getSpine(this.assetKey);
151
+
152
+ if (!spineAsset)
153
+ Urso.logger.error('ModulesObjectsModelsSpine assets error: no spine object ' + this.assetKey);
154
+
155
+ this._baseObject = new PIXI.spine.Spine(spineAsset.spineData);
156
+ //this._baseObject.state.timeScale = this.animation.timeScale;
157
+ Object.defineProperty(this._baseObject.state, 'timeScale', { get: this.getTimeScale.bind(this) });
158
+
159
+ if (this.animation.onComplete)
160
+ this._baseObject.state.addListener({ complete: this.animation.onComplete });
161
+
162
+ if (this.animation.name)
163
+ this.play(this.animation.name, this.animation.loop);
164
+ };
165
+
166
+ _addToSlot(slotName, object, replaceSlotContents) {
167
+ const spine = this._baseObject;
168
+ const slotIndex = spine.spineData.slots.findIndex(({ name }) => name === slotName);
169
+ const currentSlot = spine.slotContainers[slotIndex];
170
+
171
+ if (currentSlot) {
172
+ object._baseObject.scale.y = -1;
173
+
174
+ Urso.objects.removeChild(object.parent, object, true);
175
+
176
+ if (replaceSlotContents)
177
+ currentSlot.removeChildren(); //todo check if its proxy and reset parent
178
+
179
+ object.parent = this; //todo make removeChild for addedToSlotObjects
180
+ currentSlot.addChild(object._baseObject);
181
+ Urso.objects.refreshStyles();
182
+ } else {
183
+ Urso.logger.warn('ModulesObjectsModelsSpine _addToSlot error: no spine slot ' + slotName);
184
+ }
185
+ }
186
+
187
+ /**
188
+ * get animation timeScale
189
+ * @returns Number
190
+ */
191
+ getTimeScale() {
192
+ return Urso.scenes.timeScale * this.animation.timeScale;
193
+ }
194
+ }
195
+
196
+ module.exports = ModulesObjectsModelsSpine;
@@ -1,59 +1,59 @@
1
- class ModulesObjectsModelsText extends Urso.Core.Modules.Objects.BaseModel {
2
- constructor(params) {
3
- super(params);
4
-
5
- this.type = Urso.types.objects.TEXT;
6
- this._addBaseObject();
7
- }
8
-
9
- setupParams(params) {
10
- super.setupParams(params);
11
-
12
- this.text = Urso.helper.recursiveGet('text', params, false);
13
- this.localeId = Urso.helper.recursiveGet('localeId', params, false); //you can use this instead text for localization
14
-
15
- this.localeVariables = Urso.helper.recursiveGet('localeVariables', params, {}); //optional variables for localization by localeId
16
-
17
- this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
18
- this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
19
- this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
20
- this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
21
- this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
22
- this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
23
- this.fillCustomColors = Urso.helper.recursiveGet('fillCustomColors', params, false); //or array [{position:12,color:'#000000'},...]
24
- this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
25
- this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
26
- this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
27
- this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
28
- this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
29
- this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
30
- this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
31
- this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
32
- this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100);
33
- this.leading = Urso.helper.recursiveGet('leading', params, 0);
34
- this.textAlign = Urso.helper.recursiveGet('textAlign', params, 'left');
35
- }
36
-
37
- _addBaseObject() {
38
- if (this.localeId)
39
- this._originalModel.text = this.text = Urso.i18n.get(this.localeId, this.localeVariables);
40
-
41
- const styles = { fontFamily: this.fontFamily, leading: this.leading, align: this.textAlign }
42
- this._baseObject = new PIXI.Text(this.text, styles);
43
-
44
- if (this.fillCustomColors) {
45
- this._baseObject.fillCustomColors = this.fillCustomColors;
46
- }
47
- };
48
-
49
- _newLocaleHandler() {
50
- this.text = this._baseObject.text = Urso.i18n.get(this.localeId, this.localeVariables);
51
- }
52
-
53
- _subscribeOnce() {
54
- if (this.localeId)
55
- this.addListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
56
- }
57
- }
58
-
59
- module.exports = ModulesObjectsModelsText;
1
+ class ModulesObjectsModelsText extends Urso.Core.Modules.Objects.BaseModel {
2
+ constructor(params) {
3
+ super(params);
4
+
5
+ this.type = Urso.types.objects.TEXT;
6
+ this._addBaseObject();
7
+ }
8
+
9
+ setupParams(params) {
10
+ super.setupParams(params);
11
+
12
+ this.text = Urso.helper.recursiveGet('text', params, false);
13
+ this.localeId = Urso.helper.recursiveGet('localeId', params, false); //you can use this instead text for localization
14
+
15
+ this.localeVariables = Urso.helper.recursiveGet('localeVariables', params, {}); //optional variables for localization by localeId
16
+
17
+ this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
18
+ this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
19
+ this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
20
+ this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
21
+ this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
22
+ this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
23
+ this.fillCustomColors = Urso.helper.recursiveGet('fillCustomColors', params, false); //or array [{position:12,color:'#000000'},...]
24
+ this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
25
+ this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
26
+ this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
27
+ this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
28
+ this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
29
+ this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
30
+ this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
31
+ this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
32
+ this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100);
33
+ this.leading = Urso.helper.recursiveGet('leading', params, 0);
34
+ this.textAlign = Urso.helper.recursiveGet('textAlign', params, 'left');
35
+ }
36
+
37
+ _addBaseObject() {
38
+ if (this.localeId)
39
+ this._originalModel.text = this.text = Urso.i18n.get(this.localeId, this.localeVariables);
40
+
41
+ const styles = { fontFamily: this.fontFamily, leading: this.leading, align: this.textAlign }
42
+ this._baseObject = new PIXI.Text(this.text, styles);
43
+
44
+ if (this.fillCustomColors) {
45
+ this._baseObject.fillCustomColors = this.fillCustomColors;
46
+ }
47
+ };
48
+
49
+ _newLocaleHandler() {
50
+ this.text = this._baseObject.text = Urso.i18n.get(this.localeId, this.localeVariables);
51
+ }
52
+
53
+ _subscribeOnce() {
54
+ if (this.localeId)
55
+ this.addListener(Urso.events.MODULES_I18N_NEW_LOCALE_WAS_SET, this._newLocaleHandler.bind(this));
56
+ }
57
+ }
58
+
59
+ module.exports = ModulesObjectsModelsText;
@@ -1,66 +1,66 @@
1
- class ModulesObjectsModelsTextInput extends Urso.Core.Modules.Objects.BaseModel {
2
- constructor(params) {
3
- super(params);
4
-
5
- this.type = Urso.types.objects.TEXTINPUT;
6
- this.text = '';
7
- this._addBaseObject();
8
- this._setRestrictedSymbosl();
9
- }
10
-
11
- setupParams(params) {
12
- super.setupParams(params);
13
-
14
- this.input = Urso.helper.recursiveGet('input', params, false);
15
- this.box = Urso.helper.recursiveGet('box', params, false);
16
- this.numbersOnly = Urso.helper.recursiveGet('numbersOnly', params, false);
17
- this.allowedSymbols = Urso.helper.recursiveGet('allowedSymbols', params, false);
18
- //this.substituteText = Urso.helper.recursiveGet('substituteText', params, false); //todo remove this string
19
- this.maxLength = Urso.helper.recursiveGet('maxLength', params, false);
20
- }
21
-
22
- restrictInput(allowedSymbols) {
23
- this._baseObject.restrict = allowedSymbols;
24
- }
25
-
26
- disable(){
27
- this._baseObject.disabled = true
28
- }
29
-
30
- enable(){
31
- this._baseObject.disabled = false
32
- }
33
-
34
- _setRestrictedSymbosl() {
35
- if (this.numbersOnly) {
36
- const regex = new RegExp('^[0-9]*');
37
- this.restrictInput(regex);
38
- } else if (this.allowedSymbols) {
39
- this.restrictInput(this.allowedSymbols);
40
- }
41
- }
42
-
43
- _onBlur(){
44
- const data = {name: this.name, class: this.class, id: this.id, text: this.text};
45
- this.emit(Urso.events.MODULES_OBJECTS_TEXTINPUT_BLUR, data);
46
- }
47
-
48
- _onInput() {
49
- this.text = this._baseObject.text;
50
- const data = {name: this.name, class: this.class, id: this.id, text: this.text};
51
- this.emit(Urso.events.MODULES_OBJECTS_TEXTINPUT_INPUT, data);
52
- }
53
-
54
- _addBaseObject() {
55
- this._baseObject = new PIXI.TextInput({ input: this.input, box: this.box });
56
- //this._baseObject.substituteText = this.substituteText; //todo remove this string
57
-
58
- if(this.maxLength)
59
- this._baseObject.maxLength = this.maxLength
60
-
61
- this._baseObject.on('blur', this._onBlur.bind(this))
62
- this._baseObject.on('input', this._onInput.bind(this))
63
- };
64
- }
65
-
66
- module.exports = ModulesObjectsModelsTextInput;
1
+ class ModulesObjectsModelsTextInput extends Urso.Core.Modules.Objects.BaseModel {
2
+ constructor(params) {
3
+ super(params);
4
+
5
+ this.type = Urso.types.objects.TEXTINPUT;
6
+ this.text = '';
7
+ this._addBaseObject();
8
+ this._setRestrictedSymbosl();
9
+ }
10
+
11
+ setupParams(params) {
12
+ super.setupParams(params);
13
+
14
+ this.input = Urso.helper.recursiveGet('input', params, false);
15
+ this.box = Urso.helper.recursiveGet('box', params, false);
16
+ this.numbersOnly = Urso.helper.recursiveGet('numbersOnly', params, false);
17
+ this.allowedSymbols = Urso.helper.recursiveGet('allowedSymbols', params, false);
18
+ //this.substituteText = Urso.helper.recursiveGet('substituteText', params, false); //todo remove this string
19
+ this.maxLength = Urso.helper.recursiveGet('maxLength', params, false);
20
+ }
21
+
22
+ restrictInput(allowedSymbols) {
23
+ this._baseObject.restrict = allowedSymbols;
24
+ }
25
+
26
+ disable(){
27
+ this._baseObject.disabled = true
28
+ }
29
+
30
+ enable(){
31
+ this._baseObject.disabled = false
32
+ }
33
+
34
+ _setRestrictedSymbosl() {
35
+ if (this.numbersOnly) {
36
+ const regex = new RegExp('^[0-9]*');
37
+ this.restrictInput(regex);
38
+ } else if (this.allowedSymbols) {
39
+ this.restrictInput(this.allowedSymbols);
40
+ }
41
+ }
42
+
43
+ _onBlur(){
44
+ const data = {name: this.name, class: this.class, id: this.id, text: this.text};
45
+ this.emit(Urso.events.MODULES_OBJECTS_TEXTINPUT_BLUR, data);
46
+ }
47
+
48
+ _onInput() {
49
+ this.text = this._baseObject.text;
50
+ const data = {name: this.name, class: this.class, id: this.id, text: this.text};
51
+ this.emit(Urso.events.MODULES_OBJECTS_TEXTINPUT_INPUT, data);
52
+ }
53
+
54
+ _addBaseObject() {
55
+ this._baseObject = new PIXI.TextInput({ input: this.input, box: this.box });
56
+ //this._baseObject.substituteText = this.substituteText; //todo remove this string
57
+
58
+ if(this.maxLength)
59
+ this._baseObject.maxLength = this.maxLength
60
+
61
+ this._baseObject.on('blur', this._onBlur.bind(this))
62
+ this._baseObject.on('input', this._onInput.bind(this))
63
+ };
64
+ }
65
+
66
+ module.exports = ModulesObjectsModelsTextInput;