Skip to content

editorGlobalsLoadSaveModule

Class: LoadSaveModule

Hierarchy

LoadSaveModule

Index

Constructors

Properties

Methods

Constructors

constructor

+ new LoadSaveModule(): LoadSaveModule

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:57

Returns: LoadSaveModule

Properties

Private compositeModel

compositeModel: CompositeModel

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:47


Protected editor

editor: Editor | null = null

Inherited from Module.editor

Defined in src/modules/kyub.core.templateModule/src/Module.ts:17


Private Readonly endpoint

endpoint: string

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:46


Private inputElement

inputElement: any

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:44


Private loadingModel

loadingModel: boolean = false

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:57


Private localModelStorage

localModelStorage: LocalStorage‹› = new LocalStorage()

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:42


Private modelNeedsSaving

modelNeedsSaving: boolean = false

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:48


Private remoteModelStorage

remoteModelStorage: RepositoryStorage‹› = new RepositoryStorage()

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:43


Private saveButtonControllerScope

saveButtonControllerScope: any = null

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:40


Private Readonly throttledSaveCall

throttledSaveCall: DebouncedFunc‹_autoSave = debounce(this._autoSave, Config.get("storage.saveTimeout"), { maxWait: Config.get("storage.maxTimeWithoutSaving"), })

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:52

Methods

Private _autoSave

_autoSave(): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:561

Returns: Promise‹void›


Private _canModifyModel

_canModifyModel(modelId: any): Promise‹boolean›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:361

Parameters:

Name Type
modelId any

Returns: Promise‹boolean›


Private _createModelProject

_createModelProject(assetId: any, modelName: string, modelDescription?: string): Promise‹any›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:443

Creates a new model project with the given model as asset

Parameters:

Name Type
assetId any
modelName string
modelDescription? string

Returns: Promise‹any›


Private _getInputElement

_getInputElement(): any

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:481

Returns: any


Private _importModelFromZip

_importModelFromZip(fileBlob: any): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:517

Parameters:

Name Type
fileBlob any

Returns: Promise‹void›


Private _isModelCreator

_isModelCreator(modelId: any): Promise‹boolean›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:345

Parameters:

Name Type
modelId any

Returns: Promise‹boolean›


Private _loadFromBlob

_loadFromBlob(fileBlob: any): void

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:505

Parameters:

Name Type
fileBlob any

Returns: void


Private _loadModel

_loadModel(inputElement: any): boolean

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:494

Parameters:

Name Type
inputElement any

Returns: boolean


Private _loadModelFromChosenStorage

_loadModelFromChosenStorage(storage: any, assetID: string, overwriteCompositeModelProperties: boolean, usePositioner: boolean): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:250

Parameters:

Name Type Default
storage any -
assetID string -
overwriteCompositeModelProperties boolean true
usePositioner boolean false

Returns: Promise‹void›


Private _onBeforeUnload

_onBeforeUnload(event: any): string

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:591

Parameters:

Name Type
event any

Returns: string


Private _onCompositeModelChange

_onCompositeModelChange(__namedParameters: object): void

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:521

Parameters:

__namedParameters: object

Name Type
newPrimaryModel CompositeModel‹›

Returns: void


Private _onModelChanged

_onModelChanged(): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:540

Returns: Promise‹void›


Private _onModelSaved

_onModelSaved(): void

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:583

Returns: void


Private _overwriteModelProject

_overwriteModelProject(modelProjectId: string, asset: string, checkpointType: CheckpointType, screenshot: string, name: string, description?: string): Promise‹any›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:462

Overwrite the asset of an existing model project

Parameters:

Name Type
modelProjectId string
asset string
checkpointType CheckpointType
screenshot string
name string
description? string

Returns: Promise‹any›


Private _saveModel

_saveModel(): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:288

Returns: Promise‹void›


Private _saveModelAs

_saveModelAs(allowOverwrite: boolean, showMessage?: "overwriteFailed" | "notCreator" | "newModel"): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:323

Parameters:

Name Type Default Description
allowOverwrite boolean false If true, the modal offers an overwrite button.
showMessage? "overwriteFailed" | "notCreator" | "newModel" - If provided, the modal will show the appropriate explanation.

Returns: Promise‹void›


Private _saveScreenshot

_saveScreenshot(modelProjectId: string, replaceMainScreenshot: boolean): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:388

Takes a screenshot and either adds a new screenshot or replaces the first "defaultModelImage.png" or the first "in-editor-screenshot.jpg".

Parameters:

Name Type Default Description
modelProjectId string - Update the gallery for this model project.
replaceMainScreenshot boolean true Whether to replace the main "in-editor-screenshot" or to create a new one.

Returns: Promise‹void›


Private _setCompositeModel

_setCompositeModel(compositeModel: CompositeModel): void

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:525

Parameters:

Name Type
compositeModel CompositeModel

Returns: void


Private _showStateInMenu

_showStateInMenu(state: "saved" | "saving…" | "unsaved" | null): void

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:611

Parameters:

Name Type
state "saved" | "saving…" | "unsaved" | null

Returns: void


Private _takeAndUploadScreenshot

_takeAndUploadScreenshot(fileName: string): Promise‹any›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:425

Takes a screenshot of the model and uploads it.

Parameters:

Name Type Description
fileName string The filename for the new screenshot

Returns: Promise‹any›

a promise that resolves to the created file object


bindStates

bindStates(states: MenuGenerator["states"]): void

Inherited from Module.bindStates

Defined in src/modules/kyub.core.templateModule/src/Module.ts:30

Subclasses may bind to menu states.

Parameters:

Name Type Description
states MenuGenerator["states"] an object containing states by name

Returns: void


createNewModelProject

createNewModelProject(name: string, description: string): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:241

Parameters:

Name Type
name string
description string

Returns: Promise‹void›


downloadModelAsZip

downloadModelAsZip(): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:212

Returns: Promise‹void›


getAssetIdFromModelProjectId

getAssetIdFromModelProjectId(modelProjectId: string): Promise‹string›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:182

Parameters:

Name Type
modelProjectId string

Returns: Promise‹string›


getTools

getTools(): IToolsWithManifestations

Inherited from Module.getTools

Defined in src/modules/kyub.core.templateModule/src/Module.ts:39

Allows the module to specify tools which are then added to the toolLibrary. You can use the config/toolConfiguration.yml to specify additional manifestations of the tools returned here.

Returns: IToolsWithManifestations

an object containing an array of tools and optionally, array of tool manifestations


importModel

importModel(asset: any, replace: boolean, usePositioner: boolean): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:206

Load asset into the editor

Parameters:

Name Type Default Description
asset any - asset to load
replace boolean true if true, the properties of the compositeModel in the asset will overwrite the properties in the current compositeModel of the editor. This is needed when we do a normal load, and the compositeModel is loaded from the website. When not replacing the whole compositeModel, but only adding assemblies, for example via zip file dropping, this can be set to false to keep the current properties.
usePositioner boolean false if true, position the assembly in a fancy way (bad for integration tests..)

Returns: Promise‹void›


loadModelFromStorage

loadModelFromStorage(modelProjectId: string, isForeignModel: boolean): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:151

If the modelId is defined, the model is loaded from local storage or the server. If the model is empty or no modelId is defined, the initial script is replayed

Parameters:

Name Type Default
modelProjectId string ModelProjectUtils.getCurrentModelId()
isForeignModel boolean false

Returns: Promise‹void›


onFilesDropped

onFilesDropped(droppedFiles: BrowserFileList, source: any): boolean

Overrides Module.onFilesDropped

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:131

Parameters:

Name Type
droppedFiles BrowserFileList
source any

Returns: boolean


onLoad

onLoad(): void

Inherited from Module.onLoad

Defined in src/modules/kyub.core.templateModule/src/Module.ts:22

Called when the module is supposed to load. Overwrite this with your custom init code.

Returns: void


onMenuAction

onMenuAction(action: string, parameters: any): Promise‹boolean›

Overrides Module.onMenuAction

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:91

Parameters:

Name Type
action string
parameters any

Returns: Promise‹boolean›


overwriteModelProject

overwriteModelProject(checkpointType?: CheckpointType, name?: string, description?: string): Promise‹void›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:223

Parameters:

Name Type
checkpointType? CheckpointType
name? string
description? string

Returns: Promise‹void›


serializeModel

serializeModel(): any

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:127

Returns: any


serializeModelAsZip

serializeModelAsZip(): Promise‹Blob | Buffer›

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:123

Returns a promise to a binary ZIP blob that contains the current editor contents

Returns: Promise‹Blob | Buffer›


setEditor

setEditor(editor: Editor): void

Overrides Module.setEditor

Defined in src/modules/kyub.core.loadSave/src/LoadSaveModule.ts:84

Parameters:

Name Type
editor Editor

Returns: void


setPhysicsSimulationRunner

setPhysicsSimulationRunner(physicsSimulationRunner: any): void

Inherited from Module.setPhysicsSimulationRunner

Defined in src/modules/kyub.core.templateModule/src/Module.ts:57

Allows the module to store a reference to a PhysicsSimulationRunner in order to toggle simulation AddOns

Parameters:

Name Type Description
physicsSimulationRunner any object implementing PhysicalsSimulationRunnerInterface

Returns: void