@flashist/appframework 0.0.267 → 0.0.269

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 (480) hide show
  1. package/app/AppModule.js +3 -3
  2. package/app/AppModule.js.map +1 -1
  3. package/app/commands/LoadAppConfigCommand.js +1 -1
  4. package/app/commands/LoadAppConfigCommand.js.map +1 -1
  5. package/app/commands/ParseStaticItemsConfigCommand.js +1 -1
  6. package/app/commands/ParseStaticItemsConfigCommand.js.map +1 -1
  7. package/display/views/button/SimpleButtonView.d.ts +1 -1
  8. package/display/views/button/SimpleButtonView.js +1 -1
  9. package/display/views/button/SimpleButtonView.js.map +1 -1
  10. package/display/views/button/simple-image-button/SimpleImageButton.d.ts +1 -2
  11. package/display/views/button/simple-image-button/SimpleImageButton.js +1 -1
  12. package/display/views/button/simple-image-button/SimpleImageButton.js.map +1 -1
  13. package/display/views/layout/MultiColumnLayout.d.ts +1 -1
  14. package/display/views/viewstack/index.d.ts +0 -1
  15. package/display/views/viewstack/index.js +0 -1
  16. package/display/views/viewstack/index.js.map +1 -1
  17. package/index.d.ts +148 -38
  18. package/index.js +148 -38
  19. package/index.js.map +1 -1
  20. package/package.json +2 -1
  21. package/sounds/SoundsModule.js +1 -1
  22. package/sounds/SoundsModule.js.map +1 -1
  23. package/src/app/AppModule.d.ts +6 -0
  24. package/src/app/AppModule.js +22 -0
  25. package/src/app/AppModule.js.map +1 -0
  26. package/src/app/AppSettings.d.ts +7 -0
  27. package/src/app/AppSettings.js +8 -0
  28. package/src/app/AppSettings.js.map +1 -0
  29. package/src/app/commands/LoadAppConfigCommand.d.ts +5 -0
  30. package/src/app/commands/LoadAppConfigCommand.js +41 -0
  31. package/src/app/commands/LoadAppConfigCommand.js.map +1 -0
  32. package/src/app/commands/ParseStaticItemsConfigCommand.d.ts +4 -0
  33. package/src/app/commands/ParseStaticItemsConfigCommand.js +43 -0
  34. package/src/app/commands/ParseStaticItemsConfigCommand.js.map +1 -0
  35. package/src/app/data/local-storage/IAppModelLocalStorageVO.d.ts +4 -0
  36. package/src/app/data/local-storage/IAppModelLocalStorageVO.js +2 -0
  37. package/src/app/data/local-storage/IAppModelLocalStorageVO.js.map +1 -0
  38. package/src/app/data/state/AppModuleState.d.ts +24 -0
  39. package/src/app/data/state/AppModuleState.js +25 -0
  40. package/src/app/data/state/AppModuleState.js.map +1 -0
  41. package/src/app/managers/AppManager.d.ts +16 -0
  42. package/src/app/managers/AppManager.js +73 -0
  43. package/src/app/managers/AppManager.js.map +1 -0
  44. package/src/app/views/AppMainContainer.d.ts +10 -0
  45. package/src/app/views/AppMainContainer.js +30 -0
  46. package/src/app/views/AppMainContainer.js.map +1 -0
  47. package/src/app/views/AppMainContainerEvent.d.ts +4 -0
  48. package/src/app/views/AppMainContainerEvent.js +6 -0
  49. package/src/app/views/AppMainContainerEvent.js.map +1 -0
  50. package/src/assets/commands/ParseAssetsConfigCommand.d.ts +4 -0
  51. package/src/assets/commands/ParseAssetsConfigCommand.js +21 -0
  52. package/src/assets/commands/ParseAssetsConfigCommand.js.map +1 -0
  53. package/src/base/BaseObjectWithGlobalDispatcher.d.ts +7 -0
  54. package/src/base/BaseObjectWithGlobalDispatcher.js +15 -0
  55. package/src/base/BaseObjectWithGlobalDispatcher.js.map +1 -0
  56. package/src/base/commands/BaseAppCommand.d.ts +7 -0
  57. package/src/base/commands/BaseAppCommand.js +15 -0
  58. package/src/base/commands/BaseAppCommand.js.map +1 -0
  59. package/src/base/managers/BaseAppManager.d.ts +3 -0
  60. package/src/base/managers/BaseAppManager.js +4 -0
  61. package/src/base/managers/BaseAppManager.js.map +1 -0
  62. package/src/base/mediators/BaseAppMediator.d.ts +9 -0
  63. package/src/base/mediators/BaseAppMediator.js +13 -0
  64. package/src/base/mediators/BaseAppMediator.js.map +1 -0
  65. package/src/base/models/BaseAppModel.d.ts +3 -0
  66. package/src/base/models/BaseAppModel.js +4 -0
  67. package/src/base/models/BaseAppModel.js.map +1 -0
  68. package/src/base/modules/AppModulesManager.d.ts +9 -0
  69. package/src/base/modules/AppModulesManager.js +50 -0
  70. package/src/base/modules/AppModulesManager.js.map +1 -0
  71. package/src/base/modules/BaseAppModule.d.ts +6 -0
  72. package/src/base/modules/BaseAppModule.js +13 -0
  73. package/src/base/modules/BaseAppModule.js.map +1 -0
  74. package/src/base/views/BaseAppView.d.ts +8 -0
  75. package/src/base/views/BaseAppView.js +13 -0
  76. package/src/base/views/BaseAppView.js.map +1 -0
  77. package/src/containers/ContainersModule.d.ts +4 -0
  78. package/src/containers/ContainersModule.js +10 -0
  79. package/src/containers/ContainersModule.js.map +1 -0
  80. package/src/containers/managers/ContainersManager.d.ts +8 -0
  81. package/src/containers/managers/ContainersManager.js +21 -0
  82. package/src/containers/managers/ContainersManager.js.map +1 -0
  83. package/src/date/DateSettings.d.ts +6 -0
  84. package/src/date/DateSettings.js +7 -0
  85. package/src/date/DateSettings.js.map +1 -0
  86. package/src/debug/DebugModule.d.ts +5 -0
  87. package/src/debug/DebugModule.js +22 -0
  88. package/src/debug/DebugModule.js.map +1 -0
  89. package/src/debug/data/state/DebugModuleState.d.ts +7 -0
  90. package/src/debug/data/state/DebugModuleState.js +10 -0
  91. package/src/debug/data/state/DebugModuleState.js.map +1 -0
  92. package/src/device/DeviceModule.d.ts +4 -0
  93. package/src/device/DeviceModule.js +12 -0
  94. package/src/device/DeviceModule.js.map +1 -0
  95. package/src/device/data/state/DeviceModuleState.d.ts +4 -0
  96. package/src/device/data/state/DeviceModuleState.js +5 -0
  97. package/src/device/data/state/DeviceModuleState.js.map +1 -0
  98. package/src/display/data/IGetSizable.d.ts +4 -0
  99. package/src/display/data/IGetSizable.js +2 -0
  100. package/src/display/data/IGetSizable.js.map +1 -0
  101. package/src/display/tools/GetSizeTools.d.ts +4 -0
  102. package/src/display/tools/GetSizeTools.js +20 -0
  103. package/src/display/tools/GetSizeTools.js.map +1 -0
  104. package/src/display/views/AppContainer.d.ts +7 -0
  105. package/src/display/views/AppContainer.js +13 -0
  106. package/src/display/views/AppContainer.js.map +1 -0
  107. package/src/display/views/button/BaseBtn.d.ts +32 -0
  108. package/src/display/views/button/BaseBtn.js +222 -0
  109. package/src/display/views/button/BaseBtn.js.map +1 -0
  110. package/src/display/views/button/BaseBtnEvent.d.ts +4 -0
  111. package/src/display/views/button/BaseBtnEvent.js +5 -0
  112. package/src/display/views/button/BaseBtnEvent.js.map +1 -0
  113. package/src/display/views/button/BaseBtnState.d.ts +12 -0
  114. package/src/display/views/button/BaseBtnState.js +27 -0
  115. package/src/display/views/button/BaseBtnState.js.map +1 -0
  116. package/src/display/views/button/BaseBtnView.d.ts +30 -0
  117. package/src/display/views/button/BaseBtnView.js +155 -0
  118. package/src/display/views/button/BaseBtnView.js.map +1 -0
  119. package/src/display/views/button/DefaultButtonViewConfig.d.ts +8 -0
  120. package/src/display/views/button/DefaultButtonViewConfig.js +10 -0
  121. package/src/display/views/button/DefaultButtonViewConfig.js.map +1 -0
  122. package/src/display/views/button/IButtonViewConfig.d.ts +13 -0
  123. package/src/display/views/button/IButtonViewConfig.js +2 -0
  124. package/src/display/views/button/IButtonViewConfig.js.map +1 -0
  125. package/src/display/views/button/SimpleButtonConfig.d.ts +29 -0
  126. package/src/display/views/button/SimpleButtonConfig.js +54 -0
  127. package/src/display/views/button/SimpleButtonConfig.js.map +1 -0
  128. package/src/display/views/button/SimpleButtonState.d.ts +10 -0
  129. package/src/display/views/button/SimpleButtonState.js +12 -0
  130. package/src/display/views/button/SimpleButtonState.js.map +1 -0
  131. package/src/display/views/button/SimpleButtonView.d.ts +45 -0
  132. package/src/display/views/button/SimpleButtonView.js +260 -0
  133. package/src/display/views/button/SimpleButtonView.js.map +1 -0
  134. package/src/display/views/button/simple-image-button/SimpleImageButton.d.ts +33 -0
  135. package/src/display/views/button/simple-image-button/SimpleImageButton.js +167 -0
  136. package/src/display/views/button/simple-image-button/SimpleImageButton.js.map +1 -0
  137. package/src/display/views/button/simple-image-button/SimpleImageButtonConfig.d.ts +8 -0
  138. package/src/display/views/button/simple-image-button/SimpleImageButtonConfig.js +4 -0
  139. package/src/display/views/button/simple-image-button/SimpleImageButtonConfig.js.map +1 -0
  140. package/src/display/views/button/simple-image-button/SimpleImageButtonState.d.ts +22 -0
  141. package/src/display/views/button/simple-image-button/SimpleImageButtonState.js +56 -0
  142. package/src/display/views/button/simple-image-button/SimpleImageButtonState.js.map +1 -0
  143. package/src/display/views/layout/AlignWithMaxSizeLayout.d.ts +8 -0
  144. package/src/display/views/layout/AlignWithMaxSizeLayout.js +35 -0
  145. package/src/display/views/layout/AlignWithMaxSizeLayout.js.map +1 -0
  146. package/src/display/views/layout/BaseLayout.d.ts +22 -0
  147. package/src/display/views/layout/BaseLayout.js +108 -0
  148. package/src/display/views/layout/BaseLayout.js.map +1 -0
  149. package/src/display/views/layout/ColumnLayout.d.ts +42 -0
  150. package/src/display/views/layout/ColumnLayout.js +93 -0
  151. package/src/display/views/layout/ColumnLayout.js.map +1 -0
  152. package/src/display/views/layout/LayoutConfig.d.ts +9 -0
  153. package/src/display/views/layout/LayoutConfig.js +12 -0
  154. package/src/display/views/layout/LayoutConfig.js.map +1 -0
  155. package/src/display/views/layout/MultiColumnLayout.d.ts +14 -0
  156. package/src/display/views/layout/MultiColumnLayout.js +38 -0
  157. package/src/display/views/layout/MultiColumnLayout.js.map +1 -0
  158. package/src/display/views/layout/MultiColumnLayoutConfig.d.ts +4 -0
  159. package/src/display/views/layout/MultiColumnLayoutConfig.js +4 -0
  160. package/src/display/views/layout/MultiColumnLayoutConfig.js.map +1 -0
  161. package/src/display/views/layout/RowLayout.d.ts +38 -0
  162. package/src/display/views/layout/RowLayout.js +89 -0
  163. package/src/display/views/layout/RowLayout.js.map +1 -0
  164. package/src/display/views/layout/container/BaseLayoutableContainer.d.ts +8 -0
  165. package/src/display/views/layout/container/BaseLayoutableContainer.js +10 -0
  166. package/src/display/views/layout/container/BaseLayoutableContainer.js.map +1 -0
  167. package/src/display/views/layout/container/ILayoutableChild.d.ts +2 -0
  168. package/src/display/views/layout/container/ILayoutableChild.js +2 -0
  169. package/src/display/views/layout/container/ILayoutableChild.js.map +1 -0
  170. package/src/display/views/layout/container/ILayoutableContainer.d.ts +15 -0
  171. package/src/display/views/layout/container/ILayoutableContainer.js +2 -0
  172. package/src/display/views/layout/container/ILayoutableContainer.js.map +1 -0
  173. package/src/display/views/resize/AppResizableContainer.d.ts +16 -0
  174. package/src/display/views/resize/AppResizableContainer.js +62 -0
  175. package/src/display/views/resize/AppResizableContainer.js.map +1 -0
  176. package/src/display/views/resize/IResizable.d.ts +5 -0
  177. package/src/display/views/resize/IResizable.js +2 -0
  178. package/src/display/views/resize/IResizable.js.map +1 -0
  179. package/src/display/views/simplelist/ISimpleListItem.d.ts +3 -0
  180. package/src/display/views/simplelist/ISimpleListItem.js +2 -0
  181. package/src/display/views/simplelist/ISimpleListItem.js.map +1 -0
  182. package/src/display/views/simplelist/SimpleList.d.ts +39 -0
  183. package/src/display/views/simplelist/SimpleList.js +241 -0
  184. package/src/display/views/simplelist/SimpleList.js.map +1 -0
  185. package/src/display/views/simplelist/SimpleListEvent.d.ts +4 -0
  186. package/src/display/views/simplelist/SimpleListEvent.js +5 -0
  187. package/src/display/views/simplelist/SimpleListEvent.js.map +1 -0
  188. package/src/display/views/sizedistributor/ISizeDistributorChild.d.ts +4 -0
  189. package/src/display/views/sizedistributor/ISizeDistributorChild.js +2 -0
  190. package/src/display/views/sizedistributor/ISizeDistributorChild.js.map +1 -0
  191. package/src/display/views/sizedistributor/SizeDistributor.d.ts +2 -0
  192. package/src/display/views/sizedistributor/SizeDistributor.js +3 -0
  193. package/src/display/views/sizedistributor/SizeDistributor.js.map +1 -0
  194. package/src/display/views/sizedistributor/SizeDistributorConfig.d.ts +9 -0
  195. package/src/display/views/sizedistributor/SizeDistributorConfig.js +10 -0
  196. package/src/display/views/sizedistributor/SizeDistributorConfig.js.map +1 -0
  197. package/src/display/views/togglegroup/IToggableItem.d.ts +5 -0
  198. package/src/display/views/togglegroup/IToggableItem.js +2 -0
  199. package/src/display/views/togglegroup/IToggableItem.js.map +1 -0
  200. package/src/display/views/togglegroup/IToggleGroupItem.d.ts +5 -0
  201. package/src/display/views/togglegroup/IToggleGroupItem.js +2 -0
  202. package/src/display/views/togglegroup/IToggleGroupItem.js.map +1 -0
  203. package/src/display/views/togglegroup/ToggleGroup.d.ts +18 -0
  204. package/src/display/views/togglegroup/ToggleGroup.js +110 -0
  205. package/src/display/views/togglegroup/ToggleGroup.js.map +1 -0
  206. package/src/display/views/togglegroup/ToggleGroupEvent.d.ts +3 -0
  207. package/src/display/views/togglegroup/ToggleGroupEvent.js +4 -0
  208. package/src/display/views/togglegroup/ToggleGroupEvent.js.map +1 -0
  209. package/src/display/views/viewstack/IViewStackItem.d.ts +4 -0
  210. package/src/display/views/viewstack/IViewStackItem.js +2 -0
  211. package/src/display/views/viewstack/IViewStackItem.js.map +1 -0
  212. package/src/display/views/viewstack/ViewLazyCreationServiceLocatorStack.d.ts +5 -0
  213. package/src/display/views/viewstack/ViewLazyCreationServiceLocatorStack.js +13 -0
  214. package/src/display/views/viewstack/ViewLazyCreationServiceLocatorStack.js.map +1 -0
  215. package/src/display/views/viewstack/ViewLazyCreationStack.d.ts +11 -0
  216. package/{display/views/viewstack/ViewStackLazyCreation.js → src/display/views/viewstack/ViewLazyCreationStack.js} +11 -6
  217. package/src/display/views/viewstack/ViewLazyCreationStack.js.map +1 -0
  218. package/src/display/views/viewstack/ViewStack.d.ts +18 -0
  219. package/src/display/views/viewstack/ViewStack.js +63 -0
  220. package/src/display/views/viewstack/ViewStack.js.map +1 -0
  221. package/src/ecs/ECSModule.d.ts +4 -0
  222. package/src/ecs/ECSModule.js +10 -0
  223. package/src/ecs/ECSModule.js.map +1 -0
  224. package/src/ecs/ecs/components/IComponent.d.ts +3 -0
  225. package/src/ecs/ecs/components/IComponent.js +2 -0
  226. package/src/ecs/ecs/components/IComponent.js.map +1 -0
  227. package/src/ecs/ecs/entities/IEntity.d.ts +7 -0
  228. package/src/ecs/ecs/entities/IEntity.js +2 -0
  229. package/src/ecs/ecs/entities/IEntity.js.map +1 -0
  230. package/src/ecs/ecs/entities/queries/EntitiesQuery.d.ts +11 -0
  231. package/src/ecs/ecs/entities/queries/EntitiesQuery.js +28 -0
  232. package/src/ecs/ecs/entities/queries/EntitiesQuery.js.map +1 -0
  233. package/src/ecs/ecs/entities/queries/EntitiesQueryEvent.d.ts +4 -0
  234. package/src/ecs/ecs/entities/queries/EntitiesQueryEvent.js +5 -0
  235. package/src/ecs/ecs/entities/queries/EntitiesQueryEvent.js.map +1 -0
  236. package/src/ecs/ecs/systems/System.d.ts +16 -0
  237. package/src/ecs/ecs/systems/System.js +32 -0
  238. package/src/ecs/ecs/systems/System.js.map +1 -0
  239. package/src/ecs/managers/ECSManager.d.ts +42 -0
  240. package/src/ecs/managers/ECSManager.js +142 -0
  241. package/src/ecs/managers/ECSManager.js.map +1 -0
  242. package/src/ecs-rendermodule/ECSRenderModule.d.ts +5 -0
  243. package/src/ecs-rendermodule/ECSRenderModule.js +17 -0
  244. package/src/ecs-rendermodule/ECSRenderModule.js.map +1 -0
  245. package/src/ecs-rendermodule/data/RenderModuleRootContainerId.d.ts +1 -0
  246. package/src/ecs-rendermodule/data/RenderModuleRootContainerId.js +2 -0
  247. package/src/ecs-rendermodule/data/RenderModuleRootContainerId.js.map +1 -0
  248. package/src/ecs-rendermodule/ecs/components/RenderComponent.d.ts +12 -0
  249. package/src/ecs-rendermodule/ecs/components/RenderComponent.js +7 -0
  250. package/src/ecs-rendermodule/ecs/components/RenderComponent.js.map +1 -0
  251. package/src/ecs-rendermodule/ecs/systems/RenderSystem.d.ts +14 -0
  252. package/src/ecs-rendermodule/ecs/systems/RenderSystem.js +38 -0
  253. package/src/ecs-rendermodule/ecs/systems/RenderSystem.js.map +1 -0
  254. package/src/events/commands/DispatchGlobalEventCommand.d.ts +8 -0
  255. package/src/events/commands/DispatchGlobalEventCommand.js +15 -0
  256. package/src/events/commands/DispatchGlobalEventCommand.js.map +1 -0
  257. package/src/facade/Facade.d.ts +32 -0
  258. package/src/facade/Facade.js +172 -0
  259. package/src/facade/Facade.js.map +1 -0
  260. package/src/facade/IFacadeOptions.d.ts +6 -0
  261. package/src/facade/IFacadeOptions.js +2 -0
  262. package/src/facade/IFacadeOptions.js.map +1 -0
  263. package/src/global/data/FlashistGlobalVars.d.ts +3 -0
  264. package/src/global/data/FlashistGlobalVars.js +1 -0
  265. package/src/global/data/FlashistGlobalVars.js.map +1 -0
  266. package/src/globaleventdispatcher/GlobalEventDispatcherModule.d.ts +4 -0
  267. package/src/globaleventdispatcher/GlobalEventDispatcherModule.js +12 -0
  268. package/src/globaleventdispatcher/GlobalEventDispatcherModule.js.map +1 -0
  269. package/src/globaleventdispatcher/commands/WaitGlobalEventCommand.d.ts +6 -0
  270. package/src/globaleventdispatcher/commands/WaitGlobalEventCommand.js +19 -0
  271. package/src/globaleventdispatcher/commands/WaitGlobalEventCommand.js.map +1 -0
  272. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcher.d.ts +10 -0
  273. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcher.js +26 -0
  274. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcher.js.map +1 -0
  275. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherAgumentsType.d.ts +1 -0
  276. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherAgumentsType.js +2 -0
  277. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherAgumentsType.js.map +1 -0
  278. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherEvent.d.ts +4 -0
  279. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherEvent.js +5 -0
  280. package/src/globaleventdispatcher/dispatcher/GlobalEventDispatcherEvent.js.map +1 -0
  281. package/src/globaleventdispatcher/dispatcher/IGlobalDispatchEventVO.d.ts +4 -0
  282. package/src/globaleventdispatcher/dispatcher/IGlobalDispatchEventVO.js +2 -0
  283. package/src/globaleventdispatcher/dispatcher/IGlobalDispatchEventVO.js.map +1 -0
  284. package/src/globaleventdispatcher/managers/GlobalEventsCommandManager.d.ts +5 -0
  285. package/src/globaleventdispatcher/managers/GlobalEventsCommandManager.js +15 -0
  286. package/src/globaleventdispatcher/managers/GlobalEventsCommandManager.js.map +1 -0
  287. package/src/hints/commands/AnimateHintCommand.d.ts +10 -0
  288. package/src/hints/commands/AnimateHintCommand.js +57 -0
  289. package/src/hints/commands/AnimateHintCommand.js.map +1 -0
  290. package/src/hints/data/DefaultHintConfig.d.ts +15 -0
  291. package/src/hints/data/DefaultHintConfig.js +18 -0
  292. package/src/hints/data/DefaultHintConfig.js.map +1 -0
  293. package/src/hints/data/HintContainerId.d.ts +1 -0
  294. package/src/hints/data/HintContainerId.js +2 -0
  295. package/src/hints/data/HintContainerId.js.map +1 -0
  296. package/src/hints/data/IHintConfig.d.ts +15 -0
  297. package/src/hints/data/IHintConfig.js +2 -0
  298. package/src/hints/data/IHintConfig.js.map +1 -0
  299. package/src/html/HTMLModule.d.ts +4 -0
  300. package/src/html/HTMLModule.js +10 -0
  301. package/src/html/HTMLModule.js.map +1 -0
  302. package/src/html/managers/HTMLManager.d.ts +14 -0
  303. package/src/html/managers/HTMLManager.js +79 -0
  304. package/src/html/managers/HTMLManager.js.map +1 -0
  305. package/src/html/managers/HTMLManagerEvent.d.ts +4 -0
  306. package/src/html/managers/HTMLManagerEvent.js +6 -0
  307. package/src/html/managers/HTMLManagerEvent.js.map +1 -0
  308. package/src/init/commands/InitApplicationCommand.d.ts +4 -0
  309. package/src/init/commands/InitApplicationCommand.js +30 -0
  310. package/src/init/commands/InitApplicationCommand.js.map +1 -0
  311. package/src/init/commands/InitApplicationDataCommand.d.ts +8 -0
  312. package/src/init/commands/InitApplicationDataCommand.js +15 -0
  313. package/src/init/commands/InitApplicationDataCommand.js.map +1 -0
  314. package/src/init/commands/InitApplicationDataEvent.d.ts +3 -0
  315. package/src/init/commands/InitApplicationDataEvent.js +4 -0
  316. package/src/init/commands/InitApplicationDataEvent.js.map +1 -0
  317. package/src/init/events/InitApplicationEvent.d.ts +3 -0
  318. package/src/init/events/InitApplicationEvent.js +4 -0
  319. package/src/init/events/InitApplicationEvent.js.map +1 -0
  320. package/src/load/LoadGroupName.d.ts +5 -0
  321. package/src/load/LoadGroupName.js +8 -0
  322. package/src/load/LoadGroupName.js.map +1 -0
  323. package/src/load/LoadModule.d.ts +7 -0
  324. package/src/load/LoadModule.js +18 -0
  325. package/src/load/LoadModule.js.map +1 -0
  326. package/src/local-storage/LocalStorageModule.d.ts +4 -0
  327. package/src/local-storage/LocalStorageModule.js +10 -0
  328. package/src/local-storage/LocalStorageModule.js.map +1 -0
  329. package/src/local-storage/LocalStorageModuleConfig.d.ts +4 -0
  330. package/src/local-storage/LocalStorageModuleConfig.js +5 -0
  331. package/src/local-storage/LocalStorageModuleConfig.js.map +1 -0
  332. package/src/local-storage/managers/LocalStorageManager.d.ts +18 -0
  333. package/src/local-storage/managers/LocalStorageManager.js +140 -0
  334. package/src/local-storage/managers/LocalStorageManager.js.map +1 -0
  335. package/src/locales/LocalesModule.d.ts +4 -0
  336. package/src/locales/LocalesModule.js +9 -0
  337. package/src/locales/LocalesModule.js.map +1 -0
  338. package/src/locales/commands/ParseLocaleConfigCommand.d.ts +4 -0
  339. package/src/locales/commands/ParseLocaleConfigCommand.js +29 -0
  340. package/src/locales/commands/ParseLocaleConfigCommand.js.map +1 -0
  341. package/src/locales/commands/SetAppLocaleCommand.d.ts +4 -0
  342. package/src/locales/commands/SetAppLocaleCommand.js +12 -0
  343. package/src/locales/commands/SetAppLocaleCommand.js.map +1 -0
  344. package/src/pages/PagesModule.d.ts +4 -0
  345. package/src/pages/PagesModule.js +17 -0
  346. package/src/pages/PagesModule.js.map +1 -0
  347. package/src/pages/commands/ChangePageCommand.d.ts +6 -0
  348. package/src/pages/commands/ChangePageCommand.js +14 -0
  349. package/src/pages/commands/ChangePageCommand.js.map +1 -0
  350. package/src/pages/data/state/PagesModuleState.d.ts +14 -0
  351. package/src/pages/data/state/PagesModuleState.js +8 -0
  352. package/src/pages/data/state/PagesModuleState.js.map +1 -0
  353. package/src/pages/views/BasePageView.d.ts +18 -0
  354. package/src/pages/views/BasePageView.js +80 -0
  355. package/src/pages/views/BasePageView.js.map +1 -0
  356. package/src/pages/views/PagesMediator.d.ts +6 -0
  357. package/src/pages/views/PagesMediator.js +12 -0
  358. package/src/pages/views/PagesMediator.js.map +1 -0
  359. package/src/pages/views/PagesView.d.ts +10 -0
  360. package/src/pages/views/PagesView.js +64 -0
  361. package/src/pages/views/PagesView.js.map +1 -0
  362. package/src/pool/ObjectsPoolModule.d.ts +4 -0
  363. package/src/pool/ObjectsPoolModule.js +11 -0
  364. package/src/pool/ObjectsPoolModule.js.map +1 -0
  365. package/src/preloader-page/data/PreloaderPageId.d.ts +1 -0
  366. package/src/preloader-page/data/PreloaderPageId.js +2 -0
  367. package/src/preloader-page/data/PreloaderPageId.js.map +1 -0
  368. package/src/renderer/RendererModule.d.ts +5 -0
  369. package/src/renderer/RendererModule.js +32 -0
  370. package/src/renderer/RendererModule.js.map +1 -0
  371. package/src/renderer/data/RendererManagerConfigVO.d.ts +6 -0
  372. package/src/renderer/data/RendererManagerConfigVO.js +13 -0
  373. package/src/renderer/data/RendererManagerConfigVO.js.map +1 -0
  374. package/src/renderer/events/RendererManagerEvent.d.ts +4 -0
  375. package/src/renderer/events/RendererManagerEvent.js +5 -0
  376. package/src/renderer/events/RendererManagerEvent.js.map +1 -0
  377. package/src/renderer/managers/RendererManager.d.ts +20 -0
  378. package/src/renderer/managers/RendererManager.js +110 -0
  379. package/src/renderer/managers/RendererManager.js.map +1 -0
  380. package/src/size/tools/ViewWithSizeAreaTools.d.ts +5 -0
  381. package/src/size/tools/ViewWithSizeAreaTools.js +20 -0
  382. package/src/size/tools/ViewWithSizeAreaTools.js.map +1 -0
  383. package/src/size/views/IViewWithSizeArea.d.ts +9 -0
  384. package/src/size/views/IViewWithSizeArea.js +2 -0
  385. package/src/size/views/IViewWithSizeArea.js.map +1 -0
  386. package/src/sounds/SoundsModule.d.ts +5 -0
  387. package/src/sounds/SoundsModule.js +30 -0
  388. package/src/sounds/SoundsModule.js.map +1 -0
  389. package/src/sounds/SoundsSettings.d.ts +6 -0
  390. package/src/sounds/SoundsSettings.js +7 -0
  391. package/src/sounds/SoundsSettings.js.map +1 -0
  392. package/src/sounds/managers/BackgroundMusicManager.d.ts +11 -0
  393. package/src/sounds/managers/BackgroundMusicManager.js +36 -0
  394. package/src/sounds/managers/BackgroundMusicManager.js.map +1 -0
  395. package/src/sounds/managers/SoundsStorageManager.d.ts +12 -0
  396. package/src/sounds/managers/SoundsStorageManager.js +37 -0
  397. package/src/sounds/managers/SoundsStorageManager.js.map +1 -0
  398. package/src/state/AppStateModule.d.ts +46 -0
  399. package/src/state/AppStateModule.js +63 -0
  400. package/src/state/AppStateModule.js.map +1 -0
  401. package/{state/commands/WaitAppStorageDataChangeCommand.d.ts → src/state/commands/WaitAppStateDataChangeCommand.d.ts} +3 -3
  402. package/src/state/commands/WaitAppStateDataChangeCommand.js +29 -0
  403. package/src/state/commands/WaitAppStateDataChangeCommand.js.map +1 -0
  404. package/src/state/data/AppStateChangeType.d.ts +7 -0
  405. package/src/state/data/AppStateChangeType.js +9 -0
  406. package/src/state/data/AppStateChangeType.js.map +1 -0
  407. package/src/state/data/AppStateStorage.d.ts +57 -0
  408. package/src/state/data/AppStateStorage.js +286 -0
  409. package/src/state/data/AppStateStorage.js.map +1 -0
  410. package/src/state/data/DeepKeyTypings.d.ts +25 -0
  411. package/src/state/data/DeepKeyTypings.js +144 -0
  412. package/src/state/data/DeepKeyTypings.js.map +1 -0
  413. package/src/state/data/DeepPartialTypings.d.ts +83 -0
  414. package/src/state/data/DeepPartialTypings.js +2 -0
  415. package/src/state/data/DeepPartialTypings.js.map +1 -0
  416. package/src/state/data/DeepReadableTypings.d.ts +58 -0
  417. package/src/state/data/DeepReadableTypings.js +2 -0
  418. package/src/state/data/DeepReadableTypings.js.map +1 -0
  419. package/src/state/data/IAppStateChangeConfigVO.d.ts +8 -0
  420. package/src/state/data/IAppStateChangeConfigVO.js +2 -0
  421. package/src/state/data/IAppStateChangeConfigVO.js.map +1 -0
  422. package/src/state/data/IChangeWrapper.d.ts +4 -0
  423. package/src/state/data/IChangeWrapper.js +2 -0
  424. package/src/state/data/IChangeWrapper.js.map +1 -0
  425. package/src/state/data/IPreChangeHook.d.ts +5 -0
  426. package/src/state/data/IPreChangeHook.js +2 -0
  427. package/src/state/data/IPreChangeHook.js.map +1 -0
  428. package/src/state/tools/AppStateDeepKeyTools.d.ts +6 -0
  429. package/src/state/tools/AppStateDeepKeyTools.js +70 -0
  430. package/src/state/tools/AppStateDeepKeyTools.js.map +1 -0
  431. package/src/state/tools/AppStateEventChangeTools.d.ts +3 -0
  432. package/src/state/tools/AppStateEventChangeTools.js +9 -0
  433. package/src/state/tools/AppStateEventChangeTools.js.map +1 -0
  434. package/src/state/tools/INestedPathHelperVO.d.ts +5 -0
  435. package/src/state/tools/INestedPathHelperVO.js +2 -0
  436. package/src/state/tools/INestedPathHelperVO.js.map +1 -0
  437. package/src/strategy/managers/BaseStrategyManager.d.ts +15 -0
  438. package/src/strategy/managers/BaseStrategyManager.js +17 -0
  439. package/src/strategy/managers/BaseStrategyManager.js.map +1 -0
  440. package/src/strategy/models/BaseStrategyModel.d.ts +12 -0
  441. package/src/strategy/models/BaseStrategyModel.js +31 -0
  442. package/src/strategy/models/BaseStrategyModel.js.map +1 -0
  443. package/src/strategy/strategies/BaseStrategy.d.ts +6 -0
  444. package/src/strategy/strategies/BaseStrategy.js +17 -0
  445. package/src/strategy/strategies/BaseStrategy.js.map +1 -0
  446. package/src/time/TimeModule.d.ts +4 -0
  447. package/src/time/TimeModule.js +15 -0
  448. package/src/time/TimeModule.js.map +1 -0
  449. package/src/time/data/state/TimeModuleAppState.d.ts +11 -0
  450. package/src/time/data/state/TimeModuleAppState.js +11 -0
  451. package/src/time/data/state/TimeModuleAppState.js.map +1 -0
  452. package/src/time/managers/TimeManager.d.ts +10 -0
  453. package/src/time/managers/TimeManager.js +40 -0
  454. package/src/time/managers/TimeManager.js.map +1 -0
  455. package/src/time/managers/TimeManagerEvent.d.ts +3 -0
  456. package/src/time/managers/TimeManagerEvent.js +6 -0
  457. package/src/time/managers/TimeManagerEvent.js.map +1 -0
  458. package/src/windows/data/IWindowConfigVO.d.ts +10 -0
  459. package/src/windows/data/IWindowConfigVO.js +2 -0
  460. package/src/windows/data/IWindowConfigVO.js.map +1 -0
  461. package/src/windows/managers/IShowWindowVO.d.ts +4 -0
  462. package/src/windows/managers/IShowWindowVO.js +2 -0
  463. package/src/windows/managers/IShowWindowVO.js.map +1 -0
  464. package/src/windows/managers/WindowsManager.d.ts +19 -0
  465. package/src/windows/managers/WindowsManager.js +52 -0
  466. package/src/windows/managers/WindowsManager.js.map +1 -0
  467. package/src/windows/views/BaseWindow.d.ts +7 -0
  468. package/src/windows/views/BaseWindow.js +14 -0
  469. package/src/windows/views/BaseWindow.js.map +1 -0
  470. package/state/AppStateModule.js +2 -1
  471. package/state/AppStateModule.js.map +1 -1
  472. package/state/commands/WaitAppStateDataChangeCommand.d.ts +1 -1
  473. package/state/commands/WaitAppStateDataChangeCommand.js +1 -1
  474. package/state/commands/WaitAppStateDataChangeCommand.js.map +1 -1
  475. package/state/tools/AppStateDeepKeyTools.d.ts +1 -1
  476. package/state/tools/AppStateDeepKeyTools.js.map +1 -1
  477. package/display/views/viewstack/ViewStackLazyCreation.d.ts +0 -10
  478. package/display/views/viewstack/ViewStackLazyCreation.js.map +0 -1
  479. package/state/commands/WaitAppStorageDataChangeCommand.js +0 -29
  480. package/state/commands/WaitAppStorageDataChangeCommand.js.map +0 -1
@@ -0,0 +1,286 @@
1
+ import { ObjectTools } from "@flashist/fcore";
2
+ import { BaseObjectWithGlobalDispatcher } from "../../base/BaseObjectWithGlobalDispatcher";
3
+ import { AppStateEventChangeTools } from "../tools/AppStateEventChangeTools";
4
+ import { AppStateDeepKeyTools } from "../tools/AppStateDeepKeyTools";
5
+ import { AppStateChangeType } from "./AppStateChangeType";
6
+ export class AppStateStorage extends BaseObjectWithGlobalDispatcher {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.isInitialized = false;
10
+ this.state = {};
11
+ this.pathsHelperDataCache = {};
12
+ this.preChangeHooks = [];
13
+ // SPLICE: END
14
+ // // public change<StateType extends object, ChangeType>(nestedPaths: ObjectNestedPathsType<StateType>, value: ChangeType): void {
15
+ // public change<StateType, DeepKeyType extends keyof Flatten<StateType>>(obj: StateType, key: DeepKeyType, value: Flatten<StateType>[DeepKeyType]): void {
16
+ // // AS ANY needed to calm compiler and autocomplete
17
+ // let tempObject: StateType = this.state as any;
18
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
19
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
20
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
21
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
22
+ // if (nestedPathIndex === (nestedPathsCount - 1)) {
23
+ // // tempObject[singlePath] = value;
24
+ // ObjectTools.copySinglePropFromValue(tempObject, singlePath as string, value);
25
+ // } else {
26
+ // tempObject = tempObject[singlePath];
27
+ // }
28
+ // }
29
+ // this.dispatchChangeEvents(pathsHelperData);
30
+ // }
31
+ // public delete<StateType extends object>(nestedPaths: ObjectNestedPathsType<StateType>): void {
32
+ // // AS ANY needed to calm compiler and autocomplete
33
+ // let tempObject: StateType = this.state as any;
34
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
35
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
36
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
37
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
38
+ // if (nestedPathIndex === (nestedPathsCount - 1)) {
39
+ // delete tempObject[singlePath];
40
+ // } else {
41
+ // tempObject = tempObject[singlePath];
42
+ // }
43
+ // }
44
+ // this.dispatchChangeEvents(pathsHelperData);
45
+ // }
46
+ // public addElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
47
+ // // AS ANY needed to calm compiler and autocomplete
48
+ // let tempObject: StateType = this.state as any;
49
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
50
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
51
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
52
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
53
+ // tempObject = tempObject[singlePath];
54
+ // }
55
+ // (tempObject as Array<ElementType>).push(...elements);
56
+ // this.dispatchChangeEvents(pathsHelperData);
57
+ // }
58
+ // public removeElements<StateType extends object, ElementType>(nestedPaths: ObjectNestedPathsType<StateType>, ...elements: ElementType[]): void {
59
+ // // AS ANY needed to calm compiler and autocomplete
60
+ // let tempObject: StateType = this.state as any;
61
+ // const pathsHelperData: IDeepKeyHelperVO = this.getPathsHelperData(nestedPaths as any);
62
+ // let nestedPathsCount: number = pathsHelperData.splitDeepKeyParts.length;
63
+ // for (let nestedPathIndex: number = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
64
+ // const singlePath: string | number = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
65
+ // tempObject = tempObject[singlePath];
66
+ // }
67
+ // ArrayTools.removeItems((tempObject as Array<ElementType>), elements);
68
+ // this.dispatchChangeEvents(pathsHelperData);
69
+ // }
70
+ }
71
+ /**
72
+ * The purpose of the method is to "prepare" a "wrapper" of a part of a state,
73
+ * to avoid constant writings of the full path. So instead of:
74
+ * change<MyType>()("a.b.c.2.test1", value);
75
+ * change<MyType>()("a.b.c.2.test2", value);
76
+ * change<MyType>()("a.b.c.2.test3", value);
77
+ * change<MyType>()("a.b.c.2.test4", value);
78
+ *
79
+ * You can do
80
+ * const changeWrapper = changePropertyWrapper<MyType>("a.b.c.2");
81
+ * changeWrapper("test1", value)
82
+ * changeWrapper("test2", value)
83
+ * changeWrapper("test3", value)
84
+ * changeWrapper("test4", value)
85
+ *
86
+ * How to use:
87
+ * const testWrapper = this.changePropertyWrapper<TestState>()("b.complexObject");
88
+ testWrapper("test1", "1")
89
+
90
+ * @returns
91
+ */
92
+ changePropertyWrapper() {
93
+ return (key) => {
94
+ return (wrapperKey, value) => {
95
+ this.innerChange({}, (`${key}.${wrapperKey}`), value);
96
+ };
97
+ };
98
+ }
99
+ initializeWith(initState) {
100
+ if (this.isInitialized) {
101
+ return;
102
+ }
103
+ ObjectTools.copyProps(this.state, initState);
104
+ }
105
+ initializeComplete() {
106
+ this.isInitialized = true;
107
+ }
108
+ getState() {
109
+ return this.state;
110
+ }
111
+ getMutableState() {
112
+ return this.state;
113
+ }
114
+ dispatchChangeEvents(helperData) {
115
+ for (let singleDispatchingChangePath of helperData.dispatchingChangePaths) {
116
+ const eventName = AppStateEventChangeTools.getChangeEvent(singleDispatchingChangePath);
117
+ this.dispatchEvent(eventName);
118
+ }
119
+ }
120
+ getPathsHelperData(deepKey, config = null) {
121
+ let result = null;
122
+ // Simple data changes can be cached
123
+ if (config && ObjectTools.isSimpleType(config.value)) {
124
+ result = this.pathsHelperDataCache[deepKey];
125
+ if (!result) {
126
+ result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey, config);
127
+ this.pathsHelperDataCache[deepKey] = result;
128
+ }
129
+ // Complex data changes can't be cached and will have to be recalculated every time
130
+ }
131
+ else {
132
+ // TODO: find a way to cach complex-data changes
133
+ // (I am not sure it's possible, because it depends on the value-object structure which can be changed, even if the deepKey is the same)
134
+ result = AppStateDeepKeyTools.prepareDeepKeyHelperData(deepKey, config);
135
+ }
136
+ return result;
137
+ }
138
+ triggerPreChangeHooks(stateForTypings, deepKey, config) {
139
+ if (this.preChangeHooks.length <= 0) {
140
+ return;
141
+ }
142
+ this.preChangeHooks.forEach((item) => {
143
+ item(stateForTypings, deepKey, config);
144
+ });
145
+ }
146
+ getValue() {
147
+ return (key) => {
148
+ return this.innerGetValue({}, key);
149
+ };
150
+ }
151
+ innerGetValue(stateForTypings, deepKey) {
152
+ let result;
153
+ const pathsHelperData = this.getPathsHelperData(deepKey, null);
154
+ // console.log("AppStateStorage | innerChange __ pathsHelperData: ", pathsHelperData);
155
+ let tempObject = this.state;
156
+ let nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
157
+ for (let nestedPathIndex = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
158
+ const singlePath = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
159
+ if (nestedPathIndex === (nestedPathsCount - 1)) {
160
+ result = tempObject[singlePath];
161
+ }
162
+ else {
163
+ tempObject = tempObject[singlePath];
164
+ }
165
+ }
166
+ return result;
167
+ }
168
+ processStateAction(stateForTypings, deepKey, config) {
169
+ let result;
170
+ const pathsHelperData = this.getPathsHelperData(deepKey, config);
171
+ // console.log("AppStateStorage | innerChange __ pathsHelperData: ", pathsHelperData);
172
+ let tempObject = this.state;
173
+ let nestedPathsCount = pathsHelperData.splitDeepKeyParts.length;
174
+ for (let nestedPathIndex = 0; nestedPathIndex < nestedPathsCount; nestedPathIndex++) {
175
+ const singlePath = pathsHelperData.splitDeepKeyParts[nestedPathIndex];
176
+ if (nestedPathIndex === (nestedPathsCount - 1)) {
177
+ // ObjectTools.copySinglePropFromValue(tempObject, singlePath as string, value);
178
+ if (config.changeType === AppStateChangeType.SUBSTITUTE) {
179
+ delete tempObject[singlePath];
180
+ ObjectTools.copySinglePropFromValue(tempObject, singlePath, config.value);
181
+ }
182
+ else if (config.changeType === AppStateChangeType.CHANGE) {
183
+ ObjectTools.copySinglePropFromValue(tempObject, singlePath, config.value);
184
+ }
185
+ else if (config.changeType === AppStateChangeType.DELETE) {
186
+ result = tempObject[singlePath];
187
+ delete tempObject[singlePath];
188
+ }
189
+ else if (config.changeType === AppStateChangeType.PUSH) {
190
+ tempObject[singlePath].push(...config.elements);
191
+ }
192
+ else if (config.changeType === AppStateChangeType.SPLICE) {
193
+ result = tempObject[singlePath].splice(config.start, config.deleteCount);
194
+ }
195
+ }
196
+ else {
197
+ tempObject = tempObject[singlePath];
198
+ }
199
+ }
200
+ this.dispatchChangeEvents(pathsHelperData);
201
+ return result;
202
+ }
203
+ // SUBSTITUTE: START
204
+ substitute() {
205
+ return (key, value) => {
206
+ this.innerSubstitute({}, key, value);
207
+ };
208
+ }
209
+ innerSubstitute(stateForTypings, deepKey, value) {
210
+ const config = {
211
+ changeType: AppStateChangeType.SUBSTITUTE,
212
+ value: value
213
+ };
214
+ // Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
215
+ this.triggerPreChangeHooks(stateForTypings, deepKey, config);
216
+ this.processStateAction(stateForTypings, deepKey, config);
217
+ }
218
+ // SUBSTITUTE: END
219
+ // CHANGE: START
220
+ change() {
221
+ return (key, value) => {
222
+ this.innerChange({}, key, value);
223
+ };
224
+ }
225
+ innerChange(stateForTypings, deepKey, value) {
226
+ const config = {
227
+ changeType: AppStateChangeType.CHANGE,
228
+ value: value
229
+ };
230
+ // Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
231
+ this.triggerPreChangeHooks(stateForTypings, deepKey, config);
232
+ this.processStateAction(stateForTypings, deepKey, config);
233
+ }
234
+ // CHANGE: END
235
+ // DELETE: START
236
+ delete() {
237
+ return (key) => {
238
+ return this.innerDelete({}, key);
239
+ };
240
+ }
241
+ innerDelete(stateForTypings, deepKey) {
242
+ const config = {
243
+ changeType: AppStateChangeType.DELETE
244
+ };
245
+ // Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
246
+ this.triggerPreChangeHooks(stateForTypings, deepKey, config);
247
+ return this.processStateAction(stateForTypings, deepKey, config);
248
+ }
249
+ // DELETE: END
250
+ // PUSH: START
251
+ push() {
252
+ return (key, ...elements) => {
253
+ return this.innerPush({}, key, ...elements);
254
+ };
255
+ }
256
+ innerPush(stateForTypings, deepKey, ...elements) {
257
+ const config = {
258
+ changeType: AppStateChangeType.PUSH,
259
+ elements: elements
260
+ };
261
+ // Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
262
+ this.triggerPreChangeHooks(stateForTypings, deepKey, config);
263
+ this.processStateAction(stateForTypings, deepKey, config);
264
+ }
265
+ // PUSH: END
266
+ // SPLICE: START
267
+ splice() {
268
+ return (key, start, deleteCount) => {
269
+ return this.innerSplice({}, key, start, deleteCount);
270
+ };
271
+ }
272
+ innerSplice(stateForTypings, deepKey, start, deleteCount) {
273
+ if (deleteCount === undefined) {
274
+ deleteCount = Number.MAX_SAFE_INTEGER;
275
+ }
276
+ const config = {
277
+ changeType: AppStateChangeType.SPLICE,
278
+ start: start,
279
+ deleteCount: deleteCount
280
+ };
281
+ // Pre Change Hooks: execute pre-change-hooks on every element: e.g. ecs module hooks might change prepare the new ecs components to sort their container-type-keys to make sure they are always the same q
282
+ this.triggerPreChangeHooks(stateForTypings, deepKey, config);
283
+ return this.processStateAction(stateForTypings, deepKey, config);
284
+ }
285
+ }
286
+ //# sourceMappingURL=AppStateStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppStateStorage.js","sourceRoot":"","sources":["../../../../src/state/data/AppStateStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAKrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,MAAM,OAAO,eAAgB,SAAQ,8BAA8B;IAAnE;;QA+Bc,kBAAa,GAAY,KAAK,CAAC;QAE/B,UAAK,GAAW,EAAE,CAAC;QAEnB,yBAAoB,GAAiD,EAAE,CAAC;QAExE,mBAAc,GAAqB,EAAE,CAAC;QA8QhD,cAAc;QAEd,mIAAmI;QACnI,2JAA2J;QAC3J,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAElG,4DAA4D;QAC5D,iDAAiD;QACjD,4FAA4F;QAE5F,mBAAmB;QACnB,mDAAmD;QACnD,YAAY;QACZ,QAAQ;QAER,kDAAkD;QAClD,IAAI;QAEJ,iGAAiG;QACjG,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAElG,4DAA4D;QAC5D,6CAA6C;QAE7C,mBAAmB;QACnB,mDAAmD;QACnD,YAAY;QACZ,QAAQ;QAER,kDAAkD;QAClD,IAAI;QAEJ,+IAA+I;QAC/I,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAClG,+CAA+C;QAC/C,QAAQ;QAER,4DAA4D;QAE5D,kDAAkD;QAClD,IAAI;QAEJ,kJAAkJ;QAClJ,yDAAyD;QACzD,qDAAqD;QACrD,6FAA6F;QAE7F,+EAA+E;QAC/E,qGAAqG;QACrG,kGAAkG;QAClG,+CAA+C;QAC/C,QAAQ;QAER,4EAA4E;QAE5E,kDAAkD;QAClD,IAAI;IACR,CAAC;IA5XG;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,qBAAqB;QACxB,OAAO,CAAkH,GAAgB,EAAE,EAAE;YACzI,OAAO,CAA6D,UAA8B,EAAE,KAAiE,EAAQ,EAAE;gBAC3K,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,CAAC,GAAG,GAAa,IAAI,UAAoB,EAAE,CAAQ,EAAE,KAAK,CAAC,CAAC;YAClG,CAAC,CAAA;QACL,CAAC,CAAA;IACL,CAAC;IAUM,cAAc,CAA2B,SAAoB;QAChE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,OAAO;QACX,CAAC;QAED,WAAW,CAAC,SAAS,CACjB,IAAI,CAAC,KAAK,EACV,SAAS,CACZ,CAAC;IACN,CAAC;IAEM,kBAAkB;QACrB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAY,CAAC;IAC7B,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,KAAY,CAAC;IAC7B,CAAC;IAES,oBAAoB,CAAC,UAA4B;QACvD,KAAK,IAAI,2BAA2B,IAAI,UAAU,CAAC,sBAAsB,EAAE,CAAC;YACxE,MAAM,SAAS,GAAW,wBAAwB,CAAC,cAAc,CAAC,2BAA2B,CAAC,CAAC;YAC/F,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,OAAe,EAAE,SAAkC,IAAI;QAChF,IAAI,MAAM,GAAqB,IAAI,CAAC;QACpC,oCAAoC;QACpC,IAAI,MAAM,IAAI,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,MAAM,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBACxE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YAChD,CAAC;YAED,mFAAmF;QACvF,CAAC;aAAM,CAAC;YACJ,iDAAiD;YACjD,yIAAyI;YACzI,MAAM,GAAG,oBAAoB,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5E,CAAC;QAGD,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,qBAAqB,CAA0D,eAA0B,EAAE,OAAoB,EAAE,MAA+B;QACtK,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAClC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,CACvB,CAAC,IAAoB,EAAE,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC,CACJ,CAAC;IACN,CAAC;IAEM,QAAQ;QACX,OAAO,CAA+C,GAAgB,EAA4C,EAAE;YAChH,OAAO,IAAI,CAAC,aAAa,CAAC,EAAe,EAAE,GAAG,CAAC,CAAC;QACpD,CAAC,CAAA;IACL,CAAC;IAES,aAAa,CAA6G,eAA0B,EAAE,OAAoB;QAEhL,IAAI,MAA0B,CAAC;QAE/B,MAAM,eAAe,GAAqB,IAAI,CAAC,kBAAkB,CAAC,OAAiB,EAAE,IAAI,CAAC,CAAC;QAC3F,sFAAsF;QAEtF,IAAI,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,gBAAgB,GAAW,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACxE,KAAK,IAAI,eAAe,GAAW,CAAC,EAAE,eAAe,GAAG,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC;YAC1F,MAAM,UAAU,GAAoB,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAEvF,IAAI,eAAe,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7C,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;YAEnC,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC;IAES,kBAAkB,CAA6G,eAA0B,EAAE,OAAoB,EAAE,MAA0C;QACjO,IAAI,MAAW,CAAC;QAEhB,MAAM,eAAe,GAAqB,IAAI,CAAC,kBAAkB,CAAC,OAAiB,EAAE,MAAM,CAAC,CAAC;QAC7F,sFAAsF;QAEtF,IAAI,UAAU,GAAQ,IAAI,CAAC,KAAK,CAAC;QACjC,IAAI,gBAAgB,GAAW,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC;QACxE,KAAK,IAAI,eAAe,GAAW,CAAC,EAAE,eAAe,GAAG,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC;YAC1F,MAAM,UAAU,GAAoB,eAAe,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC;YAEvF,IAAI,eAAe,KAAK,CAAC,gBAAgB,GAAG,CAAC,CAAC,EAAE,CAAC;gBAC7C,gFAAgF;gBAEhF,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;oBACtD,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;oBAC9B,WAAW,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExF,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,WAAW,CAAC,uBAAuB,CAAC,UAAU,EAAE,UAAoB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBAExF,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;oBAChC,OAAO,UAAU,CAAC,UAAU,CAAC,CAAC;gBAElC,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,IAAI,EAAE,CAAC;oBACvD,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAEpD,CAAC;qBAAM,IAAI,MAAM,CAAC,UAAU,KAAK,kBAAkB,CAAC,MAAM,EAAE,CAAC;oBACzD,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC7E,CAAC;YAEL,CAAC;iBAAM,CAAC;gBACJ,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC,CAAC;QAE3C,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,oBAAoB;IACb,UAAU;QACb,OAAO,CAA+C,GAAgB,EAAE,KAAmD,EAAQ,EAAE;YACjI,IAAI,CAAC,eAAe,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC,CAAA;IACL,CAAC;IAES,eAAe,CAA6G,eAA0B,EAAE,OAAoB,EAAE,KAA6B;QACjN,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,UAAU;YACzC,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,kBAAkB;IAGlB,gBAAgB;IAET,MAAM;QACT,OAAO,CAA+C,GAAgB,EAAE,KAAmD,EAAQ,EAAE;YACjI,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;QAClD,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAA6G,eAA0B,EAAE,OAAoB,EAAE,KAA6B;QAC7M,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;YACrC,KAAK,EAAE,KAAK;SACf,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,cAAc;IAEd,gBAAgB;IACT,MAAM;QACT,OAAO,CAGL,GAAgB,EAAE,EAAE;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAKf,eAA0B,EAAE,OAAoB;QAElD,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;SACxC,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IACD,cAAc;IAGd,cAAc;IACP,IAAI;QACP,OAAO,CAGL,GAAgB,EAAE,GAAG,QAAmB,EAAE,EAAE;YAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,EAAe,EAAE,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7D,CAAC,CAAA;IACL,CAAC;IAES,SAAS,CAKb,eAA0B,EAAE,OAAoB,EAAE,GAAG,QAAmB;QAE1E,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,IAAI;YACnC,QAAQ,EAAE,QAAQ;SACrB,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,YAAY;IAGZ,gBAAgB;IACT,MAAM;QACT,OAAO,CAGL,GAAgB,EAAE,KAAa,EAAE,WAAoB,EAAE,EAAE;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,EAAe,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;QACtE,CAAC,CAAA;IACL,CAAC;IAES,WAAW,CAKf,eAA0B,EAAE,OAAoB,EAAE,KAAa,EAAE,WAAoB;QAEvF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC5B,WAAW,GAAG,MAAM,CAAC,gBAAgB,CAAC;QAC1C,CAAC;QAED,MAAM,MAAM,GAA4B;YACpC,UAAU,EAAE,kBAAkB,CAAC,MAAM;YACrC,KAAK,EAAE,KAAK;YACZ,WAAW,EAAE,WAAW;SAC3B,CAAC;QAEF,2MAA2M;QAC3M,IAAI,CAAC,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,kBAAkB,CAAC,eAAe,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;CA4EJ"}
@@ -0,0 +1,25 @@
1
+ type Writable<T, O> = T extends O ? T : {
2
+ [P in keyof T as IfEquals<{
3
+ [Q in P]: T[P];
4
+ }, {
5
+ -readonly [Q in P]: T[P];
6
+ }, P>]: T[P];
7
+ };
8
+ type IfEquals<X, Y, A = X, B = never> = (<T>() => T extends X ? 1 : 2) extends (<T>() => T extends Y ? 1 : 2) ? A : B;
9
+ type Cleanup<T> = 0 extends (1 & T) ? unknown : T extends readonly any[] ? (Exclude<keyof T, keyof any[]> extends never ? {
10
+ [k: `${number}`]: T[number];
11
+ } : Omit<T, keyof any[]>) : T;
12
+ type PrefixKeys<V, K extends PropertyKey, O> = V extends O ? {
13
+ [P in K]: V;
14
+ } : V extends object ? {
15
+ [P in keyof V as `${Extract<K, string | number>}.${Extract<P, string | number>}`]: V[P];
16
+ } : {
17
+ [P in K]: V;
18
+ };
19
+ type ValueOf<T> = T[keyof T];
20
+ export type Flatten<T, O = never> = Writable<Cleanup<T>, O> extends infer U ? U extends O ? U : U extends object ? ValueOf<{
21
+ [K in keyof U]-?: (x: PrefixKeys<Flatten<U[K], O>, K, O>) => void;
22
+ }> | ((x: U) => void) extends (x: infer I) => void ? {
23
+ [K in keyof I]: I[K];
24
+ } : never : U : never;
25
+ export {};
@@ -0,0 +1,144 @@
1
+ export {};
2
+ // function lookup<T, K extends keyof Flatten<T>>(obj: T, key: K): Flatten<T>[K];
3
+ // function lookup(obj: any, key: string) {
4
+ // const i = key.indexOf(".");
5
+ // return (i < 0) ? obj[key] : (lookup as any)(obj[key.substring(0, i)], key.substring(i + 1));
6
+ // }
7
+ /*
8
+ // TRY #2: EXAMPLES OF USING
9
+
10
+ // function shortLookup<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType]>(obj: ObjectType, key: DeepKeyType, value: ValueType): void {
11
+ function shortLookup<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>>(obj: ObjectType = {} as any, key: DeepKeyType, value: Flatten<ObjectType>[DeepKeyType]): void {
12
+ // const i = key.indexOf(".");
13
+ // return (i < 0) ? obj[key] : (lookup as any)(obj[key.substring(0, i)], key.substring(i + 1));
14
+ }
15
+
16
+ function myLookup<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType]>(obj: ObjectType, deepKey: DeepKeyType, value: ValueType): void;
17
+ function myLookup(obj: any, deepKey: string, value: any) {
18
+ }
19
+
20
+ function myLookupOneInstance<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType]>(obj: ObjectType, deepKey: DeepKeyType, value: ValueType): void {
21
+ }
22
+
23
+ // function myLookup2<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType]>(deepKey: DeepKeyType, value: ValueType, obj: ObjectType): void;
24
+ function myLookup2<ObjectType, DeepKeyType extends keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType]>(deepKey: DeepKeyType, value: ValueType, obj: ObjectType = {} as ObjectType) {
25
+ }
26
+
27
+ // function myLookupWithoutObj<ObjectType extends object, DeepKeyType extends keyof Flatten<ObjectType> = keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType] = Flatten<ObjectType>[DeepKeyType]>(deepKey: DeepKeyType, value: ValueType): void;
28
+ function myLookupWithoutObj<ObjectType extends object, DeepKeyType extends keyof Flatten<ObjectType> = keyof Flatten<ObjectType>, ValueType extends Flatten<ObjectType>[DeepKeyType] = Flatten<ObjectType>[DeepKeyType]>(deepKey: DeepKeyType, value: ValueType) {
29
+ }
30
+
31
+ // type FooType = {
32
+ // a: [number, { b: string }, number]
33
+ // c: {
34
+ // d: {
35
+ // e: number
36
+ // }
37
+ // }
38
+ // }
39
+ const foo = {
40
+ a: [1, { b: "two" }, 3] as [number, { b: string }, number],
41
+ c: { d: { e: 1 } }
42
+ }
43
+ type FooType = typeof foo;
44
+
45
+ lookup(foo, "a.1.b").toUpperCase() // TWO
46
+ myLookup(foo, "a.1.b", 20).toUpperCase() // TWO
47
+ myLookup(foo, "a.0", 20);
48
+ myLookup(foo, "a.0", "20");
49
+
50
+ myLookupOneInstance(foo, "c", 20);
51
+ myLookupOneInstance(null as FooType, "a.0", 20);
52
+
53
+ shortLookup({} as FooType, "a.0", "20");
54
+ shortLookup({} as FooType, "a.0", 20);
55
+
56
+ myLookup2("a.0", "2", foo);
57
+ myLookup2<FooType, keyof Flatten<FooType>, Flatten<FooType>[keyof Flatten<FooType>]>("a.0", "20");
58
+ myLookup2("a.0", 20);
59
+ myLookup2<FooType>(foo, "a", "20");
60
+ myLookup2<FooType>(foo, "a.0", 20);
61
+ myLookupWithoutObj<FooType>("c.e", 20);
62
+ myLookupWithoutObj<FooType, keyof Flatten<FooType>, Flatten<FooType>[keyof Flatten<FooType>]>("a.0", 20);
63
+ myLookupWithoutObj<FooType, keyof Flatten<FooType>, Flatten<FooType>[keyof Flatten<FooType>]>("a.0", "20");
64
+ myLookupWithoutObj<FooType>("a.0", "20");
65
+ myLookupWithoutObj<FooType>("a.1", "20");
66
+
67
+ */
68
+ // function lookupWithReturn<ValueType>(obj: any, key: string, value: ValueType): typeof value {
69
+ // const i = key.indexOf(".");
70
+ // return (i < 0) ? obj[key] : (lookup as any)(obj[key.substring(0, i)], key.substring(i + 1));
71
+ // }
72
+ // lookupWithReturn(foo, "a.0", 20)
73
+ // lookupWithReturn(foo, "a.0", "20")
74
+ // // lookupWithReturn(foo, "a.0", false)
75
+ // try {
76
+ // console.log(lookup(foo, "c.d.e")) // oops, error, can't necessarily look that up
77
+ // } catch (e) {
78
+ // console.log(e); // maybe obj is undefined
79
+ // }
80
+ /*
81
+ ==== FIRST DRAFT: works, but not perfect, cuz gets list of split properties and can't get a.0 as an index for array elements ====
82
+
83
+ type Join<K, P> = K extends string | number ?
84
+ P extends string | number ?
85
+ `${K}${"" extends P ? "" : "."}${P}`
86
+ : never : never;
87
+
88
+
89
+ type Prev = [never, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
90
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, ...0[]]
91
+
92
+ type Paths<T, D extends number = 10> = [D] extends [never] ? never : T extends object ?
93
+ { [K in keyof T]-?: K extends string | number ?
94
+ `${K}` | Join<K, Paths<T[K], Prev[D]>>
95
+ : never
96
+ }[keyof T] : ""
97
+
98
+ type Leaves<T, D extends number = 10> = [D] extends [never] ? never : T extends object ?
99
+ { [K in keyof T]-?: Join<K, Leaves<T[K], Prev[D]>> }[keyof T] : "";
100
+
101
+
102
+ // type NestedObjectType = {
103
+ // a: string;
104
+ // b: string;
105
+ // nest: {
106
+ // c: string;
107
+ // };
108
+ // otherNest: {
109
+ // otherNest: {
110
+ // c: string;
111
+ // }
112
+ // };
113
+ // };
114
+
115
+ interface Tree {
116
+ left: Tree,
117
+ right: Tree,
118
+ data: string
119
+ }
120
+
121
+ // type TreeLeaves = Leaves<Tree>; // sorry, compiler 💻⌛😫
122
+ // type TreeLeaves = "data" | "left.data" | "right.data" | "left.left.data" |
123
+ // "left.right.data" | "right.left.data" | "right.right.data" | "left.left.left.data" |
124
+ // "left.left.right.data" | "left.right.left.data" | ... 1012 more ... |
125
+ // "right.right.right.right.right.right.right.right.right.data"
126
+
127
+ type TreeLeaves = Leaves<Tree, 100>;
128
+ // type TreeLeaves = "data" | "left.data" | "right.data" | "left.left.data" |
129
+ // "left.right.data" | "right.left.data" | "right.right.data"
130
+
131
+ // type NestedObjectPaths = Paths<NestedObjectType>;
132
+ // type NestedObjectPaths = "a" | "b" | "nest" | "otherNest" | "nest.c" | "otherNest.c"
133
+ // type NestedObjectLeaves = Leaves<NestedObjectType>
134
+ // type NestedObjectLeaves = "a" | "b" | "nest.c" | "otherNest.c"
135
+
136
+ export type ObjectSingleNestedPathType<T extends object> = Paths<T>;
137
+ export type ObjectNestedPathsType<T extends object> = Array<Paths<T>>
138
+
139
+ // const test: MyGenericType<NestedObjectType> = {
140
+ // keys: ["a", "nest.c", "otherNest.otherNest"]
141
+ // }
142
+
143
+ */
144
+ //# sourceMappingURL=DeepKeyTypings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepKeyTypings.js","sourceRoot":"","sources":["../../../../src/state/data/DeepKeyTypings.ts"],"names":[],"mappings":";AA4BA,iFAAiF;AACjF,2CAA2C;AAC3C,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AAGJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4DE;AAGF,gGAAgG;AAChG,kCAAkC;AAClC,mGAAmG;AACnG,IAAI;AACJ,mCAAmC;AACnC,qCAAqC;AACrC,yCAAyC;AAEzC,QAAQ;AACR,uFAAuF;AACvF,gBAAgB;AAChB,gDAAgD;AAChD,IAAI;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+DE"}
@@ -0,0 +1,83 @@
1
+ import { BuiltIns } from "./DeepReadableTypings";
2
+ /**
3
+ @see DeepPartial
4
+ */
5
+ export type DeepPartialOptions = {
6
+ /**
7
+ Whether to affect the individual elements of arrays and tuples.
8
+
9
+ @default false
10
+ */
11
+ readonly recurseIntoArrays?: boolean;
12
+ };
13
+ /**
14
+ Create a type from another type with all keys and nested keys set to optional.
15
+
16
+ Use-cases:
17
+ - Merging a default settings/config object with another object, the second object would be a deep partial of the default object.
18
+ - Mocking and testing complex entities, where populating an entire object with its keys would be redundant in terms of the mock or test.
19
+
20
+ @example
21
+ ```
22
+ import type {DeepPartial} from 'type-fest';
23
+
24
+ const settings: Settings = {
25
+ textEditor: {
26
+ fontSize: 14;
27
+ fontColor: '#000000';
28
+ fontWeight: 400;
29
+ }
30
+ autocomplete: false;
31
+ autosave: true;
32
+ };
33
+
34
+ const applySavedSettings = (savedSettings: DeepPartial<Settings>) => {
35
+ return {...settings, ...savedSettings};
36
+ }
37
+
38
+ settings = applySavedSettings({textEditor: {fontWeight: 500}});
39
+ ```
40
+
41
+ By default, this does not affect elements in array and tuple types. You can change this by passing `{recurseIntoArrays: true}` as the second type argument:
42
+
43
+ ```
44
+ import type {DeepPartial} from 'type-fest';
45
+
46
+ interface Settings {
47
+ languages: string[];
48
+ }
49
+
50
+ const partialSettings: DeepPartial<Settings, {recurseIntoArrays: true}> = {
51
+ languages: [undefined]
52
+ };
53
+ ```
54
+
55
+ @category Object
56
+ @category Array
57
+ @category Set
58
+ @category Map
59
+ */
60
+ export type DeepPartial<T, Options extends DeepPartialOptions = {}> = T extends BuiltIns ? T : T extends Map<infer KeyType, infer ValueType> ? DeepPartialMap<KeyType, ValueType, Options> : T extends Set<infer ItemType> ? DeepPartialSet<ItemType, Options> : T extends ReadonlyMap<infer KeyType, infer ValueType> ? DeepPartialReadonlyMap<KeyType, ValueType, Options> : T extends ReadonlySet<infer ItemType> ? DeepPartialReadonlySet<ItemType, Options> : T extends ((...arguments_: any[]) => unknown) ? T | undefined : T extends object ? T extends ReadonlyArray<infer ItemType> ? Options['recurseIntoArrays'] extends true ? ItemType[] extends T ? readonly ItemType[] extends T ? ReadonlyArray<DeepPartial<ItemType | undefined, Options>> : Array<DeepPartial<ItemType | undefined, Options>> : DeepPartialObject<T, Options> : T : DeepPartialObject<T, Options> : unknown;
61
+ /**
62
+ Same as `DeepPartial`, but accepts only `Map`s and as inputs. Internal helper for `DeepPartial`.
63
+ */
64
+ type DeepPartialMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & Map<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
65
+ /**
66
+ Same as `DeepPartial`, but accepts only `Set`s as inputs. Internal helper for `DeepPartial`.
67
+ */
68
+ type DeepPartialSet<T, Options extends DeepPartialOptions> = {} & Set<DeepPartial<T, Options>>;
69
+ /**
70
+ Same as `DeepPartial`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepPartial`.
71
+ */
72
+ type DeepPartialReadonlyMap<KeyType, ValueType, Options extends DeepPartialOptions> = {} & ReadonlyMap<DeepPartial<KeyType, Options>, DeepPartial<ValueType, Options>>;
73
+ /**
74
+ Same as `DeepPartial`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepPartial`.
75
+ */
76
+ type DeepPartialReadonlySet<T, Options extends DeepPartialOptions> = {} & ReadonlySet<DeepPartial<T, Options>>;
77
+ /**
78
+ Same as `DeepPartial`, but accepts only `object`s as inputs. Internal helper for `DeepPartial`.
79
+ */
80
+ type DeepPartialObject<ObjectType extends object, Options extends DeepPartialOptions> = {
81
+ [KeyType in keyof ObjectType]?: DeepPartial<ObjectType[KeyType], Options>;
82
+ };
83
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DeepPartialTypings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepPartialTypings.js","sourceRoot":"","sources":["../../../../src/state/data/DeepPartialTypings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ export type HasMultipleCallSignatures<T extends (...arguments_: any[]) => unknown> = T extends {
2
+ (...arguments_: infer A): unknown;
3
+ (...arguments_: any[]): unknown;
4
+ } ? unknown[] extends A ? false : true : false;
5
+ export type Primitive = null | undefined | string | number | boolean | symbol | bigint;
6
+ export type BuiltIns = Primitive | Date | RegExp;
7
+ /**
8
+ Convert `object`s, `Map`s, `Set`s, and `Array`s and all of their keys/elements into immutable structures recursively.
9
+
10
+ This is useful when a deeply nested structure needs to be exposed as completely immutable, for example, an imported JSON module or when receiving an API response that is passed around.
11
+
12
+ Please upvote [this issue](https://github.com/microsoft/TypeScript/issues/13923) if you want to have this type as a built-in in TypeScript.
13
+
14
+ @example
15
+ ```
16
+ // data.json
17
+ {
18
+ "foo": ["bar"]
19
+ }
20
+
21
+ // main.ts
22
+ import type {DeepReadonly} from 'type-fest';
23
+ import dataJson = require('./data.json');
24
+
25
+ const data: DeepReadonly<typeof dataJson> = dataJson;
26
+
27
+ export default data;
28
+
29
+ // test.ts
30
+ import data from './main';
31
+
32
+ data.foo.push('bar');
33
+ //=> error TS2339: Property 'push' does not exist on type 'readonly string[]'
34
+ ```
35
+
36
+ Note that types containing overloaded functions are not made deeply readonly due to a [TypeScript limitation](https://github.com/microsoft/TypeScript/issues/29732).
37
+
38
+ @category Object
39
+ @category Array
40
+ @category Set
41
+ @category Map
42
+ */
43
+ export type DeepReadonly<T> = T extends BuiltIns ? T : T extends (...arguments_: any[]) => unknown ? {} extends DeepReadonlyObject<T> ? T : HasMultipleCallSignatures<T> extends true ? T : ((...arguments_: Parameters<T>) => ReturnType<T>) & DeepReadonlyObject<T> : T extends Readonly<ReadonlyMap<infer KeyType, infer ValueType>> ? DeepReadonlyMap<KeyType, ValueType> : T extends Readonly<ReadonlySet<infer ItemType>> ? DeepReadonlySet<ItemType> : T extends readonly [] | readonly [...never[]] ? readonly [] : T extends readonly [infer U, ...infer V] ? readonly [DeepReadonly<U>, ...DeepReadonly<V>] : T extends readonly [...infer U, infer V] ? readonly [...DeepReadonly<U>, DeepReadonly<V>] : T extends ReadonlyArray<infer ItemType> ? ReadonlyArray<DeepReadonly<ItemType>> : T extends object ? DeepReadonlyObject<T> : unknown;
44
+ /**
45
+ Same as `DeepReadonly`, but accepts only `ReadonlyMap`s as inputs. Internal helper for `DeepReadonly`.
46
+ */
47
+ type DeepReadonlyMap<KeyType, ValueType> = {} & Readonly<ReadonlyMap<DeepReadonly<KeyType>, DeepReadonly<ValueType>>>;
48
+ /**
49
+ Same as `DeepReadonly`, but accepts only `ReadonlySet`s as inputs. Internal helper for `DeepReadonly`.
50
+ */
51
+ type DeepReadonlySet<ItemType> = {} & Readonly<ReadonlySet<DeepReadonly<ItemType>>>;
52
+ /**
53
+ Same as `DeepReadonly`, but accepts only `object`s as inputs. Internal helper for `DeepReadonly`.
54
+ */
55
+ type DeepReadonlyObject<ObjectType extends object> = {
56
+ readonly [KeyType in keyof ObjectType]: DeepReadonly<ObjectType[KeyType]>;
57
+ };
58
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=DeepReadableTypings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DeepReadableTypings.js","sourceRoot":"","sources":["../../../../src/state/data/DeepReadableTypings.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import { AppStateChangeType } from "./AppStateChangeType";
2
+ export interface IAppStateChangeConfigVO<ValueType extends any = any, ArrayType = ValueType & Array<any>> {
3
+ changeType: AppStateChangeType;
4
+ value?: Partial<ValueType>;
5
+ elements?: ArrayType;
6
+ start?: number;
7
+ deleteCount?: number;
8
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IAppStateChangeConfigVO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IAppStateChangeConfigVO.js","sourceRoot":"","sources":["../../../../src/state/data/IAppStateChangeConfigVO.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import { Flatten } from "./DeepKeyTypings";
2
+ export interface IChangeWrapper<WrapperStateType, WrapperDeepKeyType extends keyof Flatten<WrapperStateType, never> = keyof Flatten<WrapperStateType, never>> {
3
+ (wrapperKey: WrapperDeepKeyType, value: Partial<Flatten<WrapperStateType, never>[WrapperDeepKeyType]>): void;
4
+ }