editor › Globals › LoadSaveModule
Class: LoadSaveModule
Hierarchy
↳ LoadSaveModule
Index
Constructors
Properties
- compositeModel
- editor
- endpoint
- inputElement
- loadingModel
- localModelStorage
- modelNeedsSaving
- remoteModelStorage
- saveButtonControllerScope
- throttledSaveCall
Methods
- _autoSave
- _canModifyModel
- _createModelProject
- _getInputElement
- _importModelFromZip
- _isModelCreator
- _loadFromBlob
- _loadModel
- _loadModelFromChosenStorage
- _onBeforeUnload
- _onCompositeModelChange
- _onModelChanged
- _onModelSaved
- _overwriteModelProject
- _saveModel
- _saveModelAs
- _saveScreenshot
- _setCompositeModel
- _showStateInMenu
- _takeAndUploadScreenshot
- bindStates
- createNewModelProject
- downloadModelAsZip
- getAssetIdFromModelProjectId
- getTools
- importModel
- loadModelFromStorage
- onFilesDropped
- onLoad
- onMenuAction
- overwriteModelProject
- serializeModel
- serializeModelAsZip
- setEditor
- setPhysicsSimulationRunner
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
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
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
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