slicejs-web-framework 3.1.2 → 3.1.4

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 (222) hide show
  1. package/Slice/Slice.js +11 -6
  2. package/Slice/tests/build-bundled-component-without-category.test.js +103 -0
  3. package/package.json +1 -1
  4. package/.worktrees/bundling-v2-precompiled-registrars/LICENSE +0 -21
  5. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManager.js +0 -369
  6. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +0 -297
  7. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Controller/Controller.js +0 -972
  8. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.css +0 -620
  9. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.html +0 -73
  10. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Debugger/Debugger.js +0 -1548
  11. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManager.js +0 -338
  12. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/EventManager/EventManagerDebugger.js +0 -361
  13. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Log.js +0 -10
  14. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Logger/Logger.js +0 -146
  15. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/Router/Router.js +0 -721
  16. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/StylesManager.js +0 -78
  17. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +0 -84
  18. package/.worktrees/bundling-v2-precompiled-registrars/Slice/Slice.js +0 -504
  19. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/bundle-v2-runtime-contract.test.js +0 -268
  20. package/.worktrees/bundling-v2-precompiled-registrars/Slice/tests/router-loading-finally.test.js +0 -68
  21. package/.worktrees/bundling-v2-precompiled-registrars/api/index.js +0 -286
  22. package/.worktrees/bundling-v2-precompiled-registrars/api/middleware/securityMiddleware.js +0 -253
  23. package/.worktrees/bundling-v2-precompiled-registrars/package.json +0 -37
  24. package/.worktrees/bundling-v2-precompiled-registrars/sliceConfig.schema.json +0 -109
  25. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.html +0 -22
  26. package/.worktrees/bundling-v2-precompiled-registrars/src/App/index.js +0 -23
  27. package/.worktrees/bundling-v2-precompiled-registrars/src/App/style.css +0 -40
  28. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.css +0 -201
  29. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.html +0 -37
  30. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/HomePage/HomePage.js +0 -210
  31. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.css +0 -12
  32. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.html +0 -0
  33. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/AppComponents/Playground/Playground.js +0 -111
  34. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/FetchManager/FetchManager.js +0 -133
  35. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/IndexedDbManager/IndexedDbManager.js +0 -141
  36. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Service/LocalStorageManager/LocalStorageManager.js +0 -45
  37. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.css +0 -47
  38. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.html +0 -5
  39. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Button/Button.js +0 -93
  40. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.css +0 -68
  41. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.html +0 -7
  42. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Card/Card.js +0 -107
  43. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.css +0 -87
  44. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.html +0 -8
  45. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Checkbox/Checkbox.js +0 -86
  46. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +0 -130
  47. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +0 -4
  48. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +0 -262
  49. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.css +0 -70
  50. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.html +0 -9
  51. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Details/Details.js +0 -76
  52. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.css +0 -60
  53. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.html +0 -5
  54. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/DropDown/DropDown.js +0 -63
  55. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.css +0 -7
  56. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.html +0 -1
  57. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Grid/Grid.js +0 -57
  58. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.css +0 -510
  59. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.html +0 -1
  60. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/Icon.js +0 -89
  61. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.eot +0 -0
  62. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.json +0 -555
  63. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.styl +0 -507
  64. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.svg +0 -1485
  65. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.symbol.svg +0 -1059
  66. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.ttf +0 -0
  67. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff +0 -0
  68. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Icon/slc.woff2 +0 -0
  69. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.css +0 -91
  70. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.html +0 -4
  71. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Input/Input.js +0 -215
  72. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.css +0 -0
  73. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.html +0 -0
  74. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Layout/Layout.js +0 -49
  75. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.css +0 -8
  76. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.html +0 -1
  77. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Link/Link.js +0 -63
  78. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.css +0 -56
  79. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.html +0 -83
  80. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Loading/Loading.js +0 -38
  81. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/MultiRoute/MultiRoute.js +0 -93
  82. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.css +0 -115
  83. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.html +0 -44
  84. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Navbar/Navbar.js +0 -141
  85. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.css +0 -117
  86. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.html +0 -24
  87. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/NotFound/NotFound.js +0 -16
  88. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Route/Route.js +0 -93
  89. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.css +0 -84
  90. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.html +0 -8
  91. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Select/Select.js +0 -195
  92. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.css +0 -76
  93. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.html +0 -8
  94. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/Switch/Switch.js +0 -102
  95. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.css +0 -36
  96. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.html +0 -1
  97. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeItem/TreeItem.js +0 -126
  98. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.css +0 -8
  99. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.html +0 -1
  100. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/Visual/TreeView/TreeView.js +0 -48
  101. package/.worktrees/bundling-v2-precompiled-registrars/src/Components/components.js +0 -27
  102. package/.worktrees/bundling-v2-precompiled-registrars/src/Styles/sliceStyles.css +0 -34
  103. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Dark.css +0 -42
  104. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Light.css +0 -31
  105. package/.worktrees/bundling-v2-precompiled-registrars/src/Themes/Slice.css +0 -47
  106. package/.worktrees/bundling-v2-precompiled-registrars/src/images/Slice.js-logo.png +0 -0
  107. package/.worktrees/bundling-v2-precompiled-registrars/src/images/favicon.ico +0 -0
  108. package/.worktrees/bundling-v2-precompiled-registrars/src/images/im2/Slice.js-logo.png +0 -0
  109. package/.worktrees/bundling-v2-precompiled-registrars/src/routes.js +0 -16
  110. package/.worktrees/bundling-v2-precompiled-registrars/src/sliceConfig.json +0 -73
  111. package/.worktrees/bundling-v2-precompiled-registrars/src/testing.js +0 -888
  112. package/.worktrees/public-env-browser-exposure/LICENSE +0 -21
  113. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManager.js +0 -369
  114. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/ContextManager/ContextManagerDebugger.js +0 -297
  115. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Controller/Controller.js +0 -972
  116. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.css +0 -620
  117. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.html +0 -73
  118. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Debugger/Debugger.js +0 -1548
  119. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManager.js +0 -338
  120. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/EventManager/EventManagerDebugger.js +0 -361
  121. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Log.js +0 -10
  122. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Logger/Logger.js +0 -146
  123. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/Router/Router.js +0 -721
  124. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/StylesManager.js +0 -78
  125. package/.worktrees/public-env-browser-exposure/Slice/Components/Structural/StylesManager/ThemeManager/ThemeManager.js +0 -84
  126. package/.worktrees/public-env-browser-exposure/Slice/Slice.js +0 -533
  127. package/.worktrees/public-env-browser-exposure/Slice/tests/bundle-v2-runtime-contract.test.js +0 -268
  128. package/.worktrees/public-env-browser-exposure/Slice/tests/public-env-runtime-accessors.test.js +0 -44
  129. package/.worktrees/public-env-browser-exposure/Slice/tests/router-loading-finally.test.js +0 -68
  130. package/.worktrees/public-env-browser-exposure/api/index.js +0 -286
  131. package/.worktrees/public-env-browser-exposure/api/middleware/securityMiddleware.js +0 -253
  132. package/.worktrees/public-env-browser-exposure/api/tests/public-env-resolver.test.js +0 -193
  133. package/.worktrees/public-env-browser-exposure/api/utils/publicEnvResolver.js +0 -117
  134. package/.worktrees/public-env-browser-exposure/package.json +0 -37
  135. package/.worktrees/public-env-browser-exposure/sliceConfig.schema.json +0 -109
  136. package/.worktrees/public-env-browser-exposure/src/App/index.html +0 -22
  137. package/.worktrees/public-env-browser-exposure/src/App/index.js +0 -23
  138. package/.worktrees/public-env-browser-exposure/src/App/style.css +0 -40
  139. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.css +0 -201
  140. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.html +0 -37
  141. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/HomePage/HomePage.js +0 -210
  142. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.css +0 -12
  143. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.html +0 -0
  144. package/.worktrees/public-env-browser-exposure/src/Components/AppComponents/Playground/Playground.js +0 -111
  145. package/.worktrees/public-env-browser-exposure/src/Components/Service/FetchManager/FetchManager.js +0 -133
  146. package/.worktrees/public-env-browser-exposure/src/Components/Service/IndexedDbManager/IndexedDbManager.js +0 -141
  147. package/.worktrees/public-env-browser-exposure/src/Components/Service/LocalStorageManager/LocalStorageManager.js +0 -45
  148. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.css +0 -47
  149. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.html +0 -5
  150. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Button/Button.js +0 -93
  151. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.css +0 -68
  152. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.html +0 -7
  153. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Card/Card.js +0 -107
  154. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.css +0 -87
  155. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.html +0 -8
  156. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Checkbox/Checkbox.js +0 -86
  157. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.css +0 -130
  158. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.html +0 -4
  159. package/.worktrees/public-env-browser-exposure/src/Components/Visual/CodeVisualizer/CodeVisualizer.js +0 -262
  160. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.css +0 -70
  161. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.html +0 -9
  162. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Details/Details.js +0 -76
  163. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.css +0 -60
  164. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.html +0 -5
  165. package/.worktrees/public-env-browser-exposure/src/Components/Visual/DropDown/DropDown.js +0 -63
  166. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.css +0 -7
  167. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.html +0 -1
  168. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Grid/Grid.js +0 -57
  169. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.css +0 -510
  170. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.html +0 -1
  171. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/Icon.js +0 -89
  172. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.eot +0 -0
  173. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.json +0 -555
  174. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.styl +0 -507
  175. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.svg +0 -1485
  176. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.symbol.svg +0 -1059
  177. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.ttf +0 -0
  178. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff +0 -0
  179. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Icon/slc.woff2 +0 -0
  180. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.css +0 -91
  181. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.html +0 -4
  182. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Input/Input.js +0 -215
  183. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.css +0 -0
  184. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.html +0 -0
  185. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Layout/Layout.js +0 -49
  186. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.css +0 -8
  187. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.html +0 -1
  188. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Link/Link.js +0 -63
  189. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.css +0 -56
  190. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.html +0 -83
  191. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Loading/Loading.js +0 -38
  192. package/.worktrees/public-env-browser-exposure/src/Components/Visual/MultiRoute/MultiRoute.js +0 -93
  193. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.css +0 -115
  194. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.html +0 -44
  195. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Navbar/Navbar.js +0 -141
  196. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.css +0 -117
  197. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.html +0 -24
  198. package/.worktrees/public-env-browser-exposure/src/Components/Visual/NotFound/NotFound.js +0 -16
  199. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Route/Route.js +0 -93
  200. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.css +0 -84
  201. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.html +0 -8
  202. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Select/Select.js +0 -195
  203. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.css +0 -76
  204. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.html +0 -8
  205. package/.worktrees/public-env-browser-exposure/src/Components/Visual/Switch/Switch.js +0 -102
  206. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.css +0 -36
  207. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.html +0 -1
  208. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeItem/TreeItem.js +0 -126
  209. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.css +0 -8
  210. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.html +0 -1
  211. package/.worktrees/public-env-browser-exposure/src/Components/Visual/TreeView/TreeView.js +0 -48
  212. package/.worktrees/public-env-browser-exposure/src/Components/components.js +0 -27
  213. package/.worktrees/public-env-browser-exposure/src/Styles/sliceStyles.css +0 -34
  214. package/.worktrees/public-env-browser-exposure/src/Themes/Dark.css +0 -42
  215. package/.worktrees/public-env-browser-exposure/src/Themes/Light.css +0 -31
  216. package/.worktrees/public-env-browser-exposure/src/Themes/Slice.css +0 -47
  217. package/.worktrees/public-env-browser-exposure/src/images/Slice.js-logo.png +0 -0
  218. package/.worktrees/public-env-browser-exposure/src/images/favicon.ico +0 -0
  219. package/.worktrees/public-env-browser-exposure/src/images/im2/Slice.js-logo.png +0 -0
  220. package/.worktrees/public-env-browser-exposure/src/routes.js +0 -16
  221. package/.worktrees/public-env-browser-exposure/src/sliceConfig.json +0 -73
  222. package/.worktrees/public-env-browser-exposure/src/testing.js +0 -888
@@ -1,888 +0,0 @@
1
- /**
2
- * 🧪 Sistema de Testing para Slice.js
3
- *
4
- * Este archivo contiene métodos para testear la implementación del RouteRenderer
5
- * y verificar que el sistema de gestión de componentes funciona correctamente.
6
- */
7
-
8
- // Rutas reales de la aplicación para testing
9
- const REAL_ROUTES = [
10
- '/',
11
- '/Playground',
12
- '/Documentation',
13
- '/Documentation/Slice',
14
- '/Documentation/Commands',
15
- '/Documentation/SliceConfig',
16
- '/Documentation/Visual',
17
- '/Documentation/Service',
18
- '/Documentation/Structural',
19
- '/Documentation/Themes',
20
- '/Documentation/Routing',
21
- '/Documentation/Installation',
22
- '/Documentation/The-build-method',
23
- '/Documentation/Components/Visual',
24
- '/Documentation/Components/Visual/Card',
25
- '/Documentation/Components/Visual/Button',
26
- '/Documentation/Components/Visual/Switch',
27
- '/Documentation/Components/Visual/Checkbox',
28
- '/Documentation/Components/Visual/Input',
29
- '/About',
30
- '/404'
31
- ];
32
-
33
- // Función para ejecutar tests desde la consola del navegador
34
- window.testSliceImplementation = async function() {
35
- console.log('🚀 Iniciando tests de Slice.js...\n');
36
-
37
- if (!window.slice || !window.slice.router) {
38
- console.error('❌ Slice.js no está inicializado. Asegúrate de que la aplicación esté cargada.');
39
- return;
40
- }
41
-
42
- const renderer = window.slice.router.routeRenderer;
43
-
44
- try {
45
- // Ejecutar todos los tests
46
- const results = await renderer.runAllTests();
47
-
48
- // Ejecutar test de rendimiento con rutas reales
49
- console.log('\n' + '='.repeat(50));
50
- const performanceResults = await renderer.testPerformanceWithRealRoutes();
51
-
52
- // Mostrar estadísticas finales
53
- console.log('\n' + '='.repeat(50));
54
- console.log('📈 ESTADÍSTICAS FINALES:');
55
- const finalStats = renderer.getStats();
56
- console.log(` Total componentes activos: ${finalStats.controllerStats.totalActiveComponents}`);
57
- console.log(` Componentes huérfanos: ${finalStats.controllerStats.orphanedComponents}`);
58
- console.log(` Componentes en pool: ${finalStats.totalPooledComponents}`);
59
-
60
- return {
61
- testResults: results,
62
- performanceResults,
63
- finalStats
64
- };
65
- } catch (error) {
66
- console.error('❌ Error durante los tests:', error);
67
- return { error: error.message };
68
- }
69
- };
70
-
71
- // Función para monitorear componentes en tiempo real
72
- window.monitorComponents = function() {
73
- if (!window.slice) {
74
- console.error('❌ Slice.js no está inicializado.');
75
- return;
76
- }
77
-
78
- const renderer = window.slice.router.routeRenderer;
79
- const stats = renderer.getStats();
80
-
81
- console.log('📊 MONITOREO DE COMPONENTES:');
82
- console.log(` Total activos: ${stats.controllerStats.totalActiveComponents}`);
83
- console.log(` Huérfanos: ${stats.controllerStats.orphanedComponents}`);
84
- console.log(` En pool: ${stats.totalPooledComponents}`);
85
-
86
- if (stats.controllerStats.orphanedComponents > 0) {
87
- console.log(' 🧹 Componentes huérfanos encontrados:');
88
- stats.controllerStats.orphanedComponentIds.forEach(id => {
89
- console.log(` - ${id}`);
90
- });
91
- }
92
-
93
- console.log('\n 📋 Por tipo:');
94
- Object.entries(stats.controllerStats.activeComponentsByType).forEach(([type, counts]) => {
95
- console.log(` ${type}: ${counts.total} (${counts.connected} conectados, ${counts.orphaned} huérfanos)`);
96
- });
97
- };
98
-
99
- // Función para limpiar componentes huérfanos manualmente
100
- window.cleanupOrphanedComponents = function() {
101
- if (!window.slice) {
102
- console.error('❌ Slice.js no está inicializado.');
103
- return;
104
- }
105
-
106
- const renderer = window.slice.router.routeRenderer;
107
- const cleanedCount = renderer.cleanupOrphanedComponents();
108
-
109
- console.log(`🧹 Limpiados ${cleanedCount} componentes huérfanos.`);
110
- return cleanedCount;
111
- };
112
-
113
- // Función para simular navegación y testear reutilización con rutas reales
114
- window.testNavigation = async function() {
115
- if (!window.slice) {
116
- console.error('❌ Slice.js no está inicializado.');
117
- return;
118
- }
119
-
120
- console.log('🧭 Test de navegación con rutas reales...');
121
-
122
- const initialCount = window.slice.controller.activeComponents.size;
123
- console.log(` Componentes iniciales: ${initialCount}`);
124
-
125
- // Simular navegaciones con rutas reales
126
- const testRoutes = ['/', '/Playground', '/Documentation', '/About', '/', '/Documentation/Slice'];
127
-
128
- for (let i = 0; i < testRoutes.length; i++) {
129
- const route = testRoutes[i];
130
- console.log(` Navegando a: ${route}`);
131
-
132
- const beforeCount = window.slice.controller.activeComponents.size;
133
- window.slice.router.navigate(route);
134
-
135
- // Esperar un poco para que se complete la navegación
136
- await new Promise(resolve => setTimeout(resolve, 150));
137
-
138
- const afterCount = window.slice.controller.activeComponents.size;
139
- const created = afterCount - beforeCount;
140
-
141
- if (created > 0) {
142
- console.log(` ➕ Creados: ${created} componentes`);
143
- } else {
144
- console.log(` 🔄 Reutilizados componentes existentes`);
145
- }
146
- }
147
-
148
- const finalCount = window.slice.controller.activeComponents.size;
149
- const totalCreated = finalCount - initialCount;
150
-
151
- console.log(`\n📊 Resultado:`);
152
- console.log(` Componentes iniciales: ${initialCount}`);
153
- console.log(` Componentes finales: ${finalCount}`);
154
- console.log(` Total creados: ${totalCreated}`);
155
- console.log(` Eficiencia: ${(((testRoutes.length - totalCreated) / testRoutes.length) * 100).toFixed(1)}%`);
156
-
157
- return {
158
- initialCount,
159
- finalCount,
160
- totalCreated,
161
- efficiency: ((testRoutes.length - totalCreated) / testRoutes.length) * 100
162
- };
163
- };
164
-
165
- // Función para testear navegación en rutas anidadas
166
- window.testNestedRoutes = async function() {
167
- if (!window.slice) {
168
- console.error('❌ Slice.js no está inicializado.');
169
- return;
170
- }
171
-
172
- console.log('🌳 Test de rutas anidadas...');
173
-
174
- const initialCount = window.slice.controller.activeComponents.size;
175
- console.log(` Componentes iniciales: ${initialCount}`);
176
-
177
- // Test de navegación en rutas anidadas
178
- const nestedRoutes = [
179
- '/Documentation',
180
- '/Documentation/Slice',
181
- '/Documentation/Commands',
182
- '/Documentation/Components/Visual',
183
- '/Documentation/Components/Visual/Card',
184
- '/Documentation/Components/Visual/Button',
185
- '/Documentation/Components/Visual/Switch',
186
- '/Documentation/Components/Visual/Checkbox',
187
- '/Documentation/Components/Visual/Input'
188
- ];
189
-
190
- let totalCreated = 0;
191
-
192
- for (let i = 0; i < nestedRoutes.length; i++) {
193
- const route = nestedRoutes[i];
194
- console.log(` Navegando a: ${route}`);
195
-
196
- const beforeCount = window.slice.controller.activeComponents.size;
197
- window.slice.router.navigate(route);
198
-
199
- // Esperar un poco más para rutas complejas
200
- await new Promise(resolve => setTimeout(resolve, 200));
201
-
202
- const afterCount = window.slice.controller.activeComponents.size;
203
- const created = afterCount - beforeCount;
204
- totalCreated += created;
205
-
206
- if (created > 0) {
207
- console.log(` ➕ Creados: ${created} componentes`);
208
- } else {
209
- console.log(` 🔄 Reutilizados componentes existentes`);
210
- }
211
- }
212
-
213
- const finalCount = window.slice.controller.activeComponents.size;
214
- const actualCreated = finalCount - initialCount;
215
-
216
- console.log(`\n📊 Resultado de rutas anidadas:`);
217
- console.log(` Componentes iniciales: ${initialCount}`);
218
- console.log(` Componentes finales: ${finalCount}`);
219
- console.log(` Total creados: ${actualCreated}`);
220
- console.log(` Eficiencia: ${(((nestedRoutes.length - actualCreated) / nestedRoutes.length) * 100).toFixed(1)}%`);
221
-
222
- return {
223
- initialCount,
224
- finalCount,
225
- totalCreated: actualCreated,
226
- efficiency: ((nestedRoutes.length - actualCreated) / nestedRoutes.length) * 100
227
- };
228
- };
229
-
230
- // Función para testear stress con rutas reales
231
- window.stressTest = async function(iterations = 10) {
232
- if (!window.slice) {
233
- console.error('❌ Slice.js no está inicializado.');
234
- return;
235
- }
236
-
237
- console.log(`💪 Test de stress con rutas reales (${iterations} iteraciones)...`);
238
-
239
- const startTime = performance.now();
240
- const initialCount = window.slice.controller.activeComponents.size;
241
-
242
- // Usar rutas reales para el stress test
243
- const routes = ['/', '/Playground', '/Documentation', '/About'];
244
-
245
- for (let i = 0; i < iterations; i++) {
246
- const route = routes[i % routes.length];
247
- window.slice.router.navigate(route);
248
- await new Promise(resolve => setTimeout(resolve, 100));
249
- }
250
-
251
- const endTime = performance.now();
252
- const finalCount = window.slice.controller.activeComponents.size;
253
- const timeElapsed = endTime - startTime;
254
- const componentsCreated = finalCount - initialCount;
255
-
256
- console.log(`\n📊 Resultados del stress test:`);
257
- console.log(` ⏱️ Tiempo total: ${timeElapsed.toFixed(2)}ms`);
258
- console.log(` 📦 Componentes creados: ${componentsCreated}`);
259
- console.log(` 🔄 Componentes reutilizados: ${iterations - componentsCreated}`);
260
- console.log(` 📈 Eficiencia: ${(((iterations - componentsCreated) / iterations) * 100).toFixed(1)}%`);
261
- console.log(` ⚡ Velocidad: ${(iterations / (timeElapsed / 1000)).toFixed(1)} navegaciones/segundo`);
262
-
263
- return {
264
- timeElapsed,
265
- componentsCreated,
266
- componentsReused: iterations - componentsCreated,
267
- efficiency: ((iterations - componentsCreated) / iterations) * 100,
268
- speed: iterations / (timeElapsed / 1000)
269
- };
270
- };
271
-
272
- // Función para testear rutas específicas
273
- window.testSpecificRoutes = async function(routes = null) {
274
- if (!window.slice) {
275
- console.error('❌ Slice.js no está inicializado.');
276
- return;
277
- }
278
-
279
- const routesToTest = routes || [
280
- '/Documentation/Slice',
281
- '/Documentation/Commands',
282
- '/Documentation/Components/Visual/Card',
283
- '/Documentation/Components/Visual/Button'
284
- ];
285
-
286
- console.log(`🎯 Test de rutas específicas: ${routesToTest.join(', ')}`);
287
-
288
- const initialCount = window.slice.controller.activeComponents.size;
289
- const results = [];
290
-
291
- for (let i = 0; i < routesToTest.length; i++) {
292
- const route = routesToTest[i];
293
- console.log(` Navegando a: ${route}`);
294
-
295
- const beforeCount = window.slice.controller.activeComponents.size;
296
- const startTime = performance.now();
297
-
298
- window.slice.router.navigate(route);
299
- await new Promise(resolve => setTimeout(resolve, 150));
300
-
301
- const endTime = performance.now();
302
- const afterCount = window.slice.controller.activeComponents.size;
303
- const created = afterCount - beforeCount;
304
- const timeElapsed = endTime - startTime;
305
-
306
- results.push({
307
- route,
308
- created,
309
- timeElapsed,
310
- success: created >= 0 // Al menos no debería crear componentes negativos
311
- });
312
-
313
- if (created > 0) {
314
- console.log(` ➕ Creados: ${created} componentes (${timeElapsed.toFixed(2)}ms)`);
315
- } else {
316
- console.log(` 🔄 Reutilizados (${timeElapsed.toFixed(2)}ms)`);
317
- }
318
- }
319
-
320
- const finalCount = window.slice.controller.activeComponents.size;
321
- const totalCreated = finalCount - initialCount;
322
- const successfulRoutes = results.filter(r => r.success).length;
323
-
324
- console.log(`\n📊 Resultado de rutas específicas:`);
325
- console.log(` Rutas exitosas: ${successfulRoutes}/${routesToTest.length}`);
326
- console.log(` Componentes creados: ${totalCreated}`);
327
- console.log(` Tiempo promedio: ${(results.reduce((sum, r) => sum + r.timeElapsed, 0) / results.length).toFixed(2)}ms`);
328
-
329
- return {
330
- results,
331
- totalCreated,
332
- successfulRoutes,
333
- averageTime: results.reduce((sum, r) => sum + r.timeElapsed, 0) / results.length
334
- };
335
- };
336
-
337
- // Función para testear todas las rutas disponibles
338
- window.testAllRoutes = async function() {
339
- if (!window.slice) {
340
- console.error('❌ Slice.js no está inicializado.');
341
- return;
342
- }
343
-
344
- console.log(`🌐 Test de todas las rutas disponibles (${REAL_ROUTES.length} rutas)...`);
345
-
346
- const initialCount = window.slice.controller.activeComponents.size;
347
- const results = [];
348
- let successfulRoutes = 0;
349
- let totalCreated = 0;
350
-
351
- for (let i = 0; i < REAL_ROUTES.length; i++) {
352
- const route = REAL_ROUTES[i];
353
- console.log(` [${i + 1}/${REAL_ROUTES.length}] Navegando a: ${route}`);
354
-
355
- const beforeCount = window.slice.controller.activeComponents.size;
356
- const startTime = performance.now();
357
-
358
- try {
359
- window.slice.router.navigate(route);
360
- await new Promise(resolve => setTimeout(resolve, 100));
361
-
362
- const endTime = performance.now();
363
- const afterCount = window.slice.controller.activeComponents.size;
364
- const created = afterCount - beforeCount;
365
- const timeElapsed = endTime - startTime;
366
-
367
- totalCreated += created;
368
- successfulRoutes++;
369
-
370
- results.push({
371
- route,
372
- created,
373
- timeElapsed,
374
- success: true
375
- });
376
-
377
- if (created > 0) {
378
- console.log(` ➕ Creados: ${created} componentes (${timeElapsed.toFixed(2)}ms)`);
379
- } else {
380
- console.log(` 🔄 Reutilizados (${timeElapsed.toFixed(2)}ms)`);
381
- }
382
- } catch (error) {
383
- console.log(` ❌ Error: ${error.message}`);
384
- results.push({
385
- route,
386
- created: 0,
387
- timeElapsed: 0,
388
- success: false,
389
- error: error.message
390
- });
391
- }
392
- }
393
-
394
- const finalCount = window.slice.controller.activeComponents.size;
395
- const actualCreated = finalCount - initialCount;
396
-
397
- console.log(`\n📊 Resultado de todas las rutas:`);
398
- console.log(` Rutas exitosas: ${successfulRoutes}/${REAL_ROUTES.length}`);
399
- console.log(` Componentes creados: ${actualCreated}`);
400
- console.log(` Tiempo promedio: ${(results.filter(r => r.success).reduce((sum, r) => sum + r.timeElapsed, 0) / successfulRoutes).toFixed(2)}ms`);
401
- console.log(` Eficiencia: ${(((REAL_ROUTES.length - actualCreated) / REAL_ROUTES.length) * 100).toFixed(1)}%`);
402
-
403
- return {
404
- results,
405
- successfulRoutes,
406
- totalCreated: actualCreated,
407
- efficiency: ((REAL_ROUTES.length - actualCreated) / REAL_ROUTES.length) * 100
408
- };
409
- };
410
-
411
- // Función para mostrar ayuda
412
- window.showTestingHelp = function() {
413
- console.log(`
414
- 🧪 SISTEMA DE TESTING DE SLICE.JS
415
-
416
- Comandos disponibles:
417
-
418
- 📋 testSliceImplementation()
419
- Ejecuta todos los tests automáticamente
420
-
421
- 🧪 testSimple()
422
- Test simple de funcionalidad básica
423
-
424
- 🔍 debugReuse()
425
- Debug específico de reutilización de componentes
426
-
427
- 📊 monitorComponents()
428
- Muestra estadísticas actuales de componentes
429
-
430
- 🧹 cleanupOrphanedComponents()
431
- Limpia componentes huérfanos manualmente
432
-
433
- 🧭 testNavigation()
434
- Test de navegación con rutas reales básicas
435
-
436
- 🌳 testNestedRoutes()
437
- Test de rutas anidadas (Documentation/Components/...)
438
-
439
- 🎯 testSpecificRoutes([routes])
440
- Test de rutas específicas personalizadas
441
-
442
- 🌐 testAllRoutes()
443
- Test de todas las rutas disponibles
444
-
445
- 💪 stressTest(iterations)
446
- Test de stress con múltiples navegaciones
447
-
448
- 🔍 checkAvailableComponents()
449
- Verifica qué componentes están disponibles
450
-
451
- 🏊 debugComponentPool()
452
- Debug del pool de componentes
453
-
454
- 🧪 testComponentPoolManually()
455
- Test manual del pool de componentes
456
-
457
- 🧪 testWithAvailableComponents()
458
- Test con componentes disponibles
459
-
460
- 📊 testWithStateTracking()
461
- Test con seguimiento de estado antes/después
462
-
463
- ❓ showTestingHelp()
464
- Muestra esta ayuda
465
-
466
- Ejemplo de uso:
467
- testSimple() // Test simple y rápido
468
- debugReuse() // Debug específico de reutilización
469
- testSliceImplementation() // Ejecutar todos los tests
470
- testWithStateTracking() // Test con seguimiento de estado
471
- debugComponentPool() // Debug del pool
472
- testComponentPoolManually() // Test manual del pool
473
- testNestedRoutes() // Test rutas anidadas
474
- testSpecificRoutes(['/Documentation/Slice']) // Test ruta específica
475
- testAllRoutes() // Test todas las rutas
476
- stressTest(20) // Test de stress con 20 iteraciones
477
- `);
478
- };
479
-
480
- // Función para verificar componentes disponibles
481
- window.checkAvailableComponents = function() {
482
- if (!window.slice) {
483
- console.error('❌ Slice.js no está inicializado.');
484
- return;
485
- }
486
-
487
- const availableComponents = Array.from(window.slice.controller.componentCategories.keys());
488
-
489
- console.log('🔍 COMPONENTES DISPONIBLES:');
490
- console.log(` Total: ${availableComponents.length} componentes`);
491
- console.log('\n 📋 Lista completa:');
492
- availableComponents.forEach((component, index) => {
493
- console.log(` ${index + 1}. ${component}`);
494
- });
495
-
496
- // Verificar componentes críticos para los tests
497
- const criticalComponents = ['Playground', 'Button', 'Input', 'Card'];
498
- console.log('\n ✅ Componentes críticos para tests:');
499
- criticalComponents.forEach(component => {
500
- if (availableComponents.includes(component)) {
501
- console.log(` ✅ ${component} - Disponible`);
502
- } else {
503
- console.log(` ❌ ${component} - No disponible`);
504
- }
505
- });
506
-
507
- return availableComponents;
508
- };
509
-
510
- // Función para testear con componentes disponibles
511
- window.testWithAvailableComponents = async function() {
512
- if (!window.slice) {
513
- console.error('❌ Slice.js no está inicializado.');
514
- return;
515
- }
516
-
517
- const availableComponents = Array.from(window.slice.controller.componentCategories.keys());
518
-
519
- if (availableComponents.length === 0) {
520
- console.error('❌ No hay componentes disponibles para testing.');
521
- return;
522
- }
523
-
524
- console.log('🧪 Test con componentes disponibles...');
525
- console.log(` Componentes disponibles: ${availableComponents.join(', ')}`);
526
-
527
- // Usar el primer componente disponible para testing
528
- const testComponent = availableComponents[0];
529
- console.log(` Usando componente: ${testComponent}`);
530
-
531
- const initialCount = window.slice.controller.activeComponents.size;
532
- console.log(` Componentes iniciales: ${initialCount}`);
533
-
534
- // Test de creación y reutilización
535
- const testRoutes = [
536
- { path: '/test1', component: testComponent },
537
- { path: '/test2', component: testComponent },
538
- { path: '/test1', component: testComponent } // Debería reutilizar
539
- ];
540
-
541
- for (let i = 0; i < testRoutes.length; i++) {
542
- const route = testRoutes[i];
543
- console.log(` Navegando a: ${route.path} (${route.component})`);
544
-
545
- const beforeCount = window.slice.controller.activeComponents.size;
546
- window.slice.router.routeRenderer.handleRoute(route, {});
547
-
548
- // Esperar un poco para que se complete
549
- await new Promise(resolve => setTimeout(resolve, 100));
550
-
551
- const afterCount = window.slice.controller.activeComponents.size;
552
- const created = afterCount - beforeCount;
553
-
554
- if (created > 0) {
555
- console.log(` ➕ Creados: ${created} componentes`);
556
- } else {
557
- console.log(` 🔄 Reutilizados componentes existentes`);
558
- }
559
- }
560
-
561
- const finalCount = window.slice.controller.activeComponents.size;
562
- const totalCreated = finalCount - initialCount;
563
-
564
- console.log(`\n📊 Resultado:`);
565
- console.log(` Componentes iniciales: ${initialCount}`);
566
- console.log(` Componentes finales: ${finalCount}`);
567
- console.log(` Total creados: ${totalCreated}`);
568
- console.log(` Eficiencia: ${(((testRoutes.length - totalCreated) / testRoutes.length) * 100).toFixed(1)}%`);
569
-
570
- return {
571
- testComponent,
572
- initialCount,
573
- finalCount,
574
- totalCreated,
575
- efficiency: ((testRoutes.length - totalCreated) / testRoutes.length) * 100
576
- };
577
- };
578
-
579
- // Función para debuggear el pool de componentes
580
- window.debugComponentPool = function() {
581
- if (!window.slice) {
582
- console.error('❌ Slice.js no está inicializado.');
583
- return;
584
- }
585
-
586
- const renderer = window.slice.router.routeRenderer;
587
-
588
- console.log('🔍 DEBUG DEL POOL DE COMPONENTES:');
589
- console.log(` Tamaño máximo del pool: ${renderer.maxPoolSize}`);
590
- console.log(` Pool actual:`);
591
-
592
- if (renderer.componentPool.size === 0) {
593
- console.log(' (vacío)');
594
- } else {
595
- for (const [componentName, pool] of renderer.componentPool.entries()) {
596
- console.log(` ${componentName}: ${pool.length} componentes`);
597
- pool.forEach((component, index) => {
598
- console.log(` ${index + 1}. sliceId: ${component.sliceId || 'sin sliceId'}, connected: ${component.isConnected}`);
599
- });
600
- }
601
- }
602
-
603
- console.log(`\n Componentes activos en controller: ${window.slice.controller.activeComponents.size}`);
604
- console.log(` Componentes activos en renderer: ${renderer.activeComponents.size}`);
605
-
606
- return {
607
- poolSize: renderer.componentPool.size,
608
- totalPooledComponents: Array.from(renderer.componentPool.values()).reduce((total, pool) => total + pool.length, 0),
609
- controllerActiveComponents: window.slice.controller.activeComponents.size,
610
- rendererActiveComponents: renderer.activeComponents.size
611
- };
612
- };
613
-
614
- // Función para testear el pool manualmente
615
- window.testComponentPoolManually = async function() {
616
- if (!window.slice) {
617
- console.error('❌ Slice.js no está inicializado.');
618
- return;
619
- }
620
-
621
- const renderer = window.slice.router.routeRenderer;
622
-
623
- console.log('🧪 Test manual del pool de componentes...');
624
-
625
- // 1. Crear un componente
626
- const component = await window.slice.build('Button', {
627
- value: 'Pool Test',
628
- sliceId: 'manual-pool-test'
629
- });
630
-
631
- console.log(` 1. Componente creado: ${component ? '✅' : '❌'}`);
632
- console.log(` sliceId: ${component?.sliceId}`);
633
- console.log(` tagName: ${component?.tagName}`);
634
- console.log(` constructor: ${component?.constructor?.name}`);
635
-
636
- // 2. Añadir al pool
637
- const beforePoolSize = renderer.componentPool.size;
638
- renderer.addToPool(component);
639
- const afterPoolSize = renderer.componentPool.size;
640
-
641
- console.log(` 2. Añadido al pool: ${afterPoolSize > beforePoolSize ? '✅' : '❌'}`);
642
- console.log(` Pool size: ${beforePoolSize} -> ${afterPoolSize}`);
643
-
644
- // 3. Verificar contenido del pool
645
- debugComponentPool();
646
-
647
- // 4. Obtener del pool
648
- const retrievedComponent = renderer.getFromPool('button');
649
- console.log(` 3. Obtenido del pool: ${retrievedComponent ? '✅' : '❌'}`);
650
- console.log(` Componente recuperado: ${retrievedComponent === component ? '✅ mismo' : '❌ diferente'}`);
651
-
652
- return {
653
- created: !!component,
654
- addedToPool: afterPoolSize > beforePoolSize,
655
- retrieved: !!retrievedComponent,
656
- isSameComponent: retrievedComponent === component
657
- };
658
- };
659
-
660
- // Función para ver estado antes y después de tests
661
- window.testWithStateTracking = async function() {
662
- if (!window.slice) {
663
- console.error('❌ Slice.js no está inicializado.');
664
- return;
665
- }
666
-
667
- console.log('📊 Test con seguimiento de estado...');
668
-
669
- // Estado inicial
670
- const initialState = {
671
- controllerComponents: window.slice.controller.activeComponents.size,
672
- rendererComponents: window.slice.router.routeRenderer.activeComponents.size,
673
- poolSize: window.slice.router.routeRenderer.componentPool.size,
674
- orphanedComponents: 0
675
- };
676
-
677
- // Contar componentes huérfanos
678
- for (const [sliceId, component] of window.slice.controller.activeComponents.entries()) {
679
- if (!component.isConnected && component !== window.slice.loading) {
680
- initialState.orphanedComponents++;
681
- }
682
- }
683
-
684
- console.log('📈 Estado inicial:');
685
- console.log(` Controller: ${initialState.controllerComponents} componentes`);
686
- console.log(` Renderer: ${initialState.rendererComponents} componentes`);
687
- console.log(` Pool: ${initialState.poolSize} tipos`);
688
- console.log(` Huérfanos: ${initialState.orphanedComponents} componentes`);
689
-
690
- // Ejecutar tests
691
- console.log('\n🧪 Ejecutando tests...');
692
- const results = await window.testSliceImplementation();
693
-
694
- // Estado final
695
- const finalState = {
696
- controllerComponents: window.slice.controller.activeComponents.size,
697
- rendererComponents: window.slice.router.routeRenderer.activeComponents.size,
698
- poolSize: window.slice.router.routeRenderer.componentPool.size,
699
- orphanedComponents: 0
700
- };
701
-
702
- // Contar componentes huérfanos finales
703
- for (const [sliceId, component] of window.slice.controller.activeComponents.entries()) {
704
- if (!component.isConnected && component !== window.slice.loading) {
705
- finalState.orphanedComponents++;
706
- }
707
- }
708
-
709
- console.log('\n📉 Estado final:');
710
- console.log(` Controller: ${finalState.controllerComponents} componentes (${finalState.controllerComponents - initialState.controllerComponents > 0 ? '+' : ''}${finalState.controllerComponents - initialState.controllerComponents})`);
711
- console.log(` Renderer: ${finalState.rendererComponents} componentes (${finalState.rendererComponents - initialState.rendererComponents > 0 ? '+' : ''}${finalState.rendererComponents - initialState.rendererComponents})`);
712
- console.log(` Pool: ${finalState.poolSize} tipos (${finalState.poolSize - initialState.poolSize > 0 ? '+' : ''}${finalState.poolSize - initialState.poolSize})`);
713
- console.log(` Huérfanos: ${finalState.orphanedComponents} componentes (${finalState.orphanedComponents - initialState.orphanedComponents > 0 ? '+' : ''}${finalState.orphanedComponents - initialState.orphanedComponents})`);
714
-
715
- // Análisis
716
- console.log('\n🔍 Análisis:');
717
- const controllerDiff = finalState.controllerComponents - initialState.controllerComponents;
718
- const rendererDiff = finalState.rendererComponents - initialState.rendererComponents;
719
- const orphanedDiff = finalState.orphanedComponents - initialState.orphanedComponents;
720
-
721
- if (controllerDiff === 0 && rendererDiff === 0) {
722
- console.log(' ✅ No se crearon componentes adicionales');
723
- } else {
724
- console.log(` ⚠️ Se crearon ${controllerDiff} componentes en controller, ${rendererDiff} en renderer`);
725
- }
726
-
727
- if (orphanedDiff <= 0) {
728
- console.log(' ✅ No hay componentes huérfanos adicionales');
729
- } else {
730
- console.log(` ❌ Se crearon ${orphanedDiff} componentes huérfanos adicionales`);
731
- }
732
-
733
- return {
734
- initialState,
735
- finalState,
736
- differences: {
737
- controller: controllerDiff,
738
- renderer: rendererDiff,
739
- orphaned: orphanedDiff
740
- },
741
- testResults: results
742
- };
743
- };
744
-
745
- // Función para test simple sin problemas complejos
746
- window.testSimple = async function() {
747
- if (!window.slice) {
748
- console.error('❌ Slice.js no está inicializado.');
749
- return;
750
- }
751
-
752
- console.log('🧪 Test simple de funcionalidad básica...');
753
-
754
- const results = {
755
- passed: 0,
756
- failed: 0,
757
- tests: []
758
- };
759
-
760
- // Test 1: Crear un componente simple
761
- const sliceId = `simple-test-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
762
- const component = await window.slice.build('Button', {
763
- value: 'Simple Test',
764
- sliceId: sliceId
765
- });
766
-
767
- if (component && component instanceof Node) {
768
- results.passed++;
769
- results.tests.push('✅ Componente se crea correctamente');
770
- } else {
771
- results.failed++;
772
- results.tests.push('❌ Componente no se crea correctamente');
773
- }
774
-
775
- // Test 2: Verificar que está en el controller
776
- const controllerComponent = window.slice.controller.getComponent(sliceId);
777
- if (controllerComponent === component) {
778
- results.passed++;
779
- results.tests.push('✅ Componente está en el controller');
780
- } else {
781
- results.failed++;
782
- results.tests.push('❌ Componente no está en el controller');
783
- }
784
-
785
- // Test 3: Verificar que se puede obtener
786
- const retrievedComponent = window.slice.controller.getComponent(sliceId);
787
- if (retrievedComponent) {
788
- results.passed++;
789
- results.tests.push('✅ Componente se puede obtener');
790
- } else {
791
- results.failed++;
792
- results.tests.push('❌ Componente no se puede obtener');
793
- }
794
-
795
- // Test 4: Verificar que se puede destruir
796
- const beforeCount = window.slice.controller.activeComponents.size;
797
- window.slice.router.routeRenderer.destroyComponent(component);
798
- const afterCount = window.slice.controller.activeComponents.size;
799
-
800
- if (afterCount < beforeCount) {
801
- results.passed++;
802
- results.tests.push('✅ Componente se destruye correctamente');
803
- } else {
804
- results.failed++;
805
- results.tests.push('❌ Componente no se destruye correctamente');
806
- }
807
-
808
- // Mostrar resultados
809
- console.log('\n📊 Resultados del test simple:');
810
- console.log(` ✅ Pasados: ${results.passed}`);
811
- console.log(` ❌ Fallidos: ${results.failed}`);
812
- results.tests.forEach(test => console.log(` ${test}`));
813
-
814
- return results;
815
- };
816
-
817
- // Función para debug específico de reutilización
818
- window.debugReuse = async function() {
819
- if (!window.slice) {
820
- console.error('❌ Slice.js no está inicializado.');
821
- return;
822
- }
823
-
824
- console.log('🔍 Debug específico de reutilización...');
825
-
826
- const sliceId = `debug-reuse-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
827
-
828
- // Paso 1: Crear componente
829
- console.log(`Paso 1: Creando componente con sliceId: ${sliceId}`);
830
- const component1 = await window.slice.router.routeRenderer.getOrCreateComponent('Button', sliceId, {
831
- value: 'Debug Test'
832
- });
833
-
834
- if (!component1) {
835
- console.error('❌ No se pudo crear el componente');
836
- return;
837
- }
838
-
839
- console.log(` Componente creado: ${component1.constructor.name}`);
840
- console.log(` sliceId: ${component1.sliceId}`);
841
- console.log(` Está en controller: ${window.slice.controller.getComponent(sliceId) ? 'Sí' : 'No'}`);
842
-
843
- // Paso 2: Verificar en controller
844
- const controllerComponent = window.slice.controller.getComponent(sliceId);
845
- console.log(`Paso 2: Verificando controller`);
846
- console.log(` Componente en controller: ${controllerComponent ? controllerComponent.constructor.name : 'null'}`);
847
- console.log(` Son iguales: ${component1 === controllerComponent}`);
848
-
849
- // Paso 3: Intentar reutilizar
850
- console.log(`Paso 3: Intentando reutilizar`);
851
- const beforeCount = window.slice.controller.activeComponents.size;
852
- const component2 = await window.slice.router.routeRenderer.getOrCreateComponent('Button', sliceId, {
853
- value: 'Debug Test Updated'
854
- });
855
- const afterCount = window.slice.controller.activeComponents.size;
856
-
857
- console.log(` Contador: ${beforeCount} -> ${afterCount}`);
858
- console.log(` Componente 2: ${component2 ? component2.constructor.name : 'null'}`);
859
- console.log(` Son iguales: ${component1 === component2}`);
860
-
861
- // Análisis
862
- console.log(`\n📊 Análisis:`);
863
- if (component1 === component2) {
864
- console.log(` ✅ Reutilización funciona`);
865
- } else {
866
- console.log(` ❌ Reutilización falla`);
867
- }
868
-
869
- if (beforeCount === afterCount) {
870
- console.log(` ✅ No se crearon componentes adicionales`);
871
- } else {
872
- console.log(` ❌ Se crearon ${afterCount - beforeCount} componentes adicionales`);
873
- }
874
-
875
- // Limpiar
876
- window.slice.router.routeRenderer.destroyComponent(component1);
877
-
878
- return {
879
- component1,
880
- component2,
881
- areEqual: component1 === component2,
882
- countDiff: afterCount - beforeCount
883
- };
884
- };
885
-
886
- // Auto-ejecutar ayuda cuando se carga el archivo
887
- console.log('🧪 Sistema de testing de Slice.js cargado.');
888
- console.log('💡 Usa showTestingHelp() para ver los comandos disponibles.');