@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,552 @@
|
|
|
1
|
+
import { _keys, compare, deepClone, deleteKeysObject, exists, generateHex, isErrorOfType, KeysOfDB_Object, Logger, mergeObject, MUSTNeverHappenException, queuedDebounce, removeFromArrayByIndex, removeItemFromArray, resolveContent, Second, ValidationException, WhoCallThisException } from '@nu-art/ts-common';
|
|
2
|
+
export const EditableItemStatus_Saving = 'saving';
|
|
3
|
+
export const EditableItemStatus_SavedWithErrors = 'saved-with-errors';
|
|
4
|
+
export const EditableItemStatus_FailedValidation = 'failed-validation';
|
|
5
|
+
export const EditableItemStatus_ErrorSaving = 'error-saving';
|
|
6
|
+
export const EditableItemStatus_UnsavedChanges = 'unsaved-changes';
|
|
7
|
+
export const EditableItemStatus_Creating = 'creating';
|
|
8
|
+
export const EditableItemStatus_Saved = 'saved';
|
|
9
|
+
export const EditableItemStatus_Unknown = 'unknown';
|
|
10
|
+
const EditableItemStatuses = [
|
|
11
|
+
EditableItemStatus_Saving,
|
|
12
|
+
EditableItemStatus_SavedWithErrors,
|
|
13
|
+
EditableItemStatus_FailedValidation,
|
|
14
|
+
EditableItemStatus_ErrorSaving,
|
|
15
|
+
EditableItemStatus_UnsavedChanges,
|
|
16
|
+
EditableItemStatus_Creating,
|
|
17
|
+
EditableItemStatus_Saved,
|
|
18
|
+
EditableItemStatus_Unknown,
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* A utility class for editing any item of type T.
|
|
22
|
+
* It encapsulates an item along with functions to save and delete the item.
|
|
23
|
+
* This class can be used with any type of item that can be modified, saved, and deleted.
|
|
24
|
+
*
|
|
25
|
+
* @template T The type of the item.
|
|
26
|
+
*/
|
|
27
|
+
export class EditableItem extends Logger {
|
|
28
|
+
static AUTO_SAVE = false;
|
|
29
|
+
internalSaveAction;
|
|
30
|
+
status = EditableItemStatus_Unknown;
|
|
31
|
+
statusListener = [];
|
|
32
|
+
item;
|
|
33
|
+
originalItem;
|
|
34
|
+
validationResults;
|
|
35
|
+
conflictingItem;
|
|
36
|
+
_autoSave = EditableItem.AUTO_SAVE;
|
|
37
|
+
_isSaving = false;
|
|
38
|
+
saveError;
|
|
39
|
+
onSaveCompleted;
|
|
40
|
+
onChanged;
|
|
41
|
+
preSaveAction;
|
|
42
|
+
deleteAction;
|
|
43
|
+
saveAction;
|
|
44
|
+
onError;
|
|
45
|
+
/**
|
|
46
|
+
* Constructs an EditableItem instance.
|
|
47
|
+
*
|
|
48
|
+
* @param item The item to be edited.
|
|
49
|
+
* @param saveAction The function to be called when saving the item.
|
|
50
|
+
* @param deleteAction The function to be called when deleting the item.
|
|
51
|
+
*/
|
|
52
|
+
constructor(item) {
|
|
53
|
+
super();
|
|
54
|
+
this.setTag(`${this.constructor['name']}-${generateHex(4)}`);
|
|
55
|
+
// this.setMinLevel(LogLevel.Verbose);
|
|
56
|
+
// @ts-ignore
|
|
57
|
+
if (!!item.__updated) {
|
|
58
|
+
// @ts-ignore
|
|
59
|
+
this.logVerbose(`constructor - ${item.__updated}`, new WhoCallThisException());
|
|
60
|
+
}
|
|
61
|
+
this.internalSaveAction = async (item) => {
|
|
62
|
+
// update ui and make sure it called the on change
|
|
63
|
+
this._isSaving = true;
|
|
64
|
+
this.calculateState();
|
|
65
|
+
this.preSaveAction?.(item);
|
|
66
|
+
this.callOnChange();
|
|
67
|
+
try {
|
|
68
|
+
let response = await this.saveAction(item);
|
|
69
|
+
response = this.processResponse(response);
|
|
70
|
+
this.updateItemImpl(response);
|
|
71
|
+
this.callOnChange();
|
|
72
|
+
this.onSaveCompleted?.(response);
|
|
73
|
+
delete this.saveError;
|
|
74
|
+
return response;
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
this.saveError = err;
|
|
78
|
+
// is this really needed?? from quai fork
|
|
79
|
+
// this.handleValidationError(err as Error);
|
|
80
|
+
if (!this.onError)
|
|
81
|
+
throw err;
|
|
82
|
+
await this.onError(item, err);
|
|
83
|
+
return item;
|
|
84
|
+
}
|
|
85
|
+
finally {
|
|
86
|
+
this._isSaving = false;
|
|
87
|
+
this.calculateState(); // <== this results in has changes
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
this.autoSaveImpl.bind(this);
|
|
91
|
+
this.hasConflicts.bind(this);
|
|
92
|
+
this.processResponse.bind(this);
|
|
93
|
+
this.updateItemImpl(item);
|
|
94
|
+
this.calculateState();
|
|
95
|
+
}
|
|
96
|
+
updateItemImpl(newItem) {
|
|
97
|
+
// @ts-ignore
|
|
98
|
+
this['item'] = deepClone(newItem);
|
|
99
|
+
this.originalItem = newItem;
|
|
100
|
+
}
|
|
101
|
+
setOnError(onError) {
|
|
102
|
+
this.onError = onError;
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
setOnChanged(onChanged) {
|
|
106
|
+
this.onChanged = onChanged;
|
|
107
|
+
return this;
|
|
108
|
+
}
|
|
109
|
+
handleValidationError(err) {
|
|
110
|
+
throw err;
|
|
111
|
+
}
|
|
112
|
+
setSaveAction(saveAction) {
|
|
113
|
+
this.saveAction = saveAction;
|
|
114
|
+
return this;
|
|
115
|
+
}
|
|
116
|
+
setDeleteAction(deleteAction) {
|
|
117
|
+
this.deleteAction = deleteAction;
|
|
118
|
+
return this;
|
|
119
|
+
}
|
|
120
|
+
setPreSaveAction(preSaveAction) {
|
|
121
|
+
this.preSaveAction = preSaveAction;
|
|
122
|
+
return this;
|
|
123
|
+
}
|
|
124
|
+
setOnDelete(onDelete) {
|
|
125
|
+
this.deleteAction = onDelete;
|
|
126
|
+
return this;
|
|
127
|
+
}
|
|
128
|
+
setOnSaveCompleted(onSaved) {
|
|
129
|
+
this.onSaveCompleted = onSaved;
|
|
130
|
+
return this;
|
|
131
|
+
}
|
|
132
|
+
setConflictingItem(conflictingItem) {
|
|
133
|
+
if (exists(conflictingItem) && this.hasConflicts(conflictingItem)) {
|
|
134
|
+
this.conflictingItem = conflictingItem;
|
|
135
|
+
this.callOnChange();
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
delete this.conflictingItem;
|
|
139
|
+
if (exists(conflictingItem))
|
|
140
|
+
this.updateItem(conflictingItem);
|
|
141
|
+
}
|
|
142
|
+
hasConflicts(conflictingItem) {
|
|
143
|
+
return !compare(conflictingItem, this.item);
|
|
144
|
+
}
|
|
145
|
+
hasChanges() {
|
|
146
|
+
// console.group('compare', this.originalItem);
|
|
147
|
+
// console.log('item', this.item);
|
|
148
|
+
// console.log('originalItem', this.originalItem);
|
|
149
|
+
// console.groupEnd();
|
|
150
|
+
return !compare(this.item, this.originalItem);
|
|
151
|
+
}
|
|
152
|
+
addStatusListener(listener) {
|
|
153
|
+
this.statusListener.push(listener);
|
|
154
|
+
listener.onEditableItemStatusChanged(this.status, this.status, this);
|
|
155
|
+
}
|
|
156
|
+
removeStatusListener(listener) {
|
|
157
|
+
removeItemFromArray(this.statusListener, listener);
|
|
158
|
+
}
|
|
159
|
+
calculateState() {
|
|
160
|
+
if (this.isSaving())
|
|
161
|
+
return this.setStatus(EditableItemStatus_Saving);
|
|
162
|
+
if (this.hasValidationError())
|
|
163
|
+
return this.setStatus(EditableItemStatus_FailedValidation);
|
|
164
|
+
if (this.saveError)
|
|
165
|
+
return this.setStatus(EditableItemStatus_ErrorSaving);
|
|
166
|
+
if (this.hasChanges()) {
|
|
167
|
+
return this.setStatus(EditableItemStatus_UnsavedChanges);
|
|
168
|
+
}
|
|
169
|
+
return this.setStatus(EditableItemStatus_Unknown);
|
|
170
|
+
}
|
|
171
|
+
setStatus(newStatus) {
|
|
172
|
+
const prevStatus = this.status;
|
|
173
|
+
this.status = newStatus;
|
|
174
|
+
if (prevStatus === newStatus)
|
|
175
|
+
return;
|
|
176
|
+
this.logDebug(`Status changed: ${prevStatus} => ${newStatus}`);
|
|
177
|
+
this.statusListener.forEach(l => l.onEditableItemStatusChanged(newStatus, prevStatus, this));
|
|
178
|
+
}
|
|
179
|
+
getStatus() {
|
|
180
|
+
return this.status;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Set the auto-save mode.Page_ItemsEditor
|
|
184
|
+
*
|
|
185
|
+
* @param mode The auto-save mode.
|
|
186
|
+
* @returns The instance itself for method chaining.
|
|
187
|
+
*/
|
|
188
|
+
setAutoSave(mode) {
|
|
189
|
+
this._autoSave = mode;
|
|
190
|
+
return this;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Get the saving status of the current editable instance
|
|
194
|
+
* @returns The saving status as boolean
|
|
195
|
+
*/
|
|
196
|
+
isSaving() {
|
|
197
|
+
return this._isSaving;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Set the value of a specific property in the item.
|
|
201
|
+
*
|
|
202
|
+
* @template K The type of the key.
|
|
203
|
+
* @param key The key of the property.
|
|
204
|
+
* @param value The new value of the property.
|
|
205
|
+
* @returns A boolean indicating whether the value has been set.
|
|
206
|
+
*/
|
|
207
|
+
set(key, value) {
|
|
208
|
+
const finalValue = resolveContent(value);
|
|
209
|
+
this.logVerbose(`set: ${String(key)}:`, finalValue);
|
|
210
|
+
if (!exists(finalValue) && exists(this.item[key])) {
|
|
211
|
+
if (Array.isArray(this.item))
|
|
212
|
+
removeFromArrayByIndex(this.item, key);
|
|
213
|
+
else
|
|
214
|
+
delete this.item[key];
|
|
215
|
+
return true;
|
|
216
|
+
}
|
|
217
|
+
if (compare(finalValue, this.item[key]))
|
|
218
|
+
return false;
|
|
219
|
+
this.item[key] = finalValue;
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Updates the item with the given values and performs auto-save if enabled.
|
|
224
|
+
* This method allows partial updates, only the properties provided in the values object will be updated.
|
|
225
|
+
*
|
|
226
|
+
* @param values An object with partial properties of T.
|
|
227
|
+
* @returns A promise representing the auto-save operation if changes were made and auto-save is enabled.
|
|
228
|
+
*/
|
|
229
|
+
async updateObj(values) {
|
|
230
|
+
this.logVerbose(`updateObj:`, values);
|
|
231
|
+
const hasChanges = _keys(values).reduce((hasChanges, prop) => {
|
|
232
|
+
return this.set(prop, values[prop]) || hasChanges;
|
|
233
|
+
}, false);
|
|
234
|
+
this.autoSave(hasChanges);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Equivalent to array.push
|
|
238
|
+
* @param value
|
|
239
|
+
* @param index
|
|
240
|
+
*/
|
|
241
|
+
updateArrayAt(value, index = this.item.length) {
|
|
242
|
+
this.logVerbose(`updateArrayAt(${index}):`, value);
|
|
243
|
+
return this.updateObj({ [index]: value });
|
|
244
|
+
}
|
|
245
|
+
removeArrayItem(index) {
|
|
246
|
+
this.logVerbose(`removeArrayItem(${index}):`);
|
|
247
|
+
return this.updateObj({ [index]: undefined });
|
|
248
|
+
}
|
|
249
|
+
// async updateArr<P extends Created<T>>(values: Partial<{ [K in keyof P]: ResolvableContent<T[K] | undefined> }>) {
|
|
250
|
+
// const hasChanges = _keys(values).reduce((hasChanges, prop) => {
|
|
251
|
+
// return this.set(prop, values[prop]) || hasChanges;
|
|
252
|
+
// }, false);
|
|
253
|
+
//
|
|
254
|
+
// return this.autoSave(hasChanges);
|
|
255
|
+
// }
|
|
256
|
+
/**
|
|
257
|
+
* Update the value of a specific property in the item and perform auto-save if enabled.
|
|
258
|
+
*
|
|
259
|
+
* @template K The type of the key.
|
|
260
|
+
* @param key The key of the property.
|
|
261
|
+
* @param value The new value of the property.
|
|
262
|
+
* @returns A promise representing the auto-save operation if enabled, undefined otherwise.
|
|
263
|
+
*/
|
|
264
|
+
async update(key, value) {
|
|
265
|
+
this.logVerbose(`updating ${String(key)}`);
|
|
266
|
+
this.autoSave(this.set(key, value));
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Get a value of a specific property
|
|
270
|
+
*
|
|
271
|
+
* @template K The type of the key.
|
|
272
|
+
* @param key The key of the property.
|
|
273
|
+
* @param fallbackValue
|
|
274
|
+
* @returns Readonly type of the value in T[K].
|
|
275
|
+
*/
|
|
276
|
+
// @ts-ignore
|
|
277
|
+
get(key, fallbackValue) {
|
|
278
|
+
return (this.item[key] ?? (this.item[key] = fallbackValue));
|
|
279
|
+
}
|
|
280
|
+
hasError(key) {
|
|
281
|
+
const validationResults = this.validationResults;
|
|
282
|
+
const error = key ? validationResults?.results?.[key] : validationResults?.results;
|
|
283
|
+
if (!error)
|
|
284
|
+
return;
|
|
285
|
+
if (validationResults?.editing)
|
|
286
|
+
return error;
|
|
287
|
+
}
|
|
288
|
+
hasErrors = () => !!this.validationResults;
|
|
289
|
+
hasValidationError = () => !!this.validationResults;
|
|
290
|
+
setValidationResults(ValidationResults) {
|
|
291
|
+
this.validationResults = ValidationResults;
|
|
292
|
+
return this;
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* If auto save in the editable item is true, preform the save action
|
|
296
|
+
* Can be overridden in deriving classes
|
|
297
|
+
* @protected
|
|
298
|
+
*/
|
|
299
|
+
async autoSaveImpl() {
|
|
300
|
+
this.logDebug(`performing autosave`);
|
|
301
|
+
// Return item cloned to make sure it's not frozen
|
|
302
|
+
await this.internalSaveAction(this.item);
|
|
303
|
+
}
|
|
304
|
+
processResponse(dbItem) {
|
|
305
|
+
return deepClone(dbItem);
|
|
306
|
+
}
|
|
307
|
+
autoSave(hasChanges = true) {
|
|
308
|
+
if (!hasChanges)
|
|
309
|
+
return this.logVerbose(`will not perform autosave.. no changes`);
|
|
310
|
+
if (this._autoSave)
|
|
311
|
+
try {
|
|
312
|
+
this.autoSaveImpl();
|
|
313
|
+
}
|
|
314
|
+
catch (err) {
|
|
315
|
+
this.logError(`Error while autosave:`, err);
|
|
316
|
+
}
|
|
317
|
+
if (this.validationResults)
|
|
318
|
+
this.validate();
|
|
319
|
+
this.setTag(`${this.constructor['name']}-${generateHex(4)}`);
|
|
320
|
+
this.logVerbose(`calling onChange - autoSave`);
|
|
321
|
+
return this.onChanged?.(this);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Save the item by calling the saveAction function.
|
|
325
|
+
*
|
|
326
|
+
* @returns The promise returned by the saveAction function.
|
|
327
|
+
*/
|
|
328
|
+
async save(consumeError = true) {
|
|
329
|
+
this.logInfo(`Saving`);
|
|
330
|
+
// Save the current item
|
|
331
|
+
return this.internalSaveAction(this.item);
|
|
332
|
+
}
|
|
333
|
+
/**
|
|
334
|
+
* Delete the item by calling the deleteAction function.
|
|
335
|
+
*
|
|
336
|
+
* @template K The type of the key.
|
|
337
|
+
* @returns A promise representing the delete operation.
|
|
338
|
+
*/
|
|
339
|
+
async delete() {
|
|
340
|
+
return this.deleteAction(this.item);
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Return a new EditableItem that represents a property of the current item.
|
|
344
|
+
*
|
|
345
|
+
* @template K The type of the key.
|
|
346
|
+
* @param key The key of the property.
|
|
347
|
+
* @param defaultValue The default value of the property.
|
|
348
|
+
* @returns The new EditableItem.
|
|
349
|
+
*/
|
|
350
|
+
editProp(key, defaultValue) {
|
|
351
|
+
let itemToEdit = this.item[key] || (this.item[key] = resolveContent(defaultValue));
|
|
352
|
+
if (Array.isArray(itemToEdit) || typeof itemToEdit === 'object')
|
|
353
|
+
itemToEdit = deepClone(itemToEdit);
|
|
354
|
+
let validationResults;
|
|
355
|
+
const result = this.validationResults?.results?.[key];
|
|
356
|
+
if (this.validationResults && exists(result)) {
|
|
357
|
+
validationResults = {
|
|
358
|
+
autoSave: this.validationResults.autoSave,
|
|
359
|
+
editing: this.validationResults.editing,
|
|
360
|
+
results: result // checked if exists in the above condition
|
|
361
|
+
};
|
|
362
|
+
}
|
|
363
|
+
const editableProp = new EditableItem(itemToEdit)
|
|
364
|
+
.setSaveAction(async (value) => {
|
|
365
|
+
this.set(key, value);
|
|
366
|
+
await this.autoSave();
|
|
367
|
+
return value;
|
|
368
|
+
})
|
|
369
|
+
.setDeleteAction(() => this.delete())
|
|
370
|
+
.setValidationResults(validationResults)
|
|
371
|
+
.setAutoSave(true);
|
|
372
|
+
if (exists(this.conflictingItem))
|
|
373
|
+
editableProp.setConflictingItem(this.conflictingItem?.[key]);
|
|
374
|
+
this.logVerbose(`editing prop => ${editableProp.tag} - ${String(key)}`);
|
|
375
|
+
return editableProp;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Return a new EditableItem for the DB Entity described by the reference id associated with the provided key and module.
|
|
379
|
+
*
|
|
380
|
+
* @template K The type of the key.
|
|
381
|
+
* @param key The key of the reference id.
|
|
382
|
+
* @param module The module associated with the reference id.
|
|
383
|
+
* @param initialValue An initial value to use in case there is no reference id.
|
|
384
|
+
*
|
|
385
|
+
* @returns The new EditableItem.
|
|
386
|
+
*/
|
|
387
|
+
editRefV3(key, module, initialValue) {
|
|
388
|
+
const itemId = this.item[key];
|
|
389
|
+
let editingItem;
|
|
390
|
+
if (!exists(itemId))
|
|
391
|
+
editingItem = initialValue;
|
|
392
|
+
else {
|
|
393
|
+
editingItem = module.cache.unique(itemId);
|
|
394
|
+
if (!exists(editingItem))
|
|
395
|
+
throw new MUSTNeverHappenException(`Could not find db item for id: ${itemId} in collection: ${module.dbDef.dbKey}`);
|
|
396
|
+
}
|
|
397
|
+
return new EditableDBItemV3(editingItem, module);
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Implement in children! validate the item using custom logic
|
|
401
|
+
* @protected
|
|
402
|
+
*/
|
|
403
|
+
validate() {
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Trigger on change with all necessary actions for the editable instance
|
|
408
|
+
* @protected
|
|
409
|
+
*/
|
|
410
|
+
callOnChange() {
|
|
411
|
+
// Make sure UI re-renders
|
|
412
|
+
this.setTag(`${this.constructor['name']}-${generateHex(4)}`);
|
|
413
|
+
this.onChanged?.(this);
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* handle item update from a different source out of the editable item
|
|
417
|
+
* @param newItem The item passed to the instance from the third party
|
|
418
|
+
*/
|
|
419
|
+
updateItem(newItem) {
|
|
420
|
+
// Update item if needed
|
|
421
|
+
this.updateItemImpl(newItem);
|
|
422
|
+
this.callOnChange();
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* A utility class for editing any item of type T that can be stored in a database.
|
|
427
|
+
* This class extends EditableItem and adds functionality related to database operations.
|
|
428
|
+
*
|
|
429
|
+
* @template T The type of the item that extends DB_Object.
|
|
430
|
+
* @template Ks The keys of the T type. Default is '_id'.
|
|
431
|
+
*/
|
|
432
|
+
export class EditableDBItemV3 extends EditableItem {
|
|
433
|
+
module;
|
|
434
|
+
// @ts-ignore
|
|
435
|
+
debounceInstance;
|
|
436
|
+
debounceTimeout = 2 * Second;
|
|
437
|
+
/**
|
|
438
|
+
* Constructs an EditableDBItemV3 instance.
|
|
439
|
+
*
|
|
440
|
+
* @param item The item to be edited.
|
|
441
|
+
* @param module The module for database operations.
|
|
442
|
+
* @param onCompleted The function to be called when the operation is completed.
|
|
443
|
+
* @param debounceInstance Debounce instance from previous editable item
|
|
444
|
+
*/
|
|
445
|
+
constructor(item, module, debounceInstance) {
|
|
446
|
+
super(item);
|
|
447
|
+
this.setSaveAction(async (_item) => await module.v1.upsert(_item).executeSync());
|
|
448
|
+
this.setDeleteAction(async (_item) => await module.v1.delete(_item).executeSync());
|
|
449
|
+
this.module = module;
|
|
450
|
+
//binds
|
|
451
|
+
this.save.bind(this);
|
|
452
|
+
this.autoSaveImpl.bind(this);
|
|
453
|
+
this.processResponse.bind(this);
|
|
454
|
+
this.debounceInstance = queuedDebounce(async () => {
|
|
455
|
+
this.logDebug('Debounce triggered');
|
|
456
|
+
await this.internalSaveAction(this.item);
|
|
457
|
+
}, this.debounceTimeout, 5 * Second);
|
|
458
|
+
}
|
|
459
|
+
async save(consumeError = true) {
|
|
460
|
+
try {
|
|
461
|
+
return await super.save(consumeError);
|
|
462
|
+
}
|
|
463
|
+
catch (e) {
|
|
464
|
+
this.handleValidationError(e);
|
|
465
|
+
if (!consumeError)
|
|
466
|
+
throw e;
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
processResponse(dbItem) {
|
|
470
|
+
// Changing the saving flag back to false and call onChange
|
|
471
|
+
const currentUIItem = deleteKeysObject({ ...this.item }, [...KeysOfDB_Object,
|
|
472
|
+
...(this.module.dbDef.generatedProps ?? _keys(this.module.dbDef.generatedPropsValidator))]);
|
|
473
|
+
return mergeObject(dbItem, currentUIItem);
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Preform auto save in editable db item will be in debounce
|
|
477
|
+
* @protected
|
|
478
|
+
*/
|
|
479
|
+
async autoSaveImpl() {
|
|
480
|
+
if (this.validate())
|
|
481
|
+
this.debounceInstance();
|
|
482
|
+
this.calculateState();
|
|
483
|
+
this.callOnChange();
|
|
484
|
+
}
|
|
485
|
+
setDebounceTimeout = (timeout) => {
|
|
486
|
+
this.debounceTimeout = timeout;
|
|
487
|
+
return this;
|
|
488
|
+
};
|
|
489
|
+
hasConflicts(_conflictingItem) {
|
|
490
|
+
const item = deleteKeysObject({ ...this.item }, [...KeysOfDB_Object,
|
|
491
|
+
...(this.module.dbDef.generatedProps ?? _keys(this.module.dbDef.generatedPropsValidator))]);
|
|
492
|
+
const conflictingItem = deleteKeysObject({ ..._conflictingItem }, [...KeysOfDB_Object,
|
|
493
|
+
...(this.module.dbDef.generatedProps ?? _keys(this.module.dbDef.generatedPropsValidator))]);
|
|
494
|
+
return !compare(conflictingItem, item);
|
|
495
|
+
}
|
|
496
|
+
calculateState() {
|
|
497
|
+
if (this.isSaving())
|
|
498
|
+
return this.setStatus(EditableItemStatus_Saving);
|
|
499
|
+
if (this.hasValidationError() && !this.hasChanges() && this.get('_id'))
|
|
500
|
+
return this.setStatus(EditableItemStatus_SavedWithErrors);
|
|
501
|
+
if (this.hasValidationError())
|
|
502
|
+
return this.setStatus(EditableItemStatus_FailedValidation);
|
|
503
|
+
if (this.saveError)
|
|
504
|
+
return this.setStatus(exports.EditableItemStatus_ErrorSaving);
|
|
505
|
+
if (this.hasChanges()) {
|
|
506
|
+
return this.setStatus(EditableItemStatus_UnsavedChanges);
|
|
507
|
+
}
|
|
508
|
+
if (!this.get('_id'))
|
|
509
|
+
return this.setStatus(EditableItemStatus_Creating);
|
|
510
|
+
if (this.get('_id'))
|
|
511
|
+
return this.setStatus(EditableItemStatus_Saved);
|
|
512
|
+
return this.setStatus(EditableItemStatus_Unknown);
|
|
513
|
+
}
|
|
514
|
+
/**
|
|
515
|
+
* Use the db module provided to validate and update the validation results accordingly
|
|
516
|
+
* @return preDB item if validation succeeded otherwise returns void
|
|
517
|
+
*/
|
|
518
|
+
validate() {
|
|
519
|
+
try {
|
|
520
|
+
this.module.validateImpl(this.item);
|
|
521
|
+
this.setValidationResults(undefined);
|
|
522
|
+
return this.item;
|
|
523
|
+
}
|
|
524
|
+
catch (e) {
|
|
525
|
+
this.handleValidationError(e);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* Update db item from a source out of the save action merged with the current UI item in the instance
|
|
530
|
+
* @param newItem The item passed to the instance from the third party
|
|
531
|
+
*/
|
|
532
|
+
updateItem(newItem) {
|
|
533
|
+
this.logWarning(`updating item externally, __updated: ${newItem.__updated}`);
|
|
534
|
+
const currentUIItem = deleteKeysObject({ ...this.item }, [...KeysOfDB_Object, ..._keys(this.module.dbDef.generatedPropsValidator)]);
|
|
535
|
+
super.updateItem(mergeObject(currentUIItem, newItem));
|
|
536
|
+
this.validate();
|
|
537
|
+
}
|
|
538
|
+
handleValidationError(e) {
|
|
539
|
+
const validationException = isErrorOfType(e, (ValidationException));
|
|
540
|
+
if (!validationException)
|
|
541
|
+
throw e;
|
|
542
|
+
this.logInfo('Validation error while saving');
|
|
543
|
+
this.setValidationResults({
|
|
544
|
+
autoSave: this._autoSave,
|
|
545
|
+
editing: this.validationResults?.editing || !!this.item._id || !this._autoSave,
|
|
546
|
+
results: validationException.result
|
|
547
|
+
});
|
|
548
|
+
// while getting new errors (for now) we need to call on change in order to replace the editable item instance.. (this will change)
|
|
549
|
+
this.setTag(`${this.constructor['name']}-${generateHex(4)}`);
|
|
550
|
+
this.onChanged?.(this);
|
|
551
|
+
}
|
|
552
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
// BaseComponent.MinLogLevel = LogLevel.Debug;
|
|
2
|
+
import { LogClient_MemBuffer, LogLevel } from '@nu-art/ts-common';
|
|
3
|
+
export class LogClient_ConsoleInterceptor extends LogClient_MemBuffer {
|
|
4
|
+
constructor(name, maxBuffers = 10, maxBufferSize = 1024 * 1024) {
|
|
5
|
+
super(name, maxBuffers, maxBufferSize);
|
|
6
|
+
this.overrideConsole();
|
|
7
|
+
}
|
|
8
|
+
overrideConsole() {
|
|
9
|
+
const originConsole = { ...window.console };
|
|
10
|
+
const overrideLog = (logLevel, method) => {
|
|
11
|
+
const logToBuffer = (...args) => {
|
|
12
|
+
const message = args[0];
|
|
13
|
+
if (!message || typeof message !== 'string') {
|
|
14
|
+
return this.logMessage(logLevel, false, '', args);
|
|
15
|
+
}
|
|
16
|
+
args.shift();
|
|
17
|
+
const formatRegex = /(%[sidfoOc])/g;
|
|
18
|
+
let formatted = '';
|
|
19
|
+
let i = 0;
|
|
20
|
+
let match;
|
|
21
|
+
while ((match = formatRegex.exec(message)) !== null) {
|
|
22
|
+
formatted += message.substring(i, match.index);
|
|
23
|
+
const specifier = match[1];
|
|
24
|
+
const arg = args.shift();
|
|
25
|
+
switch (specifier) {
|
|
26
|
+
case '%c':
|
|
27
|
+
break;
|
|
28
|
+
case '%s':
|
|
29
|
+
formatted += arg;
|
|
30
|
+
break;
|
|
31
|
+
case '%d':
|
|
32
|
+
case '%i':
|
|
33
|
+
formatted += Number.parseInt(arg).toLocaleString();
|
|
34
|
+
break;
|
|
35
|
+
case '%f':
|
|
36
|
+
formatted += Number.parseFloat(arg).toLocaleString();
|
|
37
|
+
break;
|
|
38
|
+
case '%O':
|
|
39
|
+
case '%o':
|
|
40
|
+
formatted += JSON.stringify(arg, null, 2);
|
|
41
|
+
break;
|
|
42
|
+
default:
|
|
43
|
+
formatted += specifier;
|
|
44
|
+
}
|
|
45
|
+
i = formatRegex.lastIndex; // exclude the format specifier
|
|
46
|
+
}
|
|
47
|
+
formatted += message.substring(i);
|
|
48
|
+
this.logMessage(logLevel, false, '', [formatted]);
|
|
49
|
+
};
|
|
50
|
+
return (...args) => {
|
|
51
|
+
try {
|
|
52
|
+
logToBuffer(...args);
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
originConsole['error']('error logging console message with args: ', ...args);
|
|
56
|
+
}
|
|
57
|
+
originConsole[method](...args);
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
window.console = {
|
|
61
|
+
...window.console,
|
|
62
|
+
log: overrideLog(LogLevel.Verbose, 'log'),
|
|
63
|
+
debug: overrideLog(LogLevel.Debug, 'debug'),
|
|
64
|
+
info: overrideLog(LogLevel.Info, 'info'),
|
|
65
|
+
warn: overrideLog(LogLevel.Warning, 'warn'),
|
|
66
|
+
error: overrideLog(LogLevel.Error, 'error'),
|
|
67
|
+
trace: overrideLog(LogLevel.Error, 'trace'),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { _keys, filterInstances, isErrorOfType, ValidationException } from '@nu-art/ts-common';
|
|
3
|
+
export const isDependencyError = (e) => {
|
|
4
|
+
return (e.errorResponse?.error.type === 'has-dependencies');
|
|
5
|
+
};
|
|
6
|
+
export const generateErrorToastContent = (e, content, additionalData) => {
|
|
7
|
+
//
|
|
8
|
+
// if (isDependencyError(e)) {
|
|
9
|
+
// return <ResolveDependencyToast dependencyConflicts={e.errorResponse.error.data} deletedEntity={additionalData}/>;
|
|
10
|
+
// }
|
|
11
|
+
if (isErrorOfType(e, ValidationException))
|
|
12
|
+
return _jsx("div", { children: `Invalid input for fields: ${filterInstances(_keys(e.result)).join(', ')}` });
|
|
13
|
+
return _jsx("div", { children: "Something went wrong, try again later..." });
|
|
14
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UniqueId } from "@nu-art/ts-common";
|
|
2
|
+
import { ThunderDispatcher } from "../../core/thunder-dispatcher.js";
|
|
3
|
+
export interface OnDeleteConflicts {
|
|
4
|
+
__onDeleteConflicts: (entity: string, conflictingIds: UniqueId[]) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare const dispatch_onDeleteConflicts: ThunderDispatcher<OnDeleteConflicts, "__onDeleteConflicts", [entity: string, conflictingIds: string[]], void>;
|