@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,54 @@
|
|
|
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 { Dispatcher, Module } from '@nu-art/ts-common';
|
|
22
|
+
import { ModuleFE_XHR } from './http/ModuleFE_XHR.js';
|
|
23
|
+
import { ApiDef_ForceUpgrade, HeaderKey_AppVersion, HeaderKey_BrowserType, HttpMethod } from '@nu-art/thunderstorm-shared';
|
|
24
|
+
import { browserType } from '../utils/tools.js';
|
|
25
|
+
import { apiWithQuery } from '../core/typed-api.js';
|
|
26
|
+
const dispatch_onUpgradeRequired = new Dispatcher('__onUpgradeRequired');
|
|
27
|
+
class ModuleFE_ForceUpgrade_Class extends Module {
|
|
28
|
+
v1;
|
|
29
|
+
constructor() {
|
|
30
|
+
super();
|
|
31
|
+
this.v1 = {
|
|
32
|
+
assertAppVersion: apiWithQuery(ApiDef_ForceUpgrade.v1.assertAppVersion)
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
init() {
|
|
36
|
+
ModuleFE_XHR.addDefaultHeader(HeaderKey_AppVersion, `${process.env.appVersion}`);
|
|
37
|
+
ModuleFE_XHR.addDefaultHeader(HeaderKey_BrowserType, `${browserType()}`);
|
|
38
|
+
}
|
|
39
|
+
compareVersion = () => {
|
|
40
|
+
const def = { method: HttpMethod.GET, path: this.config.assertVersionUrl };
|
|
41
|
+
// this.v1.assertAppVersion({}).execute((response) => {
|
|
42
|
+
// dispatch_onUpgradeRequired.dispatchModule(response);
|
|
43
|
+
// });
|
|
44
|
+
ModuleFE_XHR
|
|
45
|
+
.createRequest(def)
|
|
46
|
+
.setRelativeUrl(this.config.assertVersionUrl)
|
|
47
|
+
.execute((response) => {
|
|
48
|
+
dispatch_onUpgradeRequired.dispatchModule(response);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
async __postInit() {
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
export const ModuleFE_ForceUpgrade = new ModuleFE_ForceUpgrade_Class();
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Created by tacb0ss on 27/07/2018.
|
|
3
|
+
*/
|
|
4
|
+
import { Module, ResolvableContent, TS_Object } from '@nu-art/ts-common';
|
|
5
|
+
import { OnClearWebsiteData } from './clearWebsiteDataDispatcher.js';
|
|
6
|
+
export interface OnStorageKeyChangedListener {
|
|
7
|
+
__onStorageKeyEvent(event: StorageEvent): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
type GetType = string | number | object;
|
|
10
|
+
export declare class StorageModule_Class extends Module implements OnClearWebsiteData {
|
|
11
|
+
private readonly cache;
|
|
12
|
+
private readonly withstandDeletionKeys;
|
|
13
|
+
private readonly allKeys;
|
|
14
|
+
protected init(): void;
|
|
15
|
+
__onClearWebsiteData(): Promise<void>;
|
|
16
|
+
private handleStorageEvent;
|
|
17
|
+
getStorage: (persist: boolean) => Storage;
|
|
18
|
+
set(key: string, value: string | number | object, persist?: boolean): void;
|
|
19
|
+
delete(key: string, persist?: boolean): void;
|
|
20
|
+
clearCache(key: string): void;
|
|
21
|
+
get(key: string, fallbackValue?: ResolvableContent<GetType>, persist?: boolean): string | number | object | undefined;
|
|
22
|
+
query<T>(query: RegExp): T[];
|
|
23
|
+
deleteAll(query: RegExp): void;
|
|
24
|
+
private withstandDeletion;
|
|
25
|
+
private registerKey;
|
|
26
|
+
}
|
|
27
|
+
export declare const ModuleFE_LocalStorage: StorageModule_Class;
|
|
28
|
+
export declare class StorageKey<ValueType = string | number | object> {
|
|
29
|
+
readonly key: string;
|
|
30
|
+
private readonly persist;
|
|
31
|
+
private _onChange?;
|
|
32
|
+
constructor(key: string, persist?: boolean);
|
|
33
|
+
/**
|
|
34
|
+
* Will not delete this storage key if the delete operation is performed from __onClearWebsiteData
|
|
35
|
+
*/
|
|
36
|
+
withstandDeletion(): this;
|
|
37
|
+
get(): ValueType | undefined;
|
|
38
|
+
get(fallbackValue: ResolvableContent<ValueType>): ValueType;
|
|
39
|
+
patch(value: ValueType extends TS_Object ? Partial<ValueType> : ValueType): any;
|
|
40
|
+
set(value: ValueType): ValueType;
|
|
41
|
+
delete(): void;
|
|
42
|
+
clearCache(): void;
|
|
43
|
+
onChange(onChangeListener: (after?: ValueType, before?: ValueType) => Promise<void>): this;
|
|
44
|
+
getPersistence: () => boolean;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -0,0 +1,179 @@
|
|
|
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 27/07/2018.
|
|
23
|
+
*/
|
|
24
|
+
import { _keys, exists, merge, Module, resolveContent } from '@nu-art/ts-common';
|
|
25
|
+
import { ThunderDispatcher } from '../core/thunder-dispatcher.js';
|
|
26
|
+
export class StorageModule_Class extends Module {
|
|
27
|
+
cache = {};
|
|
28
|
+
withstandDeletionKeys = [];
|
|
29
|
+
allKeys = {};
|
|
30
|
+
init() {
|
|
31
|
+
window.addEventListener('storage', this.handleStorageEvent);
|
|
32
|
+
}
|
|
33
|
+
async __onClearWebsiteData() {
|
|
34
|
+
const items = this.withstandDeletionKeys.map(key => key.get());
|
|
35
|
+
localStorage.clear();
|
|
36
|
+
sessionStorage.clear();
|
|
37
|
+
_keys(this.cache).forEach(key => delete this.cache[key]);
|
|
38
|
+
this.withstandDeletionKeys.forEach((key, index) => {
|
|
39
|
+
if (items[index])
|
|
40
|
+
key.set(items[index]);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
handleStorageEvent = async (e) => {
|
|
44
|
+
const key = e.key;
|
|
45
|
+
if (!key)
|
|
46
|
+
return this.logVerbose('storage event without any key');
|
|
47
|
+
const storageKey = this.allKeys[key];
|
|
48
|
+
if (!storageKey)
|
|
49
|
+
return this.logVerbose(`no StorageKey for '${key}'`);
|
|
50
|
+
this.logDebug(`Storage key '${key}' was updated`, e.oldValue, e.newValue);
|
|
51
|
+
try {
|
|
52
|
+
// @ts-ignore
|
|
53
|
+
await storageKey._onChange?.();
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
this.logError(`Error while handling change event for storage key: ${storageKey.key}`);
|
|
57
|
+
this.logError(e);
|
|
58
|
+
throw e;
|
|
59
|
+
}
|
|
60
|
+
const dispatcher = new ThunderDispatcher('__onStorageKeyEvent');
|
|
61
|
+
await dispatcher.dispatchModuleAsync(e);
|
|
62
|
+
await dispatcher.dispatchUIAsync(e);
|
|
63
|
+
};
|
|
64
|
+
getStorage = (persist) => persist ? localStorage : sessionStorage;
|
|
65
|
+
set(key, value, persist = true) {
|
|
66
|
+
if (value === undefined)
|
|
67
|
+
return this.delete(key);
|
|
68
|
+
this.cache[key] = value;
|
|
69
|
+
this.getStorage(persist).setItem(key, JSON.stringify(value));
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
this.allKeys[key]._onChange?.();
|
|
72
|
+
}
|
|
73
|
+
delete(key, persist = true) {
|
|
74
|
+
this.clearCache(key);
|
|
75
|
+
this.getStorage(persist).removeItem(key);
|
|
76
|
+
// @ts-ignore
|
|
77
|
+
this.allKeys[key]._onChange?.();
|
|
78
|
+
}
|
|
79
|
+
clearCache(key) {
|
|
80
|
+
delete this.cache[key];
|
|
81
|
+
}
|
|
82
|
+
get(key, fallbackValue, persist = true) {
|
|
83
|
+
let value = this.cache[key];
|
|
84
|
+
if (value)
|
|
85
|
+
return value;
|
|
86
|
+
value = this.getStorage(persist).getItem(key);
|
|
87
|
+
// this.logDebug(`get: ${key} = ${value}`)
|
|
88
|
+
if (!exists(value) || value === 'null' || value === 'undefined')
|
|
89
|
+
return resolveContent(fallbackValue);
|
|
90
|
+
// if (!this.isIncognito)
|
|
91
|
+
return this.cache[key] = JSON.parse(value);
|
|
92
|
+
}
|
|
93
|
+
query(query) {
|
|
94
|
+
const toRet = [];
|
|
95
|
+
for (let i = 0; i < localStorage.length; i++) {
|
|
96
|
+
const key = localStorage.key(i);
|
|
97
|
+
if (key?.match(query)) {
|
|
98
|
+
const item = localStorage.getItem(key);
|
|
99
|
+
if (item) {
|
|
100
|
+
try {
|
|
101
|
+
const exp = JSON.parse(item);
|
|
102
|
+
toRet.push(exp);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
this.logError(e);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return toRet;
|
|
111
|
+
}
|
|
112
|
+
deleteAll(query) {
|
|
113
|
+
for (let i = 0; i < localStorage.length; i++) {
|
|
114
|
+
const key = localStorage.key(i);
|
|
115
|
+
if (key?.match(query)) {
|
|
116
|
+
localStorage.removeItem(key);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
withstandDeletion(storageKey) {
|
|
121
|
+
this.withstandDeletionKeys.push(storageKey);
|
|
122
|
+
}
|
|
123
|
+
registerKey(storageKey) {
|
|
124
|
+
this.allKeys[storageKey.key] = storageKey;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
export const ModuleFE_LocalStorage = new StorageModule_Class();
|
|
128
|
+
//TODO Generic Keys like in the tests contexts
|
|
129
|
+
export class StorageKey {
|
|
130
|
+
key;
|
|
131
|
+
persist;
|
|
132
|
+
_onChange;
|
|
133
|
+
constructor(key, persist = true) {
|
|
134
|
+
this.key = key;
|
|
135
|
+
this.persist = persist;
|
|
136
|
+
// @ts-ignore
|
|
137
|
+
ModuleFE_LocalStorage.registerKey(this);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Will not delete this storage key if the delete operation is performed from __onClearWebsiteData
|
|
141
|
+
*/
|
|
142
|
+
withstandDeletion() {
|
|
143
|
+
// @ts-ignore
|
|
144
|
+
ModuleFE_LocalStorage.withstandDeletion(this);
|
|
145
|
+
return this;
|
|
146
|
+
}
|
|
147
|
+
get(fallbackValue) {
|
|
148
|
+
// @ts-ignore
|
|
149
|
+
return ModuleFE_LocalStorage.get(this.key, fallbackValue, this.persist);
|
|
150
|
+
}
|
|
151
|
+
patch(value) {
|
|
152
|
+
const previousValue = this.get();
|
|
153
|
+
const mergedValue = merge(previousValue, value);
|
|
154
|
+
this.set(mergedValue);
|
|
155
|
+
return mergedValue;
|
|
156
|
+
}
|
|
157
|
+
set(value) {
|
|
158
|
+
// @ts-ignore
|
|
159
|
+
ModuleFE_LocalStorage.set(this.key, value, this.persist);
|
|
160
|
+
// console.log('StorageKey', this.key);
|
|
161
|
+
return value;
|
|
162
|
+
}
|
|
163
|
+
delete() {
|
|
164
|
+
ModuleFE_LocalStorage.delete(this.key, this.persist);
|
|
165
|
+
}
|
|
166
|
+
clearCache() {
|
|
167
|
+
ModuleFE_LocalStorage.clearCache(this.key);
|
|
168
|
+
}
|
|
169
|
+
onChange(onChangeListener) {
|
|
170
|
+
this._onChange = () => {
|
|
171
|
+
const before = this.get();
|
|
172
|
+
this.clearCache();
|
|
173
|
+
const after = this.get();
|
|
174
|
+
return onChangeListener(after, before);
|
|
175
|
+
};
|
|
176
|
+
return this;
|
|
177
|
+
}
|
|
178
|
+
getPersistence = () => this.persist;
|
|
179
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Module, TypedMap } from '@nu-art/ts-common';
|
|
2
|
+
export type Language = {
|
|
3
|
+
longName?: string;
|
|
4
|
+
shortName: string;
|
|
5
|
+
shortLocale: string;
|
|
6
|
+
longLocale?: string;
|
|
7
|
+
rtl?: boolean;
|
|
8
|
+
};
|
|
9
|
+
type Config<O extends TypedMap<string | undefined> = TypedMap<string | undefined>, T extends {
|
|
10
|
+
[K in keyof O]-?: O[K];
|
|
11
|
+
} = {
|
|
12
|
+
[K in keyof O]-?: O[K];
|
|
13
|
+
}> = {
|
|
14
|
+
languages: {
|
|
15
|
+
[k: string]: {
|
|
16
|
+
language: Language;
|
|
17
|
+
texts: T;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
defaultLocal: string;
|
|
21
|
+
};
|
|
22
|
+
export declare class ModuleFE_Locale_Class<O extends TypedMap<string | undefined> = TypedMap<string | undefined>, T extends {
|
|
23
|
+
[K in keyof O]-?: O[K];
|
|
24
|
+
} = {
|
|
25
|
+
[K in keyof O]-?: O[K];
|
|
26
|
+
}> extends Module<Config<O, T>> {
|
|
27
|
+
private defaultLocale;
|
|
28
|
+
private activeLocaleTexts;
|
|
29
|
+
private activeLocale;
|
|
30
|
+
constructor();
|
|
31
|
+
protected init(): void;
|
|
32
|
+
setActiveLocale(locale: string): void;
|
|
33
|
+
getActiveLocale(): string;
|
|
34
|
+
private setActiveLocaleImpl;
|
|
35
|
+
stringify(key: keyof T, previousKeys?: (keyof T)[]): (...params: (string | number)[]) => string | keyof T;
|
|
36
|
+
getLanguage(locale: string): (Language | undefined);
|
|
37
|
+
getActiveLanguage(): Language;
|
|
38
|
+
getAllLanguages(): Language[];
|
|
39
|
+
convertNumber(param: any, locale: string): undefined;
|
|
40
|
+
}
|
|
41
|
+
export declare const ModuleFE_Locale: ModuleFE_Locale_Class<TypedMap<string | undefined>, {
|
|
42
|
+
[x: string]: string | undefined;
|
|
43
|
+
}>;
|
|
44
|
+
export {};
|
|
@@ -0,0 +1,83 @@
|
|
|
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 { _keys, Module } from '@nu-art/ts-common';
|
|
22
|
+
export class ModuleFE_Locale_Class extends Module {
|
|
23
|
+
defaultLocale;
|
|
24
|
+
activeLocaleTexts;
|
|
25
|
+
activeLocale;
|
|
26
|
+
constructor() {
|
|
27
|
+
super();
|
|
28
|
+
}
|
|
29
|
+
init() {
|
|
30
|
+
this.defaultLocale = this.config.languages[this.config.defaultLocal].texts;
|
|
31
|
+
this.activeLocaleTexts = this.defaultLocale;
|
|
32
|
+
this.setActiveLocale(this.config.defaultLocal);
|
|
33
|
+
}
|
|
34
|
+
setActiveLocale(locale) {
|
|
35
|
+
const localeTexts = this.config.languages[locale].texts;
|
|
36
|
+
if (!localeTexts)
|
|
37
|
+
return;
|
|
38
|
+
this.activeLocale = locale;
|
|
39
|
+
this.setActiveLocaleImpl(localeTexts);
|
|
40
|
+
}
|
|
41
|
+
getActiveLocale() {
|
|
42
|
+
return this.activeLocale;
|
|
43
|
+
}
|
|
44
|
+
setActiveLocaleImpl(localeStrings) {
|
|
45
|
+
this.activeLocaleTexts = localeStrings;
|
|
46
|
+
}
|
|
47
|
+
stringify(key, previousKeys = []) {
|
|
48
|
+
return (...params) => {
|
|
49
|
+
let text = this.activeLocaleTexts[key];
|
|
50
|
+
if (!text)
|
|
51
|
+
text = this.defaultLocale[key];
|
|
52
|
+
if (!text)
|
|
53
|
+
return key;
|
|
54
|
+
return params.reduce((_toRet, param, index) => {
|
|
55
|
+
let toRet = _toRet;
|
|
56
|
+
const refs = toRet.match(/@\{(.*?)\}/g);
|
|
57
|
+
if (refs) {
|
|
58
|
+
toRet = refs.reduce((previousValue, stringKeyRef) => {
|
|
59
|
+
const stringKey = stringKeyRef.match(/@\{(.*?)\}/)?.[1];
|
|
60
|
+
const nested = this.stringify(stringKey, [...previousKeys, key])();
|
|
61
|
+
return previousValue.replace(stringKeyRef, nested);
|
|
62
|
+
}, _toRet);
|
|
63
|
+
}
|
|
64
|
+
return toRet.replace(`\${${index}}`, `${param}`);
|
|
65
|
+
}, text);
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
getLanguage(locale) {
|
|
69
|
+
return this.config.languages[locale]?.language;
|
|
70
|
+
}
|
|
71
|
+
getActiveLanguage() {
|
|
72
|
+
return this.config.languages[this.activeLocale]?.language;
|
|
73
|
+
}
|
|
74
|
+
getAllLanguages() {
|
|
75
|
+
return _keys(this.config.languages)
|
|
76
|
+
.filter(key => Object.keys(this.config.languages[key].texts).length > 0)
|
|
77
|
+
.map(key => this.config.languages[key].language);
|
|
78
|
+
}
|
|
79
|
+
convertNumber(param, locale) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export const ModuleFE_Locale = new ModuleFE_Locale_Class();
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Module, TypedKeyValue } from '@nu-art/ts-common';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare class ModuleFE_Print_Class extends Module {
|
|
4
|
+
printNode(node: React.ReactNode, bodyAttributes?: TypedKeyValue<string, string>[]): Promise<void>;
|
|
5
|
+
printElement(div: HTMLElement, bodyAttributes?: TypedKeyValue<string, string>[]): Promise<void>;
|
|
6
|
+
private generatePrintFrame;
|
|
7
|
+
private insertElement;
|
|
8
|
+
private insertNode;
|
|
9
|
+
private openPrint;
|
|
10
|
+
private defaultBodyAttributes;
|
|
11
|
+
private frameGeneration_GetFrame;
|
|
12
|
+
private frameGeneration_CloneHead;
|
|
13
|
+
private frameGeneration_SetBodyAttributes;
|
|
14
|
+
}
|
|
15
|
+
export declare const ModuleFE_Print: ModuleFE_Print_Class;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { Module, Second, ThisShouldNotHappenException } from '@nu-art/ts-common';
|
|
2
|
+
import ReactDOMServer from 'react-dom/server';
|
|
3
|
+
class ModuleFE_Print_Class extends Module {
|
|
4
|
+
//######################### Public #########################
|
|
5
|
+
async printNode(node, bodyAttributes = this.defaultBodyAttributes()) {
|
|
6
|
+
return new Promise((resolve, reject) => {
|
|
7
|
+
try {
|
|
8
|
+
const printFrame = this.generatePrintFrame(resolve, bodyAttributes);
|
|
9
|
+
this.insertNode(printFrame, node);
|
|
10
|
+
this.openPrint(printFrame);
|
|
11
|
+
}
|
|
12
|
+
catch (err) {
|
|
13
|
+
this.logError('Failed printing node', err);
|
|
14
|
+
reject();
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async printElement(div, bodyAttributes = this.defaultBodyAttributes()) {
|
|
19
|
+
return new Promise((resolve, reject) => {
|
|
20
|
+
const themeValue = document.body.getAttribute('theme');
|
|
21
|
+
if (themeValue)
|
|
22
|
+
(bodyAttributes || (bodyAttributes = [])).push({ key: 'theme', value: themeValue });
|
|
23
|
+
try {
|
|
24
|
+
const printFrame = this.generatePrintFrame(resolve, bodyAttributes);
|
|
25
|
+
this.insertElement(printFrame, div);
|
|
26
|
+
this.openPrint(printFrame);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
this.logError('Failed printing element', err);
|
|
30
|
+
reject();
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
//######################### Internal Logic #########################
|
|
35
|
+
generatePrintFrame = (resolve, bodyAttributes) => {
|
|
36
|
+
const body = document.getElementsByTagName('body')[0];
|
|
37
|
+
const printFrame = this.frameGeneration_GetFrame(body);
|
|
38
|
+
const printWindow = printFrame.contentWindow;
|
|
39
|
+
if (!printWindow)
|
|
40
|
+
throw new ThisShouldNotHappenException('Printing frame has no content window');
|
|
41
|
+
//clone frame head
|
|
42
|
+
this.frameGeneration_CloneHead(printWindow);
|
|
43
|
+
//Set body attributes
|
|
44
|
+
this.frameGeneration_SetBodyAttributes(printWindow, bodyAttributes);
|
|
45
|
+
//Set listener for print frame to resolve the promise after closing
|
|
46
|
+
printWindow.addEventListener('afterprint', () => {
|
|
47
|
+
body.removeChild(printFrame);
|
|
48
|
+
resolve();
|
|
49
|
+
}, { once: true });
|
|
50
|
+
return printFrame;
|
|
51
|
+
};
|
|
52
|
+
insertElement = (printFrame, element) => {
|
|
53
|
+
const printWindow = printFrame.contentWindow;
|
|
54
|
+
if (!printWindow)
|
|
55
|
+
throw new ThisShouldNotHappenException('Printing frame has no content window');
|
|
56
|
+
//Insert cloned element in body
|
|
57
|
+
const toAppend = element.cloneNode(true);
|
|
58
|
+
const body = printWindow.document.body;
|
|
59
|
+
body.appendChild(toAppend);
|
|
60
|
+
//Close document to editing
|
|
61
|
+
printWindow.document.close();
|
|
62
|
+
};
|
|
63
|
+
insertNode = (printFrame, node) => {
|
|
64
|
+
const printWindow = printFrame.contentWindow;
|
|
65
|
+
if (!printWindow)
|
|
66
|
+
throw new ThisShouldNotHappenException('Printing frame has no content window');
|
|
67
|
+
const markup = ReactDOMServer.renderToStaticMarkup(node);
|
|
68
|
+
const body = printWindow.document.body;
|
|
69
|
+
body.innerHTML = markup;
|
|
70
|
+
//Close document to editing
|
|
71
|
+
printWindow.document.close();
|
|
72
|
+
};
|
|
73
|
+
openPrint = (printFrame) => {
|
|
74
|
+
const printWindow = printFrame.contentWindow;
|
|
75
|
+
if (!printWindow)
|
|
76
|
+
throw new ThisShouldNotHappenException('Printing frame has no content window');
|
|
77
|
+
printWindow.focus();
|
|
78
|
+
setTimeout(async () => printWindow.print(), 1.5 * Second);
|
|
79
|
+
};
|
|
80
|
+
defaultBodyAttributes = () => {
|
|
81
|
+
const _attributes = document.body.attributes;
|
|
82
|
+
const attributes = [];
|
|
83
|
+
for (let i = 0; i < _attributes.length; i++) {
|
|
84
|
+
const att = _attributes[i];
|
|
85
|
+
attributes.push({ key: att.name, value: att.value });
|
|
86
|
+
}
|
|
87
|
+
return attributes;
|
|
88
|
+
};
|
|
89
|
+
//######################### Frame Generation Logic #########################
|
|
90
|
+
frameGeneration_GetFrame = (body) => {
|
|
91
|
+
const printFrame = document.createElement('iframe');
|
|
92
|
+
//Set print frame dimensions
|
|
93
|
+
printFrame.style.width = '0';
|
|
94
|
+
printFrame.style.height = '0';
|
|
95
|
+
printFrame.style.position = 'absolute';
|
|
96
|
+
//Append print frame to the body
|
|
97
|
+
body.appendChild(printFrame);
|
|
98
|
+
return printFrame;
|
|
99
|
+
};
|
|
100
|
+
frameGeneration_CloneHead = (printWindow) => {
|
|
101
|
+
const newHead = window.document.head.cloneNode(true);
|
|
102
|
+
const currentHead = printWindow.document.head;
|
|
103
|
+
const printHtml = printWindow.document.getElementsByTagName('html')[0];
|
|
104
|
+
printHtml.replaceChild(newHead, currentHead);
|
|
105
|
+
};
|
|
106
|
+
frameGeneration_SetBodyAttributes = (printWindow, bodyAttributes) => {
|
|
107
|
+
if (!bodyAttributes?.length)
|
|
108
|
+
return;
|
|
109
|
+
const body = printWindow.document.body;
|
|
110
|
+
//Add body attributes
|
|
111
|
+
bodyAttributes.forEach(att => {
|
|
112
|
+
body.setAttribute(att.key, att.value);
|
|
113
|
+
});
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export const ModuleFE_Print = new ModuleFE_Print_Class();
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Module } from '@nu-art/ts-common';
|
|
2
|
+
import { StorageKey } from './ModuleFE_LocalStorage.js';
|
|
3
|
+
declare class ModuleFE_StorageCleaner_Class extends Module {
|
|
4
|
+
cleanLocalStorage: (storageKeys?: StorageKey[]) => void;
|
|
5
|
+
cleanSessionStorage: (storageKeys?: StorageKey[]) => void;
|
|
6
|
+
cleanIDBStorage: () => Promise<void>;
|
|
7
|
+
cleanCache: () => Promise<void>;
|
|
8
|
+
cleanCookies: () => void;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param callback - Any interaction with storage must be through this callback
|
|
12
|
+
*/
|
|
13
|
+
cleanAll: (callback?: VoidFunction) => Promise<void>;
|
|
14
|
+
private cleanIDBImpl;
|
|
15
|
+
}
|
|
16
|
+
export declare const ModuleFE_StorageCleaner: ModuleFE_StorageCleaner_Class;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Module } from '@nu-art/ts-common';
|
|
2
|
+
//@ts-ignore - set IDBAPI as indexedDB regardless of browser
|
|
3
|
+
const IDBAPI = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
|
|
4
|
+
class ModuleFE_StorageCleaner_Class extends Module {
|
|
5
|
+
// ######################## Public Functions ########################
|
|
6
|
+
cleanLocalStorage = (storageKeys) => {
|
|
7
|
+
if (!storageKeys?.length) {
|
|
8
|
+
this.logInfo('Clearing all local-storage');
|
|
9
|
+
return localStorage.clear();
|
|
10
|
+
}
|
|
11
|
+
storageKeys.forEach(storageKey => {
|
|
12
|
+
//Delete only local storage keys
|
|
13
|
+
if (!storageKey.getPersistence())
|
|
14
|
+
return;
|
|
15
|
+
localStorage.removeItem(storageKey.key);
|
|
16
|
+
this.logDebug(`Cleared local-storage for key ${storageKey.key}`);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
cleanSessionStorage = (storageKeys) => {
|
|
20
|
+
if (!storageKeys?.length) {
|
|
21
|
+
this.logInfo('Clearing all session-storage');
|
|
22
|
+
return sessionStorage.clear();
|
|
23
|
+
}
|
|
24
|
+
storageKeys.forEach(storageKey => {
|
|
25
|
+
//Delete only session storage keys
|
|
26
|
+
if (storageKey.getPersistence())
|
|
27
|
+
return;
|
|
28
|
+
sessionStorage.removeItem(storageKey.key);
|
|
29
|
+
this.logDebug(`Cleared session-storage for key ${storageKey.key}`);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
cleanIDBStorage = async () => {
|
|
33
|
+
this.logInfo('Clearing all IDBs');
|
|
34
|
+
const databases = await IDBAPI.databases();
|
|
35
|
+
await Promise.all(databases.map(this.cleanIDBImpl));
|
|
36
|
+
this.logInfo('Cleared all IDBs');
|
|
37
|
+
};
|
|
38
|
+
cleanCache = async () => {
|
|
39
|
+
const cacheNames = await caches.keys();
|
|
40
|
+
this.logInfo('Clearing cache');
|
|
41
|
+
await Promise.all(cacheNames.map(async (cacheName) => await caches.delete(cacheName)));
|
|
42
|
+
this.logInfo('Cleared cache');
|
|
43
|
+
};
|
|
44
|
+
cleanCookies = () => {
|
|
45
|
+
const cookies = document.cookie.split(';');
|
|
46
|
+
cookies.forEach(cookie => {
|
|
47
|
+
const name = cookie.split('=')[0];
|
|
48
|
+
//expires= tells the browser to expire the cookie and discard it.
|
|
49
|
+
//path=/ sets the cookie to expire across the domain, not a specific path.
|
|
50
|
+
document.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;
|
|
51
|
+
});
|
|
52
|
+
this.logInfo('Cleaned all cookies');
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @param callback - Any interaction with storage must be through this callback
|
|
57
|
+
*/
|
|
58
|
+
cleanAll = async (callback) => {
|
|
59
|
+
this.cleanLocalStorage();
|
|
60
|
+
this.cleanSessionStorage();
|
|
61
|
+
this.cleanCookies();
|
|
62
|
+
await this.cleanCache();
|
|
63
|
+
await this.cleanIDBStorage();
|
|
64
|
+
if (callback) {
|
|
65
|
+
await new Promise(resolve => {
|
|
66
|
+
setTimeout(() => {
|
|
67
|
+
callback();
|
|
68
|
+
resolve();
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
// ######################## Internal Logic ########################
|
|
74
|
+
cleanIDBImpl = async (info) => {
|
|
75
|
+
return new Promise((resolve, reject) => {
|
|
76
|
+
if (!info.name) {
|
|
77
|
+
return resolve();
|
|
78
|
+
}
|
|
79
|
+
const request = IDBAPI.deleteDatabase(info.name);
|
|
80
|
+
request.onerror = e => {
|
|
81
|
+
return reject(request.error);
|
|
82
|
+
};
|
|
83
|
+
request.onsuccess = e => {
|
|
84
|
+
this.logInfo(`IDB ${info.name} cleared`);
|
|
85
|
+
resolve();
|
|
86
|
+
};
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
export const ModuleFE_StorageCleaner = new ModuleFE_StorageCleaner_Class();
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Module, TypedMap } from '@nu-art/ts-common';
|
|
2
|
+
type Config = {
|
|
3
|
+
appName: string;
|
|
4
|
+
themeColor: string;
|
|
5
|
+
};
|
|
6
|
+
export type UrlTarget = '_blank' | '_self' | '_parent' | '_top' | string;
|
|
7
|
+
export type FileDownloadProps = {
|
|
8
|
+
url?: string;
|
|
9
|
+
content?: Blob | string;
|
|
10
|
+
fileName: string;
|
|
11
|
+
mimeType?: string;
|
|
12
|
+
charset?: string;
|
|
13
|
+
};
|
|
14
|
+
declare class ModuleFE_Thunderstorm_Class extends Module<Config> {
|
|
15
|
+
constructor();
|
|
16
|
+
init(): void;
|
|
17
|
+
setAppName(appName: string): void;
|
|
18
|
+
setChromeThemeColor(themeColor: string): void;
|
|
19
|
+
clearWebsiteData(): Promise<void[]>;
|
|
20
|
+
copyToClipboard(toCopy: string, customSuccessMessage?: string): Promise<void>;
|
|
21
|
+
readFileContent(file: File): Promise<string>;
|
|
22
|
+
writeToClipboard(imageAsBase64: string, contentType?: string): Promise<void>;
|
|
23
|
+
getAppName(): string;
|
|
24
|
+
openUrl(url: string | {
|
|
25
|
+
url: string;
|
|
26
|
+
params?: TypedMap<(() => string) | string | undefined>;
|
|
27
|
+
}, target?: UrlTarget): void;
|
|
28
|
+
downloadFile(props: FileDownloadProps): void;
|
|
29
|
+
}
|
|
30
|
+
export declare const ModuleFE_Thunderstorm: ModuleFE_Thunderstorm_Class;
|
|
31
|
+
export {};
|