@gamelearn/arcade-components 2.41.1 → 3.0.2

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 (212) hide show
  1. package/README.md +9 -6
  2. package/dist/arcade-components.cjs +274 -0
  3. package/dist/arcade-components.js +57929 -0
  4. package/package.json +74 -73
  5. package/dist/components/animation-component/components/AnimationComponent.js +0 -98
  6. package/dist/components/animation-component/index.js +0 -10
  7. package/dist/components/animation-component/mocks/mockForStory.js +0 -26
  8. package/dist/components/auto-evaluation-component/components/AutoEvaluation.js +0 -215
  9. package/dist/components/auto-evaluation-component/components/EndScreen.js +0 -43
  10. package/dist/components/auto-evaluation-component/components/StartScreen.js +0 -32
  11. package/dist/components/auto-evaluation-component/index.js +0 -10
  12. package/dist/components/auto-evaluation-component/mocks/mockForStory.js +0 -38
  13. package/dist/components/cards-selector-puzzle-component/components/Board/index.js +0 -159
  14. package/dist/components/cards-selector-puzzle-component/components/Card/index.js +0 -115
  15. package/dist/components/cards-selector-puzzle-component/components/CardsSelectorPuzzleComponent.js +0 -289
  16. package/dist/components/cards-selector-puzzle-component/index.js +0 -10
  17. package/dist/components/cards-selector-puzzle-component/mocks/mockForStory.js +0 -446
  18. package/dist/components/cartel-component/components/CartelComponent.js +0 -124
  19. package/dist/components/cartel-component/index.js +0 -10
  20. package/dist/components/chained-image-click-puzzle-component/components/ChainedImageClickPuzzleComponent.js +0 -80
  21. package/dist/components/chained-image-click-puzzle-component/components/CurrentImagePuzzle.js +0 -182
  22. package/dist/components/chained-image-click-puzzle-component/index.js +0 -10
  23. package/dist/components/chained-image-click-puzzle-component/mocks/mockForStory.js +0 -413
  24. package/dist/components/comic-component/components/ComicComponent.js +0 -201
  25. package/dist/components/comic-component/components/Slide.js +0 -31
  26. package/dist/components/comic-component/components/Vignette.js +0 -70
  27. package/dist/components/comic-component/index.js +0 -10
  28. package/dist/components/comic-component/mocks/mockForStory.js +0 -314
  29. package/dist/components/conversational-component/components/ConversationalComponent.js +0 -101
  30. package/dist/components/conversational-component/index.js +0 -10
  31. package/dist/components/conversational-pro-component/components/ConversationalProComponent.js +0 -543
  32. package/dist/components/conversational-pro-component/components/Message.js +0 -37
  33. package/dist/components/conversational-pro-component/components/Slot.js +0 -92
  34. package/dist/components/conversational-pro-component/components/SlotList.js +0 -162
  35. package/dist/components/conversational-pro-component/components/scene/Panel.js +0 -179
  36. package/dist/components/conversational-pro-component/components/scene/Panels.js +0 -46
  37. package/dist/components/conversational-pro-component/components/scene/index.js +0 -77
  38. package/dist/components/conversational-pro-component/index.js +0 -10
  39. package/dist/components/conversational-pro-component/mocks/mockForStory.js +0 -1529
  40. package/dist/components/cracker-puzzle-component/components/CrackerPuzzleComponent.js +0 -261
  41. package/dist/components/cracker-puzzle-component/components/DrawGrid/index.js +0 -33
  42. package/dist/components/cracker-puzzle-component/components/DrawItem/index.js +0 -48
  43. package/dist/components/cracker-puzzle-component/components/DrawRow/index.js +0 -43
  44. package/dist/components/cracker-puzzle-component/components/colors.js +0 -12
  45. package/dist/components/cracker-puzzle-component/components/helpers.js +0 -133
  46. package/dist/components/cracker-puzzle-component/index.js +0 -10
  47. package/dist/components/cracker-puzzle-component/mocks/mockForStory.js +0 -277
  48. package/dist/components/decision-component/components/DecisionBody.js +0 -116
  49. package/dist/components/decision-component/components/DecisionComponent.js +0 -248
  50. package/dist/components/decision-component/components/Feedback.js +0 -40
  51. package/dist/components/decision-component/components/Options.js +0 -74
  52. package/dist/components/decision-component/index.js +0 -10
  53. package/dist/components/decision-component/mocks/mockForStory.js +0 -166
  54. package/dist/components/dialog-component/components/BubbleWrapper.js +0 -39
  55. package/dist/components/dialog-component/components/DialogComponent.js +0 -779
  56. package/dist/components/dialog-component/components/DialogDecision.js +0 -44
  57. package/dist/components/dialog-component/components/SpeechBubbleComponent.js +0 -66
  58. package/dist/components/dialog-component/index.js +0 -10
  59. package/dist/components/dialog-component/mocks/mockForStory.js +0 -550
  60. package/dist/components/drag-item-puzzle-component/components/DragItemPuzzleComponent.js +0 -361
  61. package/dist/components/drag-item-puzzle-component/index.js +0 -10
  62. package/dist/components/drag-item-puzzle-component/mocks/mockForStory.js +0 -74
  63. package/dist/components/feedback-component/components/FeedbackComponent.js +0 -126
  64. package/dist/components/feedback-component/index.js +0 -10
  65. package/dist/components/feedback-component/mocks/mockForStory.js +0 -52
  66. package/dist/components/frame-click-puzzle-component/components/Counter/index.js +0 -24
  67. package/dist/components/frame-click-puzzle-component/components/CurrentFramePuzzle.js +0 -196
  68. package/dist/components/frame-click-puzzle-component/components/FrameClickPuzzleComponent.js +0 -178
  69. package/dist/components/frame-click-puzzle-component/components/Tooltip/index.js +0 -23
  70. package/dist/components/frame-click-puzzle-component/index.js +0 -10
  71. package/dist/components/frame-click-puzzle-component/mocks/mockForStory.js +0 -717
  72. package/dist/components/hacker-puzzle-component/components/HackerPuzzleComponent.js +0 -255
  73. package/dist/components/hacker-puzzle-component/components/languages.js +0 -13
  74. package/dist/components/hacker-puzzle-component/index.js +0 -10
  75. package/dist/components/hacker-puzzle-component/mocks/mockForStory.js +0 -103
  76. package/dist/components/hanged-puzzle-component/components/HangedPuzzleComponent.js +0 -488
  77. package/dist/components/hanged-puzzle-component/index.js +0 -10
  78. package/dist/components/hanged-puzzle-component/mocks/mockForStory.js +0 -61
  79. package/dist/components/hanged-puzzle-component/utils.js +0 -64
  80. package/dist/components/image-click-puzzle-component/components/ImageClickPuzzleComponent.js +0 -40
  81. package/dist/components/image-click-puzzle-component/index.js +0 -10
  82. package/dist/components/image-click-puzzle-component/mocks/mockForStory.js +0 -427
  83. package/dist/components/image-click-wrapper-component/components/CountDown/index.js +0 -18
  84. package/dist/components/image-click-wrapper-component/components/ImageClickWrapperComponent.js +0 -472
  85. package/dist/components/image-click-wrapper-component/components/TimerDialog/index.js +0 -26
  86. package/dist/components/image-click-wrapper-component/index.js +0 -10
  87. package/dist/components/image-click-wrapper-component/mocks/mockForStory.js +0 -432
  88. package/dist/components/image-component/components/ImageComponent.js +0 -83
  89. package/dist/components/image-component/index.js +0 -10
  90. package/dist/components/image-component/mocks/mockForStory.js +0 -52
  91. package/dist/components/index.js +0 -260
  92. package/dist/components/inventory-item/components/InventoryItem.js +0 -120
  93. package/dist/components/inventory-item/index.js +0 -10
  94. package/dist/components/inventory-item/mocks/mockForStory.js +0 -29
  95. package/dist/components/keyboard-puzzle-component/components/KeyboardPuzzleComponent.js +0 -275
  96. package/dist/components/keyboard-puzzle-component/index.js +0 -10
  97. package/dist/components/keyboard-puzzle-component/mocks/mockForStory.js +0 -40
  98. package/dist/components/konva-components/Area/index.js +0 -170
  99. package/dist/components/konva-components/KonvaMapper.js +0 -185
  100. package/dist/components/lectures-component/components/LectureButtons.js +0 -40
  101. package/dist/components/lectures-component/components/LecturesComponent.js +0 -157
  102. package/dist/components/lectures-component/index.js +0 -10
  103. package/dist/components/lectures-component/mocks/mockForStory.js +0 -39
  104. package/dist/components/login-puzzle-component/components/LoginPuzzleComponent.js +0 -243
  105. package/dist/components/login-puzzle-component/index.js +0 -10
  106. package/dist/components/login-puzzle-component/mocks/mockForStory.js +0 -38
  107. package/dist/components/notice-component/components/NoticeComponent.js +0 -96
  108. package/dist/components/notice-component/index.js +0 -10
  109. package/dist/components/notice-component/mocks/mockForStory.js +0 -20
  110. package/dist/components/pattern-component/components/PatternComponent.js +0 -78
  111. package/dist/components/pattern-component/index.js +0 -10
  112. package/dist/components/pattern-component/mocks/mockForStory.js +0 -35
  113. package/dist/components/pdf-component/components/PdfComponent.js +0 -122
  114. package/dist/components/pdf-component/components/PdfVisor.js +0 -187
  115. package/dist/components/pdf-component/index.js +0 -20
  116. package/dist/components/pdf-component/mocks/mockForProps.js +0 -38
  117. package/dist/components/referral-component/components/EmailPill.js +0 -26
  118. package/dist/components/referral-component/components/ReferralComponent.js +0 -115
  119. package/dist/components/referral-component/components/StepOne.js +0 -170
  120. package/dist/components/referral-component/components/StepTwo.js +0 -57
  121. package/dist/components/referral-component/index.js +0 -10
  122. package/dist/components/referral-component/mocks/mockForStory.js +0 -40
  123. package/dist/components/survey-component/components/ApplicableBox.js +0 -49
  124. package/dist/components/survey-component/components/OpinionBox.js +0 -45
  125. package/dist/components/survey-component/components/SurveyComponent.js +0 -150
  126. package/dist/components/survey-component/components/TextBox.js +0 -40
  127. package/dist/components/survey-component/index.js +0 -10
  128. package/dist/components/survey-component/mocks/mockForStory.js +0 -14
  129. package/dist/components/terminal-puzzle-component/components/FilesGroup/Item.js +0 -28
  130. package/dist/components/terminal-puzzle-component/components/FilesGroup/index.js +0 -76
  131. package/dist/components/terminal-puzzle-component/components/Image/index.js +0 -22
  132. package/dist/components/terminal-puzzle-component/components/TerminalPuzzleComponent.js +0 -216
  133. package/dist/components/terminal-puzzle-component/components/Visor/index.js +0 -129
  134. package/dist/components/terminal-puzzle-component/components/utils/index.js +0 -26
  135. package/dist/components/terminal-puzzle-component/index.js +0 -10
  136. package/dist/components/terminal-puzzle-component/mocks/mockForStory.js +0 -188
  137. package/dist/components/test-component/components/Container.js +0 -211
  138. package/dist/components/test-component/components/Feedbacks.js +0 -48
  139. package/dist/components/test-component/components/Questions.js +0 -145
  140. package/dist/components/test-component/components/Results.js +0 -208
  141. package/dist/components/test-component/components/TestComponent.js +0 -302
  142. package/dist/components/test-component/index.js +0 -10
  143. package/dist/components/test-component/mocks/mockForStory.js +0 -113
  144. package/dist/components/text-click-puzzle-component/components/TextClickPuzzleComponent.js +0 -387
  145. package/dist/components/text-click-puzzle-component/index.js +0 -10
  146. package/dist/components/text-click-puzzle-component/mocks/mockForStory.js +0 -485
  147. package/dist/components/text-click-puzzle-component/utils/index.js +0 -76
  148. package/dist/components/url-component/components/UrlComponent.js +0 -88
  149. package/dist/components/url-component/index.js +0 -10
  150. package/dist/components/url-component/mocks/mockForProps.js +0 -20
  151. package/dist/components/video-component/components/VideoComponent.js +0 -73
  152. package/dist/components/video-component/index.js +0 -10
  153. package/dist/components/video-component/mocks/mockForStory.js +0 -94
  154. package/dist/components/video-visor/components/VideoControllers/BufferBar.js +0 -108
  155. package/dist/components/video-visor/components/VideoControllers/ControlButtons.js +0 -31
  156. package/dist/components/video-visor/components/VideoControllers/FinishedVideoButtons.js +0 -32
  157. package/dist/components/video-visor/components/VideoControllers/PlayInitButton.js +0 -37
  158. package/dist/components/video-visor/components/VideoControllers/SkipButton.js +0 -37
  159. package/dist/components/video-visor/components/VideoControllers/Timer.js +0 -37
  160. package/dist/components/video-visor/components/VideoControllers/VolumeBar.js +0 -92
  161. package/dist/components/video-visor/components/VideoControllers/index.js +0 -122
  162. package/dist/components/video-visor/components/VideoVisor.js +0 -271
  163. package/dist/components/video-visor/index.js +0 -10
  164. package/dist/components/video-visor/mocks/mockForStory.js +0 -42
  165. package/dist/components/web-builder-puzzle-component/Popups/PopupColorComponent/index.js +0 -87
  166. package/dist/components/web-builder-puzzle-component/Popups/PopupImageComponent/index.js +0 -94
  167. package/dist/components/web-builder-puzzle-component/Popups/PopupTextComponent/index.js +0 -114
  168. package/dist/components/web-builder-puzzle-component/Popups/index.js +0 -27
  169. package/dist/components/web-builder-puzzle-component/Templates/Bank.js +0 -98
  170. package/dist/components/web-builder-puzzle-component/Templates/Facebook.js +0 -37
  171. package/dist/components/web-builder-puzzle-component/Templates/resourcePath.js +0 -9
  172. package/dist/components/web-builder-puzzle-component/components/EditButton/index.js +0 -28
  173. package/dist/components/web-builder-puzzle-component/components/Feedback/index.js +0 -41
  174. package/dist/components/web-builder-puzzle-component/components/PublishButton/index.js +0 -29
  175. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/BankBody.js +0 -118
  176. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/FacebookBody.js +0 -149
  177. package/dist/components/web-builder-puzzle-component/components/WebBuilderBody/index.js +0 -25
  178. package/dist/components/web-builder-puzzle-component/components/WebBuilderFront/index.js +0 -89
  179. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/BankHeader.js +0 -84
  180. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/FacebookHeader.js +0 -38
  181. package/dist/components/web-builder-puzzle-component/components/WebBuilderHeader/index.js +0 -40
  182. package/dist/components/web-builder-puzzle-component/components/WebBuilderPuzzleComponent.js +0 -302
  183. package/dist/components/web-builder-puzzle-component/components/WebBuilderTopBar/index.js +0 -30
  184. package/dist/components/web-builder-puzzle-component/index.js +0 -10
  185. package/dist/components/web-builder-puzzle-component/mocks/mockForStory.js +0 -27
  186. package/dist/components/writer-puzzle-component/components/ElectionComponent.js +0 -69
  187. package/dist/components/writer-puzzle-component/components/FeedbackComponent.js +0 -97
  188. package/dist/components/writer-puzzle-component/components/FeedbackElement.js +0 -32
  189. package/dist/components/writer-puzzle-component/components/FinishedTextComponent.js +0 -25
  190. package/dist/components/writer-puzzle-component/components/FixedComponent.js +0 -120
  191. package/dist/components/writer-puzzle-component/components/SingleElection.js +0 -85
  192. package/dist/components/writer-puzzle-component/components/WriterPuzzleComponent.js +0 -450
  193. package/dist/components/writer-puzzle-component/index.js +0 -10
  194. package/dist/components/writer-puzzle-component/mocks/mockForStory.js +0 -1194
  195. package/dist/components/zoom-test/components/ZoomTest.js +0 -73
  196. package/dist/components/zoom-test/index.js +0 -10
  197. package/dist/components/zoom-test/mocks/mockForStory.js +0 -21
  198. package/dist/helpers/LangIsRtl.js +0 -16
  199. package/dist/helpers/LightSet.js +0 -35
  200. package/dist/helpers/LodController.js +0 -28
  201. package/dist/helpers/deviceDetection.js +0 -21
  202. package/dist/helpers/drawLOD.js +0 -310
  203. package/dist/helpers/index.js +0 -268
  204. package/dist/helpers/lodStats.js +0 -55
  205. package/dist/helpers/mocker.js +0 -116
  206. package/dist/helpers/useEkho.js +0 -172
  207. package/dist/helpers/useGLB.js +0 -57
  208. package/dist/helpers/useStateMachine.js +0 -277
  209. package/dist/helpers/useTimeout.js +0 -32
  210. package/dist/helpers/useWindowSize.js +0 -44
  211. package/dist/index.js +0 -16
  212. package/dist/test/testSceneWrapper.js +0 -31
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _fiber = require("@react-three/fiber");
8
- var _react = require("react");
9
- var _three = require("three");
10
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
- function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
15
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
- var ZoomTest = function ZoomTest(_ref) {
17
- var targetId = _ref.targetId,
18
- emitEvent = _ref.emitEvent;
19
- var _useState = (0, _react.useState)(false),
20
- _useState2 = _slicedToArray(_useState, 2),
21
- mounted = _useState2[0],
22
- setMounted = _useState2[1];
23
- var stateCamera = (0, _fiber.useThree)(function (state) {
24
- return state.camera;
25
- });
26
- var startAnimation = (0, _react.useRef)(false);
27
- var defaultCamera = (0, _react.useRef)(null);
28
- var onEnter = function onEnter(_ref2, delta) {
29
- var scene = _ref2.scene,
30
- camera = _ref2.camera;
31
- var target = scene.getObjectByName(targetId);
32
- if (target) {
33
- var head = target.getObjectByName('Head_M');
34
- var worldPos = head.getWorldPosition(new _three.Vector3());
35
- if (camera.position.distanceTo(new _three.Vector3()) <= 5) {
36
- onFinish({
37
- scene: scene,
38
- camera: camera
39
- }, delta);
40
- } else {
41
- head.attach(camera);
42
- camera.position.lerp(new _three.Vector3(), delta * 0.5);
43
- camera.lookAt(worldPos);
44
- }
45
- } else {
46
- startAnimation.current = false;
47
- }
48
- };
49
- var onFinish = function onFinish(_ref3) {
50
- var camera = _ref3.camera;
51
- startAnimation.current = false;
52
- camera.parent = null;
53
- camera.copy(defaultCamera.current);
54
- emitEvent({
55
- type: 'success'
56
- });
57
- };
58
- (0, _react.useEffect)(function () {
59
- if (!mounted) {
60
- startAnimation.current = true;
61
- defaultCamera.current = stateCamera.clone();
62
- setMounted(true);
63
- }
64
- }, [stateCamera, mounted]);
65
- (0, _fiber.useFrame)(function (state, delta) {
66
- if (startAnimation.current) {
67
- onEnter(state, delta);
68
- }
69
- });
70
- return null;
71
- };
72
- var _default = ZoomTest;
73
- exports.default = _default;
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _ZoomTest = _interopRequireDefault(require("./components/ZoomTest"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- var _default = _ZoomTest.default;
10
- exports.default = _default;
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.mockProps = exports.default = void 0;
7
- var _bg001_street = _interopRequireDefault(require("test/mocks/bg001_street.json"));
8
- var _characters = require("test/mocks/characters.json");
9
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
- var mockProps = {
11
- background: _bg001_street.default,
12
- elements: _characters.elements,
13
- scene: {
14
- sceneChanged: true,
15
- loadingText: 'Cargando... {percent}%',
16
- hasControls: false
17
- }
18
- };
19
- exports.mockProps = mockProps;
20
- var _default = mockProps;
21
- exports.default = _default;
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var LangIsRtl = function LangIsRtl() {
8
- var langsRtl = ['ar', 'fa', 'he', 'ku', 'ur'];
9
- var currentLang = document.querySelector('html').getAttribute('lang');
10
- if (langsRtl.includes(currentLang)) {
11
- return true;
12
- }
13
- return false;
14
- };
15
- var _default = LangIsRtl;
16
- exports.default = _default;
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = _interopRequireDefault(require("react"));
8
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- var LightSet = function LightSet() {
10
- return /*#__PURE__*/_react.default.createElement("group", null, /*#__PURE__*/_react.default.createElement("pointLight", {
11
- position: [-2.29, 17.35, 2.56],
12
- color: 16773785,
13
- intensity: 12,
14
- power: 150,
15
- distance: 0,
16
- decay: 1,
17
- castShadow: true,
18
- "shadow-bias": -0.002
19
- }), /*#__PURE__*/_react.default.createElement("pointLight", {
20
- position: [2.25, 16.57, -1.9],
21
- color: 4234239,
22
- intensity: 20,
23
- power: 250,
24
- distance: 0,
25
- decay: 1,
26
- "shadow-bias": -0.002
27
- }), /*#__PURE__*/_react.default.createElement("hemisphereLight", {
28
- color: 7918828,
29
- groundColor: 7429837,
30
- intensity: 4,
31
- position: [0, 500, 0]
32
- }));
33
- };
34
- var _default = LightSet;
35
- exports.default = _default;
@@ -1,28 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _drei = require("@react-three/drei");
8
- var _react = require("react");
9
- var _fiber = require("@react-three/fiber");
10
- var _drawLOD = _interopRequireDefault(require("./drawLOD"));
11
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
- var LodController = function LodController() {
13
- var scene = (0, _fiber.useThree)(function (state) {
14
- return state.scene;
15
- });
16
- var _useProgress = (0, _drei.useProgress)(),
17
- active = _useProgress.active;
18
- (0, _react.useEffect)(function () {
19
- if (!active) {
20
- setTimeout(function () {
21
- (0, _drawLOD.default)(scene);
22
- }, 0); // 'Asynchronize' me to let useProgress getting aware of new elements loading
23
- }
24
- }, [active, scene]);
25
- return null;
26
- };
27
- var _default = LodController;
28
- exports.default = _default;
@@ -1,21 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.DeviceDetection = exports.BrowserDetection = void 0;
7
- var DeviceDetection = function DeviceDetection() {
8
- return navigator.userAgent.match(/(android)/i) || ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) ||
9
- // iPad on iOS 13 detection
10
- navigator.userAgent.includes('Mac') && 'ontouchend' in document;
11
- };
12
- exports.DeviceDetection = DeviceDetection;
13
- var BrowserDetection = function BrowserDetection() {
14
- var ua = navigator.userAgent.toLowerCase();
15
- var isFirefox = ua.indexOf('firefox') > -1;
16
- var isSafari = ua.indexOf('safari') > -1 && ua.indexOf('chrome') <= -1;
17
- var res = 'default';
18
- if (isFirefox) res = 'firefox';else if (isSafari) res = 'safari';
19
- return res;
20
- };
21
- exports.BrowserDetection = BrowserDetection;
@@ -1,310 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var THREE = _interopRequireWildcard(require("three"));
9
- var _lodStats = _interopRequireDefault(require("./lodStats"));
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
12
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
13
- var loadingManager = new THREE.LoadingManager();
14
- var imgLoader = new THREE.ImageLoader(loadingManager);
15
- var pureGlbMode = false;
16
- var pureGeometryMode = false;
17
- var currentLOD = 'original';
18
- var progressiveMode = true;
19
- var rgbSimulation = false;
20
- var texturesFrustum = true;
21
- var texturesDistance = false;
22
- var showHelpers = false;
23
- var showStats = false;
24
- var progressiveOrder = ['divideby64', 'divideby16', 'divideby4', 'original'];
25
- var lodDistances = {
26
- divideby64: Infinity,
27
- divideby16: 200,
28
- divideby4: 100,
29
- original: 50
30
- };
31
- var redImage = new Image();
32
- redImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==';
33
- var greenImage = new Image();
34
- greenImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNk+M/wHwAEBgIApD5fRAAAAABJRU5ErkJggg==';
35
- var blueImage = new Image();
36
- blueImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPj/HwADBwIAMCbHYQAAAABJRU5ErkJggg==';
37
- var whiteImage = new Image();
38
- whiteImage.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+ip1sAAAAASUVORK5CYII=';
39
- function roundedRectangle(ctx, rect, radius) {
40
- var pi = Math.PI;
41
- var x1 = rect[0];
42
- var y1 = rect[1];
43
- var x2 = rect[2] + x1;
44
- var y2 = rect[3] + y1;
45
- var cr = radius;
46
- ctx.beginPath();
47
- ctx.arc(x1 + cr, y1 + cr, cr, pi, 1.5 * pi); // upper left corner
48
- ctx.arc(x2 - cr, y1 + cr, cr, 1.5 * pi, 0); // upper right corner
49
- ctx.arc(x2 - cr, y2 - cr, cr, 0, 0.5 * pi); // lower right corner
50
- ctx.arc(x1 + cr, y2 - cr, cr, 0.5 * pi, pi); // lower left corner
51
-
52
- ctx.closePath();
53
- ctx.strokeStyle = 'rgba(255,255,255,1.0)';
54
- ctx.lineWidth = 20;
55
- ctx.stroke();
56
- }
57
- function makeTextSprite(message, opts) {
58
- var parameters = opts || {};
59
- var fontface = parameters.fontface || 'Helvetica';
60
- var fontsize = parameters.fontsize || 120;
61
- var canvas = document.createElement('canvas');
62
- var context = canvas.getContext('2d');
63
- context.font = "".concat(fontsize, "px ").concat(fontface);
64
-
65
- // get size data (height depends only on font size)
66
- // var metrics = context.measureText(message);
67
- // var textWidth = metrics.width;
68
-
69
- // text color
70
- context.fillStyle = 'rgba(255,255,255,1.0)';
71
- roundedRectangle(context, [0, 0, canvas.width, canvas.height], 25);
72
- context.fillStyle = 'rgba(255, 255, 255, 1.0)';
73
- context.fillText(message, 0, fontsize);
74
-
75
- // canvas contents will be used for a texture
76
- var texture = new THREE.Texture(canvas);
77
- texture.minFilter = THREE.LinearFilter;
78
- texture.needsUpdate = true;
79
- var spriteMaterial = new THREE.SpriteMaterial({
80
- map: texture,
81
- opacity: 0.5
82
- });
83
- var sprite = new THREE.Sprite(spriteMaterial);
84
- sprite.scale.set(10, 5, 1.0);
85
- sprite.center.set(0.5, 0.5);
86
- return sprite;
87
- }
88
-
89
- /*
90
- const texturablesDone = (params) => {
91
- params.texturableElements.forEach((elem) => {
92
- elem.userData.isDone = true;
93
- })
94
- }
95
- */
96
-
97
- var materialize = function materialize(params, lod) {
98
- var totalLods = 0;
99
- var doneLods = 0;
100
- var checkPromises = function checkPromises() {
101
- if (doneLods >= totalLods) {
102
- if (progressiveMode) {
103
- var currentIndex = progressiveOrder.indexOf(lod);
104
- var lastIndex = progressiveOrder.indexOf(params.currentLOD);
105
- if (currentIndex < lastIndex) {
106
- materialize(params, progressiveOrder[currentIndex + 1]);
107
- } else {
108
- // texturablesDone(params);
109
- }
110
- } else {
111
- // texturablesDone(params);
112
- }
113
- }
114
- };
115
- params.texturableElements.forEach(function (elem) {
116
- if (params.texturesDistance && elem.distanceToCam > lodDistances[lod]) {
117
- return;
118
- }
119
- var jsonUrl = elem.userData.url.replace('.glb', '.json');
120
- fetch(jsonUrl).then(function (response) {
121
- return response.json();
122
- }).then(function (materials) {
123
- elem.traverse(function (obj) {
124
- if ((obj.isMesh || obj.isSkinnedMesh) && (!obj.material.isDone || !obj.material.isDone[lod] || params.forceRender)) {
125
- obj.material.wireframe = false;
126
- if (!obj.material.isDone) obj.material.isDone = {};
127
- obj.material.isDone[lod] = true;
128
- if (materials[obj.material.name]) {
129
- materials[obj.material.name].forEach(function (item) {
130
- var imgSrc = "".concat(elem.userData.url, ".textures.").concat(lod, ".").concat(item.positionInArray, ".png");
131
- imgLoader.load(imgSrc, function (result) {
132
- if (params.showStats) {
133
- statsTextures(lod, imgSrc, result);
134
- }
135
- obj.material[item.key].image = result;
136
- if (params.rgbSimulation) {
137
- var image;
138
- switch (lod) {
139
- case 'divideby64':
140
- image = redImage;
141
- break;
142
- case 'divideby16':
143
- image = greenImage;
144
- break;
145
- case 'divideby4':
146
- image = blueImage;
147
- break;
148
- default:
149
- image = result;
150
- }
151
- obj.material[item.key].image = image;
152
- }
153
- obj.material[item.key].needsUpdate = true;
154
- doneLods += 1;
155
- checkPromises();
156
- });
157
- totalLods += 1;
158
- });
159
- }
160
- }
161
- });
162
- });
163
- });
164
- };
165
- var updateSceneLods = function updateSceneLods(params) {
166
- if (!pureGlbMode && !pureGeometryMode) {
167
- if (progressiveMode) {
168
- materialize(params, progressiveOrder[0]);
169
- } else {
170
- materialize(params, params.currentLOD);
171
- }
172
- }
173
- };
174
- var invalidateOutOfFrustum = function invalidateOutOfFrustum(params) {
175
- params.texturableElements = params.texturableElements.filter(function (elem) {
176
- var bbox = new THREE.Box3().setFromObject(elem);
177
- var insideFrustum = params.frustum.intersectsBox(bbox);
178
- elem.bbox = bbox;
179
- if (params.showHelpers) {
180
- var boundingHelper = new THREE.Box3Helper(bbox, insideFrustum ? 0x00ff00 : 0xff0000);
181
- params.helpers.add(boundingHelper);
182
- }
183
- return insideFrustum;
184
- });
185
- };
186
- var checkDistances = function checkDistances(params) {
187
- params.texturableElements.forEach(function (elem) {
188
- var center = new THREE.Vector3();
189
- elem.bbox.getCenter(center);
190
- var bsphere = elem.bbox.getBoundingSphere(new THREE.Sphere(center));
191
- var distance = params.camera.position.distanceTo(center) - bsphere.radius;
192
- elem.distanceToCam = distance;
193
- if (params.showHelpers) {
194
- var sphere = new THREE.Mesh(new THREE.SphereGeometry(bsphere.radius, 32, 32), new THREE.MeshStandardMaterial({
195
- color: 0xffffff,
196
- opacity: 0.3,
197
- transparent: true,
198
- wireframe: true
199
- }));
200
- sphere.position.copy(center);
201
- params.helpers.add(sphere);
202
- var sprite = makeTextSprite(distance);
203
- sprite.position.copy(sphere.position);
204
- sprite.position.y = sphere.position.y + bsphere.radius + 2;
205
- params.helpers.add(sprite);
206
- }
207
- });
208
- };
209
- var statsGeometries = function statsGeometries(params) {
210
- params.texturableElements.forEach(function (item) {
211
- var url = item.userData.url.replace('.glb', '.geometry.glb');
212
- fetch(url).then(function (response) {
213
- return response.blob();
214
- }).then(function (blob) {
215
- var size = blob.size;
216
- (0, _lodStats.default)({
217
- geometries: size
218
- });
219
- });
220
- });
221
- };
222
- var statsTextures = function statsTextures(lod, url) {
223
- fetch(url).then(function (response) {
224
- return response.blob();
225
- }).then(function (blob) {
226
- var size = blob.size;
227
- var obj = {};
228
- obj[lod] = size;
229
- (0, _lodStats.default)(obj);
230
- });
231
- };
232
- var setTexturableElements = function setTexturableElements(params) {
233
- params.texturableElements = [];
234
- params.scene.traverse(function (item) {
235
- if (item.userData.url) {
236
- params.texturableElements.push(item);
237
- }
238
- });
239
- (0, _lodStats.default)({
240
- reset: true
241
- });
242
- if (params.showStats) {
243
- statsGeometries(params);
244
- }
245
- };
246
- var getHelpers = function getHelpers(scene) {
247
- var helper = null;
248
- scene.children.forEach(function (item) {
249
- if (item.userData.isHelper) {
250
- helper = item;
251
- }
252
- });
253
- return helper;
254
- };
255
- var drawLOD = function drawLOD(scene, camera, settings) {
256
- var currentCamera = camera;
257
- if (!currentCamera.parent) {
258
- scene.traverse(function (node) {
259
- var _node$userData;
260
- if (node.isPerspectiveCamera && (_node$userData = node.userData) !== null && _node$userData !== void 0 && _node$userData.defaultCamera) {
261
- currentCamera = node;
262
- }
263
- });
264
- }
265
- var params = {};
266
- params.currentLOD = settings !== null && settings !== void 0 && settings.currentLOD ? settings.currentLOD : currentLOD;
267
- params.rgbSimulation = settings !== null && settings !== void 0 && settings.rgbSimulation ? settings.rgbSimulation : rgbSimulation;
268
- params.showHelpers = settings !== null && settings !== void 0 && settings.showHelpers ? settings.showHelpers : showHelpers;
269
- params.showStats = settings !== null && settings !== void 0 && settings.showStats ? settings.showStats : showStats;
270
- params.forceRender = (scene === null || scene === void 0 ? void 0 : scene.lastLOD) !== (settings === null || settings === void 0 ? void 0 : settings.currentLOD) || (scene === null || scene === void 0 ? void 0 : scene.lastRGB) !== params.rgbSimulation;
271
- scene.lastLOD = settings === null || settings === void 0 ? void 0 : settings.currentLOD;
272
- scene.lastRGB = params.rgbSimulation;
273
- params.texturesFrustum = (settings === null || settings === void 0 ? void 0 : settings.texturesFrustum) !== undefined ? settings.texturesFrustum : texturesFrustum;
274
- params.texturesDistance = texturesDistance;
275
- params.scene = scene;
276
- params.scene.remove(getHelpers(params.scene));
277
- params.helpers = new THREE.Group();
278
- params.helpers.userData.isHelper = true;
279
- params.scene.add(params.helpers);
280
- params.camera = currentCamera;
281
- params.frustum = null;
282
- if (params.texturesFrustum || params.texturesDistance) {
283
- if (params.camera) {
284
- params.camera.updateMatrixWorld();
285
- params.camera.updateProjectionMatrix();
286
- params.frustum = new THREE.Frustum();
287
- params.frustum.setFromProjectionMatrix(new THREE.Matrix4().multiplyMatrices(params.camera.projectionMatrix, params.camera.matrixWorldInverse));
288
- } else {
289
- params.texturesFrustum = false;
290
- params.texturesDistance = false;
291
- }
292
- if (params.showHelpers) {
293
- var helper = new THREE.CameraHelper(params.camera.clone());
294
- params.helpers.add(helper);
295
- helper.update();
296
- var axesHelper = new THREE.AxesHelper(5);
297
- params.helpers.add(axesHelper);
298
- }
299
- }
300
- setTexturableElements(params);
301
- if (params.texturesFrustum) {
302
- invalidateOutOfFrustum(params);
303
- }
304
- if (params.texturesDistance) {
305
- checkDistances(params);
306
- }
307
- updateSceneLods(params);
308
- };
309
- var _default = drawLOD;
310
- exports.default = _default;