@urso/core 0.3.10 → 0.4.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 (144) hide show
  1. package/.babelrc +11 -11
  2. package/README.md +10 -10
  3. package/build/js/index.js +1 -1
  4. package/build/js/index.js.LICENSE.txt +29 -29
  5. package/package.json +51 -51
  6. package/src/js/app.js +77 -77
  7. package/src/js/components/_info.js +8 -8
  8. package/src/js/components/base/_info.js +3 -3
  9. package/src/js/components/base/controller.js +78 -78
  10. package/src/js/components/debug/_info.js +7 -7
  11. package/src/js/components/debug/controller.js +38 -38
  12. package/src/js/components/debug/coords.js +23 -23
  13. package/src/js/components/debug/fps.js +34 -34
  14. package/src/js/components/debug/template.js +55 -55
  15. package/src/js/components/debug/timescale.js +60 -60
  16. package/src/js/components/deviceRotate/_info.js +3 -3
  17. package/src/js/components/deviceRotate/controller.js +86 -86
  18. package/src/js/components/fullscreen/_info.js +6 -6
  19. package/src/js/components/fullscreen/android.js +104 -104
  20. package/src/js/components/fullscreen/controller.js +64 -64
  21. package/src/js/components/fullscreen/desktop.js +49 -49
  22. package/src/js/components/fullscreen/ios.js +111 -111
  23. package/src/js/components/loader/_info.js +4 -4
  24. package/src/js/components/loader/controller.js +66 -66
  25. package/src/js/components/loader/template.js +70 -70
  26. package/src/js/components/soundInitialPopup/_info.js +3 -3
  27. package/src/js/components/soundInitialPopup/controller.js +42 -42
  28. package/src/js/components/soundInitialPopup/template.js +109 -109
  29. package/src/js/components/stateDriven/_info.js +3 -3
  30. package/src/js/components/stateDriven/controller.js +118 -118
  31. package/src/js/config/load.js +5 -5
  32. package/src/js/config/main.js +10 -10
  33. package/src/js/extra/_info.js +22 -22
  34. package/src/js/extra/browserEvents.js +38 -38
  35. package/src/js/extra/setTimeout.js +7 -7
  36. package/src/js/index.js +8 -8
  37. package/src/js/lib/_info.js +13 -13
  38. package/src/js/lib/cache.js +105 -105
  39. package/src/js/lib/composition.js +85 -89
  40. package/src/js/lib/device.js +1286 -1276
  41. package/src/js/lib/helper.js +539 -539
  42. package/src/js/lib/loader.js +127 -127
  43. package/src/js/lib/localData.js +15 -15
  44. package/src/js/lib/logger.js +22 -22
  45. package/src/js/lib/math.js +35 -35
  46. package/src/js/lib/objectPool.js +54 -54
  47. package/src/js/lib/time.js +18 -18
  48. package/src/js/lib/tween.js +147 -147
  49. package/src/js/modules/_info.js +11 -11
  50. package/src/js/modules/assets/_info.js +7 -7
  51. package/src/js/modules/assets/baseModel.js +18 -18
  52. package/src/js/modules/assets/config.js +37 -35
  53. package/src/js/modules/assets/controller.js +46 -39
  54. package/src/js/modules/assets/models/_info.js +11 -11
  55. package/src/js/modules/assets/models/atlas.js +8 -8
  56. package/src/js/modules/assets/models/audiosprite.js +27 -27
  57. package/src/js/modules/assets/models/bitmapFont.js +8 -8
  58. package/src/js/modules/assets/models/container.js +16 -16
  59. package/src/js/modules/assets/models/font.js +8 -8
  60. package/src/js/modules/assets/models/image.js +13 -13
  61. package/src/js/modules/assets/models/json.js +8 -8
  62. package/src/js/modules/assets/models/sound.js +14 -14
  63. package/src/js/modules/assets/models/spine.js +14 -14
  64. package/src/js/modules/assets/service.js +356 -353
  65. package/src/js/modules/instances/_info.js +3 -3
  66. package/src/js/modules/instances/controller.js +251 -219
  67. package/src/js/modules/logic/_info.js +4 -4
  68. package/src/js/modules/logic/config/_info.js +2 -2
  69. package/src/js/modules/logic/config/sounds.js +23 -23
  70. package/src/js/modules/logic/controller.js +48 -48
  71. package/src/js/modules/logic/sounds.js +96 -96
  72. package/src/js/modules/objects/_info.js +11 -11
  73. package/src/js/modules/objects/baseModel.js +175 -161
  74. package/src/js/modules/objects/cache.js +99 -99
  75. package/src/js/modules/objects/controller.js +131 -121
  76. package/src/js/modules/objects/create.js +234 -230
  77. package/src/js/modules/objects/find.js +140 -140
  78. package/src/js/modules/objects/models/_info.js +24 -24
  79. package/src/js/modules/objects/models/atlasImage.js +50 -50
  80. package/src/js/modules/objects/models/bitmapText.js +23 -23
  81. package/src/js/modules/objects/models/button.js +184 -184
  82. package/src/js/modules/objects/models/buttonComposite.js +35 -35
  83. package/src/js/modules/objects/models/checkbox.js +96 -96
  84. package/src/js/modules/objects/models/collection.js +54 -54
  85. package/src/js/modules/objects/models/component.js +44 -44
  86. package/src/js/modules/objects/models/container.js +19 -19
  87. package/src/js/modules/objects/models/emitter.js +54 -54
  88. package/src/js/modules/objects/models/graphics.js +38 -38
  89. package/src/js/modules/objects/models/group.js +19 -19
  90. package/src/js/modules/objects/models/hitArea.js +104 -104
  91. package/src/js/modules/objects/models/image.js +34 -34
  92. package/src/js/modules/objects/models/imagesAnimation.js +113 -113
  93. package/src/js/modules/objects/models/mask.js +38 -38
  94. package/src/js/modules/objects/models/scrollbox.js +61 -61
  95. package/src/js/modules/objects/models/slider.js +223 -223
  96. package/src/js/modules/objects/models/spine.js +138 -89
  97. package/src/js/modules/objects/models/text.js +38 -38
  98. package/src/js/modules/objects/models/textInput.js +66 -66
  99. package/src/js/modules/objects/models/toggle.js +178 -178
  100. package/src/js/modules/objects/models/world.js +19 -19
  101. package/src/js/modules/objects/propertyAdapter.js +421 -421
  102. package/src/js/modules/objects/proxy.js +182 -182
  103. package/src/js/modules/objects/styles.js +116 -116
  104. package/src/js/modules/observer/_info.js +4 -4
  105. package/src/js/modules/observer/controller.js +99 -99
  106. package/src/js/modules/observer/events.js +38 -38
  107. package/src/js/modules/scenes/_info.js +8 -8
  108. package/src/js/modules/scenes/controller.js +46 -42
  109. package/src/js/modules/scenes/model.js +35 -35
  110. package/src/js/modules/scenes/pixiWrapper.js +202 -202
  111. package/src/js/modules/scenes/resolutions.js +172 -176
  112. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  113. package/src/js/modules/scenes/service.js +105 -92
  114. package/src/js/modules/soundManager/_info.js +3 -3
  115. package/src/js/modules/soundManager/controller.js +99 -99
  116. package/src/js/modules/soundManager/soundSprite.js +202 -202
  117. package/src/js/modules/statesManager/_info.js +12 -12
  118. package/src/js/modules/statesManager/action.js +60 -60
  119. package/src/js/modules/statesManager/actions/_info.js +3 -3
  120. package/src/js/modules/statesManager/all.js +23 -23
  121. package/src/js/modules/statesManager/configStates.js +71 -71
  122. package/src/js/modules/statesManager/controller.js +170 -170
  123. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  124. package/src/js/modules/statesManager/helper.js +27 -27
  125. package/src/js/modules/statesManager/race.js +75 -75
  126. package/src/js/modules/statesManager/sequence.js +47 -47
  127. package/src/js/modules/template/_info.js +6 -6
  128. package/src/js/modules/template/controller.js +28 -28
  129. package/src/js/modules/template/model.js +11 -11
  130. package/src/js/modules/template/service.js +137 -125
  131. package/src/js/modules/template/types.js +44 -44
  132. package/src/js/modules/transport/_info.js +8 -8
  133. package/src/js/modules/transport/baseConnectionType.js +24 -24
  134. package/src/js/modules/transport/config.js +13 -13
  135. package/src/js/modules/transport/connectionTypes/_info.js +3 -3
  136. package/src/js/modules/transport/connectionTypes/websocket.js +74 -74
  137. package/src/js/modules/transport/connectionTypes/xhr.js +44 -44
  138. package/src/js/modules/transport/controller.js +48 -48
  139. package/src/js/modules/transport/decorator.js +17 -17
  140. package/src/js/modules/transport/service.js +153 -153
  141. package/src/js/templates/_info.js +4 -4
  142. package/src/js/templates/groups/_info.js +1 -1
  143. package/src/js/templates/scenes/_info.js +1 -1
  144. package/webpack.config.js +47 -47
@@ -1,89 +1,138 @@
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
- setupParams(params) {
10
- super.setupParams(params);
11
-
12
- this.assetKey = Urso.helper.recursiveGet('assetKey', params, false);
13
-
14
- this.animation = {
15
- timeScale: Urso.helper.recursiveGet('animation.timeScale', params, 1),
16
- name: Urso.helper.recursiveGet('animation.name', params, false),
17
- loop: Urso.helper.recursiveGet('animation.loop', params, false),
18
- onComplete: Urso.helper.recursiveGet('animation.onComplete', params, false)
19
- };
20
-
21
- params.animation = this.animation; //we redefine original property here
22
- }
23
-
24
- play(animationName, loopFlag = false, track = 0) {
25
- this._baseObject.state.setAnimation(track, animationName, loopFlag);
26
- }
27
-
28
- addToSlot(object, slotName) {
29
- const spine = this._baseObject;
30
- const slotIndex = spine.spineData.slots.findIndex(({ name }) => name === slotName);
31
- const currentSlot = spine.slotContainers[slotIndex];
32
-
33
- if (currentSlot) {
34
- object._baseObject.scale.y = -1;
35
-
36
- Urso.objects.removeChild(object.parent, object)
37
- currentSlot.addChild(object._baseObject);
38
- } else {
39
- Urso.logger.warn('ModulesObjectsModelsSpine addToSlot error: no spine slot ' + slotName);
40
- }
41
- }
42
-
43
- /**
44
- *
45
- * @param {*} config
46
- * @param {boolean} [noObjectCreate] dont use this flag out of core
47
- *
48
- * config keys:
49
- timeScale
50
- onComplete
51
- */
52
- setAnimationConfig(config = {}, noObjectCreate) {
53
- this.animation = {
54
- ...this.animation,
55
- ...config
56
- };
57
-
58
- /*if (config.timeScale)
59
- this._baseObject.state.timeScale = config.timeScale;*/ //deprecated - now we use getTimeScale getter
60
-
61
- if (config.onComplete) {
62
- this._baseObject.state.clearListeners();
63
- this._baseObject.state.addListener({ complete: this.animation.onComplete });
64
- }
65
- }
66
-
67
- _addBaseObject() {
68
- let spineAsset = Urso.cache.getSpine(this.assetKey);
69
-
70
- if (!spineAsset)
71
- Urso.logger.error('ModulesObjectsModelsSpine assets error: no spine object ' + this.assetKey);
72
-
73
- this._baseObject = new PIXI.spine.Spine(spineAsset.spineData);
74
- //this._baseObject.state.timeScale = this.animation.timeScale;
75
- Object.defineProperty(this._baseObject.state, 'timeScale', { get: this.getTimeScale.bind(this) });
76
-
77
- if (this.animation.onComplete)
78
- this._baseObject.state.addListener({ complete: this.animation.onComplete });
79
-
80
- if (this.animation.name)
81
- this.play(this.animation.name, this.animation.loop);
82
- };
83
-
84
- getTimeScale() {
85
- return Urso.scenes.timeScale * this.animation.timeScale;
86
- }
87
- }
88
-
89
- 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
+ * stop track animation or all animations
40
+ * @param {Number} [track] - you can define track number to stop
41
+ */
42
+ stop(track) {
43
+ if (typeof track !== 'undefined')
44
+ this._baseObject.state.clearTrack(track);
45
+ else
46
+ this._baseObject.state.clearTracks();
47
+ }
48
+
49
+ /**
50
+ * add object to spine slot
51
+ * @param {Object} object - created by engine object
52
+ * @param {String} slotName
53
+ * @param {Boolean} replaceSlotContent - will replace other slot content
54
+ */
55
+ addToSlot(object, slotName, replaceSlotContent) {
56
+ const spine = this._baseObject;
57
+ const slotIndex = spine.spineData.slots.findIndex(({ name }) => name === slotName);
58
+ const currentSlot = spine.slotContainers[slotIndex];
59
+
60
+ if (currentSlot) {
61
+ object._baseObject.scale.y = -1;
62
+
63
+ Urso.objects.removeChild(object.parent, object);
64
+
65
+ if (replaceSlotContent)
66
+ currentSlot.removeChildren(); //todo check if its proxy and reset parent
67
+
68
+ //object.parent = this; //todo && make removeChild
69
+ currentSlot.addChild(object._baseObject);
70
+ } else {
71
+ Urso.logger.warn('ModulesObjectsModelsSpine addToSlot error: no spine slot ' + slotName);
72
+ }
73
+ }
74
+
75
+ /**
76
+ * replace spine slot with new object
77
+ * @param {Object} object - created by engine object
78
+ * @param {String} slotName
79
+ */
80
+ replaceSlotWith(object, slotName) {
81
+ this.addToSlot(object, slotName, true);
82
+ }
83
+
84
+ /**
85
+ * set/update animation config
86
+ * @param {*} config
87
+ * @param {boolean} [noObjectCreate] dont use this flag out of core
88
+ *
89
+ * config keys:
90
+ timeScale
91
+ onComplete
92
+ */
93
+ setAnimationConfig(config = {}, noObjectCreate) {
94
+ this.animation = {
95
+ ...this.animation,
96
+ ...config
97
+ };
98
+
99
+ /*if (config.timeScale)
100
+ this._baseObject.state.timeScale = config.timeScale;*/ //deprecated - now we use getTimeScale getter
101
+
102
+ if (config.onComplete) {
103
+ this._baseObject.state.clearListeners();
104
+ this._baseObject.state.addListener({ complete: this.animation.onComplete });
105
+ }
106
+ }
107
+
108
+ /**
109
+ * system function
110
+ * add object to pixi tree
111
+ */
112
+ _addBaseObject() {
113
+ let spineAsset = Urso.cache.getSpine(this.assetKey);
114
+
115
+ if (!spineAsset)
116
+ Urso.logger.error('ModulesObjectsModelsSpine assets error: no spine object ' + this.assetKey);
117
+
118
+ this._baseObject = new PIXI.spine.Spine(spineAsset.spineData);
119
+ //this._baseObject.state.timeScale = this.animation.timeScale;
120
+ Object.defineProperty(this._baseObject.state, 'timeScale', { get: this.getTimeScale.bind(this) });
121
+
122
+ if (this.animation.onComplete)
123
+ this._baseObject.state.addListener({ complete: this.animation.onComplete });
124
+
125
+ if (this.animation.name)
126
+ this.play(this.animation.name, this.animation.loop);
127
+ };
128
+
129
+ /**
130
+ * get animation timeScale
131
+ * @returns Number
132
+ */
133
+ getTimeScale() {
134
+ return Urso.scenes.timeScale * this.animation.timeScale;
135
+ }
136
+ }
137
+
138
+ module.exports = ModulesObjectsModelsSpine;
@@ -1,38 +1,38 @@
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
-
14
- this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
15
- this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
16
- this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
17
- this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
18
- this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
19
- this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
20
- this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
21
- this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
22
- this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
23
- this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
24
- this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
25
- this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
26
- this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
27
- this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
28
- this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100)
29
-
30
- this.maxWidth = Urso.helper.recursiveGet('maxWidth', params, false); //todo
31
- }
32
-
33
- _addBaseObject() {
34
- this._baseObject = new PIXI.Text(this.text);
35
- };
36
- }
37
-
38
- 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
+
14
+ this.lineHeight = Urso.helper.recursiveGet('lineHeight', params, 0);
15
+ this.fontFamily = Urso.helper.recursiveGet('fontFamily', params, 'Arial');
16
+ this.fontSize = Urso.helper.recursiveGet('fontSize', params, false);
17
+ this.fontStyle = Urso.helper.recursiveGet('fontStyle', params, false); //'italic'
18
+ this.fontWeight = Urso.helper.recursiveGet('fontWeight', params, false); // 'bold'
19
+ this.fill = Urso.helper.recursiveGet('fill', params, '#000000'); // gradient ['#ffffff', '#00ff99']
20
+ this.stroke = Urso.helper.recursiveGet('stroke', params, 'black');
21
+ this.strokeThickness = Urso.helper.recursiveGet('strokeThickness', params, 0);
22
+ this.dropShadow = Urso.helper.recursiveGet('dropShadow', params, false);
23
+ this.dropShadowColor = Urso.helper.recursiveGet('dropShadowColor', params, '#000000');
24
+ this.dropShadowBlur = Urso.helper.recursiveGet('dropShadowBlur', params, 0);
25
+ this.dropShadowAngle = Urso.helper.recursiveGet('dropShadowAngle', params, 0); //Math.PI / 6
26
+ this.dropShadowDistance = Urso.helper.recursiveGet('dropShadowBlur', params, 0); // 6
27
+ this.wordWrap = Urso.helper.recursiveGet('wordWrap', params, false);
28
+ this.wordWrapWidth = Urso.helper.recursiveGet('wordWrapWidth', params, 100)
29
+
30
+ this.maxWidth = Urso.helper.recursiveGet('maxWidth', params, false); //todo
31
+ }
32
+
33
+ _addBaseObject() {
34
+ this._baseObject = new PIXI.Text(this.text);
35
+ };
36
+ }
37
+
38
+ 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);
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;
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);
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;
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;