@urso/core 0.7.92 → 0.7.93-dev

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 (133) hide show
  1. package/.babelrc +11 -11
  2. package/LICENSE +20 -20
  3. package/README.md +227 -227
  4. package/build/162.js/index.js +1 -0
  5. package/build/24.js/index.js +1 -0
  6. package/build/js/index.js +1 -1
  7. package/package.json +50 -50
  8. package/src/js/app.js +104 -104
  9. package/src/js/components/base/controller.js +78 -78
  10. package/src/js/components/debug/controller.js +38 -38
  11. package/src/js/components/debug/coords.js +23 -23
  12. package/src/js/components/debug/fps.js +36 -36
  13. package/src/js/components/debug/template.js +55 -55
  14. package/src/js/components/debug/timescale.js +60 -60
  15. package/src/js/components/deviceRotate/controller.js +95 -95
  16. package/src/js/components/editor/api.js +127 -127
  17. package/src/js/components/editor/controller.js +12 -12
  18. package/src/js/components/fullscreen/android.js +104 -104
  19. package/src/js/components/fullscreen/controller.js +76 -76
  20. package/src/js/components/fullscreen/desktop.js +49 -49
  21. package/src/js/components/fullscreen/ios.js +115 -115
  22. package/src/js/components/layersSwitcher/config.js +26 -26
  23. package/src/js/components/layersSwitcher/controller.js +36 -36
  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/controller.js +42 -42
  27. package/src/js/components/soundInitialPopup/template.js +109 -109
  28. package/src/js/components/stateDriven/controller.js +123 -123
  29. package/src/js/config/load.js +194 -194
  30. package/src/js/config/main.js +17 -17
  31. package/src/js/extra/browserEvents.js +57 -57
  32. package/src/js/extra/main.js +19 -19
  33. package/src/js/extra/pixiPatch.js +171 -171
  34. package/src/js/index.js +7 -7
  35. package/src/js/lib/cache.js +125 -125
  36. package/src/js/lib/composition.js +85 -85
  37. package/src/js/lib/device.js +1215 -1215
  38. package/src/js/lib/helper.js +678 -678
  39. package/src/js/lib/loader.js +211 -211
  40. package/src/js/lib/localData.js +28 -28
  41. package/src/js/lib/logger.js +69 -69
  42. package/src/js/lib/math.js +161 -161
  43. package/src/js/lib/objectPool.js +207 -207
  44. package/src/js/lib/time.js +18 -18
  45. package/src/js/lib/tween.js +152 -152
  46. package/src/js/modules/assets/baseModel.js +20 -20
  47. package/src/js/modules/assets/config.js +38 -38
  48. package/src/js/modules/assets/controller.js +65 -65
  49. package/src/js/modules/assets/models/atlas.js +18 -18
  50. package/src/js/modules/assets/models/audiosprite.js +28 -28
  51. package/src/js/modules/assets/models/bitmapFont.js +10 -10
  52. package/src/js/modules/assets/models/container.js +18 -18
  53. package/src/js/modules/assets/models/font.js +10 -10
  54. package/src/js/modules/assets/models/html.js +10 -10
  55. package/src/js/modules/assets/models/image.js +17 -17
  56. package/src/js/modules/assets/models/json.js +10 -10
  57. package/src/js/modules/assets/models/jsonAtlas.js +10 -10
  58. package/src/js/modules/assets/models/sound.js +16 -16
  59. package/src/js/modules/assets/models/spine.js +16 -16
  60. package/src/js/modules/assets/service.js +541 -541
  61. package/src/js/modules/i18n/config.js +17 -17
  62. package/src/js/modules/i18n/controller.js +71 -71
  63. package/src/js/modules/instances/controller.js +357 -357
  64. package/src/js/modules/logic/config/sounds.js +23 -23
  65. package/src/js/modules/logic/controller.js +52 -52
  66. package/src/js/modules/logic/main.js +8 -8
  67. package/src/js/modules/logic/sounds.js +103 -103
  68. package/src/js/modules/objects/baseModel.js +207 -207
  69. package/src/js/modules/objects/cache.js +99 -99
  70. package/src/js/modules/objects/config.js +9 -9
  71. package/src/js/modules/objects/controller.js +139 -139
  72. package/src/js/modules/objects/find.js +58 -58
  73. package/src/js/modules/objects/models/atlasImage.js +52 -52
  74. package/src/js/modules/objects/models/bitmapText.js +48 -48
  75. package/src/js/modules/objects/models/button.js +196 -196
  76. package/src/js/modules/objects/models/buttonComposite.js +37 -37
  77. package/src/js/modules/objects/models/checkbox.js +96 -96
  78. package/src/js/modules/objects/models/collection.js +54 -54
  79. package/src/js/modules/objects/models/component.js +48 -48
  80. package/src/js/modules/objects/models/container.js +21 -21
  81. package/src/js/modules/objects/models/dragContainer.js +664 -664
  82. package/src/js/modules/objects/models/emitter.js +69 -69
  83. package/src/js/modules/objects/models/emitterFx.js +114 -114
  84. package/src/js/modules/objects/models/graphics.js +40 -40
  85. package/src/js/modules/objects/models/group.js +21 -21
  86. package/src/js/modules/objects/models/hitArea.js +119 -119
  87. package/src/js/modules/objects/models/image.js +36 -36
  88. package/src/js/modules/objects/models/imagesAnimation.js +115 -115
  89. package/src/js/modules/objects/models/mask.js +40 -40
  90. package/src/js/modules/objects/models/nineSlicePlane.js +32 -32
  91. package/src/js/modules/objects/models/scrollbox.js +66 -66
  92. package/src/js/modules/objects/models/slider.js +352 -352
  93. package/src/js/modules/objects/models/spine.js +338 -338
  94. package/src/js/modules/objects/models/text.js +70 -70
  95. package/src/js/modules/objects/models/textInput.js +68 -68
  96. package/src/js/modules/objects/models/toggle.js +179 -179
  97. package/src/js/modules/objects/models/world.js +21 -21
  98. package/src/js/modules/objects/pool.js +68 -68
  99. package/src/js/modules/objects/propertyAdapter.js +588 -588
  100. package/src/js/modules/objects/proxy.js +298 -298
  101. package/src/js/modules/objects/selector.js +136 -136
  102. package/src/js/modules/objects/service.js +254 -254
  103. package/src/js/modules/objects/styles.js +210 -210
  104. package/src/js/modules/observer/controller.js +167 -167
  105. package/src/js/modules/observer/events.js +56 -56
  106. package/src/js/modules/scenes/controller.js +127 -127
  107. package/src/js/modules/scenes/model.js +28 -28
  108. package/src/js/modules/scenes/pixiWrapper.js +351 -351
  109. package/src/js/modules/scenes/resolutions.js +173 -173
  110. package/src/js/modules/scenes/resolutionsConfig.js +73 -73
  111. package/src/js/modules/scenes/service.js +146 -146
  112. package/src/js/modules/soundManager/controller.js +103 -103
  113. package/src/js/modules/soundManager/soundSprite.js +285 -285
  114. package/src/js/modules/statesManager/action.js +97 -97
  115. package/src/js/modules/statesManager/all.js +23 -23
  116. package/src/js/modules/statesManager/configStates.js +77 -77
  117. package/src/js/modules/statesManager/controller.js +218 -218
  118. package/src/js/modules/statesManager/functionsStorage.js +82 -82
  119. package/src/js/modules/statesManager/helper.js +27 -27
  120. package/src/js/modules/statesManager/race.js +91 -91
  121. package/src/js/modules/statesManager/sequence.js +48 -48
  122. package/src/js/modules/template/controller.js +28 -28
  123. package/src/js/modules/template/model.js +11 -11
  124. package/src/js/modules/template/service.js +137 -137
  125. package/src/js/modules/template/types.js +48 -48
  126. package/src/js/modules/transport/baseConnectionType.js +25 -25
  127. package/src/js/modules/transport/config.js +13 -13
  128. package/src/js/modules/transport/connectionTypes/websocket.js +76 -76
  129. package/src/js/modules/transport/connectionTypes/xhr.js +46 -46
  130. package/src/js/modules/transport/controller.js +48 -48
  131. package/src/js/modules/transport/decorator.js +17 -17
  132. package/src/js/modules/transport/service.js +150 -150
  133. package/webpack.config.js +47 -47
@@ -1,127 +1,127 @@
1
- class ComponentsEditorApi {
2
-
3
- constructor() {
4
-
5
- }
6
-
7
- //styles
8
- //TODO
9
- addStyle() {
10
- //TODO
11
- }
12
-
13
- getCurrentStyles() {
14
- const template = Urso.template.get();
15
- return template.styles;
16
- }
17
-
18
-
19
- //assets
20
-
21
- /**
22
- * returns types list and keys to create new asset
23
- * @returns { types, keys }
24
- */
25
- getAssetTypes() {
26
- const types = Urso.types.assets;
27
- return { types, keys: this._assetsKeys };
28
- }
29
-
30
- /**
31
- * get current assets list
32
- * @returns {Array} assets list
33
- */
34
- getCurrentAssets() {
35
- const template = Urso.template.get();
36
- return template.assets;
37
- }
38
-
39
- /**
40
- * add new asset into game
41
- * @param {String} assetModel
42
- * @param {Function} callback
43
- */
44
- addAsset(assetModel, callback) {
45
- Urso.assets.preload([assetModel], callback);
46
- }
47
-
48
-
49
- //objects
50
-
51
- /**
52
- * get current objects list
53
- * @returns {Array} objects list
54
- */
55
- getCurrentObjects() {
56
- const template = Urso.template.get();
57
- return template.objects;
58
- }
59
-
60
- /**
61
- * returns types list and keys to create new object
62
- * @returns { types, keys }
63
- */
64
- getObjectsTypes() {
65
- const types = Urso.types.objects;
66
- return { types, keys: this._objectsKeys };
67
- }
68
-
69
- /**
70
- * add new object into game
71
- * @param {Object} objectModel
72
- * @param {Object} parent
73
- */
74
- addObject(objectModel, parent) {
75
- Urso.objects.create(objectModel, parent);
76
- }
77
-
78
- //settings
79
- editObject(id, key, value) {
80
-
81
- }
82
-
83
- //////////////// sys
84
-
85
- _assetsKeys = {
86
- ATLAS: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
87
- BITMAPFONT: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
88
- CONTAINER: [{ name: 'key', type: 'text' }],
89
- FONT: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
90
- IMAGE: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
91
- JSON: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
92
- SPINE: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
93
- }
94
-
95
- _commonObjectsKeys = [
96
- { name: 'id', type: 'text' },
97
- { name: 'name', type: 'text' },
98
- { name: 'class', type: 'text' },
99
- { name: 'x', type: 'number' },
100
- { name: 'y', type: 'number' },
101
- { name: 'z', type: 'number' },
102
- { name: 'anchorX', type: 'number', range: [-1, 1] },
103
- { name: 'anchorY', type: 'number', range: [-1, 1] },
104
- { name: 'scaleX', type: 'number' },
105
- { name: 'scaleY', type: 'number' },
106
- { name: 'angle', type: 'number', range: [0, 360] },
107
- { name: 'alpha', type: 'number', range: [0, 1] },
108
- { name: 'visible', type: 'boolean' },
109
- ];
110
-
111
- _objectsKeys = {
112
- BITMAPTEXT: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'text', type: 'text' }, { name: 'fontName', type: 'text' }, { name: 'fontSize', type: 'text' }]),
113
- COMPONENT: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'componentName', type: 'text' }]),
114
- CONTAINER: this._commonObjectsKeys,
115
- GROUP: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'groupName', type: 'text' }]),
116
- IMAGE: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'assetKey', type: 'text' }]),
117
- TEXT: Urso.helper.mergeArrays(this._commonObjectsKeys, [
118
- { name: 'text', type: 'text' },
119
- { name: 'fontFamily', type: 'text' },
120
- { name: 'fontSize', type: 'text' },
121
- { name: 'fill', type: 'text' },
122
- { name: 'stroke', type: 'text' }
123
- ])
124
- }
125
- }
126
-
127
- module.exports = ComponentsEditorApi;
1
+ class ComponentsEditorApi {
2
+
3
+ constructor() {
4
+
5
+ }
6
+
7
+ //styles
8
+ //TODO
9
+ addStyle() {
10
+ //TODO
11
+ }
12
+
13
+ getCurrentStyles() {
14
+ const template = Urso.template.get();
15
+ return template.styles;
16
+ }
17
+
18
+
19
+ //assets
20
+
21
+ /**
22
+ * returns types list and keys to create new asset
23
+ * @returns { types, keys }
24
+ */
25
+ getAssetTypes() {
26
+ const types = Urso.types.assets;
27
+ return { types, keys: this._assetsKeys };
28
+ }
29
+
30
+ /**
31
+ * get current assets list
32
+ * @returns {Array} assets list
33
+ */
34
+ getCurrentAssets() {
35
+ const template = Urso.template.get();
36
+ return template.assets;
37
+ }
38
+
39
+ /**
40
+ * add new asset into game
41
+ * @param {String} assetModel
42
+ * @param {Function} callback
43
+ */
44
+ addAsset(assetModel, callback) {
45
+ Urso.assets.preload([assetModel], callback);
46
+ }
47
+
48
+
49
+ //objects
50
+
51
+ /**
52
+ * get current objects list
53
+ * @returns {Array} objects list
54
+ */
55
+ getCurrentObjects() {
56
+ const template = Urso.template.get();
57
+ return template.objects;
58
+ }
59
+
60
+ /**
61
+ * returns types list and keys to create new object
62
+ * @returns { types, keys }
63
+ */
64
+ getObjectsTypes() {
65
+ const types = Urso.types.objects;
66
+ return { types, keys: this._objectsKeys };
67
+ }
68
+
69
+ /**
70
+ * add new object into game
71
+ * @param {Object} objectModel
72
+ * @param {Object} parent
73
+ */
74
+ addObject(objectModel, parent) {
75
+ Urso.objects.create(objectModel, parent);
76
+ }
77
+
78
+ //settings
79
+ editObject(id, key, value) {
80
+
81
+ }
82
+
83
+ //////////////// sys
84
+
85
+ _assetsKeys = {
86
+ ATLAS: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
87
+ BITMAPFONT: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
88
+ CONTAINER: [{ name: 'key', type: 'text' }],
89
+ FONT: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
90
+ IMAGE: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
91
+ JSON: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
92
+ SPINE: [{ name: 'key', type: 'text' }, { name: 'path', type: 'file' }], // path to json file
93
+ }
94
+
95
+ _commonObjectsKeys = [
96
+ { name: 'id', type: 'text' },
97
+ { name: 'name', type: 'text' },
98
+ { name: 'class', type: 'text' },
99
+ { name: 'x', type: 'number' },
100
+ { name: 'y', type: 'number' },
101
+ { name: 'z', type: 'number' },
102
+ { name: 'anchorX', type: 'number', range: [-1, 1] },
103
+ { name: 'anchorY', type: 'number', range: [-1, 1] },
104
+ { name: 'scaleX', type: 'number' },
105
+ { name: 'scaleY', type: 'number' },
106
+ { name: 'angle', type: 'number', range: [0, 360] },
107
+ { name: 'alpha', type: 'number', range: [0, 1] },
108
+ { name: 'visible', type: 'boolean' },
109
+ ];
110
+
111
+ _objectsKeys = {
112
+ BITMAPTEXT: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'text', type: 'text' }, { name: 'fontName', type: 'text' }, { name: 'fontSize', type: 'text' }]),
113
+ COMPONENT: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'componentName', type: 'text' }]),
114
+ CONTAINER: this._commonObjectsKeys,
115
+ GROUP: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'groupName', type: 'text' }]),
116
+ IMAGE: Urso.helper.mergeArrays(this._commonObjectsKeys, [{ name: 'assetKey', type: 'text' }]),
117
+ TEXT: Urso.helper.mergeArrays(this._commonObjectsKeys, [
118
+ { name: 'text', type: 'text' },
119
+ { name: 'fontFamily', type: 'text' },
120
+ { name: 'fontSize', type: 'text' },
121
+ { name: 'fill', type: 'text' },
122
+ { name: 'stroke', type: 'text' }
123
+ ])
124
+ }
125
+ }
126
+
127
+ module.exports = ComponentsEditorApi;
@@ -1,13 +1,13 @@
1
- const ComponentsBaseController = require('./../base/controller');
2
-
3
- class ComponentsEditorController extends ComponentsBaseController {
4
- constructor(params) {
5
- super(params);
6
-
7
- this._api = this.getInstance('Api');
8
- Urso.helper.recursiveSet('_dev.editorApi', this._api, Urso);
9
- }
10
-
11
- }
12
-
1
+ const ComponentsBaseController = require('./../base/controller');
2
+
3
+ class ComponentsEditorController extends ComponentsBaseController {
4
+ constructor(params) {
5
+ super(params);
6
+
7
+ this._api = this.getInstance('Api');
8
+ Urso.helper.recursiveSet('_dev.editorApi', this._api, Urso);
9
+ }
10
+
11
+ }
12
+
13
13
  module.exports = ComponentsEditorController;
@@ -1,104 +1,104 @@
1
- class ComponentsFullscreenAndroid {
2
-
3
- constructor() {
4
- this._div = null;
5
- this._orientation = null;
6
- }
7
-
8
- init() {
9
- this._createDom();
10
- this._addListeners();
11
-
12
- this._updateOrientation();
13
- this._updateResize();
14
- }
15
-
16
- _createDom() {
17
- this._div = document.createElement('div');
18
- this._div.className = 'fullscreen fullscreen-android';
19
- document.body.prepend(this._div);
20
-
21
- const infoDiv = document.createElement('div');
22
- infoDiv.className = 'fullscreen-info';
23
- this._div.appendChild(infoDiv);
24
-
25
- const image = document.createElement('img');
26
- image.src = `${Urso.config.gamePath}assets/images/fullscreen/hand.png`;
27
- const span = document.createElement('span');
28
- span.innerText = 'Tap to enter fullscreen';
29
-
30
- infoDiv.appendChild(image);
31
- infoDiv.appendChild(span);
32
-
33
- }
34
-
35
- _updateOrientation() {
36
- this._orientation = innerWidth > innerHeight ? Urso.device.ScreenOrientation.LANDSCAPE : Urso.device.ScreenOrientation.PORTRAIT;
37
- }
38
-
39
- get isFullscreen() {
40
- return (
41
- document.webkitIsFullScreen ||
42
- document.mozFullScreen ||
43
- document.fullscreen
44
- );
45
- }
46
-
47
- get _orientationsConfig() {
48
- return Urso.getInstance('Modules.Scenes.ResolutionsConfig').contents || [];
49
- }
50
-
51
- get _isPortrait() {
52
- return this._orientation === Urso.device.ScreenOrientation.PORTRAIT;
53
- }
54
-
55
- get _needShowOnCurrentOrientation() {
56
- return (this._isPortrait && this._showOnPortrait) ||
57
- (!this._isPortrait && this._showOnLandscape);
58
- }
59
-
60
- get _showOnLandscape() {
61
- return this._orientationsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.LANDSCAPE);
62
- }
63
-
64
- get _showOnPortrait() {
65
- return this._orientationsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.PORTRAIT);
66
- }
67
-
68
- set isVisible(needShowDiv) {
69
- this._div.style.visibility = needShowDiv ? 'visible' : 'hidden';
70
- }
71
-
72
- _requestFullscreen() {
73
- if (document.body.webkitRequestFullScreen)
74
- document.body.webkitRequestFullScreen();
75
- else if (document.body.mozRequestFullScreen)
76
- document.body.mozRequestFullScreen();
77
- else if (document.body.requestFullScreen)
78
- document.body.requestFullScreen();
79
- }
80
-
81
- _updateResize() {
82
- this.isVisible = this._needShowOnCurrentOrientation && !this.isFullscreen;
83
- }
84
-
85
- _resizeHandler() {
86
- this._updateOrientation();
87
- this._updateResize();
88
- }
89
-
90
- _addListeners() {
91
- window.addEventListener('touchend', (e) => {
92
- if (!this.isFullscreen)
93
- this._requestFullscreen();
94
-
95
- this._updateResize();
96
- });
97
- }
98
-
99
- _subscribeOnce() {
100
- this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_RESIZE, this._resizeHandler.bind(this));
101
- }
102
- }
103
-
104
- module.exports = ComponentsFullscreenAndroid;
1
+ class ComponentsFullscreenAndroid {
2
+
3
+ constructor() {
4
+ this._div = null;
5
+ this._orientation = null;
6
+ }
7
+
8
+ init() {
9
+ this._createDom();
10
+ this._addListeners();
11
+
12
+ this._updateOrientation();
13
+ this._updateResize();
14
+ }
15
+
16
+ _createDom() {
17
+ this._div = document.createElement('div');
18
+ this._div.className = 'fullscreen fullscreen-android';
19
+ document.body.prepend(this._div);
20
+
21
+ const infoDiv = document.createElement('div');
22
+ infoDiv.className = 'fullscreen-info';
23
+ this._div.appendChild(infoDiv);
24
+
25
+ const image = document.createElement('img');
26
+ image.src = `${Urso.config.gamePath}assets/images/fullscreen/hand.png`;
27
+ const span = document.createElement('span');
28
+ span.innerText = 'Tap to enter fullscreen';
29
+
30
+ infoDiv.appendChild(image);
31
+ infoDiv.appendChild(span);
32
+
33
+ }
34
+
35
+ _updateOrientation() {
36
+ this._orientation = innerWidth > innerHeight ? Urso.device.ScreenOrientation.LANDSCAPE : Urso.device.ScreenOrientation.PORTRAIT;
37
+ }
38
+
39
+ get isFullscreen() {
40
+ return (
41
+ document.webkitIsFullScreen ||
42
+ document.mozFullScreen ||
43
+ document.fullscreen
44
+ );
45
+ }
46
+
47
+ get _orientationsConfig() {
48
+ return Urso.getInstance('Modules.Scenes.ResolutionsConfig').contents || [];
49
+ }
50
+
51
+ get _isPortrait() {
52
+ return this._orientation === Urso.device.ScreenOrientation.PORTRAIT;
53
+ }
54
+
55
+ get _needShowOnCurrentOrientation() {
56
+ return (this._isPortrait && this._showOnPortrait) ||
57
+ (!this._isPortrait && this._showOnLandscape);
58
+ }
59
+
60
+ get _showOnLandscape() {
61
+ return this._orientationsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.LANDSCAPE);
62
+ }
63
+
64
+ get _showOnPortrait() {
65
+ return this._orientationsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.PORTRAIT);
66
+ }
67
+
68
+ set isVisible(needShowDiv) {
69
+ this._div.style.visibility = needShowDiv ? 'visible' : 'hidden';
70
+ }
71
+
72
+ _requestFullscreen() {
73
+ if (document.body.webkitRequestFullScreen)
74
+ document.body.webkitRequestFullScreen();
75
+ else if (document.body.mozRequestFullScreen)
76
+ document.body.mozRequestFullScreen();
77
+ else if (document.body.requestFullScreen)
78
+ document.body.requestFullScreen();
79
+ }
80
+
81
+ _updateResize() {
82
+ this.isVisible = this._needShowOnCurrentOrientation && !this.isFullscreen;
83
+ }
84
+
85
+ _resizeHandler() {
86
+ this._updateOrientation();
87
+ this._updateResize();
88
+ }
89
+
90
+ _addListeners() {
91
+ window.addEventListener('touchend', (e) => {
92
+ if (!this.isFullscreen)
93
+ this._requestFullscreen();
94
+
95
+ this._updateResize();
96
+ });
97
+ }
98
+
99
+ _subscribeOnce() {
100
+ this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_RESIZE, this._resizeHandler.bind(this));
101
+ }
102
+ }
103
+
104
+ module.exports = ComponentsFullscreenAndroid;
@@ -1,76 +1,76 @@
1
- const ComponentsBaseController = require('./../base/controller');
2
-
3
- class ComponentsFullscreenController extends ComponentsBaseController {
4
-
5
- constructor(params) {
6
- super(params);
7
-
8
- this._fullscreenActivator = null;
9
- this._resolutionsConfig = null;
10
- this.lastResizeFullscreenResult;
11
-
12
- this.createActivator();
13
- this._resizeHandler();
14
- }
15
-
16
- createActivator() {
17
- if (this._isCriOS)
18
- return;
19
-
20
- this._resolutionsConfig = Urso.getInstance('Modules.Scenes.ResolutionsConfig').contents || [];
21
-
22
- if (Urso.device.desktop)
23
- this._fullscreenActivator = this.getInstance('Desktop');
24
- else if (Urso.device.iOS)
25
- this._fullscreenActivator = this.getInstance('Ios');
26
- else if (Urso.device.android)
27
- this._fullscreenActivator = this.getInstance('Android');
28
-
29
- if (this._fullscreenActivator)
30
- this._fullscreenActivator.init();
31
- }
32
-
33
- get _isCriOS() {
34
- return navigator.userAgent.includes('CriOS');
35
- }
36
-
37
- get _orientationsConfig() {
38
- return Urso.getInstance('Modules.Scenes.ResolutionsConfig')._orientations || [];
39
- }
40
-
41
- get _showOnLandscape() {
42
- return this._resolutionsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.LANDSCAPE);
43
- }
44
-
45
- get _showOnPortrait() {
46
- return this._resolutionsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.PORTRAIT);
47
- }
48
-
49
- get _isPortrait() {
50
- return innerWidth > innerHeight ? Urso.device.ScreenOrientation.PORTRAIT : Urso.device.ScreenOrientation.LANDSCAPE;
51
- }
52
-
53
- get isFullscreen() {
54
- if (!this._fullscreenActivator)
55
- return false;
56
-
57
- return this._fullscreenActivator.isFullscreen;
58
- }
59
-
60
- _resizeHandler() {
61
- const isFullscreen = this.isFullscreen;
62
-
63
- if (this.lastResizeFullscreenResult === isFullscreen)
64
- return;
65
-
66
- this.lastResizeFullscreenResult = isFullscreen;
67
- Urso.localData.set('fullscreen.isFullscreen', isFullscreen);
68
- this.emit(Urso.events.COMPONENTS_FULLSCREEN_CHANGE, isFullscreen);
69
- }
70
-
71
- _subscribeOnce() {
72
- this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_RESIZE, this._resizeHandler.bind(this));
73
- }
74
- }
75
-
76
- module.exports = ComponentsFullscreenController;
1
+ const ComponentsBaseController = require('./../base/controller');
2
+
3
+ class ComponentsFullscreenController extends ComponentsBaseController {
4
+
5
+ constructor(params) {
6
+ super(params);
7
+
8
+ this._fullscreenActivator = null;
9
+ this._resolutionsConfig = null;
10
+ this.lastResizeFullscreenResult;
11
+
12
+ this.createActivator();
13
+ this._resizeHandler();
14
+ }
15
+
16
+ createActivator() {
17
+ if (this._isCriOS)
18
+ return;
19
+
20
+ this._resolutionsConfig = Urso.getInstance('Modules.Scenes.ResolutionsConfig').contents || [];
21
+
22
+ if (Urso.device.desktop)
23
+ this._fullscreenActivator = this.getInstance('Desktop');
24
+ else if (Urso.device.iOS)
25
+ this._fullscreenActivator = this.getInstance('Ios');
26
+ else if (Urso.device.android)
27
+ this._fullscreenActivator = this.getInstance('Android');
28
+
29
+ if (this._fullscreenActivator)
30
+ this._fullscreenActivator.init();
31
+ }
32
+
33
+ get _isCriOS() {
34
+ return navigator.userAgent.includes('CriOS');
35
+ }
36
+
37
+ get _orientationsConfig() {
38
+ return Urso.getInstance('Modules.Scenes.ResolutionsConfig')._orientations || [];
39
+ }
40
+
41
+ get _showOnLandscape() {
42
+ return this._resolutionsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.LANDSCAPE);
43
+ }
44
+
45
+ get _showOnPortrait() {
46
+ return this._resolutionsConfig.find(resolution => resolution.orientation === Urso.device.ScreenOrientation.PORTRAIT);
47
+ }
48
+
49
+ get _isPortrait() {
50
+ return innerWidth > innerHeight ? Urso.device.ScreenOrientation.PORTRAIT : Urso.device.ScreenOrientation.LANDSCAPE;
51
+ }
52
+
53
+ get isFullscreen() {
54
+ if (!this._fullscreenActivator)
55
+ return false;
56
+
57
+ return this._fullscreenActivator.isFullscreen;
58
+ }
59
+
60
+ _resizeHandler() {
61
+ const isFullscreen = this.isFullscreen;
62
+
63
+ if (this.lastResizeFullscreenResult === isFullscreen)
64
+ return;
65
+
66
+ this.lastResizeFullscreenResult = isFullscreen;
67
+ Urso.localData.set('fullscreen.isFullscreen', isFullscreen);
68
+ this.emit(Urso.events.COMPONENTS_FULLSCREEN_CHANGE, isFullscreen);
69
+ }
70
+
71
+ _subscribeOnce() {
72
+ this.addListener(Urso.events.EXTRA_BROWSEREVENTS_WINDOW_RESIZE, this._resizeHandler.bind(this));
73
+ }
74
+ }
75
+
76
+ module.exports = ComponentsFullscreenController;