@nu-art/thunderstorm-frontend 0.400.5

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 (635) hide show
  1. package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.d.ts +17 -0
  2. package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.js +52 -0
  3. package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.scss +43 -0
  4. package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.d.ts +25 -0
  5. package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.js +88 -0
  6. package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.scss +117 -0
  7. package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.d.ts +17 -0
  8. package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.js +45 -0
  9. package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.scss +24 -0
  10. package/_ats/ATS_CrudOperations/ATS_CrudOperations.d.ts +29 -0
  11. package/_ats/ATS_CrudOperations/ATS_CrudOperations.js +93 -0
  12. package/_ats/ATS_CrudOperations/ATS_CrudOperations.scss +46 -0
  13. package/_ats/ATS_CrudOperations/ui-components.d.ts +24 -0
  14. package/_ats/ATS_CrudOperations/ui-components.js +11 -0
  15. package/_ats/ATS_EditableItem/ATS_EditableItem.d.ts +16 -0
  16. package/_ats/ATS_EditableItem/ATS_EditableItem.js +48 -0
  17. package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.d.ts +18 -0
  18. package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.js +28 -0
  19. package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.scss +7 -0
  20. package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.d.ts +23 -0
  21. package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.js +66 -0
  22. package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.scss +52 -0
  23. package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.d.ts +17 -0
  24. package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.js +30 -0
  25. package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.scss +25 -0
  26. package/_ats/ATS_Printables/ATS_AbstractPrintable.d.ts +16 -0
  27. package/_ats/ATS_Printables/ATS_AbstractPrintable.js +37 -0
  28. package/_ats/ATS_Printables/ATS_Printable.d.ts +13 -0
  29. package/_ats/ATS_Printables/ATS_Printable.js +45 -0
  30. package/_ats/ATS_Printables/ATS_Printable.scss +40 -0
  31. package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.d.ts +33 -0
  32. package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.js +80 -0
  33. package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.scss +19 -0
  34. package/_ats/ATS_SyncEnv/ATS_SyncEnv.d.ts +51 -0
  35. package/_ats/ATS_SyncEnv/ATS_SyncEnv.js +215 -0
  36. package/_ats/ATS_SyncEnv/ATS_SyncEnv.scss +172 -0
  37. package/_ats/ATS_Toaster/ATS_Toaster.d.ts +23 -0
  38. package/_ats/ATS_Toaster/ATS_Toaster.js +48 -0
  39. package/_ats/ATS_Toaster/ATS_Toaster.scss +2 -0
  40. package/_ats/ATS_Toaster/index.d.ts +1 -0
  41. package/_ats/ATS_Toaster/index.js +1 -0
  42. package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.d.ts +18 -0
  43. package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.js +41 -0
  44. package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.scss +71 -0
  45. package/_ats/dialogs/index.d.ts +1 -0
  46. package/_ats/dialogs/index.js +1 -0
  47. package/_ats/index.d.ts +8 -0
  48. package/_ats/index.js +8 -0
  49. package/_entity/app-config/ModuleFE_AppConfig.d.ts +24 -0
  50. package/_entity/app-config/ModuleFE_AppConfig.js +52 -0
  51. package/_entity/app-config/index.d.ts +2 -0
  52. package/_entity/app-config/index.js +2 -0
  53. package/_entity/app-config/module-pack.d.ts +1 -0
  54. package/_entity/app-config/module-pack.js +2 -0
  55. package/_entity/editable-test/ModuleFE_EditableTest.d.ts +11 -0
  56. package/_entity/editable-test/ModuleFE_EditableTest.js +12 -0
  57. package/_entity/editable-test/index.d.ts +2 -0
  58. package/_entity/editable-test/index.js +2 -0
  59. package/_entity/editable-test/module-pack.d.ts +1 -0
  60. package/_entity/editable-test/module-pack.js +2 -0
  61. package/_entity/editable-test/ui-components.d.ts +37 -0
  62. package/_entity/editable-test/ui-components.js +21 -0
  63. package/_entity.d.ts +2 -0
  64. package/_entity.js +2 -0
  65. package/_to-refactor/MenuAndButton.d.ts +1 -0
  66. package/_to-refactor/MenuAndButton.js +87 -0
  67. package/behavior-functions/index.d.ts +1 -0
  68. package/behavior-functions/index.js +1 -0
  69. package/behavior-functions/scroll-into-view.d.ts +6 -0
  70. package/behavior-functions/scroll-into-view.js +55 -0
  71. package/component-modules/ModuleFE_Dialog.d.ts +27 -0
  72. package/component-modules/ModuleFE_Dialog.js +48 -0
  73. package/component-modules/ModuleFE_Notifications.d.ts +45 -0
  74. package/component-modules/ModuleFE_Notifications.js +133 -0
  75. package/component-modules/ModuleFE_Toaster.d.ts +28 -0
  76. package/component-modules/ModuleFE_Toaster.js +97 -0
  77. package/component-modules/mouse-interactivity/ModuleFE_MouseInteractivity.d.ts +9 -0
  78. package/component-modules/mouse-interactivity/ModuleFE_MouseInteractivity.js +35 -0
  79. package/component-modules/mouse-interactivity/helper-functions.d.ts +108 -0
  80. package/component-modules/mouse-interactivity/helper-functions.js +339 -0
  81. package/component-modules/mouse-interactivity/index.d.ts +3 -0
  82. package/component-modules/mouse-interactivity/index.js +3 -0
  83. package/component-modules/mouse-interactivity/types.d.ts +37 -0
  84. package/component-modules/mouse-interactivity/types.js +2 -0
  85. package/components/ActionButton.d.ts +7 -0
  86. package/components/ActionButton.js +29 -0
  87. package/components/AwaitModules/AwaitModules.d.ts +40 -0
  88. package/components/AwaitModules/AwaitModules.js +95 -0
  89. package/components/AwaitModules/AwaitModules.scss +53 -0
  90. package/components/AwaitSync/AwaitSync.d.ts +18 -0
  91. package/components/AwaitSync/AwaitSync.js +25 -0
  92. package/components/AwaitSync/AwaitSync.scss +13 -0
  93. package/components/Button/ATS_Button.d.ts +21 -0
  94. package/components/Button/ATS_Button.js +66 -0
  95. package/components/Button/ATS_Button.scss +19 -0
  96. package/components/Button/Button.d.ts +40 -0
  97. package/components/Button/Button.js +94 -0
  98. package/components/Button/Button.scss +151 -0
  99. package/components/FrameLayout/FrameLayout.d.ts +7 -0
  100. package/components/FrameLayout/FrameLayout.js +10 -0
  101. package/components/FrameLayout/FrameLayout.scss +5 -0
  102. package/components/FrameLayout/index.d.ts +1 -0
  103. package/components/FrameLayout/index.js +1 -0
  104. package/components/GenericDropDown/GenericDropDownV3.d.ts +108 -0
  105. package/components/GenericDropDown/GenericDropDownV3.js +98 -0
  106. package/components/GenericDropDown/index.d.ts +1 -0
  107. package/components/GenericDropDown/index.js +1 -0
  108. package/components/GenericRenderer/Component_GenericRenderer.d.ts +15 -0
  109. package/components/GenericRenderer/Component_GenericRenderer.js +13 -0
  110. package/components/HeightBounder.d.ts +11 -0
  111. package/components/HeightBounder.js +25 -0
  112. package/components/Label/ATS_Label.d.ts +12 -0
  113. package/components/Label/ATS_Label.js +34 -0
  114. package/components/Label/ATS_Label.scss +24 -0
  115. package/components/Label/Label.d.ts +30 -0
  116. package/components/Label/Label.js +84 -0
  117. package/components/Label/Label.scss +89 -0
  118. package/components/Layouts/Layouts.d.ts +38 -0
  119. package/components/Layouts/Layouts.js +56 -0
  120. package/components/Layouts/_Layouts.scss +53 -0
  121. package/components/Layouts/_Layouts_.scss +69 -0
  122. package/components/Layouts/index.d.ts +1 -0
  123. package/components/Layouts/index.js +21 -0
  124. package/components/Page_ItemsEditor/Page_ItemsEditor.d.ts +66 -0
  125. package/components/Page_ItemsEditor/Page_ItemsEditor.js +134 -0
  126. package/components/Page_ItemsEditor/Page_ItemsEditor.scss +104 -0
  127. package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.d.ts +16 -0
  128. package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.js +15 -0
  129. package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.scss +4 -0
  130. package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/index.d.ts +1 -0
  131. package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/index.js +1 -0
  132. package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.d.ts +26 -0
  133. package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.js +68 -0
  134. package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.scss +4 -0
  135. package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/index.d.ts +1 -0
  136. package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/index.js +1 -0
  137. package/components/Page_ItemsEditor/index.d.ts +1 -0
  138. package/components/Page_ItemsEditor/index.js +1 -0
  139. package/components/Page_ItemsEditor/types.d.ts +4 -0
  140. package/components/Page_ItemsEditor/types.js +1 -0
  141. package/components/RelativeLayout/RelativeLayout.d.ts +7 -0
  142. package/components/RelativeLayout/RelativeLayout.js +10 -0
  143. package/components/RelativeLayout/RelativeLayout.scss +3 -0
  144. package/components/RelativeLayout/index.d.ts +1 -0
  145. package/components/RelativeLayout/index.js +1 -0
  146. package/components/Show.d.ts +20 -0
  147. package/components/Show.js +30 -0
  148. package/components/TS_AppTools/TS_AppTools.d.ts +30 -0
  149. package/components/TS_AppTools/TS_AppTools.js +144 -0
  150. package/components/TS_AppTools/TS_AppTools.scss +193 -0
  151. package/components/TS_AppTools/TS_AppTools_Default.d.ts +7 -0
  152. package/components/TS_AppTools/TS_AppTools_Default.js +16 -0
  153. package/components/TS_AppTools/index.d.ts +2 -0
  154. package/components/TS_AppTools/index.js +22 -0
  155. package/components/TS_AppTools/types.d.ts +19 -0
  156. package/components/TS_AppTools/types.js +6 -0
  157. package/components/TS_ButtonGroup/TS_ButtonGroup.d.ts +12 -0
  158. package/components/TS_ButtonGroup/TS_ButtonGroup.js +94 -0
  159. package/components/TS_ButtonGroup/TS_ButtonGroup.scss +58 -0
  160. package/components/TS_ButtonGroup/index.d.ts +2 -0
  161. package/components/TS_ButtonGroup/index.js +2 -0
  162. package/components/TS_ButtonGroup/types.d.ts +38 -0
  163. package/components/TS_ButtonGroup/types.js +1 -0
  164. package/components/TS_ButtonLoader/TS_ButtonLoader.d.ts +5 -0
  165. package/components/TS_ButtonLoader/TS_ButtonLoader.js +8 -0
  166. package/components/TS_ButtonLoader/TS_ButtonLoader.scss +63 -0
  167. package/components/TS_ButtonLoader/index.d.ts +1 -0
  168. package/components/TS_ButtonLoader/index.js +1 -0
  169. package/components/TS_Card/TS_Card.d.ts +7 -0
  170. package/components/TS_Card/TS_Card.js +14 -0
  171. package/components/TS_Card/TS_Card.scss +7 -0
  172. package/components/TS_Card/index.d.ts +1 -0
  173. package/components/TS_Card/index.js +1 -0
  174. package/components/TS_Checkbox/ATS_CheckboxV2.d.ts +3 -0
  175. package/components/TS_Checkbox/ATS_CheckboxV2.js +30 -0
  176. package/components/TS_Checkbox/ATS_CheckboxV2.scss +4 -0
  177. package/components/TS_Checkbox/TS_Checkbox.d.ts +48 -0
  178. package/components/TS_Checkbox/TS_Checkbox.js +46 -0
  179. package/components/TS_Checkbox/TS_Checkbox.scss +62 -0
  180. package/components/TS_Checkbox/TS_CheckboxV2.d.ts +37 -0
  181. package/components/TS_Checkbox/TS_CheckboxV2.js +53 -0
  182. package/components/TS_Checkbox/TS_CheckboxV2.scss +97 -0
  183. package/components/TS_Checkbox/index.d.ts +1 -0
  184. package/components/TS_Checkbox/index.js +21 -0
  185. package/components/TS_CheckboxGroup/ATS_CheckboxGroup.d.ts +19 -0
  186. package/components/TS_CheckboxGroup/ATS_CheckboxGroup.js +89 -0
  187. package/components/TS_CheckboxGroup/ATS_CheckboxGroup.scss +6 -0
  188. package/components/TS_CheckboxGroup/TS_CheckboxGroup.d.ts +35 -0
  189. package/components/TS_CheckboxGroup/TS_CheckboxGroup.js +47 -0
  190. package/components/TS_CheckboxGroup/TS_CheckboxGroup.scss +32 -0
  191. package/components/TS_CheckboxGroup/index.d.ts +1 -0
  192. package/components/TS_CheckboxGroup/index.js +1 -0
  193. package/components/TS_CollapsableContainer/TS_CollapsableContainer.d.ts +44 -0
  194. package/components/TS_CollapsableContainer/TS_CollapsableContainer.js +80 -0
  195. package/components/TS_CollapsableContainer/TS_CollapsableContainer.scss +47 -0
  196. package/components/TS_CollapsableContainer/index.d.ts +1 -0
  197. package/components/TS_CollapsableContainer/index.js +1 -0
  198. package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.d.ts +36 -0
  199. package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.js +46 -0
  200. package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.scss +66 -0
  201. package/components/TS_CollapsableContainerV2/ats.d.ts +3 -0
  202. package/components/TS_CollapsableContainerV2/ats.js +39 -0
  203. package/components/TS_CollapsableContainerV2/ats.scss +35 -0
  204. package/components/TS_CollapsableContainerV2/index.d.ts +2 -0
  205. package/components/TS_CollapsableContainerV2/index.js +2 -0
  206. package/components/TS_ComponentTransition/TS_ComponentTransition.d.ts +25 -0
  207. package/components/TS_ComponentTransition/TS_ComponentTransition.js +65 -0
  208. package/components/TS_ComponentTransition/index.d.ts +1 -0
  209. package/components/TS_ComponentTransition/index.js +1 -0
  210. package/components/TS_CopyToClipboard/TS_CopyToClipboard.d.ts +4 -0
  211. package/components/TS_CopyToClipboard/TS_CopyToClipboard.js +11 -0
  212. package/components/TS_CopyToClipboard/index.d.ts +1 -0
  213. package/components/TS_CopyToClipboard/index.js +21 -0
  214. package/components/TS_Dialog/TS_Dialog.d.ts +89 -0
  215. package/components/TS_Dialog/TS_Dialog.js +140 -0
  216. package/components/TS_Dialog/TS_Dialog.scss +116 -0
  217. package/components/TS_Dialog/TS_DialogOverlay.d.ts +15 -0
  218. package/components/TS_Dialog/TS_DialogOverlay.js +48 -0
  219. package/components/TS_Dialog/TS_DialogOverlay.scss +41 -0
  220. package/components/TS_Dialog/TS_SimpleDialog.d.ts +21 -0
  221. package/components/TS_Dialog/TS_SimpleDialog.js +37 -0
  222. package/components/TS_Dialog/TS_SimpleDialog.scss +5 -0
  223. package/components/TS_Dialog/TS_SimpleDialogue.d.ts +28 -0
  224. package/components/TS_Dialog/TS_SimpleDialogue.js +38 -0
  225. package/components/TS_Dialog/index.d.ts +2 -0
  226. package/components/TS_Dialog/index.js +22 -0
  227. package/components/TS_DragAndDrop/TS_DragAndDrop.d.ts +48 -0
  228. package/components/TS_DragAndDrop/TS_DragAndDrop.js +105 -0
  229. package/components/TS_DragAndDrop/TS_DragAndDrop.scss +61 -0
  230. package/components/TS_DragAndDrop/index.d.ts +1 -0
  231. package/components/TS_DragAndDrop/index.js +21 -0
  232. package/components/TS_Dropdown/TS_DropDown.d.ts +120 -0
  233. package/components/TS_Dropdown/TS_DropDown.js +332 -0
  234. package/components/TS_Dropdown/TS_DropDown.scss +134 -0
  235. package/components/TS_Dropdown/index.d.ts +1 -0
  236. package/components/TS_Dropdown/index.js +21 -0
  237. package/components/TS_EditableContent/TS_EditableContent.d.ts +19 -0
  238. package/components/TS_EditableContent/TS_EditableContent.js +32 -0
  239. package/components/TS_EditableContent/types.d.ts +4 -0
  240. package/components/TS_EditableContent/types.js +1 -0
  241. package/components/TS_EditableItemComponent/TS_EditableItemComponent.d.ts +23 -0
  242. package/components/TS_EditableItemComponent/TS_EditableItemComponent.js +47 -0
  243. package/components/TS_EditableItemController/TS_EditableItemController.d.ts +36 -0
  244. package/components/TS_EditableItemController/TS_EditableItemController.js +54 -0
  245. package/components/TS_EditableItemController/TS_EditableItemController.scss +3 -0
  246. package/components/TS_EditableItemController/index.d.ts +1 -0
  247. package/components/TS_EditableItemController/index.js +1 -0
  248. package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.d.ts +32 -0
  249. package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.js +53 -0
  250. package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.scss +3 -0
  251. package/components/TS_EditableItemControllerProto/index.d.ts +1 -0
  252. package/components/TS_EditableItemControllerProto/index.js +1 -0
  253. package/components/TS_EditableItemStatus/TS_EditableItemStatus.d.ts +20 -0
  254. package/components/TS_EditableItemStatus/TS_EditableItemStatus.js +34 -0
  255. package/components/TS_EditableText/TS_EditableText.d.ts +57 -0
  256. package/components/TS_EditableText/TS_EditableText.js +100 -0
  257. package/components/TS_EditableText/TS_EditableText.scss +90 -0
  258. package/components/TS_EditableText/index.d.ts +1 -0
  259. package/components/TS_EditableText/index.js +1 -0
  260. package/components/TS_ErrorBoundary/TS_ErrorBoundary.d.ts +54 -0
  261. package/components/TS_ErrorBoundary/TS_ErrorBoundary.js +103 -0
  262. package/components/TS_ErrorBoundary/TS_ErrorBoundary.scss +95 -0
  263. package/components/TS_ErrorBoundary/index.d.ts +1 -0
  264. package/components/TS_ErrorBoundary/index.js +21 -0
  265. package/components/TS_Form/TS_Form.d.ts +9 -0
  266. package/components/TS_Form/TS_Form.js +11 -0
  267. package/components/TS_Form/TS_Form.scss +0 -0
  268. package/components/TS_Form/consts.d.ts +1 -0
  269. package/components/TS_Form/consts.js +1 -0
  270. package/components/TS_Form/index.d.ts +3 -0
  271. package/components/TS_Form/index.js +3 -0
  272. package/components/TS_Form/types.d.ts +13 -0
  273. package/components/TS_Form/types.js +1 -0
  274. package/components/TS_GridTableProto/TS_GridTableProto.d.ts +18 -0
  275. package/components/TS_GridTableProto/TS_GridTableProto.js +22 -0
  276. package/components/TS_GridTableProto/TS_GridTableProto.scss +4 -0
  277. package/components/TS_GridTableProto/index.d.ts +1 -0
  278. package/components/TS_GridTableProto/index.js +1 -0
  279. package/components/TS_Input/ATS_TextArea.d.ts +14 -0
  280. package/components/TS_Input/ATS_TextArea.js +24 -0
  281. package/components/TS_Input/ATS_TextArea.scss +24 -0
  282. package/components/TS_Input/TS_BaseInput.d.ts +44 -0
  283. package/components/TS_Input/TS_BaseInput.js +47 -0
  284. package/components/TS_Input/TS_Input.d.ts +24 -0
  285. package/components/TS_Input/TS_Input.js +53 -0
  286. package/components/TS_Input/TS_Input.scss +64 -0
  287. package/components/TS_Input/TS_TextArea.d.ts +14 -0
  288. package/components/TS_Input/TS_TextArea.js +72 -0
  289. package/components/TS_Input/TS_TextArea.scss +41 -0
  290. package/components/TS_Input/index.d.ts +4 -0
  291. package/components/TS_Input/index.js +25 -0
  292. package/components/TS_JSONViewer/TS_JSONViewer.d.ts +18 -0
  293. package/components/TS_JSONViewer/TS_JSONViewer.js +64 -0
  294. package/components/TS_JSONViewer/TS_JSONViewer.scss +87 -0
  295. package/components/TS_JSONViewer/types.d.ts +10 -0
  296. package/components/TS_JSONViewer/types.js +1 -0
  297. package/components/TS_Link/TS_Link.d.ts +15 -0
  298. package/components/TS_Link/TS_Link.js +36 -0
  299. package/components/TS_Link/TS_Link.scss +32 -0
  300. package/components/TS_Link/index.d.ts +1 -0
  301. package/components/TS_Link/index.js +21 -0
  302. package/components/TS_ListOrganizer/TS_ListOrganizer.d.ts +33 -0
  303. package/components/TS_ListOrganizer/TS_ListOrganizer.js +64 -0
  304. package/components/TS_ListOrganizer/TS_ListOrganizer.scss +37 -0
  305. package/components/TS_ListOrganizer/index.d.ts +1 -0
  306. package/components/TS_ListOrganizer/index.js +21 -0
  307. package/components/TS_Loader/TS_Loader.d.ts +6 -0
  308. package/components/TS_Loader/TS_Loader.js +9 -0
  309. package/components/TS_Loader/TS_Loader.scss +71 -0
  310. package/components/TS_Loader/index.d.ts +1 -0
  311. package/components/TS_Loader/index.js +1 -0
  312. package/components/TS_MemoryMonitor/TS_MemoryMonitor.d.ts +10 -0
  313. package/components/TS_MemoryMonitor/TS_MemoryMonitor.js +48 -0
  314. package/components/TS_MemoryMonitor/TS_MemoryMonitor.scss +31 -0
  315. package/components/TS_MemoryMonitor/index.d.ts +1 -0
  316. package/components/TS_MemoryMonitor/index.js +21 -0
  317. package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.d.ts +9 -0
  318. package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.js +28 -0
  319. package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.scss +53 -0
  320. package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.d.ts +12 -0
  321. package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.js +65 -0
  322. package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.scss +46 -0
  323. package/components/TS_MouseInteractivity/base/TS_MouseInteractivity.d.ts +18 -0
  324. package/components/TS_MouseInteractivity/base/TS_MouseInteractivity.js +100 -0
  325. package/components/TS_MouseInteractivity/index.d.ts +2 -0
  326. package/components/TS_MouseInteractivity/index.js +22 -0
  327. package/components/TS_MultiSelect/TS_MultiSelect.scss +34 -0
  328. package/components/TS_MultiSelect/TS_MultiSelect_V2.d.ts +36 -0
  329. package/components/TS_MultiSelect/TS_MultiSelect_V2.js +41 -0
  330. package/components/TS_MultiSelect/index.d.ts +1 -0
  331. package/components/TS_MultiSelect/index.js +21 -0
  332. package/components/TS_Notifications/TS_Notifications.d.ts +22 -0
  333. package/components/TS_Notifications/TS_Notifications.js +96 -0
  334. package/components/TS_Notifications/TS_Notifications.scss +120 -0
  335. package/components/TS_Notifications/genericNotificationAction.d.ts +8 -0
  336. package/components/TS_Notifications/genericNotificationAction.js +16 -0
  337. package/components/TS_Notifications/index.d.ts +2 -0
  338. package/components/TS_Notifications/index.js +2 -0
  339. package/components/TS_Overlay/TS_Overlay.d.ts +12 -0
  340. package/components/TS_Overlay/TS_Overlay.js +32 -0
  341. package/components/TS_Overlay/TS_Overlay.scss +41 -0
  342. package/components/TS_Overlay/index.d.ts +1 -0
  343. package/components/TS_Overlay/index.js +21 -0
  344. package/components/TS_Printable/TS_Printable.d.ts +13 -0
  345. package/components/TS_Printable/TS_Printable.js +20 -0
  346. package/components/TS_Printable/TS_Printable.scss +47 -0
  347. package/components/TS_Printable/index.d.ts +1 -0
  348. package/components/TS_Printable/index.js +21 -0
  349. package/components/TS_ProgressBar/TS_ProgressBar.d.ts +22 -0
  350. package/components/TS_ProgressBar/TS_ProgressBar.js +47 -0
  351. package/components/TS_ProgressBar/TS_ProgressBar.scss +79 -0
  352. package/components/TS_ProgressBar/index.d.ts +1 -0
  353. package/components/TS_ProgressBar/index.js +1 -0
  354. package/components/TS_PropRenderer/TS_PropRenderer.d.ts +18 -0
  355. package/components/TS_PropRenderer/TS_PropRenderer.js +36 -0
  356. package/components/TS_PropRenderer/TS_PropRenderer.scss +19 -0
  357. package/components/TS_PropRenderer/index.d.ts +1 -0
  358. package/components/TS_PropRenderer/index.js +1 -0
  359. package/components/TS_Radio/TS_Radio.d.ts +34 -0
  360. package/components/TS_Radio/TS_Radio.js +49 -0
  361. package/components/TS_Radio/TS_Radio.scss +68 -0
  362. package/components/TS_Radio/index.d.ts +1 -0
  363. package/components/TS_Radio/index.js +1 -0
  364. package/components/TS_ReadMore/TS_ReadMore.d.ts +26 -0
  365. package/components/TS_ReadMore/TS_ReadMore.js +86 -0
  366. package/components/TS_ReadMore/TS_ReadMore.scss +36 -0
  367. package/components/TS_ReadMore/index.d.ts +1 -0
  368. package/components/TS_ReadMore/index.js +1 -0
  369. package/components/TS_Slider/TS_Slider.d.ts +26 -0
  370. package/components/TS_Slider/TS_Slider.js +42 -0
  371. package/components/TS_Slider/TS_Slider.scss +68 -0
  372. package/components/TS_Slider/index.d.ts +1 -0
  373. package/components/TS_Slider/index.js +1 -0
  374. package/components/TS_Space/TS_Space.d.ts +8 -0
  375. package/components/TS_Space/TS_Space.js +8 -0
  376. package/components/TS_Space/index.d.ts +1 -0
  377. package/components/TS_Space/index.js +1 -0
  378. package/components/TS_Space/ts-space.scss +3 -0
  379. package/components/TS_Table/TS_Table.d.ts +42 -0
  380. package/components/TS_Table/TS_Table.js +74 -0
  381. package/components/TS_Table/TS_Table.scss +51 -0
  382. package/components/TS_Table/index.d.ts +1 -0
  383. package/components/TS_Table/index.js +21 -0
  384. package/components/TS_Tabs/TS_Tabs.d.ts +55 -0
  385. package/components/TS_Tabs/TS_Tabs.js +102 -0
  386. package/components/TS_Tabs/TS_Tabs.scss +103 -0
  387. package/components/TS_Tabs/index.d.ts +1 -0
  388. package/components/TS_Tabs/index.js +21 -0
  389. package/components/TS_Toaster/TS_Toast.d.ts +5 -0
  390. package/components/TS_Toaster/TS_Toast.js +9 -0
  391. package/components/TS_Toaster/TS_Toast.scss +80 -0
  392. package/components/TS_Toaster/TS_ToastOverlay.d.ts +16 -0
  393. package/components/TS_Toaster/TS_ToastOverlay.js +26 -0
  394. package/components/TS_Toaster/TS_ToastOverlay.scss +33 -0
  395. package/components/TS_Toaster/index.d.ts +2 -0
  396. package/components/TS_Toaster/index.js +22 -0
  397. package/components/TS_Toggle/ATS_Toggle.d.ts +11 -0
  398. package/components/TS_Toggle/ATS_Toggle.js +18 -0
  399. package/components/TS_Toggle/TS_Toggle.d.ts +21 -0
  400. package/components/TS_Toggle/TS_Toggle.js +26 -0
  401. package/components/TS_Toggle/TS_Toggle.scss +56 -0
  402. package/components/TS_Toggle/index.d.ts +2 -0
  403. package/components/TS_Toggle/index.js +2 -0
  404. package/components/TS_Toggler/TS_Toggler.d.ts +23 -0
  405. package/components/TS_Toggler/TS_Toggler.js +50 -0
  406. package/components/TS_Toggler/TS_Toggler.scss +83 -0
  407. package/components/TS_Toggler/index.d.ts +1 -0
  408. package/components/TS_Toggler/index.js +1 -0
  409. package/components/TS_Tree/SimpleTreeNodeRenderer.d.ts +9 -0
  410. package/components/TS_Tree/SimpleTreeNodeRenderer.js +53 -0
  411. package/components/TS_Tree/TS_Tree.d.ts +68 -0
  412. package/components/TS_Tree/TS_Tree.js +174 -0
  413. package/components/TS_Tree/TS_Tree.scss +44 -0
  414. package/components/TS_Tree/index.d.ts +3 -0
  415. package/components/TS_Tree/index.js +23 -0
  416. package/components/TS_Tree/types.d.ts +4 -0
  417. package/components/TS_Tree/types.js +21 -0
  418. package/components/TS_V2_Input/TS_InputV2.d.ts +93 -0
  419. package/components/TS_V2_Input/TS_InputV2.js +220 -0
  420. package/components/TS_V2_Input/index.d.ts +1 -0
  421. package/components/TS_V2_Input/index.js +21 -0
  422. package/components/TS_V2_TextArea/TS_BaseInput.d.ts +42 -0
  423. package/components/TS_V2_TextArea/TS_BaseInput.js +46 -0
  424. package/components/TS_V2_TextArea/TS_TextAreaV2.d.ts +78 -0
  425. package/components/TS_V2_TextArea/TS_TextAreaV2.js +178 -0
  426. package/components/TS_V2_TextArea/TS_TextAreaV2.scss +49 -0
  427. package/components/TS_V2_TextArea/index.d.ts +2 -0
  428. package/components/TS_V2_TextArea/index.js +22 -0
  429. package/components/TS_VirtualizedList/TS_VirtualizedList.d.ts +14 -0
  430. package/components/TS_VirtualizedList/TS_VirtualizedList.js +22 -0
  431. package/components/TS_VirtualizedList/index.d.ts +1 -0
  432. package/components/TS_VirtualizedList/index.js +1 -0
  433. package/components/Video/Video.d.ts +16 -0
  434. package/components/Video/Video.js +40 -0
  435. package/components/Video/VideoDialog.d.ts +20 -0
  436. package/components/Video/VideoDialog.js +44 -0
  437. package/components/Video/VideoDialog.scss +31 -0
  438. package/components/Video/types.d.ts +20 -0
  439. package/components/Video/types.js +1 -0
  440. package/components/_TS_MultiSelect/DBItemDropDownMultiSelector.d.ts +57 -0
  441. package/components/_TS_MultiSelect/DBItemDropDownMultiSelector.js +63 -0
  442. package/components/adapter/Adapter.d.ts +139 -0
  443. package/components/adapter/Adapter.js +259 -0
  444. package/components/adapter/BaseRenderer.d.ts +24 -0
  445. package/components/adapter/BaseRenderer.js +31 -0
  446. package/components/ats-group.d.ts +2 -0
  447. package/components/ats-group.js +14 -0
  448. package/components/form/Form.d.ts +24 -0
  449. package/components/form/Form.js +34 -0
  450. package/components/form/types.d.ts +23 -0
  451. package/components/form/types.js +21 -0
  452. package/components/formv3/FormV3.d.ts +25 -0
  453. package/components/formv3/FormV3.js +23 -0
  454. package/components/formv3/types.d.ts +29 -0
  455. package/components/formv3/types.js +1 -0
  456. package/components/treeicons.d.ts +10 -0
  457. package/components/treeicons.js +3 -0
  458. package/components/types.d.ts +23 -0
  459. package/components/types.js +22 -0
  460. package/components/utils.d.ts +1 -0
  461. package/components/utils.js +7 -0
  462. package/consts.d.ts +2 -0
  463. package/consts.js +2 -0
  464. package/core/AppPage.d.ts +11 -0
  465. package/core/AppPage.js +52 -0
  466. package/core/AppPageV2.d.ts +9 -0
  467. package/core/AppPageV2.js +53 -0
  468. package/core/AppWrapper.d.ts +4 -0
  469. package/core/AppWrapper.js +34 -0
  470. package/core/ComponentAsync.d.ts +16 -0
  471. package/core/ComponentAsync.js +64 -0
  472. package/core/ComponentBase.d.ts +28 -0
  473. package/core/ComponentBase.js +152 -0
  474. package/core/ComponentSync.d.ts +13 -0
  475. package/core/ComponentSync.js +49 -0
  476. package/core/Controller.d.ts +13 -0
  477. package/core/Controller.js +28 -0
  478. package/core/IndexedDB.d.ts +42 -0
  479. package/core/IndexedDB.js +259 -0
  480. package/core/IndexedDBV3.d.ts +43 -0
  481. package/core/IndexedDBV3.js +259 -0
  482. package/core/IndexedDBV4/IndexedDB_Database.d.ts +20 -0
  483. package/core/IndexedDBV4/IndexedDB_Database.js +268 -0
  484. package/core/IndexedDBV4/IndexedDB_Store.d.ts +34 -0
  485. package/core/IndexedDBV4/IndexedDB_Store.js +207 -0
  486. package/core/IndexedDBV4/ModuleFE_IDBManager.d.ts +11 -0
  487. package/core/IndexedDBV4/ModuleFE_IDBManager.js +19 -0
  488. package/core/IndexedDBV4/types.d.ts +16 -0
  489. package/core/IndexedDBV4/types.js +1 -0
  490. package/core/SimpleScriptInjector.d.ts +13 -0
  491. package/core/SimpleScriptInjector.js +42 -0
  492. package/core/Thunder.d.ts +37 -0
  493. package/core/Thunder.js +139 -0
  494. package/core/ThunderstormDefaultApp.d.ts +12 -0
  495. package/core/ThunderstormDefaultApp.js +29 -0
  496. package/core/consts.d.ts +6 -0
  497. package/core/consts.js +2 -0
  498. package/core/db-api-gen/consts.d.ts +22 -0
  499. package/core/db-api-gen/consts.js +25 -0
  500. package/core/db-api-gen/db-def.d.ts +9 -0
  501. package/core/db-api-gen/db-def.js +16 -0
  502. package/core/db-api-gen/types.d.ts +23 -0
  503. package/core/db-api-gen/types.js +3 -0
  504. package/core/proto-component/ProtoComponent.d.ts +57 -0
  505. package/core/proto-component/ProtoComponent.js +73 -0
  506. package/core/proto-component/UrlState.d.ts +42 -0
  507. package/core/proto-component/UrlState.js +59 -0
  508. package/core/proto-component/index.d.ts +2 -0
  509. package/core/proto-component/index.js +2 -0
  510. package/core/proto-component/types.d.ts +25 -0
  511. package/core/proto-component/types.js +15 -0
  512. package/core/thunder-dispatcher.d.ts +13 -0
  513. package/core/thunder-dispatcher.js +69 -0
  514. package/core/thunder-helpers.d.ts +7 -0
  515. package/core/thunder-helpers.js +171 -0
  516. package/core/thunder-modulepack.d.ts +3 -0
  517. package/core/thunder-modulepack.js +34 -0
  518. package/core/typed-api.d.ts +6 -0
  519. package/core/typed-api.js +41 -0
  520. package/core/types.d.ts +6 -0
  521. package/core/types.js +1 -0
  522. package/editable-item.d.ts +7 -0
  523. package/editable-item.js +7 -0
  524. package/index.d.ts +112 -0
  525. package/index.js +134 -0
  526. package/modules/ModuleFE_BaseTheme.d.ts +18 -0
  527. package/modules/ModuleFE_BaseTheme.js +27 -0
  528. package/modules/ModuleFE_BroadcastChannel/ModuleFE_BroadcastChannel.d.ts +20 -0
  529. package/modules/ModuleFE_BroadcastChannel/ModuleFE_BroadcastChannel.js +66 -0
  530. package/modules/ModuleFE_BrowserHistory.d.ts +46 -0
  531. package/modules/ModuleFE_BrowserHistory.js +165 -0
  532. package/modules/ModuleFE_BrowserHistoryV2.d.ts +43 -0
  533. package/modules/ModuleFE_BrowserHistoryV2.js +113 -0
  534. package/modules/ModuleFE_CSVParser.d.ts +12 -0
  535. package/modules/ModuleFE_CSVParser.js +52 -0
  536. package/modules/ModuleFE_CollectionActions.d.ts +10 -0
  537. package/modules/ModuleFE_CollectionActions.js +18 -0
  538. package/modules/ModuleFE_ConnectivityModule.d.ts +15 -0
  539. package/modules/ModuleFE_ConnectivityModule.js +31 -0
  540. package/modules/ModuleFE_ForceUpgrade.d.ts +20 -0
  541. package/modules/ModuleFE_ForceUpgrade.js +54 -0
  542. package/modules/ModuleFE_LocalStorage.d.ts +46 -0
  543. package/modules/ModuleFE_LocalStorage.js +179 -0
  544. package/modules/ModuleFE_Locale.d.ts +44 -0
  545. package/modules/ModuleFE_Locale.js +83 -0
  546. package/modules/ModuleFE_Print.d.ts +16 -0
  547. package/modules/ModuleFE_Print.js +116 -0
  548. package/modules/ModuleFE_StorageCleaner.d.ts +17 -0
  549. package/modules/ModuleFE_StorageCleaner.js +90 -0
  550. package/modules/ModuleFE_Thunderstorm.d.ts +31 -0
  551. package/modules/ModuleFE_Thunderstorm.js +122 -0
  552. package/modules/ModuleFE_Utils/ModuleFE_Utils.d.ts +29 -0
  553. package/modules/ModuleFE_Utils/ModuleFE_Utils.js +43 -0
  554. package/modules/ModuleFE_Window.d.ts +19 -0
  555. package/modules/ModuleFE_Window.js +42 -0
  556. package/modules/ModuleFE_WindowMessenger.d.ts +62 -0
  557. package/modules/ModuleFE_WindowMessenger.js +128 -0
  558. package/modules/action-processor/ModuleFE_ActionProcessor.d.ts +9 -0
  559. package/modules/action-processor/ModuleFE_ActionProcessor.js +14 -0
  560. package/modules/archiving/ModuleFE_Archiving.d.ts +8 -0
  561. package/modules/archiving/ModuleFE_Archiving.js +15 -0
  562. package/modules/clearWebsiteDataDispatcher.d.ts +5 -0
  563. package/modules/clearWebsiteDataDispatcher.js +2 -0
  564. package/modules/component-loader/ReactEntryComponentInjector.d.ts +23 -0
  565. package/modules/component-loader/ReactEntryComponentInjector.js +59 -0
  566. package/modules/component-loader/entry-component-loading-module.d.ts +7 -0
  567. package/modules/component-loader/entry-component-loading-module.js +52 -0
  568. package/modules/component-loader/index.d.ts +2 -0
  569. package/modules/component-loader/index.js +2 -0
  570. package/modules/db-api-gen/ModuleFE_BaseApi.d.ts +45 -0
  571. package/modules/db-api-gen/ModuleFE_BaseApi.js +152 -0
  572. package/modules/db-api-gen/ModuleFE_BaseDB.d.ts +146 -0
  573. package/modules/db-api-gen/ModuleFE_BaseDB.js +433 -0
  574. package/modules/db-api-gen/types.d.ts +13 -0
  575. package/modules/db-api-gen/types.js +6 -0
  576. package/modules/http/ModuleFE_XHR.d.ts +20 -0
  577. package/modules/http/ModuleFE_XHR.js +175 -0
  578. package/modules/routing/LocationChangeListener.d.ts +6 -0
  579. package/modules/routing/LocationChangeListener.js +15 -0
  580. package/modules/routing/ModuleFE_Routing.d.ts +30 -0
  581. package/modules/routing/ModuleFE_Routing.js +122 -0
  582. package/modules/routing/ModuleFE_RoutingV2.d.ts +25 -0
  583. package/modules/routing/ModuleFE_RoutingV2.js +143 -0
  584. package/modules/routing/index.d.ts +5 -0
  585. package/modules/routing/index.js +5 -0
  586. package/modules/routing/route.d.ts +22 -0
  587. package/modules/routing/route.js +83 -0
  588. package/modules/routing/types.d.ts +20 -0
  589. package/modules/routing/types.js +1 -0
  590. package/modules/sync-env/ModuleFE_SyncEnvV2.d.ts +8 -0
  591. package/modules/sync-env/ModuleFE_SyncEnvV2.js +18 -0
  592. package/modules/sync-manager/ModuleFE_SyncManager.d.ts +59 -0
  593. package/modules/sync-manager/ModuleFE_SyncManager.js +378 -0
  594. package/modules/sync-manager/ModuleFE_SyncManager_CSV.d.ts +11 -0
  595. package/modules/sync-manager/ModuleFE_SyncManager_CSV.js +121 -0
  596. package/package.json +107 -0
  597. package/server-info/Button_VersionUpdate.d.ts +15 -0
  598. package/server-info/Button_VersionUpdate.js +29 -0
  599. package/server-info/Button_VersionUpdate.scss +29 -0
  600. package/server-info/ModuleFE_ServerInfo.d.ts +26 -0
  601. package/server-info/ModuleFE_ServerInfo.js +73 -0
  602. package/server-info/index.d.ts +2 -0
  603. package/server-info/index.js +2 -0
  604. package/shared.d.ts +1 -0
  605. package/shared.js +21 -0
  606. package/styles/declaration/basic.scss +155 -0
  607. package/styles/declaration/mixins.scss +58 -0
  608. package/styles/impl/basic.scss +141 -0
  609. package/styles/impl/icons.scss +34 -0
  610. package/styles.scss +40 -0
  611. package/utils/EditableItem.d.ts +240 -0
  612. package/utils/EditableItem.js +552 -0
  613. package/utils/console/LogClient_ConsoleInterceptor.d.ts +5 -0
  614. package/utils/console/LogClient_ConsoleInterceptor.js +70 -0
  615. package/utils/perform-action/genereteToasts.d.ts +3 -0
  616. package/utils/perform-action/genereteToasts.js +14 -0
  617. package/utils/perform-action/index.d.ts +2 -0
  618. package/utils/perform-action/index.js +2 -0
  619. package/utils/perform-action/notification-dispatchers.d.ts +6 -0
  620. package/utils/perform-action/notification-dispatchers.js +2 -0
  621. package/utils/perform-action/performAction.d.ts +34 -0
  622. package/utils/perform-action/performAction.js +77 -0
  623. package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.d.ts +8 -0
  624. package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.js +11 -0
  625. package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.scss +12 -0
  626. package/utils/tools.d.ts +31 -0
  627. package/utils/tools.js +138 -0
  628. package/utils/types.d.ts +3 -0
  629. package/utils/types.js +1 -0
  630. package/widgets/FieldEditor.d.ts +29 -0
  631. package/widgets/FieldEditor.js +47 -0
  632. package/widgets/FieldEditorClick.d.ts +33 -0
  633. package/widgets/FieldEditorClick.js +49 -0
  634. package/widgets/FieldEditorWithButtons.d.ts +32 -0
  635. package/widgets/FieldEditorWithButtons.js +42 -0
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import './TS_EditableItemController.scss';
3
+ import { BadImplementationException, exists, resolveContent } from '@nu-art/ts-common';
4
+ import { EditableDBItemV3 } from '../../utils/EditableItem.js';
5
+ import { ComponentSync } from '../../core/ComponentSync.js';
6
+ /**
7
+ * Item_EditorController class handles the editing of a specific db item
8
+ * and encapsulate logic to load the item from the local cache and uses the EditableItem to
9
+ * and TS_EditableContent for rendering and editing the db item.
10
+ *
11
+ * @template Proto - The database prototype def to be edited
12
+ * @template Props - The Props this class component takes
13
+ */
14
+ export class TS_EditableItemController extends ComponentSync {
15
+ static DefaultAutoSave = (item) => {
16
+ return !!item?._id;
17
+ };
18
+ constructor(p) {
19
+ super(p);
20
+ const method = p.module.defaultDispatcher.method;
21
+ // @ts-ignore
22
+ this[method] = this.__onItemUpdated;
23
+ }
24
+ __onItemUpdated = (...params) => {
25
+ const itemId = this.state.editable.get('_id');
26
+ if (!itemId)
27
+ return;
28
+ let updatedItem;
29
+ if (!(params[0] === 'upsert-all' && (updatedItem = params[1].find(item => item._id === itemId))))
30
+ return;
31
+ this.state.editable?.setConflictingItem(updatedItem);
32
+ };
33
+ deriveStateFromProps(nextProps, state) {
34
+ const _state = (state || {});
35
+ let item = typeof nextProps.item === 'string' ? nextProps.module.cache.unique(nextProps.item) : nextProps.item;
36
+ if (!exists(item))
37
+ item = this.props.createInitialInstance?.();
38
+ if (!item)
39
+ throw new BadImplementationException('in order to use this component to create an item you need to provide a createInitialInstance callback');
40
+ _state.editable = new EditableDBItemV3(item, nextProps.module, nextProps.onError)
41
+ .setOnChanged(async (editable) => {
42
+ this.setState({ editable });
43
+ })
44
+ .setAutoSave(resolveContent(nextProps.autoSave || TS_EditableItemController.DefaultAutoSave, item) || false)
45
+ .setOnSaveCompleted(this.props.onSave);
46
+ if (nextProps.saveAction)
47
+ _state.editable.setSaveAction(nextProps.saveAction);
48
+ return _state;
49
+ }
50
+ render() {
51
+ const Editor = this.props.editor;
52
+ return _jsx(Editor, { editable: this.state.editable, ...(this.props.editorProps || {}) });
53
+ }
54
+ }
@@ -0,0 +1,3 @@
1
+ .t-s--editable-item-controller {
2
+
3
+ }
@@ -0,0 +1 @@
1
+ export * from './TS_EditableItemController.js';
@@ -0,0 +1 @@
1
+ export * from './TS_EditableItemController.js';
@@ -0,0 +1,32 @@
1
+ import * as React from 'react';
2
+ import './TS_EditableItemControllerProto.scss';
3
+ import { DB_Object, DBProto, ResolvableContent } from '@nu-art/ts-common';
4
+ import { ModuleFE_BaseApi } from '../../modules/db-api-gen/ModuleFE_BaseApi.js';
5
+ import { ProtoDef_Selection } from '../Page_ItemsEditor/index.js';
6
+ import { ProtoComponent } from '../../core/proto-component/index.js';
7
+ import { InferProps, InferState } from '../../utils/types.js';
8
+ import { EditableRef } from '../TS_EditableContent/types.js';
9
+ export type Props_EditableItemControllerProto<Proto extends DBProto<any>, EditorProps extends {} = {}> = ProtoDef_Selection['props'] & {
10
+ item?: Readonly<Partial<Proto['uiType']>> | string;
11
+ module: ModuleFE_BaseApi<Proto>;
12
+ onError?: (item: Partial<Proto['uiType']>, err: Error) => any | Promise<any>;
13
+ autoSave?: ResolvableContent<boolean, [Readonly<Proto['uiType']>]>;
14
+ editor: React.ComponentType<EditableRef<Proto['uiType']> & EditorProps>;
15
+ createInitialInstance?: () => Readonly<Partial<Proto['uiType']>>;
16
+ editorProps?: EditorProps;
17
+ };
18
+ /**
19
+ * Item_EditorController class handles the editing of a specific db item
20
+ * and encapsulate logic to load the item from the local cache and uses the EditableItem to
21
+ * and TS_EditableContent for rendering and editing the db item.
22
+ *
23
+ * @template Proto - The database prototype def to be edited
24
+ * @template Props - The Props this class component takes
25
+ */
26
+ export declare class TS_EditableItemControllerProto<Proto extends DBProto<any>, EditorProps extends {} = {}, Props extends Props_EditableItemControllerProto<Proto, EditorProps> = Props_EditableItemControllerProto<Proto, EditorProps>> extends ProtoComponent<ProtoDef_Selection, Props, EditableRef<Proto['uiType']>> {
27
+ static DefaultAutoSave: (item?: Partial<DB_Object>) => boolean;
28
+ constructor(p: InferProps<TS_EditableItemControllerProto<Proto, EditorProps, Props>>);
29
+ private __onItemUpdated;
30
+ protected deriveStateFromProps(nextProps: InferProps<this>, state: InferState<this>): InferState<this>;
31
+ render(): import("react/jsx-runtime").JSX.Element;
32
+ }
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import './TS_EditableItemControllerProto.scss';
3
+ import { asArray, BadImplementationException, deepClone, exists, resolveContent } from '@nu-art/ts-common';
4
+ import { EditableDBItemV3 } from '../../utils/EditableItem.js';
5
+ import { ProtoComponent } from '../../core/proto-component/index.js';
6
+ /**
7
+ * Item_EditorController class handles the editing of a specific db item
8
+ * and encapsulate logic to load the item from the local cache and uses the EditableItem to
9
+ * and TS_EditableContent for rendering and editing the db item.
10
+ *
11
+ * @template Proto - The database prototype def to be edited
12
+ * @template Props - The Props this class component takes
13
+ */
14
+ export class TS_EditableItemControllerProto extends ProtoComponent {
15
+ static DefaultAutoSave = (item) => {
16
+ return !!item?._id;
17
+ };
18
+ constructor(p) {
19
+ super(p);
20
+ const method = p.module.defaultDispatcher.method;
21
+ // @ts-ignore
22
+ this[method] = this.__onItemUpdated;
23
+ }
24
+ __onItemUpdated = (...params) => {
25
+ const itemId = this.state.editable.get('_id');
26
+ if (!itemId)
27
+ return;
28
+ if (!(params[0] === 'update' && params[1]._id === itemId))
29
+ return;
30
+ this.state.editable?.setConflictingItem(deepClone(asArray(params[1]))[0]);
31
+ };
32
+ deriveStateFromProps(nextProps, state) {
33
+ const _state = (state || {});
34
+ const selectedId = this.getQueryParam('selected')?.[this.props.module.dbDef.dbKey];
35
+ let item = typeof nextProps.item === 'string' ? nextProps.module.cache.unique(nextProps.item) : nextProps.item;
36
+ if (!exists(item))
37
+ item = nextProps.module.cache.unique(selectedId);
38
+ if (!exists(item))
39
+ item = this.props.createInitialInstance?.();
40
+ if (!item)
41
+ throw new BadImplementationException('in order to use this component to create an item you need to provide a createInitialInstance callback');
42
+ _state.editable = new EditableDBItemV3(item, nextProps.module, nextProps.onError)
43
+ .setOnChanged(async () => {
44
+ this.forceUpdate();
45
+ })
46
+ .setAutoSave(resolveContent(nextProps.autoSave || TS_EditableItemControllerProto.DefaultAutoSave, item) || false);
47
+ return _state;
48
+ }
49
+ render() {
50
+ const Editor = this.props.editor;
51
+ return _jsx(Editor, { editable: this.state.editable, ...(this.props.editorProps || {}) });
52
+ }
53
+ }
@@ -0,0 +1,3 @@
1
+ .t-s--editable-item-controller {
2
+
3
+ }
@@ -0,0 +1 @@
1
+ export * from './TS_EditableItemControllerProto.js';
@@ -0,0 +1 @@
1
+ export * from './TS_EditableItemControllerProto.js';
@@ -0,0 +1,20 @@
1
+ import { TS_EditableContent } from '../TS_EditableContent/TS_EditableContent.js';
2
+ import { EditableItem_Status, EditableItemStatusListener } from '../../utils/EditableItem.js';
3
+ import { InferProps, InferState } from '../../utils/types.js';
4
+ type Props = {
5
+ labels: {
6
+ [K in EditableItem_Status]: string;
7
+ };
8
+ };
9
+ type State = {
10
+ statusLabel: string;
11
+ };
12
+ export declare class TS_EditableItemStatus extends TS_EditableContent<any, Props, State> implements EditableItemStatusListener {
13
+ static defaultProps: Props;
14
+ protected deriveStateFromProps(nextProps: InferProps<this>, _state: InferState<this>): InferState<this>;
15
+ componentDidMount(): void;
16
+ componentWillUnmount(): void;
17
+ onEditableItemStatusChanged(newStatus: EditableItem_Status): any;
18
+ render(): import("react/jsx-runtime").JSX.Element;
19
+ }
20
+ export {};
@@ -0,0 +1,34 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { TS_EditableContent } from '../TS_EditableContent/TS_EditableContent.js';
3
+ import { EditableItemStatus_Creating, EditableItemStatus_ErrorSaving, EditableItemStatus_FailedValidation, EditableItemStatus_Saved, EditableItemStatus_SavedWithErrors, EditableItemStatus_Saving, EditableItemStatus_Unknown, EditableItemStatus_UnsavedChanges } from '../../utils/EditableItem.js';
4
+ export class TS_EditableItemStatus extends TS_EditableContent {
5
+ static defaultProps = {
6
+ labels: {
7
+ [EditableItemStatus_Saving]: 'Saving...',
8
+ [EditableItemStatus_SavedWithErrors]: 'Saved With Errors',
9
+ [EditableItemStatus_FailedValidation]: 'Validation Error',
10
+ [EditableItemStatus_ErrorSaving]: 'Saving Failed',
11
+ [EditableItemStatus_UnsavedChanges]: 'Unsaved Changes',
12
+ [EditableItemStatus_Creating]: 'Creating New',
13
+ [EditableItemStatus_Saved]: 'Saved',
14
+ [EditableItemStatus_Unknown]: 'Not Implemented',
15
+ }
16
+ };
17
+ deriveStateFromProps(nextProps, _state) {
18
+ const state = super.deriveStateFromProps(nextProps, _state);
19
+ state.statusLabel = this.props.labels[_state.editable.getStatus()] ?? 'Missing Status';
20
+ return state;
21
+ }
22
+ componentDidMount() {
23
+ setTimeout(() => this.props.editable.addStatusListener(this), 0);
24
+ }
25
+ componentWillUnmount() {
26
+ this.props.editable.removeStatusListener(this);
27
+ }
28
+ onEditableItemStatusChanged(newStatus) {
29
+ this.reDeriveState({});
30
+ }
31
+ render() {
32
+ return _jsx("div", { className: 'ts-editable-item-status', children: this.state.statusLabel });
33
+ }
34
+ }
@@ -0,0 +1,57 @@
1
+ import * as React from 'react';
2
+ import { ComponentSync } from '../../core/ComponentSync.js';
3
+ import './TS_EditableText.scss';
4
+ type Props = {
5
+ text: string;
6
+ shownText?: string;
7
+ className?: string;
8
+ editMode?: boolean;
9
+ disableEdit?: boolean;
10
+ onTextSaved?: ((text: string) => void | Promise<void>);
11
+ onCancel?: () => void;
12
+ highlightText?: string;
13
+ hideReset?: boolean;
14
+ readMore?: boolean;
15
+ readMoreCollapseHeight?: number;
16
+ renderers?: {
17
+ cancelButton?: React.ReactNode;
18
+ saveButton?: React.ReactNode;
19
+ resetButton?: React.ReactNode;
20
+ };
21
+ };
22
+ type State = {
23
+ original: string;
24
+ text: string;
25
+ isEditing: boolean;
26
+ parentRef: React.RefObject<HTMLDivElement>;
27
+ };
28
+ declare class TS_EditableText_Base extends ComponentSync<Props, State> {
29
+ protected deriveStateFromProps(nextProps: Props): State;
30
+ protected onEnableEdit: () => void;
31
+ protected onTextChange: (text: string) => void;
32
+ protected onSubmitChanges: (e: React.MouseEvent | React.KeyboardEvent) => Promise<void>;
33
+ protected onCancelChanges: (e?: React.MouseEvent) => void;
34
+ protected onResetChanges: (e: React.MouseEvent) => void;
35
+ protected onGeneralClick: (e: React.MouseEvent) => void;
36
+ protected handleBlur: (e: React.FocusEvent) => void;
37
+ protected renderText: () => import("react/jsx-runtime").JSX.Element;
38
+ protected renderButton: {
39
+ reset: () => import("react/jsx-runtime").JSX.Element;
40
+ cancel: () => import("react/jsx-runtime").JSX.Element;
41
+ accept: () => import("react/jsx-runtime").JSX.Element;
42
+ };
43
+ }
44
+ declare class TS_EditableText_TextArea extends TS_EditableText_Base {
45
+ private renderButtons;
46
+ private renderTextArea;
47
+ render(): import("react/jsx-runtime").JSX.Element;
48
+ }
49
+ declare class TS_EditableText_Input extends TS_EditableText_Base {
50
+ private renderInput;
51
+ render(): import("react/jsx-runtime").JSX.Element;
52
+ }
53
+ export declare const TS_EditableText: {
54
+ TextArea: typeof TS_EditableText_TextArea;
55
+ Input: typeof TS_EditableText_Input;
56
+ };
57
+ export {};
@@ -0,0 +1,100 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from 'react';
3
+ import { ComponentSync } from '../../core/ComponentSync.js';
4
+ import './TS_EditableText.scss';
5
+ import { TS_Input, TS_TextArea } from '../TS_Input/index.js';
6
+ import { _className, stopPropagation, stringReplacer } from '../../utils/tools.js';
7
+ import { TS_ReadMore } from '../TS_ReadMore/index.js';
8
+ import { Button } from '../Button/Button.js';
9
+ class TS_EditableText_Base extends ComponentSync {
10
+ // ######################## Life Cycle ########################
11
+ deriveStateFromProps(nextProps) {
12
+ const state = { ...this.state };
13
+ state.original = nextProps.text;
14
+ state.text ||= nextProps.text;
15
+ state.isEditing = nextProps.editMode ?? false;
16
+ state.parentRef ||= React.createRef();
17
+ return state;
18
+ }
19
+ // ######################## Logic ########################
20
+ onEnableEdit = () => {
21
+ if (this.props.disableEdit || this.props.editMode !== undefined)
22
+ return;
23
+ this.setState({ text: this.state.original, isEditing: true });
24
+ };
25
+ onTextChange = (text) => {
26
+ this.setState({ text });
27
+ };
28
+ onSubmitChanges = async (e) => {
29
+ stopPropagation(e);
30
+ const text = this.state.text;
31
+ if (!this.props.onTextSaved)
32
+ this.setState({ original: text, isEditing: false });
33
+ await this.props.onTextSaved?.(text);
34
+ this.setState({ original: text });
35
+ };
36
+ onCancelChanges = (e) => {
37
+ if (e)
38
+ stopPropagation(e);
39
+ const original = this.state.original;
40
+ if (!this.props.onCancel)
41
+ this.setState({ text: original, isEditing: false });
42
+ this.setState({ text: original });
43
+ this.props.onCancel?.();
44
+ };
45
+ onResetChanges = (e) => {
46
+ stopPropagation(e);
47
+ const original = this.state.original;
48
+ this.setState({ text: original });
49
+ };
50
+ onGeneralClick = (e) => {
51
+ if (this.state.isEditing)
52
+ stopPropagation(e);
53
+ };
54
+ handleBlur = (e) => {
55
+ e.persist();
56
+ //e.relatedTarget can be null if lost focus due to Enter
57
+ if (e.relatedTarget === null || this.state.parentRef.current === e.relatedTarget || this.state.parentRef.current.contains(e.relatedTarget))
58
+ return;
59
+ this.onCancelChanges();
60
+ };
61
+ // ######################## Render ########################
62
+ renderText = () => {
63
+ const textToShow = this.props.shownText ?? this.state.original;
64
+ return _jsxs("div", { className: 'ts-editable-text__text', onClick: this.onEnableEdit, children: [this.props.readMore && _jsx(TS_ReadMore, { collapsedHeight: this.props.readMoreCollapseHeight, text: textToShow }), !this.props.readMore && (this.props.highlightText
65
+ ? stringReplacer(textToShow, this.props.highlightText, (match, i) => _jsx("i", { className: 'ts-editable-text__highlight', children: match }, i))
66
+ : textToShow)] });
67
+ };
68
+ renderButton = {
69
+ reset: () => _jsx(Button, { className: 'ts-editable-text__buttons__reset', onClick: this.onResetChanges, children: this.props.renderers?.resetButton || 'Reset' }),
70
+ cancel: () => _jsx(Button, { className: 'ts-editable-text__buttons__cancel', onClick: this.onCancelChanges, children: this.props.renderers?.cancelButton || 'Cancel' }),
71
+ accept: () => _jsx(Button, { className: 'ts-editable-text__buttons__save', onClick: this.onSubmitChanges, children: this.props.renderers?.saveButton || 'Save' })
72
+ };
73
+ }
74
+ class TS_EditableText_TextArea extends TS_EditableText_Base {
75
+ renderButtons = () => {
76
+ return _jsxs("div", { className: 'ts-editable-text-area__buttons', children: [!this.props.hideReset && this.renderButton.reset(), this.renderButton.cancel(), this.renderButton.accept()] });
77
+ };
78
+ renderTextArea = () => {
79
+ return _jsxs("div", { className: 'ts-editable-text-area__edit', children: [_jsx(TS_TextArea, { className: 'ts-editable-text-area__text-area', type: 'text', focus: true, value: this.state.isEditing ? this.state.text : this.props.shownText, onChange: this.onTextChange, onAccept: (val, e) => this.onSubmitChanges(e) }), this.renderButtons()] });
80
+ };
81
+ render() {
82
+ const Renderer = this.state.isEditing ? this.renderTextArea : this.renderText;
83
+ const className = _className('ts-editable-text-area', this.props.className);
84
+ return _jsx("div", { className: className, onBlur: this.handleBlur, tabIndex: 1, onClick: this.onGeneralClick, ref: this.state.parentRef, children: _jsx(Renderer, {}) });
85
+ }
86
+ }
87
+ class TS_EditableText_Input extends TS_EditableText_Base {
88
+ renderInput = () => {
89
+ return _jsxs("div", { className: 'ts-editable-text-input__edit', children: [this.renderButton.reset(), _jsx(TS_Input, { className: 'ts-editable-text-input__input', type: 'text', focus: true, value: this.state.text, onChange: this.onTextChange, onAccept: (val, e) => this.onSubmitChanges(e) }), _jsxs("div", { className: 'ts-editable-text-input__buttons', children: [this.renderButton.cancel(), this.renderButton.accept()] })] });
90
+ };
91
+ render() {
92
+ const Renderer = this.state.isEditing ? this.renderInput : this.renderText;
93
+ const className = _className('ts-editable-text-input', this.props.className);
94
+ return _jsx("div", { className: className, tabIndex: 1, onBlur: this.handleBlur, onClick: this.onGeneralClick, ref: this.state.parentRef, children: _jsx(Renderer, {}) });
95
+ }
96
+ }
97
+ export const TS_EditableText = {
98
+ TextArea: TS_EditableText_TextArea,
99
+ Input: TS_EditableText_Input,
100
+ };
@@ -0,0 +1,90 @@
1
+ .ts-editable-text-area,
2
+ .ts-editable-text-input {
3
+ .ts-button {
4
+ min-width: unset;
5
+ min-height: unset;
6
+ padding: 4px 8px;
7
+ margin: 0;
8
+ font: {
9
+ size: 14px;
10
+ weight: bold;
11
+ }
12
+ }
13
+
14
+ .ts-editable-text__buttons__reset {
15
+ background: #3ca0c6;
16
+ margin-right: auto;
17
+ }
18
+
19
+ .ts-editable-text__buttons__cancel {
20
+ background-color: #D0312D;
21
+ }
22
+
23
+ .ts-editable-text__buttons__save {
24
+ background-color: #3CB043;
25
+ }
26
+ }
27
+
28
+ .ts-editable-text-area {
29
+ //What's rendered when not editing
30
+ .ts-editable-text-area__text {
31
+ height: 100%;
32
+ white-space: pre-wrap;
33
+ }
34
+
35
+ //What's rendered when editing
36
+ .ts-editable-text-area__edit {
37
+ height: 100%;
38
+ display: flex;
39
+ flex-direction: column;
40
+ gap: 8px;
41
+
42
+ //The text-area itself
43
+ .ts-editable-text-area__text-area {
44
+ flex-grow: 1;
45
+ }
46
+
47
+ //The actions buttons
48
+ .ts-editable-text-area__buttons {
49
+ flex-shrink: 0;
50
+ display: flex;
51
+ gap: 8px;
52
+
53
+ .ts-editable-text__buttons__reset {
54
+ background: #3ca0c6;
55
+ margin-right: auto;
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ .ts-editable-text-input {
62
+ .ts-editable-text-input__edit {
63
+ height: 32px;
64
+ display: flex;
65
+ border: 1px solid black;
66
+ border-radius: 8px;
67
+ overflow: hidden;
68
+
69
+ .ts-editable-text-input__input {
70
+ border: none;
71
+ height: 100%;
72
+ min-height: unset;
73
+ flex-grow: 1;
74
+ }
75
+
76
+ .ts-editable-text-input__buttons {
77
+ height: 100%;
78
+ display: flex;
79
+ flex-shrink: 0;
80
+ width: 60px;
81
+ }
82
+
83
+ .ts-button {
84
+ height: 100%;
85
+ flex-shrink: 0;
86
+ border-radius: 0;
87
+ width: 30px;
88
+ }
89
+ }
90
+ }
@@ -0,0 +1 @@
1
+ export * from './TS_EditableText.js';
@@ -0,0 +1 @@
1
+ export * from './TS_EditableText.js';
@@ -0,0 +1,54 @@
1
+ import * as React from 'react';
2
+ import { ReactNode } from 'react';
3
+ import './TS_ErrorBoundary.scss';
4
+ import { Logger } from '@nu-art/ts-common';
5
+ import { BaseComponent } from '../../core/ComponentBase.js';
6
+ type State = {
7
+ error?: Error;
8
+ controlled?: boolean;
9
+ errorInfo?: React.ErrorInfo;
10
+ };
11
+ type Props = React.PropsWithChildren<{
12
+ logger?: Logger;
13
+ component?: BaseComponent;
14
+ onClick?: (e: any) => void;
15
+ renderer?: (e: any) => ReactNode;
16
+ error?: Error;
17
+ }>;
18
+ export declare class TS_ErrorBoundary extends React.Component<Props, State> {
19
+ constructor(props: Props);
20
+ /**
21
+ * Called on changes in props.
22
+ * @param props
23
+ * @param state
24
+ */
25
+ static getDerivedStateFromProps(props: Props, state: State): State;
26
+ /**
27
+ * Called when a descendant component throws an error (and there isn't an error boundary in the way already)
28
+ * used to return a state based on the error
29
+ * @param error
30
+ */
31
+ static getDerivedStateFromError(error: Error): {
32
+ error: Error;
33
+ };
34
+ /**
35
+ * Called when a descendant component throws an error (and there isn't an error boundary in the way already)
36
+ * Can be used to return a state based on the error, but will be deprecated at some point, so watch out.
37
+ * @param error
38
+ * @param errorInfo
39
+ */
40
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
41
+ /**
42
+ * Returns true.
43
+ * This component's props will not change unless an error has occurred, but the children component might need to
44
+ * because their props might have changed. therefore, inorder not to block their lifecycle, this component must always update.
45
+ * @param nextProps
46
+ * @param nextState
47
+ * @param nextContext
48
+ */
49
+ shouldComponentUpdate(nextProps: Readonly<Props>, nextState: Readonly<State>, nextContext: any): boolean;
50
+ private defaultRenderer;
51
+ render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
52
+ protected onErrorBoundaryClick: (e: React.MouseEvent<HTMLDivElement>) => void;
53
+ }
54
+ export {};
@@ -0,0 +1,103 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /*
3
+ * Thunderstorm is a full web app framework!
4
+ *
5
+ * Typescript & Express backend infrastructure that natively runs on firebase function
6
+ * Typescript & React frontend infrastructure
7
+ *
8
+ * Copyright (C) 2020 Adam van der Kruk aka TacB0sS
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License");
11
+ * you may not use this file except in compliance with the License.
12
+ * You may obtain a copy of the License at
13
+ *
14
+ * http://www.apache.org/licenses/LICENSE-2.0
15
+ *
16
+ * Unless required by applicable law or agreed to in writing, software
17
+ * distributed under the License is distributed on an "AS IS" BASIS,
18
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19
+ * See the License for the specific language governing permissions and
20
+ * limitations under the License.
21
+ */
22
+ import * as React from 'react';
23
+ import './TS_ErrorBoundary.scss';
24
+ export class TS_ErrorBoundary extends React.Component {
25
+ //######################### Life Cycle #########################
26
+ constructor(props) {
27
+ super(props);
28
+ this.state = {};
29
+ }
30
+ /**
31
+ * Called on changes in props.
32
+ * @param props
33
+ * @param state
34
+ */
35
+ static getDerivedStateFromProps(props, state) {
36
+ //Check if the boundary is controlled (gets the error from outside)
37
+ if (!state.controlled)
38
+ state.controlled = !!props.error;
39
+ state.error = state.controlled ? props.error : state.error;
40
+ return state;
41
+ }
42
+ /**
43
+ * Called when a descendant component throws an error (and there isn't an error boundary in the way already)
44
+ * used to return a state based on the error
45
+ * @param error
46
+ */
47
+ static getDerivedStateFromError(error) {
48
+ return { error };
49
+ }
50
+ /**
51
+ * Called when a descendant component throws an error (and there isn't an error boundary in the way already)
52
+ * Can be used to return a state based on the error, but will be deprecated at some point, so watch out.
53
+ * @param error
54
+ * @param errorInfo
55
+ */
56
+ componentDidCatch(error, errorInfo) {
57
+ this.setState({ error, errorInfo });
58
+ }
59
+ /**
60
+ * Returns true.
61
+ * This component's props will not change unless an error has occurred, but the children component might need to
62
+ * because their props might have changed. therefore, inorder not to block their lifecycle, this component must always update.
63
+ * @param nextProps
64
+ * @param nextState
65
+ * @param nextContext
66
+ */
67
+ shouldComponentUpdate(nextProps, nextState, nextContext) {
68
+ return true;
69
+ }
70
+ //######################### Render #########################
71
+ defaultRenderer = () => {
72
+ const titleMessage = randomMessages[Math.floor(Math.random() * randomMessages.length)];
73
+ return _jsxs("div", { className: 'ts-error-boundary', onClick: this.props.onClick ?? this.onErrorBoundaryClick, children: [_jsx("div", { className: 'ts-error-boundary__pic', children: "(\u30CE\u0CA0\u76CA\u0CA0\u30CE)" }), _jsx("div", { className: 'ts-error-boundary__title', children: titleMessage })] });
74
+ };
75
+ render() {
76
+ if (!this.state.error)
77
+ return this.props.children;
78
+ if (this.props.renderer)
79
+ return this.props.renderer(this.state.error);
80
+ return this.defaultRenderer();
81
+ }
82
+ onErrorBoundaryClick = (e) => {
83
+ const component = this.props.component;
84
+ if (!component)
85
+ return;
86
+ // @ts-ignore
87
+ const logInfo = component.logInfo;
88
+ // @ts-ignore
89
+ const reDeriveState = component.reDeriveState;
90
+ if (e.metaKey)
91
+ return logInfo('Component props and state', component.props, component.state);
92
+ if (e.shiftKey) {
93
+ logInfo('Re-deriving state');
94
+ return reDeriveState();
95
+ }
96
+ component.forceUpdate();
97
+ };
98
+ }
99
+ const randomMessages = [
100
+ 'Jeepers Creepers! An error!',
101
+ 'Something went wrong.. we\'re on it!',
102
+ 'This component is having a bad day',
103
+ ];