@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.
- package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.d.ts +17 -0
- package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.js +52 -0
- package/_ats/ATS_ActionProcessor/ATS_ActionProcessor.scss +43 -0
- package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.d.ts +25 -0
- package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.js +88 -0
- package/_ats/ATS_AppConfigEditor/ATS_AppConfigEditor.scss +117 -0
- package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.d.ts +17 -0
- package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.js +45 -0
- package/_ats/ATS_CollectionUpgrades/ATS_CollectionUpgrades.scss +24 -0
- package/_ats/ATS_CrudOperations/ATS_CrudOperations.d.ts +29 -0
- package/_ats/ATS_CrudOperations/ATS_CrudOperations.js +93 -0
- package/_ats/ATS_CrudOperations/ATS_CrudOperations.scss +46 -0
- package/_ats/ATS_CrudOperations/ui-components.d.ts +24 -0
- package/_ats/ATS_CrudOperations/ui-components.js +11 -0
- package/_ats/ATS_EditableItem/ATS_EditableItem.d.ts +16 -0
- package/_ats/ATS_EditableItem/ATS_EditableItem.js +48 -0
- package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.d.ts +18 -0
- package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.js +28 -0
- package/_ats/ATS_IDBCacheComparison/ATS_IDBCacheComparison.scss +7 -0
- package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.d.ts +23 -0
- package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.js +66 -0
- package/_ats/ATS_IDBCacheComparison/Component_CollectionGrid.scss +52 -0
- package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.d.ts +17 -0
- package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.js +30 -0
- package/_ats/ATS_IDBCacheComparison/Dialog_IDBCacheComparison.scss +25 -0
- package/_ats/ATS_Printables/ATS_AbstractPrintable.d.ts +16 -0
- package/_ats/ATS_Printables/ATS_AbstractPrintable.js +37 -0
- package/_ats/ATS_Printables/ATS_Printable.d.ts +13 -0
- package/_ats/ATS_Printables/ATS_Printable.js +45 -0
- package/_ats/ATS_Printables/ATS_Printable.scss +40 -0
- package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.d.ts +33 -0
- package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.js +80 -0
- package/_ats/ATS_ProtoComponent/ATS_ProtoComponent.scss +19 -0
- package/_ats/ATS_SyncEnv/ATS_SyncEnv.d.ts +51 -0
- package/_ats/ATS_SyncEnv/ATS_SyncEnv.js +215 -0
- package/_ats/ATS_SyncEnv/ATS_SyncEnv.scss +172 -0
- package/_ats/ATS_Toaster/ATS_Toaster.d.ts +23 -0
- package/_ats/ATS_Toaster/ATS_Toaster.js +48 -0
- package/_ats/ATS_Toaster/ATS_Toaster.scss +2 -0
- package/_ats/ATS_Toaster/index.d.ts +1 -0
- package/_ats/ATS_Toaster/index.js +1 -0
- package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.d.ts +18 -0
- package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.js +41 -0
- package/_ats/dialogs/Dialog_ActionProcessorConfirmation/Dialog_ActionProcessorConfirmation.scss +71 -0
- package/_ats/dialogs/index.d.ts +1 -0
- package/_ats/dialogs/index.js +1 -0
- package/_ats/index.d.ts +8 -0
- package/_ats/index.js +8 -0
- package/_entity/app-config/ModuleFE_AppConfig.d.ts +24 -0
- package/_entity/app-config/ModuleFE_AppConfig.js +52 -0
- package/_entity/app-config/index.d.ts +2 -0
- package/_entity/app-config/index.js +2 -0
- package/_entity/app-config/module-pack.d.ts +1 -0
- package/_entity/app-config/module-pack.js +2 -0
- package/_entity/editable-test/ModuleFE_EditableTest.d.ts +11 -0
- package/_entity/editable-test/ModuleFE_EditableTest.js +12 -0
- package/_entity/editable-test/index.d.ts +2 -0
- package/_entity/editable-test/index.js +2 -0
- package/_entity/editable-test/module-pack.d.ts +1 -0
- package/_entity/editable-test/module-pack.js +2 -0
- package/_entity/editable-test/ui-components.d.ts +37 -0
- package/_entity/editable-test/ui-components.js +21 -0
- package/_entity.d.ts +2 -0
- package/_entity.js +2 -0
- package/_to-refactor/MenuAndButton.d.ts +1 -0
- package/_to-refactor/MenuAndButton.js +87 -0
- package/behavior-functions/index.d.ts +1 -0
- package/behavior-functions/index.js +1 -0
- package/behavior-functions/scroll-into-view.d.ts +6 -0
- package/behavior-functions/scroll-into-view.js +55 -0
- package/component-modules/ModuleFE_Dialog.d.ts +27 -0
- package/component-modules/ModuleFE_Dialog.js +48 -0
- package/component-modules/ModuleFE_Notifications.d.ts +45 -0
- package/component-modules/ModuleFE_Notifications.js +133 -0
- package/component-modules/ModuleFE_Toaster.d.ts +28 -0
- package/component-modules/ModuleFE_Toaster.js +97 -0
- package/component-modules/mouse-interactivity/ModuleFE_MouseInteractivity.d.ts +9 -0
- package/component-modules/mouse-interactivity/ModuleFE_MouseInteractivity.js +35 -0
- package/component-modules/mouse-interactivity/helper-functions.d.ts +108 -0
- package/component-modules/mouse-interactivity/helper-functions.js +339 -0
- package/component-modules/mouse-interactivity/index.d.ts +3 -0
- package/component-modules/mouse-interactivity/index.js +3 -0
- package/component-modules/mouse-interactivity/types.d.ts +37 -0
- package/component-modules/mouse-interactivity/types.js +2 -0
- package/components/ActionButton.d.ts +7 -0
- package/components/ActionButton.js +29 -0
- package/components/AwaitModules/AwaitModules.d.ts +40 -0
- package/components/AwaitModules/AwaitModules.js +95 -0
- package/components/AwaitModules/AwaitModules.scss +53 -0
- package/components/AwaitSync/AwaitSync.d.ts +18 -0
- package/components/AwaitSync/AwaitSync.js +25 -0
- package/components/AwaitSync/AwaitSync.scss +13 -0
- package/components/Button/ATS_Button.d.ts +21 -0
- package/components/Button/ATS_Button.js +66 -0
- package/components/Button/ATS_Button.scss +19 -0
- package/components/Button/Button.d.ts +40 -0
- package/components/Button/Button.js +94 -0
- package/components/Button/Button.scss +151 -0
- package/components/FrameLayout/FrameLayout.d.ts +7 -0
- package/components/FrameLayout/FrameLayout.js +10 -0
- package/components/FrameLayout/FrameLayout.scss +5 -0
- package/components/FrameLayout/index.d.ts +1 -0
- package/components/FrameLayout/index.js +1 -0
- package/components/GenericDropDown/GenericDropDownV3.d.ts +108 -0
- package/components/GenericDropDown/GenericDropDownV3.js +98 -0
- package/components/GenericDropDown/index.d.ts +1 -0
- package/components/GenericDropDown/index.js +1 -0
- package/components/GenericRenderer/Component_GenericRenderer.d.ts +15 -0
- package/components/GenericRenderer/Component_GenericRenderer.js +13 -0
- package/components/HeightBounder.d.ts +11 -0
- package/components/HeightBounder.js +25 -0
- package/components/Label/ATS_Label.d.ts +12 -0
- package/components/Label/ATS_Label.js +34 -0
- package/components/Label/ATS_Label.scss +24 -0
- package/components/Label/Label.d.ts +30 -0
- package/components/Label/Label.js +84 -0
- package/components/Label/Label.scss +89 -0
- package/components/Layouts/Layouts.d.ts +38 -0
- package/components/Layouts/Layouts.js +56 -0
- package/components/Layouts/_Layouts.scss +53 -0
- package/components/Layouts/_Layouts_.scss +69 -0
- package/components/Layouts/index.d.ts +1 -0
- package/components/Layouts/index.js +21 -0
- package/components/Page_ItemsEditor/Page_ItemsEditor.d.ts +66 -0
- package/components/Page_ItemsEditor/Page_ItemsEditor.js +134 -0
- package/components/Page_ItemsEditor/Page_ItemsEditor.scss +104 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.d.ts +16 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.js +15 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/ItemEditor_DefaultFilter.scss +4 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/index.d.ts +1 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_DefaultFilter/index.js +1 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.d.ts +26 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.js +68 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/ItemEditor_DefaultList.scss +4 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/index.d.ts +1 -0
- package/components/Page_ItemsEditor/defaults/ItemEditor_ListRenderer/index.js +1 -0
- package/components/Page_ItemsEditor/index.d.ts +1 -0
- package/components/Page_ItemsEditor/index.js +1 -0
- package/components/Page_ItemsEditor/types.d.ts +4 -0
- package/components/Page_ItemsEditor/types.js +1 -0
- package/components/RelativeLayout/RelativeLayout.d.ts +7 -0
- package/components/RelativeLayout/RelativeLayout.js +10 -0
- package/components/RelativeLayout/RelativeLayout.scss +3 -0
- package/components/RelativeLayout/index.d.ts +1 -0
- package/components/RelativeLayout/index.js +1 -0
- package/components/Show.d.ts +20 -0
- package/components/Show.js +30 -0
- package/components/TS_AppTools/TS_AppTools.d.ts +30 -0
- package/components/TS_AppTools/TS_AppTools.js +144 -0
- package/components/TS_AppTools/TS_AppTools.scss +193 -0
- package/components/TS_AppTools/TS_AppTools_Default.d.ts +7 -0
- package/components/TS_AppTools/TS_AppTools_Default.js +16 -0
- package/components/TS_AppTools/index.d.ts +2 -0
- package/components/TS_AppTools/index.js +22 -0
- package/components/TS_AppTools/types.d.ts +19 -0
- package/components/TS_AppTools/types.js +6 -0
- package/components/TS_ButtonGroup/TS_ButtonGroup.d.ts +12 -0
- package/components/TS_ButtonGroup/TS_ButtonGroup.js +94 -0
- package/components/TS_ButtonGroup/TS_ButtonGroup.scss +58 -0
- package/components/TS_ButtonGroup/index.d.ts +2 -0
- package/components/TS_ButtonGroup/index.js +2 -0
- package/components/TS_ButtonGroup/types.d.ts +38 -0
- package/components/TS_ButtonGroup/types.js +1 -0
- package/components/TS_ButtonLoader/TS_ButtonLoader.d.ts +5 -0
- package/components/TS_ButtonLoader/TS_ButtonLoader.js +8 -0
- package/components/TS_ButtonLoader/TS_ButtonLoader.scss +63 -0
- package/components/TS_ButtonLoader/index.d.ts +1 -0
- package/components/TS_ButtonLoader/index.js +1 -0
- package/components/TS_Card/TS_Card.d.ts +7 -0
- package/components/TS_Card/TS_Card.js +14 -0
- package/components/TS_Card/TS_Card.scss +7 -0
- package/components/TS_Card/index.d.ts +1 -0
- package/components/TS_Card/index.js +1 -0
- package/components/TS_Checkbox/ATS_CheckboxV2.d.ts +3 -0
- package/components/TS_Checkbox/ATS_CheckboxV2.js +30 -0
- package/components/TS_Checkbox/ATS_CheckboxV2.scss +4 -0
- package/components/TS_Checkbox/TS_Checkbox.d.ts +48 -0
- package/components/TS_Checkbox/TS_Checkbox.js +46 -0
- package/components/TS_Checkbox/TS_Checkbox.scss +62 -0
- package/components/TS_Checkbox/TS_CheckboxV2.d.ts +37 -0
- package/components/TS_Checkbox/TS_CheckboxV2.js +53 -0
- package/components/TS_Checkbox/TS_CheckboxV2.scss +97 -0
- package/components/TS_Checkbox/index.d.ts +1 -0
- package/components/TS_Checkbox/index.js +21 -0
- package/components/TS_CheckboxGroup/ATS_CheckboxGroup.d.ts +19 -0
- package/components/TS_CheckboxGroup/ATS_CheckboxGroup.js +89 -0
- package/components/TS_CheckboxGroup/ATS_CheckboxGroup.scss +6 -0
- package/components/TS_CheckboxGroup/TS_CheckboxGroup.d.ts +35 -0
- package/components/TS_CheckboxGroup/TS_CheckboxGroup.js +47 -0
- package/components/TS_CheckboxGroup/TS_CheckboxGroup.scss +32 -0
- package/components/TS_CheckboxGroup/index.d.ts +1 -0
- package/components/TS_CheckboxGroup/index.js +1 -0
- package/components/TS_CollapsableContainer/TS_CollapsableContainer.d.ts +44 -0
- package/components/TS_CollapsableContainer/TS_CollapsableContainer.js +80 -0
- package/components/TS_CollapsableContainer/TS_CollapsableContainer.scss +47 -0
- package/components/TS_CollapsableContainer/index.d.ts +1 -0
- package/components/TS_CollapsableContainer/index.js +1 -0
- package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.d.ts +36 -0
- package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.js +46 -0
- package/components/TS_CollapsableContainerV2/TS_CollapsableContainerV2.scss +66 -0
- package/components/TS_CollapsableContainerV2/ats.d.ts +3 -0
- package/components/TS_CollapsableContainerV2/ats.js +39 -0
- package/components/TS_CollapsableContainerV2/ats.scss +35 -0
- package/components/TS_CollapsableContainerV2/index.d.ts +2 -0
- package/components/TS_CollapsableContainerV2/index.js +2 -0
- package/components/TS_ComponentTransition/TS_ComponentTransition.d.ts +25 -0
- package/components/TS_ComponentTransition/TS_ComponentTransition.js +65 -0
- package/components/TS_ComponentTransition/index.d.ts +1 -0
- package/components/TS_ComponentTransition/index.js +1 -0
- package/components/TS_CopyToClipboard/TS_CopyToClipboard.d.ts +4 -0
- package/components/TS_CopyToClipboard/TS_CopyToClipboard.js +11 -0
- package/components/TS_CopyToClipboard/index.d.ts +1 -0
- package/components/TS_CopyToClipboard/index.js +21 -0
- package/components/TS_Dialog/TS_Dialog.d.ts +89 -0
- package/components/TS_Dialog/TS_Dialog.js +140 -0
- package/components/TS_Dialog/TS_Dialog.scss +116 -0
- package/components/TS_Dialog/TS_DialogOverlay.d.ts +15 -0
- package/components/TS_Dialog/TS_DialogOverlay.js +48 -0
- package/components/TS_Dialog/TS_DialogOverlay.scss +41 -0
- package/components/TS_Dialog/TS_SimpleDialog.d.ts +21 -0
- package/components/TS_Dialog/TS_SimpleDialog.js +37 -0
- package/components/TS_Dialog/TS_SimpleDialog.scss +5 -0
- package/components/TS_Dialog/TS_SimpleDialogue.d.ts +28 -0
- package/components/TS_Dialog/TS_SimpleDialogue.js +38 -0
- package/components/TS_Dialog/index.d.ts +2 -0
- package/components/TS_Dialog/index.js +22 -0
- package/components/TS_DragAndDrop/TS_DragAndDrop.d.ts +48 -0
- package/components/TS_DragAndDrop/TS_DragAndDrop.js +105 -0
- package/components/TS_DragAndDrop/TS_DragAndDrop.scss +61 -0
- package/components/TS_DragAndDrop/index.d.ts +1 -0
- package/components/TS_DragAndDrop/index.js +21 -0
- package/components/TS_Dropdown/TS_DropDown.d.ts +120 -0
- package/components/TS_Dropdown/TS_DropDown.js +332 -0
- package/components/TS_Dropdown/TS_DropDown.scss +134 -0
- package/components/TS_Dropdown/index.d.ts +1 -0
- package/components/TS_Dropdown/index.js +21 -0
- package/components/TS_EditableContent/TS_EditableContent.d.ts +19 -0
- package/components/TS_EditableContent/TS_EditableContent.js +32 -0
- package/components/TS_EditableContent/types.d.ts +4 -0
- package/components/TS_EditableContent/types.js +1 -0
- package/components/TS_EditableItemComponent/TS_EditableItemComponent.d.ts +23 -0
- package/components/TS_EditableItemComponent/TS_EditableItemComponent.js +47 -0
- package/components/TS_EditableItemController/TS_EditableItemController.d.ts +36 -0
- package/components/TS_EditableItemController/TS_EditableItemController.js +54 -0
- package/components/TS_EditableItemController/TS_EditableItemController.scss +3 -0
- package/components/TS_EditableItemController/index.d.ts +1 -0
- package/components/TS_EditableItemController/index.js +1 -0
- package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.d.ts +32 -0
- package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.js +53 -0
- package/components/TS_EditableItemControllerProto/TS_EditableItemControllerProto.scss +3 -0
- package/components/TS_EditableItemControllerProto/index.d.ts +1 -0
- package/components/TS_EditableItemControllerProto/index.js +1 -0
- package/components/TS_EditableItemStatus/TS_EditableItemStatus.d.ts +20 -0
- package/components/TS_EditableItemStatus/TS_EditableItemStatus.js +34 -0
- package/components/TS_EditableText/TS_EditableText.d.ts +57 -0
- package/components/TS_EditableText/TS_EditableText.js +100 -0
- package/components/TS_EditableText/TS_EditableText.scss +90 -0
- package/components/TS_EditableText/index.d.ts +1 -0
- package/components/TS_EditableText/index.js +1 -0
- package/components/TS_ErrorBoundary/TS_ErrorBoundary.d.ts +54 -0
- package/components/TS_ErrorBoundary/TS_ErrorBoundary.js +103 -0
- package/components/TS_ErrorBoundary/TS_ErrorBoundary.scss +95 -0
- package/components/TS_ErrorBoundary/index.d.ts +1 -0
- package/components/TS_ErrorBoundary/index.js +21 -0
- package/components/TS_Form/TS_Form.d.ts +9 -0
- package/components/TS_Form/TS_Form.js +11 -0
- package/components/TS_Form/TS_Form.scss +0 -0
- package/components/TS_Form/consts.d.ts +1 -0
- package/components/TS_Form/consts.js +1 -0
- package/components/TS_Form/index.d.ts +3 -0
- package/components/TS_Form/index.js +3 -0
- package/components/TS_Form/types.d.ts +13 -0
- package/components/TS_Form/types.js +1 -0
- package/components/TS_GridTableProto/TS_GridTableProto.d.ts +18 -0
- package/components/TS_GridTableProto/TS_GridTableProto.js +22 -0
- package/components/TS_GridTableProto/TS_GridTableProto.scss +4 -0
- package/components/TS_GridTableProto/index.d.ts +1 -0
- package/components/TS_GridTableProto/index.js +1 -0
- package/components/TS_Input/ATS_TextArea.d.ts +14 -0
- package/components/TS_Input/ATS_TextArea.js +24 -0
- package/components/TS_Input/ATS_TextArea.scss +24 -0
- package/components/TS_Input/TS_BaseInput.d.ts +44 -0
- package/components/TS_Input/TS_BaseInput.js +47 -0
- package/components/TS_Input/TS_Input.d.ts +24 -0
- package/components/TS_Input/TS_Input.js +53 -0
- package/components/TS_Input/TS_Input.scss +64 -0
- package/components/TS_Input/TS_TextArea.d.ts +14 -0
- package/components/TS_Input/TS_TextArea.js +72 -0
- package/components/TS_Input/TS_TextArea.scss +41 -0
- package/components/TS_Input/index.d.ts +4 -0
- package/components/TS_Input/index.js +25 -0
- package/components/TS_JSONViewer/TS_JSONViewer.d.ts +18 -0
- package/components/TS_JSONViewer/TS_JSONViewer.js +64 -0
- package/components/TS_JSONViewer/TS_JSONViewer.scss +87 -0
- package/components/TS_JSONViewer/types.d.ts +10 -0
- package/components/TS_JSONViewer/types.js +1 -0
- package/components/TS_Link/TS_Link.d.ts +15 -0
- package/components/TS_Link/TS_Link.js +36 -0
- package/components/TS_Link/TS_Link.scss +32 -0
- package/components/TS_Link/index.d.ts +1 -0
- package/components/TS_Link/index.js +21 -0
- package/components/TS_ListOrganizer/TS_ListOrganizer.d.ts +33 -0
- package/components/TS_ListOrganizer/TS_ListOrganizer.js +64 -0
- package/components/TS_ListOrganizer/TS_ListOrganizer.scss +37 -0
- package/components/TS_ListOrganizer/index.d.ts +1 -0
- package/components/TS_ListOrganizer/index.js +21 -0
- package/components/TS_Loader/TS_Loader.d.ts +6 -0
- package/components/TS_Loader/TS_Loader.js +9 -0
- package/components/TS_Loader/TS_Loader.scss +71 -0
- package/components/TS_Loader/index.d.ts +1 -0
- package/components/TS_Loader/index.js +1 -0
- package/components/TS_MemoryMonitor/TS_MemoryMonitor.d.ts +10 -0
- package/components/TS_MemoryMonitor/TS_MemoryMonitor.js +48 -0
- package/components/TS_MemoryMonitor/TS_MemoryMonitor.scss +31 -0
- package/components/TS_MemoryMonitor/index.d.ts +1 -0
- package/components/TS_MemoryMonitor/index.js +21 -0
- package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.d.ts +9 -0
- package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.js +28 -0
- package/components/TS_MouseInteractivity/TS_PopUp/TS_PopUp.scss +53 -0
- package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.d.ts +12 -0
- package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.js +65 -0
- package/components/TS_MouseInteractivity/TS_Tooltip/TS_ToolTip.scss +46 -0
- package/components/TS_MouseInteractivity/base/TS_MouseInteractivity.d.ts +18 -0
- package/components/TS_MouseInteractivity/base/TS_MouseInteractivity.js +100 -0
- package/components/TS_MouseInteractivity/index.d.ts +2 -0
- package/components/TS_MouseInteractivity/index.js +22 -0
- package/components/TS_MultiSelect/TS_MultiSelect.scss +34 -0
- package/components/TS_MultiSelect/TS_MultiSelect_V2.d.ts +36 -0
- package/components/TS_MultiSelect/TS_MultiSelect_V2.js +41 -0
- package/components/TS_MultiSelect/index.d.ts +1 -0
- package/components/TS_MultiSelect/index.js +21 -0
- package/components/TS_Notifications/TS_Notifications.d.ts +22 -0
- package/components/TS_Notifications/TS_Notifications.js +96 -0
- package/components/TS_Notifications/TS_Notifications.scss +120 -0
- package/components/TS_Notifications/genericNotificationAction.d.ts +8 -0
- package/components/TS_Notifications/genericNotificationAction.js +16 -0
- package/components/TS_Notifications/index.d.ts +2 -0
- package/components/TS_Notifications/index.js +2 -0
- package/components/TS_Overlay/TS_Overlay.d.ts +12 -0
- package/components/TS_Overlay/TS_Overlay.js +32 -0
- package/components/TS_Overlay/TS_Overlay.scss +41 -0
- package/components/TS_Overlay/index.d.ts +1 -0
- package/components/TS_Overlay/index.js +21 -0
- package/components/TS_Printable/TS_Printable.d.ts +13 -0
- package/components/TS_Printable/TS_Printable.js +20 -0
- package/components/TS_Printable/TS_Printable.scss +47 -0
- package/components/TS_Printable/index.d.ts +1 -0
- package/components/TS_Printable/index.js +21 -0
- package/components/TS_ProgressBar/TS_ProgressBar.d.ts +22 -0
- package/components/TS_ProgressBar/TS_ProgressBar.js +47 -0
- package/components/TS_ProgressBar/TS_ProgressBar.scss +79 -0
- package/components/TS_ProgressBar/index.d.ts +1 -0
- package/components/TS_ProgressBar/index.js +1 -0
- package/components/TS_PropRenderer/TS_PropRenderer.d.ts +18 -0
- package/components/TS_PropRenderer/TS_PropRenderer.js +36 -0
- package/components/TS_PropRenderer/TS_PropRenderer.scss +19 -0
- package/components/TS_PropRenderer/index.d.ts +1 -0
- package/components/TS_PropRenderer/index.js +1 -0
- package/components/TS_Radio/TS_Radio.d.ts +34 -0
- package/components/TS_Radio/TS_Radio.js +49 -0
- package/components/TS_Radio/TS_Radio.scss +68 -0
- package/components/TS_Radio/index.d.ts +1 -0
- package/components/TS_Radio/index.js +1 -0
- package/components/TS_ReadMore/TS_ReadMore.d.ts +26 -0
- package/components/TS_ReadMore/TS_ReadMore.js +86 -0
- package/components/TS_ReadMore/TS_ReadMore.scss +36 -0
- package/components/TS_ReadMore/index.d.ts +1 -0
- package/components/TS_ReadMore/index.js +1 -0
- package/components/TS_Slider/TS_Slider.d.ts +26 -0
- package/components/TS_Slider/TS_Slider.js +42 -0
- package/components/TS_Slider/TS_Slider.scss +68 -0
- package/components/TS_Slider/index.d.ts +1 -0
- package/components/TS_Slider/index.js +1 -0
- package/components/TS_Space/TS_Space.d.ts +8 -0
- package/components/TS_Space/TS_Space.js +8 -0
- package/components/TS_Space/index.d.ts +1 -0
- package/components/TS_Space/index.js +1 -0
- package/components/TS_Space/ts-space.scss +3 -0
- package/components/TS_Table/TS_Table.d.ts +42 -0
- package/components/TS_Table/TS_Table.js +74 -0
- package/components/TS_Table/TS_Table.scss +51 -0
- package/components/TS_Table/index.d.ts +1 -0
- package/components/TS_Table/index.js +21 -0
- package/components/TS_Tabs/TS_Tabs.d.ts +55 -0
- package/components/TS_Tabs/TS_Tabs.js +102 -0
- package/components/TS_Tabs/TS_Tabs.scss +103 -0
- package/components/TS_Tabs/index.d.ts +1 -0
- package/components/TS_Tabs/index.js +21 -0
- package/components/TS_Toaster/TS_Toast.d.ts +5 -0
- package/components/TS_Toaster/TS_Toast.js +9 -0
- package/components/TS_Toaster/TS_Toast.scss +80 -0
- package/components/TS_Toaster/TS_ToastOverlay.d.ts +16 -0
- package/components/TS_Toaster/TS_ToastOverlay.js +26 -0
- package/components/TS_Toaster/TS_ToastOverlay.scss +33 -0
- package/components/TS_Toaster/index.d.ts +2 -0
- package/components/TS_Toaster/index.js +22 -0
- package/components/TS_Toggle/ATS_Toggle.d.ts +11 -0
- package/components/TS_Toggle/ATS_Toggle.js +18 -0
- package/components/TS_Toggle/TS_Toggle.d.ts +21 -0
- package/components/TS_Toggle/TS_Toggle.js +26 -0
- package/components/TS_Toggle/TS_Toggle.scss +56 -0
- package/components/TS_Toggle/index.d.ts +2 -0
- package/components/TS_Toggle/index.js +2 -0
- package/components/TS_Toggler/TS_Toggler.d.ts +23 -0
- package/components/TS_Toggler/TS_Toggler.js +50 -0
- package/components/TS_Toggler/TS_Toggler.scss +83 -0
- package/components/TS_Toggler/index.d.ts +1 -0
- package/components/TS_Toggler/index.js +1 -0
- package/components/TS_Tree/SimpleTreeNodeRenderer.d.ts +9 -0
- package/components/TS_Tree/SimpleTreeNodeRenderer.js +53 -0
- package/components/TS_Tree/TS_Tree.d.ts +68 -0
- package/components/TS_Tree/TS_Tree.js +174 -0
- package/components/TS_Tree/TS_Tree.scss +44 -0
- package/components/TS_Tree/index.d.ts +3 -0
- package/components/TS_Tree/index.js +23 -0
- package/components/TS_Tree/types.d.ts +4 -0
- package/components/TS_Tree/types.js +21 -0
- package/components/TS_V2_Input/TS_InputV2.d.ts +93 -0
- package/components/TS_V2_Input/TS_InputV2.js +220 -0
- package/components/TS_V2_Input/index.d.ts +1 -0
- package/components/TS_V2_Input/index.js +21 -0
- package/components/TS_V2_TextArea/TS_BaseInput.d.ts +42 -0
- package/components/TS_V2_TextArea/TS_BaseInput.js +46 -0
- package/components/TS_V2_TextArea/TS_TextAreaV2.d.ts +78 -0
- package/components/TS_V2_TextArea/TS_TextAreaV2.js +178 -0
- package/components/TS_V2_TextArea/TS_TextAreaV2.scss +49 -0
- package/components/TS_V2_TextArea/index.d.ts +2 -0
- package/components/TS_V2_TextArea/index.js +22 -0
- package/components/TS_VirtualizedList/TS_VirtualizedList.d.ts +14 -0
- package/components/TS_VirtualizedList/TS_VirtualizedList.js +22 -0
- package/components/TS_VirtualizedList/index.d.ts +1 -0
- package/components/TS_VirtualizedList/index.js +1 -0
- package/components/Video/Video.d.ts +16 -0
- package/components/Video/Video.js +40 -0
- package/components/Video/VideoDialog.d.ts +20 -0
- package/components/Video/VideoDialog.js +44 -0
- package/components/Video/VideoDialog.scss +31 -0
- package/components/Video/types.d.ts +20 -0
- package/components/Video/types.js +1 -0
- package/components/_TS_MultiSelect/DBItemDropDownMultiSelector.d.ts +57 -0
- package/components/_TS_MultiSelect/DBItemDropDownMultiSelector.js +63 -0
- package/components/adapter/Adapter.d.ts +139 -0
- package/components/adapter/Adapter.js +259 -0
- package/components/adapter/BaseRenderer.d.ts +24 -0
- package/components/adapter/BaseRenderer.js +31 -0
- package/components/ats-group.d.ts +2 -0
- package/components/ats-group.js +14 -0
- package/components/form/Form.d.ts +24 -0
- package/components/form/Form.js +34 -0
- package/components/form/types.d.ts +23 -0
- package/components/form/types.js +21 -0
- package/components/formv3/FormV3.d.ts +25 -0
- package/components/formv3/FormV3.js +23 -0
- package/components/formv3/types.d.ts +29 -0
- package/components/formv3/types.js +1 -0
- package/components/treeicons.d.ts +10 -0
- package/components/treeicons.js +3 -0
- package/components/types.d.ts +23 -0
- package/components/types.js +22 -0
- package/components/utils.d.ts +1 -0
- package/components/utils.js +7 -0
- package/consts.d.ts +2 -0
- package/consts.js +2 -0
- package/core/AppPage.d.ts +11 -0
- package/core/AppPage.js +52 -0
- package/core/AppPageV2.d.ts +9 -0
- package/core/AppPageV2.js +53 -0
- package/core/AppWrapper.d.ts +4 -0
- package/core/AppWrapper.js +34 -0
- package/core/ComponentAsync.d.ts +16 -0
- package/core/ComponentAsync.js +64 -0
- package/core/ComponentBase.d.ts +28 -0
- package/core/ComponentBase.js +152 -0
- package/core/ComponentSync.d.ts +13 -0
- package/core/ComponentSync.js +49 -0
- package/core/Controller.d.ts +13 -0
- package/core/Controller.js +28 -0
- package/core/IndexedDB.d.ts +42 -0
- package/core/IndexedDB.js +259 -0
- package/core/IndexedDBV3.d.ts +43 -0
- package/core/IndexedDBV3.js +259 -0
- package/core/IndexedDBV4/IndexedDB_Database.d.ts +20 -0
- package/core/IndexedDBV4/IndexedDB_Database.js +268 -0
- package/core/IndexedDBV4/IndexedDB_Store.d.ts +34 -0
- package/core/IndexedDBV4/IndexedDB_Store.js +207 -0
- package/core/IndexedDBV4/ModuleFE_IDBManager.d.ts +11 -0
- package/core/IndexedDBV4/ModuleFE_IDBManager.js +19 -0
- package/core/IndexedDBV4/types.d.ts +16 -0
- package/core/IndexedDBV4/types.js +1 -0
- package/core/SimpleScriptInjector.d.ts +13 -0
- package/core/SimpleScriptInjector.js +42 -0
- package/core/Thunder.d.ts +37 -0
- package/core/Thunder.js +139 -0
- package/core/ThunderstormDefaultApp.d.ts +12 -0
- package/core/ThunderstormDefaultApp.js +29 -0
- package/core/consts.d.ts +6 -0
- package/core/consts.js +2 -0
- package/core/db-api-gen/consts.d.ts +22 -0
- package/core/db-api-gen/consts.js +25 -0
- package/core/db-api-gen/db-def.d.ts +9 -0
- package/core/db-api-gen/db-def.js +16 -0
- package/core/db-api-gen/types.d.ts +23 -0
- package/core/db-api-gen/types.js +3 -0
- package/core/proto-component/ProtoComponent.d.ts +57 -0
- package/core/proto-component/ProtoComponent.js +73 -0
- package/core/proto-component/UrlState.d.ts +42 -0
- package/core/proto-component/UrlState.js +59 -0
- package/core/proto-component/index.d.ts +2 -0
- package/core/proto-component/index.js +2 -0
- package/core/proto-component/types.d.ts +25 -0
- package/core/proto-component/types.js +15 -0
- package/core/thunder-dispatcher.d.ts +13 -0
- package/core/thunder-dispatcher.js +69 -0
- package/core/thunder-helpers.d.ts +7 -0
- package/core/thunder-helpers.js +171 -0
- package/core/thunder-modulepack.d.ts +3 -0
- package/core/thunder-modulepack.js +34 -0
- package/core/typed-api.d.ts +6 -0
- package/core/typed-api.js +41 -0
- package/core/types.d.ts +6 -0
- package/core/types.js +1 -0
- package/editable-item.d.ts +7 -0
- package/editable-item.js +7 -0
- package/index.d.ts +112 -0
- package/index.js +134 -0
- package/modules/ModuleFE_BaseTheme.d.ts +18 -0
- package/modules/ModuleFE_BaseTheme.js +27 -0
- package/modules/ModuleFE_BroadcastChannel/ModuleFE_BroadcastChannel.d.ts +20 -0
- package/modules/ModuleFE_BroadcastChannel/ModuleFE_BroadcastChannel.js +66 -0
- package/modules/ModuleFE_BrowserHistory.d.ts +46 -0
- package/modules/ModuleFE_BrowserHistory.js +165 -0
- package/modules/ModuleFE_BrowserHistoryV2.d.ts +43 -0
- package/modules/ModuleFE_BrowserHistoryV2.js +113 -0
- package/modules/ModuleFE_CSVParser.d.ts +12 -0
- package/modules/ModuleFE_CSVParser.js +52 -0
- package/modules/ModuleFE_CollectionActions.d.ts +10 -0
- package/modules/ModuleFE_CollectionActions.js +18 -0
- package/modules/ModuleFE_ConnectivityModule.d.ts +15 -0
- package/modules/ModuleFE_ConnectivityModule.js +31 -0
- package/modules/ModuleFE_ForceUpgrade.d.ts +20 -0
- package/modules/ModuleFE_ForceUpgrade.js +54 -0
- package/modules/ModuleFE_LocalStorage.d.ts +46 -0
- package/modules/ModuleFE_LocalStorage.js +179 -0
- package/modules/ModuleFE_Locale.d.ts +44 -0
- package/modules/ModuleFE_Locale.js +83 -0
- package/modules/ModuleFE_Print.d.ts +16 -0
- package/modules/ModuleFE_Print.js +116 -0
- package/modules/ModuleFE_StorageCleaner.d.ts +17 -0
- package/modules/ModuleFE_StorageCleaner.js +90 -0
- package/modules/ModuleFE_Thunderstorm.d.ts +31 -0
- package/modules/ModuleFE_Thunderstorm.js +122 -0
- package/modules/ModuleFE_Utils/ModuleFE_Utils.d.ts +29 -0
- package/modules/ModuleFE_Utils/ModuleFE_Utils.js +43 -0
- package/modules/ModuleFE_Window.d.ts +19 -0
- package/modules/ModuleFE_Window.js +42 -0
- package/modules/ModuleFE_WindowMessenger.d.ts +62 -0
- package/modules/ModuleFE_WindowMessenger.js +128 -0
- package/modules/action-processor/ModuleFE_ActionProcessor.d.ts +9 -0
- package/modules/action-processor/ModuleFE_ActionProcessor.js +14 -0
- package/modules/archiving/ModuleFE_Archiving.d.ts +8 -0
- package/modules/archiving/ModuleFE_Archiving.js +15 -0
- package/modules/clearWebsiteDataDispatcher.d.ts +5 -0
- package/modules/clearWebsiteDataDispatcher.js +2 -0
- package/modules/component-loader/ReactEntryComponentInjector.d.ts +23 -0
- package/modules/component-loader/ReactEntryComponentInjector.js +59 -0
- package/modules/component-loader/entry-component-loading-module.d.ts +7 -0
- package/modules/component-loader/entry-component-loading-module.js +52 -0
- package/modules/component-loader/index.d.ts +2 -0
- package/modules/component-loader/index.js +2 -0
- package/modules/db-api-gen/ModuleFE_BaseApi.d.ts +45 -0
- package/modules/db-api-gen/ModuleFE_BaseApi.js +152 -0
- package/modules/db-api-gen/ModuleFE_BaseDB.d.ts +146 -0
- package/modules/db-api-gen/ModuleFE_BaseDB.js +433 -0
- package/modules/db-api-gen/types.d.ts +13 -0
- package/modules/db-api-gen/types.js +6 -0
- package/modules/http/ModuleFE_XHR.d.ts +20 -0
- package/modules/http/ModuleFE_XHR.js +175 -0
- package/modules/routing/LocationChangeListener.d.ts +6 -0
- package/modules/routing/LocationChangeListener.js +15 -0
- package/modules/routing/ModuleFE_Routing.d.ts +30 -0
- package/modules/routing/ModuleFE_Routing.js +122 -0
- package/modules/routing/ModuleFE_RoutingV2.d.ts +25 -0
- package/modules/routing/ModuleFE_RoutingV2.js +143 -0
- package/modules/routing/index.d.ts +5 -0
- package/modules/routing/index.js +5 -0
- package/modules/routing/route.d.ts +22 -0
- package/modules/routing/route.js +83 -0
- package/modules/routing/types.d.ts +20 -0
- package/modules/routing/types.js +1 -0
- package/modules/sync-env/ModuleFE_SyncEnvV2.d.ts +8 -0
- package/modules/sync-env/ModuleFE_SyncEnvV2.js +18 -0
- package/modules/sync-manager/ModuleFE_SyncManager.d.ts +59 -0
- package/modules/sync-manager/ModuleFE_SyncManager.js +378 -0
- package/modules/sync-manager/ModuleFE_SyncManager_CSV.d.ts +11 -0
- package/modules/sync-manager/ModuleFE_SyncManager_CSV.js +121 -0
- package/package.json +107 -0
- package/server-info/Button_VersionUpdate.d.ts +15 -0
- package/server-info/Button_VersionUpdate.js +29 -0
- package/server-info/Button_VersionUpdate.scss +29 -0
- package/server-info/ModuleFE_ServerInfo.d.ts +26 -0
- package/server-info/ModuleFE_ServerInfo.js +73 -0
- package/server-info/index.d.ts +2 -0
- package/server-info/index.js +2 -0
- package/shared.d.ts +1 -0
- package/shared.js +21 -0
- package/styles/declaration/basic.scss +155 -0
- package/styles/declaration/mixins.scss +58 -0
- package/styles/impl/basic.scss +141 -0
- package/styles/impl/icons.scss +34 -0
- package/styles.scss +40 -0
- package/utils/EditableItem.d.ts +240 -0
- package/utils/EditableItem.js +552 -0
- package/utils/console/LogClient_ConsoleInterceptor.d.ts +5 -0
- package/utils/console/LogClient_ConsoleInterceptor.js +70 -0
- package/utils/perform-action/genereteToasts.d.ts +3 -0
- package/utils/perform-action/genereteToasts.js +14 -0
- package/utils/perform-action/index.d.ts +2 -0
- package/utils/perform-action/index.js +2 -0
- package/utils/perform-action/notification-dispatchers.d.ts +6 -0
- package/utils/perform-action/notification-dispatchers.js +2 -0
- package/utils/perform-action/performAction.d.ts +34 -0
- package/utils/perform-action/performAction.js +77 -0
- package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.d.ts +8 -0
- package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.js +11 -0
- package/utils/perform-action/resolve-dependency-toast/ResolveDependencyToast.scss +12 -0
- package/utils/tools.d.ts +31 -0
- package/utils/tools.js +138 -0
- package/utils/types.d.ts +3 -0
- package/utils/types.js +1 -0
- package/widgets/FieldEditor.d.ts +29 -0
- package/widgets/FieldEditor.js +47 -0
- package/widgets/FieldEditorClick.d.ts +33 -0
- package/widgets/FieldEditorClick.js +49 -0
- package/widgets/FieldEditorWithButtons.d.ts +32 -0
- package/widgets/FieldEditorWithButtons.js +42 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TypedMap } from '@nu-art/ts-common';
|
|
2
|
+
import { EditableItem } from '../utils/EditableItem.js';
|
|
3
|
+
type CustomErrorLevel = string;
|
|
4
|
+
export type ComponentProps_Error = {
|
|
5
|
+
error?: {
|
|
6
|
+
message?: string;
|
|
7
|
+
level: 'error' | 'warning' | CustomErrorLevel;
|
|
8
|
+
};
|
|
9
|
+
showErrorTooltip?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type ResolveEditableErrorParams<T> = {
|
|
12
|
+
editable: EditableItem<T>;
|
|
13
|
+
prop: keyof T;
|
|
14
|
+
error?: ComponentProps_Error['error'];
|
|
15
|
+
ignoreError?: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare const convertToHTMLDataAttributes: (attributes?: TypedMap<string>, prefix?: string) => Readonly<{}>;
|
|
18
|
+
export declare const getErrorTooltip: (errors?: TypedMap<string>, shouldReturn?: boolean) => {};
|
|
19
|
+
export declare const resolveEditableError: <T>(errorHandler: ResolveEditableErrorParams<T>) => {
|
|
20
|
+
message?: string;
|
|
21
|
+
level: "error" | "warning" | CustomErrorLevel;
|
|
22
|
+
} | undefined;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { _keys, EmptyObject, exists, reduceToMap } from '@nu-art/ts-common';
|
|
2
|
+
import { openContent } from '../component-modules/mouse-interactivity/index.js';
|
|
3
|
+
export const convertToHTMLDataAttributes = (attributes, prefix) => {
|
|
4
|
+
if (!attributes)
|
|
5
|
+
return EmptyObject;
|
|
6
|
+
const finalImpl = prefix ? `${prefix}-` : '';
|
|
7
|
+
return reduceToMap(_keys(attributes), key => `data-${finalImpl}${key}`, key => attributes[key]);
|
|
8
|
+
};
|
|
9
|
+
export const getErrorTooltip = (errors, shouldReturn = false) => {
|
|
10
|
+
if (!exists(errors) || !shouldReturn)
|
|
11
|
+
return {};
|
|
12
|
+
return openContent.tooltip.top('input-error-tooltip', () => errors.message, { offset: 6 });
|
|
13
|
+
};
|
|
14
|
+
export const resolveEditableError = (errorHandler) => {
|
|
15
|
+
if (errorHandler.ignoreError)
|
|
16
|
+
return;
|
|
17
|
+
if (errorHandler.error)
|
|
18
|
+
return errorHandler.error;
|
|
19
|
+
const errorMessage = errorHandler.editable.hasError(errorHandler.prop);
|
|
20
|
+
if (!errorHandler.error && errorMessage)
|
|
21
|
+
return { level: 'error', message: String(errorMessage) };
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getComputedStyleProperty(el: HTMLElement, property: string, normalValue?: string): string | undefined;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export function getComputedStyleProperty(el, property, normalValue) {
|
|
2
|
+
const computed = document.defaultView?.getComputedStyle(el);
|
|
3
|
+
if (!computed)
|
|
4
|
+
return;
|
|
5
|
+
const value = computed.getPropertyValue(property);
|
|
6
|
+
return value === 'normal' ? normalValue ?? value : value;
|
|
7
|
+
}
|
package/consts.d.ts
ADDED
package/consts.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentSync } from './ComponentSync.js';
|
|
2
|
+
export declare abstract class AppPage<P extends object = object, S extends object = object, Props extends P & {
|
|
3
|
+
pageTitle?: string | ((state: S) => string);
|
|
4
|
+
} = P & {
|
|
5
|
+
pageTitle?: string | ((state: S) => string);
|
|
6
|
+
}> extends ComponentSync<Props, S> {
|
|
7
|
+
private prevTitle;
|
|
8
|
+
protected constructor(p: Props);
|
|
9
|
+
protected updateTitle: () => void;
|
|
10
|
+
private resolveTitle;
|
|
11
|
+
}
|
package/core/AppPage.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
import { ComponentSync } from './ComponentSync.js';
|
|
22
|
+
import { dispatch_onPageTitleChanged } from './consts.js';
|
|
23
|
+
// Deprecated use AppPageV2
|
|
24
|
+
export class AppPage extends ComponentSync {
|
|
25
|
+
prevTitle;
|
|
26
|
+
constructor(p) {
|
|
27
|
+
super(p);
|
|
28
|
+
const _componentDidMount = this.componentDidMount?.bind(this);
|
|
29
|
+
this.componentDidMount = () => {
|
|
30
|
+
_componentDidMount?.();
|
|
31
|
+
this.prevTitle = document.title;
|
|
32
|
+
this.updateTitle();
|
|
33
|
+
};
|
|
34
|
+
const _componentWillUnmount = this.componentWillUnmount?.bind(this);
|
|
35
|
+
this.componentWillUnmount = () => {
|
|
36
|
+
_componentWillUnmount?.();
|
|
37
|
+
document.title = this.prevTitle;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
updateTitle = () => {
|
|
41
|
+
const newTitle = this.resolveTitle();
|
|
42
|
+
document.title = newTitle;
|
|
43
|
+
this.logDebug(`Mounting page: ${newTitle}`);
|
|
44
|
+
dispatch_onPageTitleChanged.dispatchUI(document.title);
|
|
45
|
+
};
|
|
46
|
+
resolveTitle = () => {
|
|
47
|
+
const pageTitle = this.props.pageTitle;
|
|
48
|
+
if (!pageTitle)
|
|
49
|
+
return '';
|
|
50
|
+
return typeof pageTitle === 'function' ? pageTitle(this.state) : pageTitle;
|
|
51
|
+
};
|
|
52
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComponentAsync } from './ComponentAsync.js';
|
|
2
|
+
export declare abstract class AppPageV2<P extends {} = {}, S extends {} = {}> extends ComponentAsync<P, S> {
|
|
3
|
+
private pageTitle;
|
|
4
|
+
private prevTitle;
|
|
5
|
+
protected constructor(p: P, pageTitle?: string | (() => string));
|
|
6
|
+
setPageTitle(pageTitle: string | (() => string)): void;
|
|
7
|
+
protected updateTitle: () => void;
|
|
8
|
+
private resolveTitle;
|
|
9
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
import { ComponentAsync } from './ComponentAsync.js';
|
|
22
|
+
import { dispatch_onPageTitleChanged } from './consts.js';
|
|
23
|
+
export class AppPageV2 extends ComponentAsync {
|
|
24
|
+
pageTitle;
|
|
25
|
+
prevTitle;
|
|
26
|
+
constructor(p, pageTitle) {
|
|
27
|
+
super(p);
|
|
28
|
+
this.pageTitle = pageTitle || document.title;
|
|
29
|
+
const _componentDidMount = this.componentDidMount?.bind(this);
|
|
30
|
+
this.componentDidMount = () => {
|
|
31
|
+
_componentDidMount?.();
|
|
32
|
+
this.prevTitle = document.title;
|
|
33
|
+
this.updateTitle();
|
|
34
|
+
};
|
|
35
|
+
const _componentWillUnmount = this.componentWillUnmount?.bind(this);
|
|
36
|
+
this.componentWillUnmount = () => {
|
|
37
|
+
_componentWillUnmount?.();
|
|
38
|
+
document.title = this.prevTitle;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
setPageTitle(pageTitle) {
|
|
42
|
+
this.pageTitle = pageTitle;
|
|
43
|
+
if (this.mounted)
|
|
44
|
+
this.updateTitle();
|
|
45
|
+
}
|
|
46
|
+
updateTitle = () => {
|
|
47
|
+
const newTitle = this.resolveTitle();
|
|
48
|
+
document.title = newTitle;
|
|
49
|
+
this.logDebug(`Mounting page: ${newTitle}`);
|
|
50
|
+
dispatch_onPageTitleChanged.dispatchUI(document.title);
|
|
51
|
+
};
|
|
52
|
+
resolveTitle = () => typeof this.pageTitle === 'function' ? this.pageTitle() : this.pageTitle;
|
|
53
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ThunderAppWrapperProps } from './types.js';
|
|
2
|
+
export declare function appWithBrowserRouter(props: ThunderAppWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function appWithMemoryRouter(props: ThunderAppWrapperProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function appWithJSX(props: ThunderAppWrapperProps<any>): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx } 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 { BrowserRouter, MemoryRouter } from 'react-router-dom';
|
|
23
|
+
export function appWithBrowserRouter(props) {
|
|
24
|
+
const MainApp = props.element;
|
|
25
|
+
return _jsx(BrowserRouter, { children: _jsx(MainApp, {}) });
|
|
26
|
+
}
|
|
27
|
+
export function appWithMemoryRouter(props) {
|
|
28
|
+
const MainApp = props.element;
|
|
29
|
+
return _jsx(MemoryRouter, { children: _jsx(MainApp, {}) });
|
|
30
|
+
}
|
|
31
|
+
export function appWithJSX(props) {
|
|
32
|
+
const MainApp = props.element;
|
|
33
|
+
return _jsx(MainApp, { ...props.props });
|
|
34
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Created by tacb0ss on 28/07/2018.
|
|
3
|
+
*/
|
|
4
|
+
import { BaseComponent } from './ComponentBase.js';
|
|
5
|
+
export type BaseAsyncState = {
|
|
6
|
+
isLoading?: boolean;
|
|
7
|
+
error?: Error;
|
|
8
|
+
};
|
|
9
|
+
export declare abstract class ComponentAsync<P = {}, S = {}, State extends BaseAsyncState & S = BaseAsyncState & S> extends BaseComponent<P, State> {
|
|
10
|
+
private derivingState;
|
|
11
|
+
private pendingProps?;
|
|
12
|
+
protected _deriveStateFromProps(nextProps: P): State | undefined;
|
|
13
|
+
private reDeriveCompletedCallback;
|
|
14
|
+
protected deriveStateFromProps(nextProps: P): Promise<State>;
|
|
15
|
+
protected createInitialState(nextProps: P): State;
|
|
16
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Created by tacb0ss on 28/07/2018.
|
|
23
|
+
*/
|
|
24
|
+
import { BaseComponent } from './ComponentBase.js';
|
|
25
|
+
export class ComponentAsync extends BaseComponent {
|
|
26
|
+
derivingState = false;
|
|
27
|
+
pendingProps;
|
|
28
|
+
_deriveStateFromProps(nextProps) {
|
|
29
|
+
if (this.derivingState) {
|
|
30
|
+
this.logVerbose('Scheduling new props', nextProps);
|
|
31
|
+
this.pendingProps = nextProps;
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.logVerbose('Deriving state from props', nextProps);
|
|
35
|
+
this.pendingProps = undefined;
|
|
36
|
+
this.derivingState = true;
|
|
37
|
+
this.deriveStateFromProps(nextProps)
|
|
38
|
+
.then((state) => {
|
|
39
|
+
if (!this.mounted)
|
|
40
|
+
return this.logWarning('Will not set derived state - Component Unmounted');
|
|
41
|
+
this.setState(state, this.reDeriveCompletedCallback);
|
|
42
|
+
})
|
|
43
|
+
.catch(e => {
|
|
44
|
+
this.logError(`error`, e);
|
|
45
|
+
this.setState({ error: e }, this.reDeriveCompletedCallback);
|
|
46
|
+
});
|
|
47
|
+
return this.createInitialState(nextProps);
|
|
48
|
+
}
|
|
49
|
+
reDeriveCompletedCallback = () => {
|
|
50
|
+
this.derivingState = false;
|
|
51
|
+
if (!this.mounted)
|
|
52
|
+
return this.logWarning('Will not trigger pending props - Component Unmounted');
|
|
53
|
+
if (this.pendingProps) {
|
|
54
|
+
this.logVerbose('Triggering pending props');
|
|
55
|
+
this._deriveStateFromProps(this.pendingProps);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
async deriveStateFromProps(nextProps) {
|
|
59
|
+
return this.createInitialState(nextProps);
|
|
60
|
+
}
|
|
61
|
+
createInitialState(nextProps) {
|
|
62
|
+
return { isLoading: true };
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Created by tacb0ss on 28/07/2018.
|
|
3
|
+
*/
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import { Logger, LogLevel, LogParam, TimerHandler } from '@nu-art/ts-common';
|
|
6
|
+
export declare abstract class BaseComponent<P = any, State = any> extends React.Component<P, State> {
|
|
7
|
+
static MinLogLevel: LogLevel;
|
|
8
|
+
protected readonly logger: Logger;
|
|
9
|
+
private timeoutMap;
|
|
10
|
+
protected mounted: boolean;
|
|
11
|
+
constructor(props: P);
|
|
12
|
+
_constructor(): void;
|
|
13
|
+
UNSAFE_componentWillReceiveProps(nextProps: P): void;
|
|
14
|
+
protected abstract _deriveStateFromProps(nextProps: P, state?: Partial<State>): State | undefined;
|
|
15
|
+
reDeriveState: (state?: Partial<State>) => void;
|
|
16
|
+
debounce(handler: TimerHandler, key: string, ms?: number): void;
|
|
17
|
+
throttle(handler: TimerHandler, key: string, ms?: number): void;
|
|
18
|
+
shouldReDeriveState(nextProps: Readonly<P>): boolean;
|
|
19
|
+
shouldComponentUpdate(nextProps: Readonly<P>, nextState: Readonly<State>, nextContext: any): boolean;
|
|
20
|
+
protected logVerbose(...toLog: LogParam[]): void;
|
|
21
|
+
protected logDebug(...toLog: LogParam[]): void;
|
|
22
|
+
protected logInfo(...toLog: LogParam[]): void;
|
|
23
|
+
protected logWarning(...toLog: LogParam[]): void;
|
|
24
|
+
protected logError(...toLog: LogParam[]): void;
|
|
25
|
+
protected log(level: LogLevel, bold: boolean, ...toLog: LogParam[]): void;
|
|
26
|
+
private logImpl;
|
|
27
|
+
toString(): string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Created by tacb0ss on 28/07/2018.
|
|
23
|
+
*/
|
|
24
|
+
import * as React from 'react';
|
|
25
|
+
import { _clearTimeout, _keys, _setTimeout, EmptyObject, ImplementationMissingException, Logger, LogLevel, sortArray } from '@nu-art/ts-common';
|
|
26
|
+
import { Thunder } from './Thunder.js';
|
|
27
|
+
let instances = 0;
|
|
28
|
+
export class BaseComponent extends React.Component {
|
|
29
|
+
static MinLogLevel = LogLevel.Info;
|
|
30
|
+
logger;
|
|
31
|
+
timeoutMap = {};
|
|
32
|
+
mounted = false;
|
|
33
|
+
constructor(props) {
|
|
34
|
+
super(props);
|
|
35
|
+
this.logger = new Logger(this.constructor.name + '-' + (++instances));
|
|
36
|
+
this.logger.setMinLevel(BaseComponent.MinLogLevel);
|
|
37
|
+
this.logVerbose('Creating..');
|
|
38
|
+
this._constructor();
|
|
39
|
+
const __render = this.render?.bind(this);
|
|
40
|
+
if (!__render)
|
|
41
|
+
throw new ImplementationMissingException('Every UI Component must have a render function. Did you forget to add a render function?');
|
|
42
|
+
this.render = () => {
|
|
43
|
+
this.logVerbose('Rendering', this.state);
|
|
44
|
+
return __render();
|
|
45
|
+
};
|
|
46
|
+
const __componentDidMount = this.componentDidMount?.bind(this);
|
|
47
|
+
this.componentDidMount = () => {
|
|
48
|
+
// @ts-ignore
|
|
49
|
+
Thunder.getInstance().addUIListener(this);
|
|
50
|
+
this.mounted = true;
|
|
51
|
+
__componentDidMount?.();
|
|
52
|
+
};
|
|
53
|
+
const __componentWillUnmount = this.componentWillUnmount?.bind(this);
|
|
54
|
+
this.componentWillUnmount = () => {
|
|
55
|
+
__componentWillUnmount?.();
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
Thunder.getInstance().removeUIListener(this);
|
|
58
|
+
this.mounted = false;
|
|
59
|
+
};
|
|
60
|
+
this._deriveStateFromProps.bind(this);
|
|
61
|
+
const state = this._deriveStateFromProps(props, this.state);
|
|
62
|
+
if (state)
|
|
63
|
+
this.state = state;
|
|
64
|
+
}
|
|
65
|
+
_constructor() {
|
|
66
|
+
}
|
|
67
|
+
UNSAFE_componentWillReceiveProps(nextProps) {
|
|
68
|
+
if (!this.shouldReDeriveState(nextProps))
|
|
69
|
+
return;
|
|
70
|
+
if (this.state) //skip the first time when the shared-components MUST update
|
|
71
|
+
this.logDebug('Received new props, calling deriveStateFromProps', nextProps);
|
|
72
|
+
const state = this._deriveStateFromProps(nextProps, { ...this.state });
|
|
73
|
+
if (state)
|
|
74
|
+
this.setState(state);
|
|
75
|
+
}
|
|
76
|
+
reDeriveState = (state) => {
|
|
77
|
+
this.logVerbose('reDeriveState called..');
|
|
78
|
+
this._deriveStateFromProps(this.props, { ...this.state, ...state });
|
|
79
|
+
};
|
|
80
|
+
debounce(handler, key, ms = 0) {
|
|
81
|
+
this.logWarning('THIS IS LEGACY S***, NEED TO REMOVE');
|
|
82
|
+
_clearTimeout(this.timeoutMap[key]);
|
|
83
|
+
this.timeoutMap[key] = _setTimeout(handler, ms);
|
|
84
|
+
}
|
|
85
|
+
throttle(handler, key, ms = 0) {
|
|
86
|
+
this.logWarning('THIS IS LEGACY S***, NEED TO REMOVE');
|
|
87
|
+
if (this.timeoutMap[key])
|
|
88
|
+
return;
|
|
89
|
+
this.timeoutMap[key] = _setTimeout(() => {
|
|
90
|
+
handler();
|
|
91
|
+
delete this.timeoutMap[key];
|
|
92
|
+
}, ms);
|
|
93
|
+
}
|
|
94
|
+
shouldReDeriveState(nextProps) {
|
|
95
|
+
const _shouldRederive = () => {
|
|
96
|
+
const propKeys = sortArray(_keys(this.props || EmptyObject));
|
|
97
|
+
const nextPropsKeys = sortArray(_keys(nextProps || EmptyObject));
|
|
98
|
+
if (propKeys.length !== nextPropsKeys.length)
|
|
99
|
+
return true;
|
|
100
|
+
this.logVerbose('CurrentPropKeys:', propKeys);
|
|
101
|
+
this.logVerbose('CurrentProps:', this.props);
|
|
102
|
+
this.logVerbose('NextPropKeys:', nextPropsKeys);
|
|
103
|
+
this.logVerbose('NextProps:', nextProps);
|
|
104
|
+
if (propKeys.some((key, i) => propKeys[i] !== nextPropsKeys[i] || this.props[propKeys[i]] !== nextProps[nextPropsKeys[i]]))
|
|
105
|
+
return true;
|
|
106
|
+
return false;
|
|
107
|
+
};
|
|
108
|
+
const willReDerive = _shouldRederive();
|
|
109
|
+
this.logVerbose(`component will${!willReDerive ? ' NOT' : ''} re-derive State`);
|
|
110
|
+
return willReDerive;
|
|
111
|
+
}
|
|
112
|
+
shouldComponentUpdate(nextProps, nextState, nextContext) {
|
|
113
|
+
const _shouldRender = () => {
|
|
114
|
+
const stateKeys = sortArray(_keys(this.state || EmptyObject));
|
|
115
|
+
const nextStateKeys = sortArray(_keys(nextState || EmptyObject));
|
|
116
|
+
// this.logDebug('States Same Instance:', this.state === nextState);
|
|
117
|
+
if (stateKeys.length !== nextStateKeys.length)
|
|
118
|
+
return true;
|
|
119
|
+
if (stateKeys.some((key, i) => stateKeys[i] !== nextStateKeys[i] || this.state[stateKeys[i]] !== nextState[nextStateKeys[i]]))
|
|
120
|
+
return true;
|
|
121
|
+
return false;
|
|
122
|
+
};
|
|
123
|
+
// const willRender = super.shouldComponentUpdate?.(nextProps, nextState, nextContext) || true;
|
|
124
|
+
const willRender = _shouldRender();
|
|
125
|
+
this.logVerbose(`component will${!willRender ? ' NOT' : ''} render`);
|
|
126
|
+
return willRender;
|
|
127
|
+
}
|
|
128
|
+
logVerbose(...toLog) {
|
|
129
|
+
this.logImpl(LogLevel.Verbose, false, toLog);
|
|
130
|
+
}
|
|
131
|
+
logDebug(...toLog) {
|
|
132
|
+
this.logImpl(LogLevel.Debug, false, toLog);
|
|
133
|
+
}
|
|
134
|
+
logInfo(...toLog) {
|
|
135
|
+
this.logImpl(LogLevel.Info, false, toLog);
|
|
136
|
+
}
|
|
137
|
+
logWarning(...toLog) {
|
|
138
|
+
this.logImpl(LogLevel.Warning, false, toLog);
|
|
139
|
+
}
|
|
140
|
+
logError(...toLog) {
|
|
141
|
+
this.logImpl(LogLevel.Error, false, toLog);
|
|
142
|
+
}
|
|
143
|
+
log(level, bold, ...toLog) {
|
|
144
|
+
this.logImpl(level, bold, toLog);
|
|
145
|
+
}
|
|
146
|
+
logImpl(level, bold, toLog) {
|
|
147
|
+
this.logger.log(level, bold, toLog);
|
|
148
|
+
}
|
|
149
|
+
toString() {
|
|
150
|
+
return this.constructor.name;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Created by tacb0ss on 28/07/2018.
|
|
3
|
+
*/
|
|
4
|
+
import { BaseComponent } from './ComponentBase.js';
|
|
5
|
+
import { InferProps, InferState } from '../utils/types.js';
|
|
6
|
+
export declare abstract class ComponentSync<P = any, S = any> extends BaseComponent<P, S> {
|
|
7
|
+
protected _deriveStateFromProps(nextProps: P, state?: S): S | undefined;
|
|
8
|
+
protected deriveStateFromProps(nextProps: P, state: S): S;
|
|
9
|
+
}
|
|
10
|
+
export declare abstract class ComponentSyncInfer<P = any, S = any> extends BaseComponent<P, S> {
|
|
11
|
+
protected _deriveStateFromProps(nextProps: InferProps<this>, state?: InferState<this>): InferState<this>;
|
|
12
|
+
protected deriveStateFromProps(nextProps: InferProps<this>, state: InferState<this>): InferState<this>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Adam van der Kruk aka TacB0sS
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Created by tacb0ss on 28/07/2018.
|
|
23
|
+
*/
|
|
24
|
+
import { BaseComponent } from './ComponentBase.js';
|
|
25
|
+
export class ComponentSync extends BaseComponent {
|
|
26
|
+
_deriveStateFromProps(nextProps, state) {
|
|
27
|
+
this.logVerbose('Deriving state from props');
|
|
28
|
+
state ??= this.state ? { ...this.state } : {};
|
|
29
|
+
const _state = this.deriveStateFromProps(nextProps, state);
|
|
30
|
+
if (this.mounted && _state)
|
|
31
|
+
this.setState(_state);
|
|
32
|
+
return _state;
|
|
33
|
+
}
|
|
34
|
+
deriveStateFromProps(nextProps, state) {
|
|
35
|
+
return state;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export class ComponentSyncInfer extends BaseComponent {
|
|
39
|
+
_deriveStateFromProps(nextProps, state) {
|
|
40
|
+
this.logVerbose('Deriving state from props');
|
|
41
|
+
const _state = this.deriveStateFromProps(nextProps, (state ?? (this.state ? { ...this.state } : {})));
|
|
42
|
+
if (this.mounted && _state)
|
|
43
|
+
this.setState(_state);
|
|
44
|
+
return _state;
|
|
45
|
+
}
|
|
46
|
+
deriveStateFromProps(nextProps, state) {
|
|
47
|
+
return state;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentSync } from './ComponentSync.js';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type Props_Controller = {
|
|
4
|
+
ignoreError?: boolean;
|
|
5
|
+
};
|
|
6
|
+
export declare class Controller<P = {}, State = {}, Props extends Props_Controller & P = Props_Controller & P> extends ComponentSync<Props, State> {
|
|
7
|
+
constructor(props: Props);
|
|
8
|
+
/**
|
|
9
|
+
* Default on click on error boundary event
|
|
10
|
+
* @param e - Mouse click event
|
|
11
|
+
*/
|
|
12
|
+
protected onErrorBoundaryClick: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { ComponentSync } from './ComponentSync.js';
|
|
3
|
+
import { TS_ErrorBoundary } from '../components/TS_ErrorBoundary/index.js';
|
|
4
|
+
export class Controller extends ComponentSync {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super(props);
|
|
7
|
+
const __render = this.render.bind(this);
|
|
8
|
+
// override default render to make sure error boundary is added if needed
|
|
9
|
+
this.render = () => {
|
|
10
|
+
if (this.props.ignoreError)
|
|
11
|
+
return __render();
|
|
12
|
+
return _jsx(TS_ErrorBoundary, { onClick: this.onErrorBoundaryClick, children: __render() });
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Default on click on error boundary event
|
|
17
|
+
* @param e - Mouse click event
|
|
18
|
+
*/
|
|
19
|
+
onErrorBoundaryClick = (e) => {
|
|
20
|
+
if (e.metaKey)
|
|
21
|
+
return this.logInfo('Component props and state', this.props, this.state);
|
|
22
|
+
if (e.shiftKey) {
|
|
23
|
+
this.logInfo('Re-deriving state');
|
|
24
|
+
return this.reDeriveState();
|
|
25
|
+
}
|
|
26
|
+
this.forceUpdate();
|
|
27
|
+
};
|
|
28
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DB_Object, DBIndex, IndexKeys } from '@nu-art/ts-common';
|
|
2
|
+
export type ReduceFunction<ItemType, ReturnType> = (accumulator: ReturnType, arrayItem: ItemType, index?: number, array?: ItemType[]) => ReturnType;
|
|
3
|
+
export type DBConfig<T extends DB_Object, Ks extends keyof T> = {
|
|
4
|
+
name: string;
|
|
5
|
+
version?: number;
|
|
6
|
+
autoIncrement?: boolean;
|
|
7
|
+
uniqueKeys: Ks[];
|
|
8
|
+
indices?: DBIndex<T>[];
|
|
9
|
+
upgradeProcessor?: (db: IDBDatabase) => void;
|
|
10
|
+
};
|
|
11
|
+
export type IndexDb_Query = {
|
|
12
|
+
query?: string | number | string[] | number[];
|
|
13
|
+
indexKey?: string;
|
|
14
|
+
limit?: number;
|
|
15
|
+
};
|
|
16
|
+
export declare class IndexedDB<T extends DB_Object, Ks extends keyof T> {
|
|
17
|
+
private db;
|
|
18
|
+
private config;
|
|
19
|
+
private static dbs;
|
|
20
|
+
static getOrCreate<T extends DB_Object, Ks extends keyof T>(config: DBConfig<T, Ks>): IndexedDB<T, Ks>;
|
|
21
|
+
constructor(config: DBConfig<T, Ks>);
|
|
22
|
+
exists(): Promise<IDBDatabaseInfo | undefined>;
|
|
23
|
+
open(): Promise<IDBDatabase>;
|
|
24
|
+
readonly store: (write?: boolean, store?: IDBObjectStore) => Promise<IDBObjectStore>;
|
|
25
|
+
private getCursor;
|
|
26
|
+
private cursorHandler;
|
|
27
|
+
insert(value: T, _store?: IDBObjectStore): Promise<T>;
|
|
28
|
+
insertAll(values: T[], _store?: IDBObjectStore): Promise<void>;
|
|
29
|
+
upsert(value: T, _store?: IDBObjectStore): Promise<T>;
|
|
30
|
+
upsertAll(values: T[], _store?: IDBObjectStore): Promise<void>;
|
|
31
|
+
get(key: IndexKeys<T, Ks>): Promise<T | undefined>;
|
|
32
|
+
query(query: IndexDb_Query): Promise<T[] | undefined>;
|
|
33
|
+
queryFilter(filter: (item: T) => boolean, query?: IndexDb_Query): Promise<T[]>;
|
|
34
|
+
WIP_queryMapNew<Type>(mapper: (item: T) => Type, filter?: (item: T) => boolean, query?: IndexDb_Query): Promise<Type[]>;
|
|
35
|
+
WIP_queryMap<Type>(mapper: (item: T) => Type, filter?: (item: T) => boolean, query?: IndexDb_Query): Promise<Type[]>;
|
|
36
|
+
queryFind(filter: (item: T) => boolean): Promise<T | undefined>;
|
|
37
|
+
queryReduce<ReturnType>(reducer: ReduceFunction<T, ReturnType>, initialValue: ReturnType, filter?: (item: T) => boolean, query?: IndexDb_Query): Promise<ReturnType>;
|
|
38
|
+
clearDB(): Promise<void>;
|
|
39
|
+
deleteDB(): Promise<void>;
|
|
40
|
+
deleteAll(keys: (IndexKeys<T, Ks> | T)[]): Promise<T[]>;
|
|
41
|
+
delete(key: (IndexKeys<T, Ks> | T)): Promise<T>;
|
|
42
|
+
}
|