## Activity - Initialization
During startup the configurator class creates a data class for the configuration and one for the customer.

It loads the database types by continually going deeper in the hierarchy using a callback structure.

The UI seems to simply read from the data as no html elements are specifically built.

##### Simple

``` plantuml
@startuml
!define STYLE_RG
!includeurl https://raw.githubusercontent.com/raumgleiter/PlantUML-Style/master/PlantUML_Style.puml
!include <tupadr3/common>
!include <tupadr3/font-awesome/rocket>
@startuml

:HTML;
package //DataLoading// {
:Parameters URL;
note left #IndianRed: Entry Point
:Get All Data From DB;
note right #IndianRed: Cache
:Get All Imagies From FS;
}
package //Initialization// {
:Events;
}
package //Rendering// {
:Prepares Formatted Data;
note right #IndianRed: ClientConfigurationObject
:Prepares HTML Events;

}
@enduml
```

##### Detailed

``` plantuml
@startuml
!define STYLE_RG
!includeurl https://raw.githubusercontent.com/raumgleiter/PlantUML-Style/master/PlantUML_Style.puml
!include <tupadr3/common>
!include <tupadr3/font-awesome/rocket>
!include <tupadr3/font-awesome-5/user>

' All Skinparams: https://plantuml-documentation.readthedocs.io/en/latest/formatting/all-skin-params.html
' skinparam defaultTextAlignment center

' allowmixing
' skinparam ClassAttributeIconSize 0.1
' skinparam CircledCharacterRadius 0
' skinparam CircledCharacterFontSize 0

'-----------------------------------------------------------------------------

'left to right direction

'******************************************************************************

|configurator|
start
:initializeState;
|sharing|
:createAppState;
|configurator|
:createBaseConfiguration;
:read url parameters to baseConfiguration;
:initClientConfiguration;
:clear the data of the customer;
#palegreen:loadTypes;
:prepareBaseConfig;
:apply the data of the type to the summary UI;
:loadSceneSets;
#palegreen:loadFilteredSceneTable;
:getScenes;
#palegreen:loadGroups;
:getGroups;
:loadOptionSets;
#palegreen:loadFilteredOptionsTable;
:getOptionsTable;
if (has config_id) then
  :loadDesignLines;
  :enableDesignLineVisibility;
else
  :disableDesignLineVisibility;
  :loadDesignLineData;
endif
:click start;
:loadProjectInfo;
:process the data of the project to the UI;
:loadImagePaths;
:loadImageData;
:loadTransforms;
:loadSceneLinks;

'-----------------------------------------------------------------------------
'-----------------------------------------------------------------------------

'******************************************************************************

@enduml
```
