You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2020/02/23 22:50:40 UTC

[incubator-streampipes] 01/02: Load external CSS/JS modules in build process, optimize imports

This is an automated email from the ASF dual-hosted git repository.

riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit fbf94009a00342baafa4582ed5813e6f9b99bd13
Author: Dominik Riemer <ri...@fzi.de>
AuthorDate: Sun Feb 23 22:48:11 2020 +0100

    Load external CSS/JS modules in build process, optimize imports
---
 ui/angular.json                                    |   19 +-
 ui/deployment/app.module.mst                       |    2 +-
 ui/deployment/toolbar.controller.mst               |   17 +-
 ui/package.json                                    |    8 +-
 .../app/CustomMaterial/custom-material.module.ts   |   36 +-
 ui/src/app/NS/XS.service.spec.ts                   |    4 +-
 ui/src/app/NS/XS.service.ts                        |    3 +-
 .../app-asset-monitoring.module.ts                 |    6 +-
 .../create-asset/create-asset.component.ts         |    2 +-
 .../dashboard-overview.component.ts                |    2 +-
 .../components/view-asset/view-asset.component.ts  |    3 +-
 .../add-pipeline/add-pipeline-dialog.component.ts  |    2 +-
 .../save-dashboard-dialog.component.ts             |    2 +-
 .../model/canvas-configuration.model.ts            |    1 -
 .../app/app-container/app-container.component.ts   |    6 +-
 ui/src/app/app-container/app-container.module.ts   |   18 +-
 .../app-container/shared/app-container.service.ts  |    8 +-
 ui/src/app/app-container/view/view.component.ts    |   12 +-
 ui/src/app/app-overview/app-overview.module.ts     |   14 +-
 .../app-transport-monitoring.module.ts             |   16 +-
 .../dashboard-image/dashboard-image.component.ts   |    4 +-
 .../dashboard-status-filled.component.ts           |    2 +-
 .../dashboard-status/dashboard-status.component.ts |    2 +-
 .../transport-selection.component.ts               |    4 +-
 .../transport-summary.component.ts                 |    2 +-
 .../app-transport-monitoring-rest.service.ts       |    2 +-
 .../configuration/configuration.component.spec.ts  |   14 +-
 .../app/configuration/configuration.component.ts   |    8 +-
 ui/src/app/configuration/configuration.module.ts   |   12 +-
 .../consul-configs-boolean.component.ts            |    6 +-
 .../consul-configs-number.component.ts             |    6 +-
 .../consul-configs-password.component.spec.ts      |   28 +-
 .../consul-configs-password.component.ts           |    5 +-
 .../consul-configs-text.component.ts               |    6 +-
 .../consul-configs/consul-configs.component.ts     |    5 +-
 .../consul-service.component.spec.ts               |   24 +-
 .../consul-service/consul-service.component.ts     |    6 +-
 .../messaging-configuration.component.ts           |    2 +-
 .../pipeline-element-configuration.component.ts    |    4 +-
 .../shared/configuration.service.spec.ts           |    8 +-
 .../configuration/shared/configuration.service.ts  |   12 +-
 .../shared/configuration.test.service.ts           |    8 +-
 .../shared/streampipes-pe-container.model.ts       |    3 +-
 ui/src/app/connect/connect.component.ts            |    5 +-
 ui/src/app/connect/connect.module.ts               |  122 +-
 ui/src/app/connect/connect.service.ts              |    4 +-
 .../adapter-description.component.ts               |    8 +-
 .../adapter-export-dialog.component.ts             |    2 +-
 .../adapter-upload-dialog.component.ts             |    2 +-
 .../data-marketplace/data-marketplace.component.ts |   14 +-
 .../data-marketplace/data-marketplace.service.ts   |   56 +-
 ui/src/app/connect/data-marketplace/filter.pipe.ts |    2 +-
 .../file-management/file-management.component.ts   |    6 +-
 .../file-management/service/filerest.service.ts    |    2 +-
 ui/src/app/connect/filter/timestamp.pipe.ts        |    2 +-
 .../connect/format-component/format.component.ts   |    4 +-
 .../connect/format-form/format-form.component.ts   |    6 +-
 .../format-list-component/format-list.component.ts |    4 +-
 ui/src/app/connect/model/AnyStaticProperty.ts      |    4 +-
 ui/src/app/connect/model/ApplicationLink.ts        |    6 +-
 ui/src/app/connect/model/BoundPipelineElement.ts   |    8 +-
 .../app/connect/model/DataProcessorInvocation.ts   |    6 +-
 ui/src/app/connect/model/DataSetDescription.ts     |    2 -
 ui/src/app/connect/model/DataSinkInvocation.ts     |    6 +-
 ui/src/app/connect/model/DataStreamContainer.ts    |    8 +-
 ui/src/app/connect/model/FreeTextStaticProperty.ts |    1 -
 .../connect/model/InvocableStreamPipesEntity.ts    |   10 +-
 ui/src/app/connect/model/MappingPropertyNary.ts    |    1 -
 ui/src/app/connect/model/NamedStreamPipesEntity.ts |    8 +-
 ui/src/app/connect/model/OneOfStaticProperty.ts    |    4 +-
 ui/src/app/connect/model/Option.ts                 |    6 +-
 .../connect/model/PipelineTemplateDescription.ts   |    8 +-
 .../model/PipelineTemplateDescriptionContainer.ts  |    8 +-
 .../connect/model/PipelineTemplateInvocation.ts    |    8 +-
 ui/src/app/connect/model/SecretStaticProperty.ts   |    1 -
 .../app/connect/model/SelectionStaticProperty.ts   |    9 +-
 ui/src/app/connect/model/StaticProperty.ts         |    1 -
 .../model/connect/AdapterStreamDescription.ts      |    1 -
 .../model/connect/GenericAdapterSetDescription.ts  |    2 +-
 .../connect/GenericAdapterStreamDescription.ts     |    2 +-
 .../model/connect/SpecificAdapterSetDescription.ts |    2 +-
 .../connect/SpecificAdapterStreamDescription.ts    |    2 +-
 .../connect/rules/UnitTransformRuleDescription.ts  |    8 +-
 .../connect/runtime/RuntimeOptionsResponse.ts      |    2 -
 .../connect/model/output/AppendOutputStrategy.ts   |    6 +-
 .../connect/model/output/CustomOutputStrategy.ts   |    4 +-
 .../model/output/CustomTransformOutputStrategy.ts  |    6 +-
 .../connect/model/output/FixedOutputStrategy.ts    |    6 +-
 .../app/connect/model/output/KeepOutputStrategy.ts |    4 +-
 .../app/connect/model/output/ListOutputStrategy.ts |    4 +-
 ui/src/app/connect/model/output/OutputStrategy.ts  |    2 +-
 .../component/adapter-started-dialog.component.ts  |    3 +-
 ui/src/app/connect/new-adapter/icon.service.ts     |    2 +-
 .../new-adapter/new-adapter.component.spec.ts      |   31 +-
 .../connect/new-adapter/new-adapter.component.ts   |   50 +-
 .../protocol-component/protocol.component.ts       |    5 +-
 .../protocol-list.component.ts                     |    3 +-
 ui/src/app/connect/rdfmapper/rdfmapper.service.ts  |    5 +-
 ui/src/app/connect/rest.service.ts                 |   31 +-
 .../event-property-list.component.ts               |    8 +-
 .../event-property-primitive.component.ts          |   24 +-
 .../event-property-row.component.ts                |    4 +-
 .../event-property/event-property.component.ts     |    2 +-
 .../event-schema-preview.component.ts              |    4 +-
 .../event-schema/event-schema.component.ts         |   28 +-
 .../connect/schema-editor/model/EventProperty.ts   |    6 +-
 .../schema-editor/model/EventPropertyList.ts       |    1 +
 .../schema-editor/model/EventPropertyPrimitive.ts  |    1 -
 .../app/connect/schema-editor/model/ExampleNode.ts |    2 +-
 .../app/connect/schema-editor/model/GuessSchema.ts |   10 +-
 .../schema-editor/model/QuantitativeValue.ts       |    8 +-
 .../connect/schema-editor/unit-provider.service.ts |    2 +-
 .../select-protocol-component/input.validator.ts   |    3 +-
 .../select-protocol.component.ts                   |    9 +-
 .../select-static-properties.component.ts          |    6 +-
 .../static-any-input/static-any-input.component.ts |    2 +-
 .../static-collection.component.ts                 |    1 -
 .../static-file-input.component.ts                 |    7 +-
 .../static-free-input.component.ts                 |    6 +-
 .../static-mapping-nary.component.ts               |    3 +-
 .../static-mapping-unary.component.ts              |    6 +-
 .../static-number-input.component.ts               |   13 +-
 .../static-one-of-input.component.ts               |    1 -
 .../static-property-util.service.ts                |   30 +-
 .../static-properties/static-property.component.ts |   22 +-
 .../static-secret-input.component.ts               |    7 +-
 .../static-text-input.component.ts                 |    8 +-
 .../static-url-input/static-url-input.component.ts |   13 +-
 .../connect/transformation-rule.service.spec.ts    |    5 +-
 ui/src/app/core-ui/core-ui.module.ts               |   12 +-
 .../app/core-ui/linechart/lineChart.component.ts   |    2 +-
 ui/src/app/core-ui/table/table.component.ts        |    4 +-
 ui/src/app/core/working.state.config.ts            |   10 +-
 .../components/grid/dashboard-grid.component.ts    |    7 +-
 .../overview/dashboard-overview.component.ts       |    1 -
 .../widget/dashboard-widget.component.ts           |    8 +-
 .../components/widgets/base/base-widget.ts         |    2 +-
 .../widgets/gauge/gauge-widget.component.ts        |    2 +-
 .../widgets/line/line-widget.component.ts          |    5 +-
 .../widgets/number/number-widget.component.ts      |    2 +-
 ui/src/app/dashboard-v2/dashboard.component.ts     |    1 -
 ui/src/app/dashboard-v2/dashboard.module.ts        |   16 +-
 .../edit-dashboard-dialog.component.ts             |    6 +-
 .../app/dashboard-v2/models/multi-series.model.ts  |    2 -
 .../dashboard-v2/services/MockDashboard.service.ts |   10 +-
 .../app/dashboard-v2/services/dashboard.service.ts |    5 -
 .../dashboard/components/config-item.controller.ts |    2 -
 ui/src/app/dashboard/dashboard.controller.ts       |    1 -
 ui/src/app/dashboard/dashboard.module.ts           |   55 +-
 .../socket-connection-data-model.service.ts        |    2 +-
 .../templates/gauge/gauge-data-model.service.ts    |    2 +-
 .../dashboard/templates/gauge/gauge.directive.ts   |    3 +-
 .../heatmap/heatmap-data-model.service.ts          |    2 +-
 .../templates/heatmap/heatmap.directive.ts         |    3 +-
 .../templates/html/html-data-model.service.ts      |    2 +-
 .../app/dashboard/templates/html/html.directive.ts |    3 +-
 .../templates/image/image-data-model.service.ts    |    2 +-
 .../dashboard/templates/image/image.directive.ts   |    3 +-
 .../templates/line/line-data-model.service.ts      |    2 +-
 .../app/dashboard/templates/line/line.directive.ts |    3 +-
 .../map.deprecated/map-data-model.service.ts       |    2 +-
 .../templates/map.deprecated/map.directive.ts      |    3 +-
 .../templates/map/map-data-model.service.ts        |    2 +-
 .../app/dashboard/templates/map/map.directive.ts   |    3 +-
 .../templates/number/number-data-model.service.ts  |    2 +-
 .../dashboard/templates/number/number.directive.ts |    3 +-
 .../templates/raw/raw-data-model.service.ts        |    2 +-
 .../app/dashboard/templates/raw/raw.directive.ts   |    3 +-
 .../templates/table/table-data-model.service.ts    |    2 +-
 .../dashboard/templates/table/table.directive.ts   |    3 +-
 .../trafficlight-data-model.service.ts             |    2 +-
 .../trafficlight/trafficlight.directive.ts         |    3 +-
 .../verticalbar/verticalbar-data-model.service.ts  |    2 +-
 .../templates/verticalbar/verticalbar.directive.ts |    3 +-
 .../app/data-explorer/data-explorer.component.ts   |    4 +-
 ui/src/app/data-explorer/data-explorer.module.ts   |   10 +-
 .../datadownloadDialog/dataDownload.dialog.ts      |    4 +-
 .../data-explorer/explorer/explorer.component.ts   |    6 +-
 .../alternative/alternative.component.ts           |    1 +
 .../alternative/alternative.controller.ts          |    2 -
 .../components/any-remote/any-remote.component.ts  |    1 +
 ui/src/app/editor/components/any/any.component.ts  |    1 +
 ui/src/app/editor/components/any/any.controller.ts |    2 -
 .../components/collection/collection.component.ts  |    1 +
 .../customize/customize-dialog.component.ts        |    1 +
 .../customoutput/customoutput.component.ts         |    1 +
 .../property-selection.component.ts                |    1 +
 .../property-selection.controller.ts               |    2 -
 .../domainconcept/domainconcept.component.ts       |    1 +
 .../components/fileupload/fileupload.component.ts  |    1 +
 .../components/freetext/freetext.component.ts      |    1 +
 .../components/freetext/freetext.controller.ts     |    1 -
 .../app/editor/components/group/group.component.ts |    1 +
 .../mappingnary/mappingnary.component.ts           |    1 +
 .../mappingunary/mappingunary.component.ts         |    1 +
 .../matchingproperty/matchingproperty.component.ts |    1 +
 .../multivalue/multiple-value-input.component.ts   |    1 +
 .../oneof-remote/oneof-remote.component.ts         |    1 +
 .../app/editor/components/oneof/oneof.component.ts |    1 +
 .../pipeline-assembly.component.ts                 |    1 +
 .../pipeline-element-documentation.component.ts    |    1 +
 .../pipeline-element-icon-stand.component.ts       |    1 +
 .../pipeline-element-options.component.ts          |    1 +
 .../pipeline-element-recommendation.component.ts   |    1 +
 .../pipeline-element/pipeline-element.component.ts |    1 +
 .../components/pipeline/pipeline.component.ts      |    1 +
 .../components/pipeline/pipeline.controller.ts     |    1 +
 .../replaceoutput/replaceoutput.component.ts       |    1 +
 .../editor/components/secret/secret.component.ts   |    1 +
 .../editor/components/secret/secret.controller.ts  |    2 -
 .../topic/topic-selection-dialog.component.ts      |    1 +
 ui/src/app/editor/editor.module.ts                 |    6 +-
 .../services/editor-dialog-manager.service.ts      |    5 +-
 ui/src/app/home/components/status.component.ts     |    4 +-
 ui/src/app/home/home.component.ts                  |    8 +-
 ui/src/app/home/home.module.ts                     |   18 +-
 ui/src/app/info/info.component.ts                  |    4 +-
 ui/src/app/info/info.module.ts                     |   34 +-
 .../info/versions/service/version-info.service.ts  |   12 +-
 ui/src/app/info/versions/versions.component.ts     |    2 +-
 ui/src/app/layout/app.controller.ts                |    4 -
 ui/src/app/login/login.controller.ts               |    1 -
 ui/src/app/login/login.module.ts                   |    6 +-
 ui/src/app/login/startup/startup.controller.ts     |    1 -
 ui/src/app/myelements/my-elements.controller.ts    |    1 +
 .../actions/pipeline-actions.component.ts          |    1 +
 .../components/edit/quickedit.component.ts         |    1 +
 .../elements/pipeline-elements-row.component.ts    |    1 +
 .../elements/pipeline-elements.component.ts        |    1 +
 .../preview/pipeline-preview.component.ts          |    1 +
 .../components/status/pipeline-status.component.ts |    1 +
 .../pipeline-details/pipeline-details.component.ts |    1 +
 ui/src/app/pipelines/pipelines.controller.ts       |    7 +-
 ui/src/app/pipelines/pipelines.module.ts           |   10 +-
 .../services/pipeline-operations.service.ts        |    1 +
 .../apis/pipeline-template.service.ts              |   43 +-
 ui/src/app/platform-services/platform.module.ts    |    2 +-
 .../platform-services/tsonld-serializer.service.ts |   69 +-
 ui/src/app/platform-services/tsonld/tsonld.ts      |    2 +-
 .../deployment/deployment-type.component.ts        |    1 +
 .../components/deployment/deployment.component.ts  |    1 +
 .../general/advanced-settings.component.ts         |    1 +
 .../components/general/collapsible.component.ts    |    1 +
 .../components/general/options.component.ts        |    1 +
 .../general/value-specification.component.ts       |    1 +
 .../generated-element-description.component.ts     |    1 +
 .../generated-element-implementation.component.ts  |    1 +
 .../grounding/supported-grounding.component.ts     |    1 +
 .../grounding/transport-format.component.ts        |    1 +
 .../components/output/output-strategy.component.ts |    1 +
 .../property/datatype-property.component.ts        |    1 +
 .../property/domain-concept-property.component.ts  |    1 +
 .../property/domain-property.component.ts          |    1 +
 .../property/event-properties.component.ts         |    1 +
 .../property/property-restriction.component.ts     |    1 +
 .../property/required-property-values.component.ts |    1 +
 .../property/static-properties.component.ts        |    1 +
 .../property-quality-definitions.component.ts      |    1 +
 .../stream-quality-definitions.component.ts        |    1 +
 .../restriction/stream-restriction.component.ts    |    1 +
 .../components/sepa/sepa-basics.component.ts       |    1 +
 .../sepa/sepa-stream-detail.component.ts           |    1 +
 .../components/unit/measurement-unit.component.ts  |    1 +
 ui/src/app/services/auth-status.service.ts         |    2 +-
 ui/src/app/services/auth.service.ts                |    1 -
 ui/src/app/services/jsplumb.service.ts             |    1 -
 .../route-transition-interceptor.service.ts        |    1 -
 ui/src/app/services/services.module.ts             |   46 +-
 ui/src/app/services/tour/shepherd.service.ts       |    1 -
 ui/src/app/services/tour/tour-provider.service.ts  |    2 -
 ui/src/app/shared/logger/log.service.ts            |    2 +-
 ui/src/assets/css/angular-material.css             |    6 -
 ui/src/assets/css/archivoRailwyRoboto.css          |  109 -
 ui/src/assets/css/bootstrap.min.css                |    5 -
 ui/src/assets/css/epoch.min.css                    |    1 -
 ui/src/assets/css/font-awesome.min.css             |    4 -
 ui/src/assets/css/jquery-ui.css                    | 1243 -------
 ui/src/assets/css/jquery.dataTables.min.css        |  542 ---
 ui/src/assets/css/picker.min.css                   |    8 -
 ui/src/assets/css/slick-theme.min.css              |    1 -
 ui/src/assets/css/slick.min.css                    |    1 -
 ui/src/assets/css/trix.css                         |  304 --
 ui/src/assets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2     |  Bin 15344 -> 0 bytes
 ...materialicons.css => MaterialIcons-Regular.css} |    2 +-
 .../fonts/Roboto-Regular.css}                      |   18 +-
 ui/src/assets/fonts/Roboto-Regular.ttf             |  Bin 0 -> 171272 bytes
 ui/src/assets/fonts/archivo.css                    |   90 -
 .../fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2       |  Bin 49140 -> 0 bytes
 ui/src/assets/fonts/raleway.css                    |   34 -
 ui/src/assets/fonts/roboto.css                     |   74 -
 ui/src/assets/fonts/robotodraft.css                |  298 --
 ui/src/assets/lib/d3.min.js                        |    5 -
 ui/src/assets/lib/epoch.min.js                     |    3 -
 ui/src/assets/lib/flowtype.js                      |   66 -
 ui/src/assets/lib/jQuery.circleMenu.js             |  331 --
 ui/src/assets/lib/jquery-2.2.4.min.js              |    4 -
 ui/src/assets/lib/jquery-touch-punch.js            |   11 -
 ui/src/assets/lib/jquery-ui.min.js                 |   13 -
 ui/src/assets/lib/jquery.dataTables.min.js         | 3863 --------------------
 ui/src/assets/lib/jquery.panzoom.min.js            |    9 -
 ui/src/assets/lib/jsPlumb-2.1.0-min.js             |    7 -
 ui/src/assets/lib/malhar-angular-dashboard.js      | 1483 --------
 ui/src/assets/lib/malhar-angular-widgets.js        | 2094 -----------
 ui/src/assets/lib/mlhr-table.js                    | 1210 ------
 ui/src/assets/lib/ng-context-menu.min.js           |    4 -
 ui/src/assets/lib/please-wait.min.js               |   12 -
 ui/src/assets/lib/stomp.js                         |  393 --
 ui/src/assets/lib/system.js                        |    4 -
 ui/src/assets/lib/trix.js                          |   20 -
 ui/src/index.html                                  |   53 +-
 ui/src/scss/sp/main.scss                           |   16 +-
 311 files changed, 849 insertions(+), 13216 deletions(-)

diff --git a/ui/angular.json b/ui/angular.json
index f3182a7..54f4c96 100644
--- a/ui/angular.json
+++ b/ui/angular.json
@@ -21,10 +21,27 @@
               "src/assets"
             ],
             "styles": [
+              "node_modules/angular-material/angular-material.scss",
+              "node_modules/bootstrap/dist/css/bootstrap.css",
+              "node_modules/trix/dist/trix.css",
+              "node_modules/slick-carousel/slick/slick.scss",
+              "node_modules/slick-carousel/slick/slick-theme.scss",
+              "node_modules/datatables.net-dt/css/jquery.dataTables.css",
+              "node_modules/ng-pick-datetime/assets/style/picker.min.css",
+              "node_modules/@fortawesome/fontawesome-free/css/all.css",
+              "src/assets/fonts/MaterialIcons-Regular.css",
+              "src/assets/fonts/Roboto-Regular.css",
               "src/scss/main.scss"
             ],
             "scripts": [
-              "node_modules/plotly.js/dist/plotly.min.js"
+              "node_modules/systemjs/dist/system.js",
+              "node_modules/plotly.js/dist/plotly.min.js",
+              "node_modules/jquery/dist/jquery.min.js",
+              "node_modules/datatables.net/js/jquery.dataTables.js",
+              "node_modules/jquery.panzoom/dist/jquery.panzoom.js",
+              "node_modules/jquery-ui-dist/jquery-ui.js",
+              "node_modules/jsplumb/dist/js/jsPlumb-2.1.3-min.js",
+              "node_modules/trix/dist/trix.js"
             ]
           },
           "configurations": {
diff --git a/ui/deployment/app.module.mst b/ui/deployment/app.module.mst
index 88977eb..3958e94 100644
--- a/ui/deployment/app.module.mst
+++ b/ui/deployment/app.module.mst
@@ -73,7 +73,7 @@ export const Ng1AppModule = angular
             $transitions.onStart({}, transition => {
                 return TransitionService.onTransitionStarted(transition);
             });
-            window['loading_screen'].finish();
+            //window['loading_screen'].finish();
     }])
     .config(mdThemingProviderConfig)
     .directive("spButton", ['$mdButtonInkRipple', '$mdTheming', '$mdAria', '$mdInteraction', ($mdButtonInkRipple, $mdTheming, $mdAria, $mdInteraction) => new SpButtonDirective($mdButtonInkRipple, $mdTheming, $mdAria, $mdInteraction)]);
\ No newline at end of file
diff --git a/ui/deployment/toolbar.controller.mst b/ui/deployment/toolbar.controller.mst
index 88430c4..0a82e43 100644
--- a/ui/deployment/toolbar.controller.mst
+++ b/ui/deployment/toolbar.controller.mst
@@ -16,7 +16,7 @@
  *
  */
 
-declare const Stomp: any;
+import { Client } from '@stomp/stompjs';
 
 export class ToolbarController {
     AuthStatusService: any;
@@ -204,16 +204,23 @@ export class ToolbarController {
         var brokerUrl = websocketProtocol + '://' + this.$location.host() + ':' + this.$location.port() + '/streampipes/ws';
         var inputTopic = '/topic/org.apache.streampipes.notifications';
 
-        var client = Stomp.client(brokerUrl + inputTopic);
+        let stompClient = new Client({
+            brokerURL: brokerUrl,
+            connectHeaders: {
+                login: login,
+                passcode: passcode
+            },
+            reconnectDelay: 5000
+        });
 
-        var onConnect = (frame) => {
+        stompClient.onConnect = (frame) => {
 
-            client.subscribe(inputTopic, message => {
+            stompClient.subscribe(inputTopic, message => {
                 this.notificationCount++;
             });
         };
 
-        client.connect(login, passcode, onConnect);
+        stompClient.activate();
     }
 
     triggerAccountMenu($mdMenu, $event) {
diff --git a/ui/package.json b/ui/package.json
index 4fed6ca..5b49f01 100644
--- a/ui/package.json
+++ b/ui/package.json
@@ -29,6 +29,7 @@
     "@angular/platform-browser-dynamic": "9.0.1",
     "@angular/router": "9.0.1",
     "@angular/upgrade": "9.0.1",
+    "@fortawesome/fontawesome-free": "^5.12.1",
     "@ngui/datetime-picker": "0.16.2",
     "@stomp/ng2-stompjs": "^7.2.0",
     "@swimlane/ngx-charts": "^13.0.2",
@@ -58,7 +59,7 @@
     "angular-slick-carousel": "3.1.7",
     "angular-touch": "1.7.7",
     "angular-tree-component": "^8.4.0",
-    "angular-trix": "1.0.2",
+    "angular-trix": "^1.0.2",
     "angular-ui-bootstrap": "0.14.3",
     "angular-ui-sortable": "0.13.4",
     "angular-ui-tree": "2.9.0",
@@ -71,8 +72,11 @@
     "fast-json-patch": "^2.1.0",
     "file-saver": "^1.3.8",
     "jquery": "2.1.3",
+    "jquery-ui-dist": "^1.12.1",
     "jquery.panzoom": "2.0.5",
+    "datatables.net": "^1.10.20",
     "jsonld": "0.4.12",
+    "jsplumb": "2.1.3",
     "jszip": "^3.2.1",
     "konva": "^3.2.4",
     "lodash": "3.10.1",
@@ -92,7 +96,9 @@
     "rxjs-compat": "^6.3.3",
     "shepherd.js": "2.4.0",
     "slick-carousel": "1.6.0",
+    "systemjs": "^0.21.6",
     "tslib": "^1.10.0",
+    "trix": "0.10.1",
     "zone.js": "~0.10.2"
   },
   "devDependencies": {
diff --git a/ui/src/app/CustomMaterial/custom-material.module.ts b/ui/src/app/CustomMaterial/custom-material.module.ts
index a52f651..5d70b00 100644
--- a/ui/src/app/CustomMaterial/custom-material.module.ts
+++ b/ui/src/app/CustomMaterial/custom-material.module.ts
@@ -18,24 +18,24 @@
 
 import {NgModule} from '@angular/core';
 
-import { MatButtonModule } from '@angular/material/button';
-import { MatButtonToggleModule } from '@angular/material/button-toggle';
-import { MatCardModule } from '@angular/material/card';
-import { MatCheckboxModule } from '@angular/material/checkbox';
-import { MatDividerModule } from '@angular/material/divider';
-import { MatExpansionModule } from '@angular/material/expansion';
-import { MatIconModule } from '@angular/material/icon';
-import { MatInputModule } from '@angular/material/input';
-import { MatListModule } from '@angular/material/list';
-import { MatMenuModule } from '@angular/material/menu';
-import { MatPaginatorModule } from '@angular/material/paginator';
-import { MatProgressBarModule } from '@angular/material/progress-bar';
-import { MatSelectModule } from '@angular/material/select';
-import { MatSidenavModule } from '@angular/material/sidenav';
-import { MatSlideToggleModule } from '@angular/material/slide-toggle';
-import { MatSortModule } from '@angular/material/sort';
-import { MatTabsModule } from '@angular/material/tabs';
-import { MatToolbarModule } from '@angular/material/toolbar';
+import {MatButtonModule} from '@angular/material/button';
+import {MatButtonToggleModule} from '@angular/material/button-toggle';
+import {MatCardModule} from '@angular/material/card';
+import {MatCheckboxModule} from '@angular/material/checkbox';
+import {MatDividerModule} from '@angular/material/divider';
+import {MatExpansionModule} from '@angular/material/expansion';
+import {MatIconModule} from '@angular/material/icon';
+import {MatInputModule} from '@angular/material/input';
+import {MatListModule} from '@angular/material/list';
+import {MatMenuModule} from '@angular/material/menu';
+import {MatPaginatorModule} from '@angular/material/paginator';
+import {MatProgressBarModule} from '@angular/material/progress-bar';
+import {MatSelectModule} from '@angular/material/select';
+import {MatSidenavModule} from '@angular/material/sidenav';
+import {MatSlideToggleModule} from '@angular/material/slide-toggle';
+import {MatSortModule} from '@angular/material/sort';
+import {MatTabsModule} from '@angular/material/tabs';
+import {MatToolbarModule} from '@angular/material/toolbar';
 import {MatStepperModule} from '@angular/material/stepper';
 import {MatRadioModule} from '@angular/material/radio';
 import {MatTableModule} from '@angular/material/table';
diff --git a/ui/src/app/NS/XS.service.spec.ts b/ui/src/app/NS/XS.service.spec.ts
index 8acc99d..c5ce9af 100644
--- a/ui/src/app/NS/XS.service.spec.ts
+++ b/ui/src/app/NS/XS.service.spec.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { TestBed, getTestBed } from "@angular/core/testing";
-import { xsService } from "./XS.service";
+import {getTestBed, TestBed} from "@angular/core/testing";
+import {xsService} from "./XS.service";
 
 describe('XSService', () =>{
 
diff --git a/ui/src/app/NS/XS.service.ts b/ui/src/app/NS/XS.service.ts
index 1ce4eac..68255af 100644
--- a/ui/src/app/NS/XS.service.ts
+++ b/ui/src/app/NS/XS.service.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { Injectable } from '@angular/core';
+import {Injectable} from '@angular/core';
+
 @Injectable()
 export class xsService{
     
diff --git a/ui/src/app/app-asset-monitoring/app-asset-monitoring.module.ts b/ui/src/app/app-asset-monitoring/app-asset-monitoring.module.ts
index 21c309b..6bcd177 100644
--- a/ui/src/app/app-asset-monitoring/app-asset-monitoring.module.ts
+++ b/ui/src/app/app-asset-monitoring/app-asset-monitoring.module.ts
@@ -29,9 +29,9 @@ import {CreateAssetComponent} from "./components/create-asset/create-asset.compo
 import {WebsocketService} from "./services/websocket.service";
 import {AddPipelineDialogComponent} from "./dialog/add-pipeline/add-pipeline-dialog.component";
 import {RestService} from './services/rest.service';
-import { MatFormFieldModule } from "@angular/material/form-field";
-import { MatGridListModule } from "@angular/material/grid-list";
-import { MatInputModule } from "@angular/material/input";
+import {MatFormFieldModule} from "@angular/material/form-field";
+import {MatGridListModule} from "@angular/material/grid-list";
+import {MatInputModule} from "@angular/material/input";
 import {ElementIconText} from "../services/get-element-icon-text.service";
 import {FormsModule} from "@angular/forms";
 import {ColorPickerModule} from "ngx-color-picker";
diff --git a/ui/src/app/app-asset-monitoring/components/create-asset/create-asset.component.ts b/ui/src/app/app-asset-monitoring/components/create-asset/create-asset.component.ts
index 29bd5f4..b607315 100644
--- a/ui/src/app/app-asset-monitoring/components/create-asset/create-asset.component.ts
+++ b/ui/src/app/app-asset-monitoring/components/create-asset/create-asset.component.ts
@@ -19,7 +19,7 @@
 import {Component, HostListener} from "@angular/core";
 import Konva from "konva";
 import {AddPipelineDialogComponent} from "../../dialog/add-pipeline/add-pipeline-dialog.component";
-import { MatDialog } from "@angular/material/dialog";
+import {MatDialog} from "@angular/material/dialog";
 import {ShapeService} from "../../services/shape.service";
 import {SelectedVisualizationData} from "../../model/selected-visualization-data.model";
 import {SaveDashboardDialogComponent} from "../../dialog/save-dashboard/save-dashboard-dialog.component";
diff --git a/ui/src/app/app-asset-monitoring/components/dashboard-overview/dashboard-overview.component.ts b/ui/src/app/app-asset-monitoring/components/dashboard-overview/dashboard-overview.component.ts
index e2bca86..a737c02 100644
--- a/ui/src/app/app-asset-monitoring/components/dashboard-overview/dashboard-overview.component.ts
+++ b/ui/src/app/app-asset-monitoring/components/dashboard-overview/dashboard-overview.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from "@angular/core";
+import {Component, EventEmitter, Output} from "@angular/core";
 import {RestService} from "../../services/rest.service";
 import {DashboardConfiguration} from "../../model/dashboard-configuration.model";
 
diff --git a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
index 26c7924..f72cc90 100644
--- a/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
+++ b/ui/src/app/app-asset-monitoring/components/view-asset/view-asset.component.ts
@@ -16,8 +16,7 @@
  *
  */
 
-import {Component, ElementRef, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren} from "@angular/core";
-import {Observable, of} from "rxjs";
+import {Component, EventEmitter, Input, Output} from "@angular/core";
 
 import Konva from "konva";
 import {WebsocketService} from "../../services/websocket.service";
diff --git a/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts b/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
index 993cb27..6d74a44 100644
--- a/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
+++ b/ui/src/app/app-asset-monitoring/dialog/add-pipeline/add-pipeline-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Inject} from "@angular/core";
-import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
+import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
 import {RestApi} from "../../../services/rest-api.service";
 import {RestService} from "../../services/rest.service";
 import {ElementIconText} from "../../../services/get-element-icon-text.service";
diff --git a/ui/src/app/app-asset-monitoring/dialog/save-dashboard/save-dashboard-dialog.component.ts b/ui/src/app/app-asset-monitoring/dialog/save-dashboard/save-dashboard-dialog.component.ts
index e260140..092a7b9 100644
--- a/ui/src/app/app-asset-monitoring/dialog/save-dashboard/save-dashboard-dialog.component.ts
+++ b/ui/src/app/app-asset-monitoring/dialog/save-dashboard/save-dashboard-dialog.component.ts
@@ -18,7 +18,7 @@
 
 import {Component, Inject} from "@angular/core";
 import {RestService} from "../../services/rest.service";
-import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
+import {MAT_DIALOG_DATA, MatDialogRef} from "@angular/material/dialog";
 import {CanvasConfiguration} from "../../model/canvas-configuration.model";
 import {DashboardConfiguration} from "../../model/dashboard-configuration.model";
 import {ImageInfo} from "../../model/image-info.model";
diff --git a/ui/src/app/app-asset-monitoring/model/canvas-configuration.model.ts b/ui/src/app/app-asset-monitoring/model/canvas-configuration.model.ts
index 994683b..0565ffc 100644
--- a/ui/src/app/app-asset-monitoring/model/canvas-configuration.model.ts
+++ b/ui/src/app/app-asset-monitoring/model/canvas-configuration.model.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import {DashboardConfiguration} from "./dashboard-configuration.model";
 import Konva from "konva";
 
 export interface CanvasConfiguration {
diff --git a/ui/src/app/app-container/app-container.component.ts b/ui/src/app/app-container/app-container.component.ts
index 44c1777..26c004f 100644
--- a/ui/src/app/app-container/app-container.component.ts
+++ b/ui/src/app/app-container/app-container.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, ChangeDetectorRef } from '@angular/core';
+import {ChangeDetectorRef, Component} from '@angular/core';
 
-import { AppContainerService } from './shared/app-container.service';
-import { InstalledApp } from './shared/installed-app.model';
+import {AppContainerService} from './shared/app-container.service';
+import {InstalledApp} from './shared/installed-app.model';
 
 
 @Component({
diff --git a/ui/src/app/app-container/app-container.module.ts b/ui/src/app/app-container/app-container.module.ts
index 2c1dce9..4ab811c 100644
--- a/ui/src/app/app-container/app-container.module.ts
+++ b/ui/src/app/app-container/app-container.module.ts
@@ -16,17 +16,17 @@
  *
  */
 
-import { NgModule, COMPILER_OPTIONS, CompilerFactory, Compiler } from '@angular/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { CommonModule } from '@angular/common';
+import {Compiler, COMPILER_OPTIONS, CompilerFactory, NgModule} from '@angular/core';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {CommonModule} from '@angular/common';
 
-import { AppContainerComponent } from './app-container.component';
-import { AppContainerService } from './shared/app-container.service';
-import { ViewComponent } from './view/view.component';
+import {AppContainerComponent} from './app-container.component';
+import {AppContainerService} from './shared/app-container.service';
+import {ViewComponent} from './view/view.component';
 
-import { JitCompilerFactory } from '@angular/platform-browser-dynamic';
-import { MatDialogModule } from '@angular/material/dialog';
-import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import {JitCompilerFactory} from '@angular/platform-browser-dynamic';
+import {MatDialogModule} from '@angular/material/dialog';
+import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 
 @NgModule({
     imports: [
diff --git a/ui/src/app/app-container/shared/app-container.service.ts b/ui/src/app/app-container/shared/app-container.service.ts
index 66eae95..5bac1f3 100644
--- a/ui/src/app/app-container/shared/app-container.service.ts
+++ b/ui/src/app/app-container/shared/app-container.service.ts
@@ -16,12 +16,12 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
+import {Observable} from 'rxjs';
 
 
-import { InstalledApp } from './installed-app.model';
+import {InstalledApp} from './installed-app.model';
 
 @Injectable()
 export class AppContainerService {
diff --git a/ui/src/app/app-container/view/view.component.ts b/ui/src/app/app-container/view/view.component.ts
index 3a2af81..1d60611 100644
--- a/ui/src/app/app-container/view/view.component.ts
+++ b/ui/src/app/app-container/view/view.component.ts
@@ -16,13 +16,10 @@
  *
  */
 
-import { AfterViewInit, Compiler, Component, Input, ViewChild, ViewContainerRef, Injector } from '@angular/core';
-
-import { InstalledApp } from '../shared/installed-app.model';
-
-declare const SystemJS;
-
 import * as angularCore from '@angular/core';
+import {AfterViewInit, Compiler, Component, Injector, Input, ViewChild, ViewContainerRef} from '@angular/core';
+
+import {InstalledApp} from '../shared/installed-app.model';
 import * as angularCommon from '@angular/common';
 import * as angularPlatformBrowser from '@angular/platform-browser';
 import * as angularAnimations from '@angular/animations';
@@ -54,6 +51,9 @@ import * as angularMaterialTooltip from '@angular/material/tooltip';
 import * as rxjs from 'rxjs';
 import * as angularCdkTree from '@angular/cdk/tree';
 import * as ngxColorPicker from 'ngx-color-picker';
+
+declare const SystemJS;
+
 SystemJS.set('@angular/core', SystemJS.newModule(angularCore));
 SystemJS.set('@angular/common', SystemJS.newModule(angularCommon));
 SystemJS.set('@angular/platform-browser', SystemJS.newModule(angularPlatformBrowser));
diff --git a/ui/src/app/app-overview/app-overview.module.ts b/ui/src/app/app-overview/app-overview.module.ts
index 7aa2185..10f9ead 100644
--- a/ui/src/app/app-overview/app-overview.module.ts
+++ b/ui/src/app/app-overview/app-overview.module.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import { NgModule } from '@angular/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { CommonModule } from '@angular/common';
-import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import {NgModule} from '@angular/core';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {CommonModule} from '@angular/common';
+import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 
-import { MatFormFieldModule } from "@angular/material/form-field";
-import { MatGridListModule } from "@angular/material/grid-list";
-import { MatInputModule } from "@angular/material/input";
+import {MatFormFieldModule} from "@angular/material/form-field";
+import {MatGridListModule} from "@angular/material/grid-list";
+import {MatInputModule} from "@angular/material/input";
 import {FormsModule} from "@angular/forms";
 import {AppOverviewComponent} from "./app-overview.component";
 import {AppAssetMonitoringModule} from "../app-asset-monitoring/app-asset-monitoring.module";
diff --git a/ui/src/app/app-transport-monitoring/app-transport-monitoring.module.ts b/ui/src/app/app-transport-monitoring/app-transport-monitoring.module.ts
index 618acf1..828727f 100644
--- a/ui/src/app/app-transport-monitoring/app-transport-monitoring.module.ts
+++ b/ui/src/app/app-transport-monitoring/app-transport-monitoring.module.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import { NgModule } from '@angular/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { CommonModule } from '@angular/common';
-import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import {NgModule} from '@angular/core';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {CommonModule} from '@angular/common';
+import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 
-import { MatFormFieldModule } from "@angular/material/form-field";
-import { MatGridListModule } from "@angular/material/grid-list";
-import { MatInputModule } from "@angular/material/input";
+import {MatFormFieldModule} from "@angular/material/form-field";
+import {MatGridListModule} from "@angular/material/grid-list";
+import {MatInputModule} from "@angular/material/input";
 import {FormsModule} from "@angular/forms";
 import {AppTransportMonitoringComponent} from "./app-transport-monitoring.component";
 import {IncomingViewComponent} from "./components/incoming/incoming-view.component";
@@ -39,7 +39,7 @@ import {TransportSummaryComponent} from "./components/transport-summary/transpor
 import {SlideshowModule} from "ng-simple-slideshow";
 import {TransportActivityGraphComponent} from "./components/transport-activity-graph/transport-activity-graph.component";
 import {TimestampConverterService} from "./services/timestamp-converter.service";
-import { NgxChartsModule } from '@swimlane/ngx-charts';
+import {NgxChartsModule} from '@swimlane/ngx-charts';
 
 @NgModule({
     imports: [
diff --git a/ui/src/app/app-transport-monitoring/components/dashboard-image/dashboard-image.component.ts b/ui/src/app/app-transport-monitoring/components/dashboard-image/dashboard-image.component.ts
index 21efd1a..e3845a2 100644
--- a/ui/src/app/app-transport-monitoring/components/dashboard-image/dashboard-image.component.ts
+++ b/ui/src/app/app-transport-monitoring/components/dashboard-image/dashboard-image.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output, SecurityContext} from '@angular/core';
+import {Component, Input, SecurityContext} from '@angular/core';
 import {ParcelInfoEventModel} from "../../model/parcel-info-event.model";
-import {DomSanitizer, SafeStyle, SafeValue} from "@angular/platform-browser";
+import {DomSanitizer} from "@angular/platform-browser";
 
 @Component({
     selector: 'dashboard-image',
diff --git a/ui/src/app/app-transport-monitoring/components/dashboard-status-filled/dashboard-status-filled.component.ts b/ui/src/app/app-transport-monitoring/components/dashboard-status-filled/dashboard-status-filled.component.ts
index 5f4e3f4..aa89cd8 100644
--- a/ui/src/app/app-transport-monitoring/components/dashboard-status-filled/dashboard-status-filled.component.ts
+++ b/ui/src/app/app-transport-monitoring/components/dashboard-status-filled/dashboard-status-filled.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {Component, Input} from '@angular/core';
 
 @Component({
     selector: 'dashboard-status-filled',
diff --git a/ui/src/app/app-transport-monitoring/components/dashboard-status/dashboard-status.component.ts b/ui/src/app/app-transport-monitoring/components/dashboard-status/dashboard-status.component.ts
index 86f980d..a86c652 100644
--- a/ui/src/app/app-transport-monitoring/components/dashboard-status/dashboard-status.component.ts
+++ b/ui/src/app/app-transport-monitoring/components/dashboard-status/dashboard-status.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {Component, Input} from '@angular/core';
 
 @Component({
     selector: 'dashboard-status',
diff --git a/ui/src/app/app-transport-monitoring/components/transport-selection/transport-selection.component.ts b/ui/src/app/app-transport-monitoring/components/transport-selection/transport-selection.component.ts
index 4966cf1..78a2a1f 100644
--- a/ui/src/app/app-transport-monitoring/components/transport-selection/transport-selection.component.ts
+++ b/ui/src/app/app-transport-monitoring/components/transport-selection/transport-selection.component.ts
@@ -20,8 +20,8 @@ import {Component, EventEmitter, Output, ViewChild} from '@angular/core';
 import {AppTransportMonitoringRestService} from "../../services/app-transport-monitoring-rest.service";
 import {TransportProcessEventModel} from "../../model/transport-process-event.model";
 import {TimestampConverterService} from "../../services/timestamp-converter.service";
-import { MatPaginator } from '@angular/material/paginator';
-import { MatTableDataSource } from '@angular/material/table';
+import {MatPaginator} from '@angular/material/paginator';
+import {MatTableDataSource} from '@angular/material/table';
 
 @Component({
     selector: 'transport-selection',
diff --git a/ui/src/app/app-transport-monitoring/components/transport-summary/transport-summary.component.ts b/ui/src/app/app-transport-monitoring/components/transport-summary/transport-summary.component.ts
index 8cc7cdc..0180277 100644
--- a/ui/src/app/app-transport-monitoring/components/transport-summary/transport-summary.component.ts
+++ b/ui/src/app/app-transport-monitoring/components/transport-summary/transport-summary.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {Component, Input} from '@angular/core';
 import {TransportProcessEventModel} from "../../model/transport-process-event.model";
 import {TimestampConverterService} from "../../services/timestamp-converter.service";
 import {DetectedBoxModel} from "../../model/detected-box.model";
diff --git a/ui/src/app/app-transport-monitoring/services/app-transport-monitoring-rest.service.ts b/ui/src/app/app-transport-monitoring/services/app-transport-monitoring-rest.service.ts
index 2f0147f..bd7950d 100644
--- a/ui/src/app/app-transport-monitoring/services/app-transport-monitoring-rest.service.ts
+++ b/ui/src/app/app-transport-monitoring/services/app-transport-monitoring-rest.service.ts
@@ -19,7 +19,7 @@
 import {HttpClient} from "@angular/common/http";
 import {Injectable} from "@angular/core";
 import {map} from "rxjs/operators";
-import {Observable, of} from "rxjs";
+import {Observable} from "rxjs";
 import {AuthStatusService} from "../../services/auth-status.service";
 import {ActivityDetectionModel} from "../model/activity-detection.model";
 import {ParcelInfoModel} from "../model/parcel-info.model";
diff --git a/ui/src/app/configuration/configuration.component.spec.ts b/ui/src/app/configuration/configuration.component.spec.ts
index 1b3bcb7..2aae6ce 100644
--- a/ui/src/app/configuration/configuration.component.spec.ts
+++ b/ui/src/app/configuration/configuration.component.spec.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import { TestBed, async, ComponentFixture } from '@angular/core/testing';
-import { ConfigurationComponent } from './configuration.component';
-import { CommonModule } from '@angular/common';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { ConfigurationService } from './shared/configuration.service';
-import { ConfigurationMockService } from './shared/configuration.test.service';
-import { NO_ERRORS_SCHEMA } from '@angular/core';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
+import {ConfigurationComponent} from './configuration.component';
+import {CommonModule} from '@angular/common';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {ConfigurationService} from './shared/configuration.service';
+import {ConfigurationMockService} from './shared/configuration.test.service';
+import {NO_ERRORS_SCHEMA} from '@angular/core';
 
 describe('ConfigurationComponent', () => {
 
diff --git a/ui/src/app/configuration/configuration.component.ts b/ui/src/app/configuration/configuration.component.ts
index 6d2822c..9811354 100644
--- a/ui/src/app/configuration/configuration.component.ts
+++ b/ui/src/app/configuration/configuration.component.ts
@@ -16,13 +16,7 @@
  *
  */
 
-import {Component, ViewChild} from '@angular/core';
-
-import { ConfigurationService } from './shared/configuration.service';
-import { StreampipesPeContainer } from "./shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "./shared/streampipes-pe-container-configs";
-import { MatPaginator } from "@angular/material/paginator";
-import { MatTableDataSource } from "@angular/material/table";
+import {Component} from '@angular/core';
 import {animate, state, style, transition, trigger} from '@angular/animations';
 
 @Component({
diff --git a/ui/src/app/configuration/configuration.module.ts b/ui/src/app/configuration/configuration.module.ts
index 58c352c..210d22c 100644
--- a/ui/src/app/configuration/configuration.module.ts
+++ b/ui/src/app/configuration/configuration.module.ts
@@ -17,12 +17,12 @@
  */
 
 import {NgModule} from '@angular/core';
-import { MatButtonModule } from '@angular/material/button';
-import { MatCheckboxModule } from '@angular/material/checkbox';
-import { MatGridListModule } from '@angular/material/grid-list';
-import { MatIconModule } from '@angular/material/icon';
-import { MatInputModule } from '@angular/material/input';
-import { MatTooltipModule } from '@angular/material/tooltip';
+import {MatButtonModule} from '@angular/material/button';
+import {MatCheckboxModule} from '@angular/material/checkbox';
+import {MatGridListModule} from '@angular/material/grid-list';
+import {MatIconModule} from '@angular/material/icon';
+import {MatInputModule} from '@angular/material/input';
+import {MatTooltipModule} from '@angular/material/tooltip';
 import {FlexLayoutModule} from '@angular/flex-layout';
 import {CommonModule} from '@angular/common';
 import {FormsModule} from '@angular/forms';
diff --git a/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts b/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
index e32d3d3..630dcb5 100644
--- a/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
+++ b/ui/src/app/configuration/consul-configs-boolean/consul-configs-boolean.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "../shared/streampipes-pe-container-configs";
+import {Component, Input} from '@angular/core';
+import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
 import {ConfigurationService} from '../shared/configuration.service'
+
 @Component({
     selector: 'consul-configs-boolean',
     templateUrl: './consul-configs-boolean.component.html',
diff --git a/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts b/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
index be26790..ff6da01 100644
--- a/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
+++ b/ui/src/app/configuration/consul-configs-number/consul-configs-number.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "../shared/streampipes-pe-container-configs";
+import {Component, Input} from '@angular/core';
+import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
 import {ConfigurationService} from '../shared/configuration.service';
+
 @Component({
     selector: 'consul-configs-number',
     templateUrl: './consul-configs-number.component.html',
diff --git a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.spec.ts b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.spec.ts
index 1cb480d..e074aad 100644
--- a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.spec.ts
+++ b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.spec.ts
@@ -16,18 +16,24 @@
  *
  */
 
-import { DebugElement} from '@angular/core';
-import { TestBed, async, inject,  ComponentFixture} from '@angular/core/testing';
-import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
-import { ConsulConfigsPasswordComponent } from './consul-configs-password.component';
+import {DebugElement} from '@angular/core';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule} from '@angular/common/http/testing';
+import {ConsulConfigsPasswordComponent} from './consul-configs-password.component';
 import {ConfigurationService} from '../shared/configuration.service'
-import { CommonModule } from '@angular/common';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { MatButtonModule, MatGridListModule, MatInputModule, MatIconModule, MatTooltipModule, MatCheckboxModule } from '@angular/material';
-import { FormsModule } from '@angular/forms';
-import { Component } from '@angular/core';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import { By } from '@angular/platform-browser';
+import {CommonModule} from '@angular/common';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {
+    MatButtonModule,
+    MatCheckboxModule,
+    MatGridListModule,
+    MatIconModule,
+    MatInputModule,
+    MatTooltipModule
+} from '@angular/material';
+import {FormsModule} from '@angular/forms';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
+import {By} from '@angular/platform-browser';
 
 
 describe('ConsulConfigsPasswordComponent', () =>{
diff --git a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
index cb90c3b..a70f10a 100644
--- a/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
+++ b/ui/src/app/configuration/consul-configs-password/consul-configs-password.component.ts
@@ -16,9 +16,8 @@
  *
  */
 
-import { Component, Input } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "../shared/streampipes-pe-container-configs";
+import {Component, Input} from '@angular/core';
+import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
 import {ConfigurationService} from '../shared/configuration.service'
 
 const hiddenPasswordString = '*****';
diff --git a/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts b/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
index 59e5f20..e2821ee 100644
--- a/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
+++ b/ui/src/app/configuration/consul-configs-text/consul-configs-text.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "../shared/streampipes-pe-container-configs";
+import {Component, Input} from '@angular/core';
+import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
 import {ConfigurationService} from '../shared/configuration.service'
+
 @Component({
     selector: 'consul-configs-text',
     templateUrl: './consul-configs-text.component.html',
diff --git a/ui/src/app/configuration/consul-configs/consul-configs.component.ts b/ui/src/app/configuration/consul-configs/consul-configs.component.ts
index f6c2bc5..18410db 100644
--- a/ui/src/app/configuration/consul-configs/consul-configs.component.ts
+++ b/ui/src/app/configuration/consul-configs/consul-configs.component.ts
@@ -16,9 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {StreampipesPeContainer} from "../shared/streampipes-pe-container.model";
 import {xsService} from '../../NS/XS.service'
+
 @Component({
     selector: 'consul-configs',
     templateUrl: './consul-configs.component.html',
diff --git a/ui/src/app/configuration/consul-service/consul-service.component.spec.ts b/ui/src/app/configuration/consul-service/consul-service.component.spec.ts
index 1c4a052..2665881 100644
--- a/ui/src/app/configuration/consul-service/consul-service.component.spec.ts
+++ b/ui/src/app/configuration/consul-service/consul-service.component.spec.ts
@@ -16,15 +16,21 @@
  *
  */
 
-import { TestBed, async, ComponentFixture } from '@angular/core/testing';
-import { CommonModule } from '@angular/common';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { ConsulServiceComponent } from './consul-service.component';
-import { MatButtonModule, MatGridListModule, MatInputModule, MatIconModule, MatTooltipModule, MatCheckboxModule } from '@angular/material';
-import { FormsModule } from '@angular/forms';
-import { Component } from '@angular/core';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
-import {StreampipesPeContainerConifgs} from '../shared/streampipes-pe-container-configs';
+import {async, ComponentFixture, TestBed} from '@angular/core/testing';
+import {CommonModule} from '@angular/common';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {ConsulServiceComponent} from './consul-service.component';
+import {
+    MatButtonModule,
+    MatCheckboxModule,
+    MatGridListModule,
+    MatIconModule,
+    MatInputModule,
+    MatTooltipModule
+} from '@angular/material';
+import {FormsModule} from '@angular/forms';
+import {Component} from '@angular/core';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 import {StreampipesPeContainer} from '../shared/streampipes-pe-container.model';
 
 describe('ConsulServiceComponent', () => {
diff --git a/ui/src/app/configuration/consul-service/consul-service.component.ts b/ui/src/app/configuration/consul-service/consul-service.component.ts
index f2758b2..6a7acb6 100644
--- a/ui/src/app/configuration/consul-service/consul-service.component.ts
+++ b/ui/src/app/configuration/consul-service/consul-service.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { Component, EventEmitter, Input, Output } from '@angular/core';
-import { StreampipesPeContainer } from "../shared/streampipes-pe-container.model";
-import { StreampipesPeContainerConifgs } from "../shared/streampipes-pe-container-configs";
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {StreampipesPeContainer} from "../shared/streampipes-pe-container.model";
+
 @Component({
     selector: 'consul-service',
     templateUrl: './consul-service.component.html',
diff --git a/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts b/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
index d19825e..4585f81 100644
--- a/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
+++ b/ui/src/app/configuration/messaging-configuration/messaging-configuration.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, ViewChild} from "@angular/core";
+import {Component} from "@angular/core";
 import {ConfigurationService} from "../shared/configuration.service";
 import {MessagingSettings} from "../shared/messaging-settings.model";
 import {CdkDragDrop, moveItemInArray} from '@angular/cdk/drag-drop';
diff --git a/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts b/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
index 9bf994c..6455d27 100644
--- a/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
+++ b/ui/src/app/configuration/pipeline-element-configuration/pipeline-element-configuration.component.ts
@@ -21,8 +21,8 @@ import {animate, state, style, transition, trigger} from "@angular/animations";
 import {ConfigurationService} from "../shared/configuration.service";
 import {StreampipesPeContainer} from "../shared/streampipes-pe-container.model";
 import {StreampipesPeContainerConifgs} from "../shared/streampipes-pe-container-configs";
-import { MatPaginator } from "@angular/material/paginator";
-import { MatTableDataSource } from "@angular/material/table";
+import {MatPaginator} from "@angular/material/paginator";
+import {MatTableDataSource} from "@angular/material/table";
 
 @Component({
     selector: 'pipeline-element-configuration',
diff --git a/ui/src/app/configuration/shared/configuration.service.spec.ts b/ui/src/app/configuration/shared/configuration.service.spec.ts
index 74f301c..668a0fa 100644
--- a/ui/src/app/configuration/shared/configuration.service.spec.ts
+++ b/ui/src/app/configuration/shared/configuration.service.spec.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { TestBed, async, getTestBed } from '@angular/core/testing';
-import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
-import { ConfigurationService } from './configuration.service';
-import { StreampipesPeContainer } from './streampipes-pe-container.model';
+import {getTestBed, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule, HttpTestingController} from '@angular/common/http/testing';
+import {ConfigurationService} from './configuration.service';
+import {StreampipesPeContainer} from './streampipes-pe-container.model';
 
 describe('ConfigurationService', () => {
 
diff --git a/ui/src/app/configuration/shared/configuration.service.ts b/ui/src/app/configuration/shared/configuration.service.ts
index b2ded07..0b85bf9 100644
--- a/ui/src/app/configuration/shared/configuration.service.ts
+++ b/ui/src/app/configuration/shared/configuration.service.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
 
-import { StreampipesPeContainer } from './streampipes-pe-container.model';
-import { MessagingSettings } from './messaging-settings.model';
+import {StreampipesPeContainer} from './streampipes-pe-container.model';
+import {MessagingSettings} from './messaging-settings.model';
 
 @Injectable()
 export class ConfigurationService {
diff --git a/ui/src/app/configuration/shared/configuration.test.service.ts b/ui/src/app/configuration/shared/configuration.test.service.ts
index 21134a7..cd617cd 100644
--- a/ui/src/app/configuration/shared/configuration.test.service.ts
+++ b/ui/src/app/configuration/shared/configuration.test.service.ts
@@ -16,11 +16,11 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { Observable ,  of } from 'rxjs';
+import {Injectable} from '@angular/core';
+import {Observable, of} from 'rxjs';
 
-import { StreampipesPeContainer } from './streampipes-pe-container.model';
-import { StreampipesPeContainerConifgs } from './streampipes-pe-container-configs';
+import {StreampipesPeContainer} from './streampipes-pe-container.model';
+import {StreampipesPeContainerConifgs} from './streampipes-pe-container-configs';
 
 @Injectable()
 export class ConfigurationMockService {
diff --git a/ui/src/app/configuration/shared/streampipes-pe-container.model.ts b/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
index 84f763e..f3eb16a 100644
--- a/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
+++ b/ui/src/app/configuration/shared/streampipes-pe-container.model.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { StreampipesPeContainerConifgs } from "./streampipes-pe-container-configs";
+import {StreampipesPeContainerConifgs} from "./streampipes-pe-container-configs";
+
 //ConsulService = StreampipesPeContainer ERLEDIGT
 export interface StreampipesPeContainer {
     name: string;
diff --git a/ui/src/app/connect/connect.component.ts b/ui/src/app/connect/connect.component.ts
index 88de555..df15311 100644
--- a/ui/src/app/connect/connect.component.ts
+++ b/ui/src/app/connect/connect.component.ts
@@ -16,8 +16,9 @@
  *
  */
 
-import { Component, OnInit, ViewChild } from '@angular/core';
-import { AdapterDescription } from './model/connect/AdapterDescription';
+import {Component} from '@angular/core';
+import {AdapterDescription} from './model/connect/AdapterDescription';
+
 @Component({
   selector: 'sp-connect',
   templateUrl: './connect.component.html',
diff --git a/ui/src/app/connect/connect.module.ts b/ui/src/app/connect/connect.module.ts
index 43dabb9..c9c1b97 100644
--- a/ui/src/app/connect/connect.module.ts
+++ b/ui/src/app/connect/connect.module.ts
@@ -16,80 +16,80 @@
  *
  */
 
-import { CommonModule } from '@angular/common';
-import { NgModule } from '@angular/core';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { MatFormFieldModule } from '@angular/material/form-field';
-import { MatGridListModule } from '@angular/material/grid-list';
-import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
-import { BrowserModule } from '@angular/platform-browser';
+import {CommonModule} from '@angular/common';
+import {NgModule} from '@angular/core';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {FormsModule, ReactiveFormsModule} from '@angular/forms';
+import {MatFormFieldModule} from '@angular/material/form-field';
+import {MatGridListModule} from '@angular/material/grid-list';
+import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
+import {BrowserModule} from '@angular/platform-browser';
 
-import { ConnectComponent } from './connect.component';
-import { NewAdapterComponent } from './new-adapter/new-adapter.component';
+import {ConnectComponent} from './connect.component';
+import {NewAdapterComponent} from './new-adapter/new-adapter.component';
 
-import { FormatFormComponent } from './format-form/format-form.component';
-import { SelectProtocolComponent } from './select-protocol-component/select-protocol.component';
+import {FormatFormComponent} from './format-form/format-form.component';
+import {SelectProtocolComponent} from './select-protocol-component/select-protocol.component';
 
-import { EventPropertyPrimitiveComponent } from './schema-editor/event-property-primitive/event-property-primitive.component';
-import { EventPropertyComponent } from './schema-editor/event-property/event-property.component';
-import { EventSchemaComponent } from './schema-editor/event-schema/event-schema.component';
+import {EventPropertyPrimitiveComponent} from './schema-editor/event-property-primitive/event-property-primitive.component';
+import {EventPropertyComponent} from './schema-editor/event-property/event-property.component';
+import {EventSchemaComponent} from './schema-editor/event-schema/event-schema.component';
 
-import { StaticPropertyComponent } from './static-properties/static-property.component';
+import {StaticPropertyComponent} from './static-properties/static-property.component';
 
-import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 
-import { RestService } from './rest.service';
+import {RestService} from './rest.service';
 
-import { MatInputModule } from '@angular/material/input';
-import { DragulaModule } from 'ng2-dragula';
-import { AdapterStartedDialog } from './new-adapter/component/adapter-started-dialog.component';
-import { DataTypesService } from './schema-editor/data-type.service';
-import { StaticFreeInputComponent } from './static-properties/static-free-input/static-free-input.component';
-import { StaticNumberInputComponent } from './static-properties/static-number-input/static-number-input.component';
-import { StaticPropertyUtilService } from './static-properties/static-property-util.service';
-import { StaticTextInputComponent } from './static-properties/static-text-input/static-text-input.component';
-import { StaticUrlInputComponent } from './static-properties/static-url-input/static-url-input.component';
-import { TransformationRuleService } from './transformation-rule.service';
-import { StaticSecretInputComponent } from "./static-properties/static-secret-input/static-secret-input.component";
+import {MatInputModule} from '@angular/material/input';
+import {DragulaModule} from 'ng2-dragula';
+import {AdapterStartedDialog} from './new-adapter/component/adapter-started-dialog.component';
+import {DataTypesService} from './schema-editor/data-type.service';
+import {StaticFreeInputComponent} from './static-properties/static-free-input/static-free-input.component';
+import {StaticNumberInputComponent} from './static-properties/static-number-input/static-number-input.component';
+import {StaticPropertyUtilService} from './static-properties/static-property-util.service';
+import {StaticTextInputComponent} from './static-properties/static-text-input/static-text-input.component';
+import {StaticUrlInputComponent} from './static-properties/static-url-input/static-url-input.component';
+import {TransformationRuleService} from './transformation-rule.service';
+import {StaticSecretInputComponent} from "./static-properties/static-secret-input/static-secret-input.component";
 
-import { ProtocolComponent } from './protocol-component/protocol.component';
+import {ProtocolComponent} from './protocol-component/protocol.component';
 
-import { ShepherdService } from '../services/tour/shepherd.service';
-import { ConnectService } from './connect.service';
-import { AdapterDescriptionComponent } from './data-marketplace/adapter-description/adapter-description.component';
-import { DataMarketplaceComponent } from './data-marketplace/data-marketplace.component';
-import { DataMarketplaceService } from './data-marketplace/data-marketplace.service';
-import { FormatComponent } from './format-component/format.component';
-import { FormatListComponent } from './format-list-component/format-list.component';
-import { ProtocolListComponent } from './protocol-list-component/protocol-list.component';
-import { UnitProviderService } from './schema-editor/unit-provider.service';
-import { SelectStaticPropertiesComponent } from './select-static-properties-component/select-static-properties.component';
-import { StaticAnyInput } from './static-properties/static-any-input/static-any-input.component';
-import { StaticOneOfInputComponent } from './static-properties/static-one-of-input/static-one-of-input.component';
-import { IconService } from './new-adapter/icon.service';
-import { StaticFileInputComponent } from './static-properties/static-file-input/static-file-input.component';
-import { StaticFileRestService } from './static-properties/static-file-input/static-file-rest.service';
-import { FileManagementComponent } from './file-management/file-management.component';
-import { FileRestService } from './file-management/service/filerest.service';
-import { StaticRuntimeResolvableAnyInputComponent } from "./static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component";
-import { StaticRuntimeResolvableOneOfInputComponent } from "./static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component";
-import { StaticGroupComponent } from './static-properties/static-group/static-group.component';
-import { StaticAlternativesComponent } from './static-properties/static-alternatives/static-alternatives.component';
+import {ShepherdService} from '../services/tour/shepherd.service';
+import {ConnectService} from './connect.service';
+import {AdapterDescriptionComponent} from './data-marketplace/adapter-description/adapter-description.component';
+import {DataMarketplaceComponent} from './data-marketplace/data-marketplace.component';
+import {DataMarketplaceService} from './data-marketplace/data-marketplace.service';
+import {FormatComponent} from './format-component/format.component';
+import {FormatListComponent} from './format-list-component/format-list.component';
+import {ProtocolListComponent} from './protocol-list-component/protocol-list.component';
+import {UnitProviderService} from './schema-editor/unit-provider.service';
+import {SelectStaticPropertiesComponent} from './select-static-properties-component/select-static-properties.component';
+import {StaticAnyInput} from './static-properties/static-any-input/static-any-input.component';
+import {StaticOneOfInputComponent} from './static-properties/static-one-of-input/static-one-of-input.component';
+import {IconService} from './new-adapter/icon.service';
+import {StaticFileInputComponent} from './static-properties/static-file-input/static-file-input.component';
+import {StaticFileRestService} from './static-properties/static-file-input/static-file-rest.service';
+import {FileManagementComponent} from './file-management/file-management.component';
+import {FileRestService} from './file-management/service/filerest.service';
+import {StaticRuntimeResolvableAnyInputComponent} from "./static-properties/static-runtime-resolvable-any-input/static-runtime-resolvable-any-input.component";
+import {StaticRuntimeResolvableOneOfInputComponent} from "./static-properties/static-runtime-resolvable-oneof-input/static-runtime-resolvable-oneof-input.component";
+import {StaticGroupComponent} from './static-properties/static-group/static-group.component';
+import {StaticAlternativesComponent} from './static-properties/static-alternatives/static-alternatives.component';
 import {StaticCollectionComponent} from './static-properties/static-collection/static-collection.component';
 
 
-import { FilterPipe } from '../connect/data-marketplace/filter.pipe';
-import { AdapterExportDialog } from './data-marketplace/adapter-export/adapter-export-dialog.component';
-import { AdapterUploadDialog } from './data-marketplace/adapter-upload/adapter-upload-dialog.component';
-import { EventPropertyListComponent } from './schema-editor/event-property-list/event-property-list.component';
-import { StaticMappingNaryComponent } from './static-properties/static-mapping-nary/static-mapping-nary.component';
-import { StaticMappingUnaryComponent } from './static-properties/static-mapping-unary/static-mapping-unary.component';
-import { TimestampPipe } from './filter/timestamp.pipe';
-import { PlatformServicesModule } from '../platform-services/platform.module';
+import {FilterPipe} from '../connect/data-marketplace/filter.pipe';
+import {AdapterExportDialog} from './data-marketplace/adapter-export/adapter-export-dialog.component';
+import {AdapterUploadDialog} from './data-marketplace/adapter-upload/adapter-upload-dialog.component';
+import {EventPropertyListComponent} from './schema-editor/event-property-list/event-property-list.component';
+import {StaticMappingNaryComponent} from './static-properties/static-mapping-nary/static-mapping-nary.component';
+import {StaticMappingUnaryComponent} from './static-properties/static-mapping-unary/static-mapping-unary.component';
+import {TimestampPipe} from './filter/timestamp.pipe';
+import {PlatformServicesModule} from '../platform-services/platform.module';
 
-import { TreeModule } from 'angular-tree-component';
-import { EventSchemaPreviewComponent } from './schema-editor/event-schema-preview/event-schema-preview.component';
+import {TreeModule} from 'angular-tree-component';
+import {EventSchemaPreviewComponent} from './schema-editor/event-schema-preview/event-schema-preview.component';
 import {EventPropertyRowComponent} from "./schema-editor/event-property-row/event-property-row.component";
 import {PropertySelectorService} from "../services/property-selector.service";
 import {StaticColorPickerComponent} from "./static-properties/static-color-picker/static-color-picker.component";
diff --git a/ui/src/app/connect/connect.service.ts b/ui/src/app/connect/connect.service.ts
index 2b64434..74d3a80 100644
--- a/ui/src/app/connect/connect.service.ts
+++ b/ui/src/app/connect/connect.service.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { AdapterDescription } from './model/connect/AdapterDescription';
+import {Injectable} from '@angular/core';
+import {AdapterDescription} from './model/connect/AdapterDescription';
 import {GenericAdapterSetDescription} from './model/connect/GenericAdapterSetDescription';
 import {GenericAdapterStreamDescription} from './model/connect/GenericAdapterStreamDescription';
 import {SpecificAdapterStreamDescription} from './model/connect/SpecificAdapterStreamDescription';
diff --git a/ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.ts b/ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.ts
index f85d264..cb415a0 100644
--- a/ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.ts
+++ b/ui/src/app/connect/data-marketplace/adapter-description/adapter-description.component.ts
@@ -16,12 +16,12 @@
  *
  */
 
-import { Component, Input, EventEmitter, Output } from '@angular/core';
-import { AdapterDescription } from '../../model/connect/AdapterDescription';
-import { ConnectService } from '../../connect.service';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {AdapterDescription} from '../../model/connect/AdapterDescription';
+import {ConnectService} from '../../connect.service';
 import {DataMarketplaceService} from "../data-marketplace.service";
 import {AdapterExportDialog} from '../adapter-export/adapter-export-dialog.component';
-import { MatDialog } from '@angular/material/dialog';
+import {MatDialog} from '@angular/material/dialog';
 
 @Component({
   selector: 'sp-adapter-description',
diff --git a/ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.ts b/ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.ts
index a5d0c25..0dc0925 100644
--- a/ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.ts
+++ b/ui/src/app/connect/data-marketplace/adapter-export/adapter-export-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Inject} from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
 import {ShepherdService} from '../../../services/tour/shepherd.service';
 import {RestService} from "../../rest.service";
 import {TsonLdSerializerService} from '../../../platform-services/tsonld-serializer.service';
diff --git a/ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.ts b/ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.ts
index bb9edb2..77c6904 100644
--- a/ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.ts
+++ b/ui/src/app/connect/data-marketplace/adapter-upload/adapter-upload-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Inject} from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
 import {RestService} from "../../rest.service";
 import {TsonLdSerializerService} from '../../../platform-services/tsonld-serializer.service';
 import {AdapterDescriptionList} from '../../model/connect/AdapterDescriptionList';
diff --git a/ui/src/app/connect/data-marketplace/data-marketplace.component.ts b/ui/src/app/connect/data-marketplace/data-marketplace.component.ts
index a24f398..bd358cf 100644
--- a/ui/src/app/connect/data-marketplace/data-marketplace.component.ts
+++ b/ui/src/app/connect/data-marketplace/data-marketplace.component.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import { Component, OnInit, Output, EventEmitter } from '@angular/core';
-import { DataMarketplaceService } from './data-marketplace.service';
-import { AdapterDescription } from '../model/connect/AdapterDescription';
-import { ShepherdService } from "../../services/tour/shepherd.service";
-import { ConnectService } from '../connect.service';
-import { FilterPipe } from './filter.pipe';
+import {Component, EventEmitter, OnInit, Output} from '@angular/core';
+import {DataMarketplaceService} from './data-marketplace.service';
+import {AdapterDescription} from '../model/connect/AdapterDescription';
+import {ShepherdService} from "../../services/tour/shepherd.service";
+import {ConnectService} from '../connect.service';
+import {FilterPipe} from './filter.pipe';
 import {AdapterUploadDialog} from './adapter-upload/adapter-upload-dialog.component';
-import { MatDialog } from '@angular/material/dialog';
+import {MatDialog} from '@angular/material/dialog';
 import {AdapterDescriptionList} from '../model/connect/AdapterDescriptionList';
 import {TsonLdSerializerService} from '../../platform-services/tsonld-serializer.service';
 
diff --git a/ui/src/app/connect/data-marketplace/data-marketplace.service.ts b/ui/src/app/connect/data-marketplace/data-marketplace.service.ts
index 4054713..1b2211a 100644
--- a/ui/src/app/connect/data-marketplace/data-marketplace.service.ts
+++ b/ui/src/app/connect/data-marketplace/data-marketplace.service.ts
@@ -16,53 +16,25 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-
-
-import { TsonLd } from '../../platform-services/tsonld';
-import { AuthStatusService } from '../../services/auth-status.service';
-import { AdapterDescriptionList } from '../model/connect/AdapterDescriptionList';
-import { AdapterDescription } from '../model/connect/AdapterDescription';
-import { AdapterSetDescription } from '../model/connect/AdapterSetDescription';
-import { GenericAdapterSetDescription } from '../model/connect/GenericAdapterSetDescription';
-import { SpecificAdapterSetDescription } from '../model/connect/SpecificAdapterSetDescription';
-import { AdapterStreamDescription } from '../model/connect/AdapterStreamDescription';
-import { GenericAdapterStreamDescription } from '../model/connect/GenericAdapterStreamDescription';
-import { SpecificAdapterStreamDescription } from '../model/connect/SpecificAdapterStreamDescription';
-import { FreeTextStaticProperty } from '../model/FreeTextStaticProperty';
-import { ProtocolDescription } from '../model/connect/grounding/ProtocolDescription';
-import { ProtocolDescriptionList } from '../model/connect/grounding/ProtocolDescriptionList';
-import { FormatDescription } from '../model/connect/grounding/FormatDescription';
-import { DataStreamDescription } from '../model/DataStreamDescription';
-import { EventSchema } from '../schema-editor/model/EventSchema';
-import { EventPropertyPrimitive } from '../schema-editor/model/EventPropertyPrimitive';
-import { ConnectService } from '../connect.service';
-import { AnyStaticProperty } from '../model/AnyStaticProperty';
-import { Option } from '../model/Option';
-import { RenameRuleDescription} from '../model/connect/rules/RenameRuleDescription';
-import { DeleteRuleDescription} from '../model/connect/rules/DeleteRuleDescription';
-import { AddNestedRuleDescription} from '../model/connect/rules/AddNestedRuleDescription';
-import { MoveRuleDescription} from '../model/connect/rules/MoveRuleDesctiption';
-import { EventPropertyNested} from '../schema-editor/model/EventPropertyNested';
-import {EventPropertyList} from '../schema-editor/model/EventPropertyList';
-import {UUID} from 'angular2-uuid';
-import {DataSetDescription} from '../model/DataSetDescription';
-import {OneOfStaticProperty} from '../model/OneOfStaticProperty';
-import {UnitTransformRuleDescription} from '../model/connect/rules/UnitTransformRuleDescription';
-import {RemoveDuplicatesRuleDescription} from '../model/connect/rules/RemoveDuplicatesRuleDescription';
-import {AddTimestampRuleDescription} from '../model/connect/rules/AddTimestampRuleDescription';
-import {AddValueTransformationRuleDescription} from '../model/connect/rules/AddValueTransformationRuleDescription';
-import {FileStaticProperty} from '../model/FileStaticProperty';
-import {TimestampTransformationRuleDescription} from '../model/connect/rules/TimestampTransformationRuleDescription';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
+import {AuthStatusService} from '../../services/auth-status.service';
+import {AdapterDescriptionList} from '../model/connect/AdapterDescriptionList';
+import {AdapterDescription} from '../model/connect/AdapterDescription';
+import {GenericAdapterSetDescription} from '../model/connect/GenericAdapterSetDescription';
+import {SpecificAdapterSetDescription} from '../model/connect/SpecificAdapterSetDescription';
+import {GenericAdapterStreamDescription} from '../model/connect/GenericAdapterStreamDescription';
+import {SpecificAdapterStreamDescription} from '../model/connect/SpecificAdapterStreamDescription';
+import {ProtocolDescription} from '../model/connect/grounding/ProtocolDescription';
+import {ConnectService} from '../connect.service';
 import {RestApi} from "../../services/rest-api.service";
 import {TsonLdSerializerService} from "../../platform-services/tsonld-serializer.service";
 import {AlternativesStaticProperty} from "../model/AlternativesStaticProperty";
 import {GroupStaticProperty} from "../model/GroupStaticProperty";
 import {StaticProperty} from "../model/StaticProperty";
-import { CollectionStaticProperty } from "../model/CollectionStaticProperty";
+import {CollectionStaticProperty} from "../model/CollectionStaticProperty";
 
 @Injectable()
 export class DataMarketplaceService {
diff --git a/ui/src/app/connect/data-marketplace/filter.pipe.ts b/ui/src/app/connect/data-marketplace/filter.pipe.ts
index 1d70af8..b7e1a0f 100644
--- a/ui/src/app/connect/data-marketplace/filter.pipe.ts
+++ b/ui/src/app/connect/data-marketplace/filter.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Pipe, PipeTransform } from '@angular/core';
+import {Pipe, PipeTransform} from '@angular/core';
 
 @Pipe({
     name: 'filter'
diff --git a/ui/src/app/connect/file-management/file-management.component.ts b/ui/src/app/connect/file-management/file-management.component.ts
index 6513cd1..e1d024b 100644
--- a/ui/src/app/connect/file-management/file-management.component.ts
+++ b/ui/src/app/connect/file-management/file-management.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { Component, OnInit } from '@angular/core';
-import { FileRestService}  from './service/filerest.service';
-import { MatSnackBar } from '@angular/material/snack-bar';
+import {Component, OnInit} from '@angular/core';
+import {FileRestService} from './service/filerest.service';
+import {MatSnackBar} from '@angular/material/snack-bar';
 
 @Component({
   selector: 'sp-file-management',
diff --git a/ui/src/app/connect/file-management/service/filerest.service.ts b/ui/src/app/connect/file-management/service/filerest.service.ts
index 8821ee2..f5bcd24 100644
--- a/ui/src/app/connect/file-management/service/filerest.service.ts
+++ b/ui/src/app/connect/file-management/service/filerest.service.ts
@@ -18,7 +18,7 @@
 
 import {Injectable} from '@angular/core';
 import {Observable} from 'rxjs';
-import { map } from 'rxjs/operators';
+import {map} from 'rxjs/operators';
 import {HttpClient, HttpRequest} from '@angular/common/http';
 import {AuthStatusService} from '../../../services/auth-status.service';
 
diff --git a/ui/src/app/connect/filter/timestamp.pipe.ts b/ui/src/app/connect/filter/timestamp.pipe.ts
index 1bf088f..2ad1be5 100644
--- a/ui/src/app/connect/filter/timestamp.pipe.ts
+++ b/ui/src/app/connect/filter/timestamp.pipe.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Pipe, PipeTransform } from '@angular/core';
+import {Pipe, PipeTransform} from '@angular/core';
 import {EventProperty} from '../schema-editor/model/EventProperty';
 
 @Pipe({
diff --git a/ui/src/app/connect/format-component/format.component.ts b/ui/src/app/connect/format-component/format.component.ts
index 3141a37..5e50569 100644
--- a/ui/src/app/connect/format-component/format.component.ts
+++ b/ui/src/app/connect/format-component/format.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { Component, Input, Output, EventEmitter } from '@angular/core';
-import { FormatDescription } from '../model/connect/grounding/FormatDescription';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {FormatDescription} from '../model/connect/grounding/FormatDescription';
 import {ShepherdService} from '../../services/tour/shepherd.service';
 
 @Component({
diff --git a/ui/src/app/connect/format-form/format-form.component.ts b/ui/src/app/connect/format-form/format-form.component.ts
index f7d4600..0297e4a 100644
--- a/ui/src/app/connect/format-form/format-form.component.ts
+++ b/ui/src/app/connect/format-form/format-form.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FormatDescription } from '../model/connect/grounding/FormatDescription';
-import { isUndefined } from 'util';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {FormatDescription} from '../model/connect/grounding/FormatDescription';
+import {isUndefined} from 'util';
 
 @Component({
     selector: 'app-format-form',
diff --git a/ui/src/app/connect/format-list-component/format-list.component.ts b/ui/src/app/connect/format-list-component/format-list.component.ts
index 0504dfe..3804a7b 100644
--- a/ui/src/app/connect/format-list-component/format-list.component.ts
+++ b/ui/src/app/connect/format-list-component/format-list.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { Component, Input, Output, EventEmitter } from '@angular/core';
-import {ProtocolDescription} from '../model/connect/grounding/ProtocolDescription';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
 import {FormatDescription} from '../model/connect/grounding/FormatDescription';
+
 @Component({
     selector: 'app-format-list',
     templateUrl: './format-list.component.html',
diff --git a/ui/src/app/connect/model/AnyStaticProperty.ts b/ui/src/app/connect/model/AnyStaticProperty.ts
index 30f05de..0814a92 100644
--- a/ui/src/app/connect/model/AnyStaticProperty.ts
+++ b/ui/src/app/connect/model/AnyStaticProperty.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { SelectionStaticProperty } from './SelectionStaticProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {SelectionStaticProperty} from './SelectionStaticProperty';
 
 @RdfsClass('sp:AnyStaticProperty')
 export class AnyStaticProperty extends SelectionStaticProperty {}
diff --git a/ui/src/app/connect/model/ApplicationLink.ts b/ui/src/app/connect/model/ApplicationLink.ts
index 39f6635..cb27ef2 100644
--- a/ui/src/app/connect/model/ApplicationLink.ts
+++ b/ui/src/app/connect/model/ApplicationLink.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 
 @RdfsClass('sp:ApplicationLink')
 export class ApplicationLink {
diff --git a/ui/src/app/connect/model/BoundPipelineElement.ts b/ui/src/app/connect/model/BoundPipelineElement.ts
index c28e4f7..00600c9 100644
--- a/ui/src/app/connect/model/BoundPipelineElement.ts
+++ b/ui/src/app/connect/model/BoundPipelineElement.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { InvocableStreamPipesEntity } from "./InvocableStreamPipesEntity";
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {InvocableStreamPipesEntity} from "./InvocableStreamPipesEntity";
 
 @RdfsClass('sp:BoundPipelineElement')
 export class BoundPipelineElement {
diff --git a/ui/src/app/connect/model/DataProcessorInvocation.ts b/ui/src/app/connect/model/DataProcessorInvocation.ts
index 6710930..a484525 100644
--- a/ui/src/app/connect/model/DataProcessorInvocation.ts
+++ b/ui/src/app/connect/model/DataProcessorInvocation.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 import {DataStreamDescription} from './DataStreamDescription';
 import {OutputStrategy} from './output/OutputStrategy';
 
diff --git a/ui/src/app/connect/model/DataSetDescription.ts b/ui/src/app/connect/model/DataSetDescription.ts
index deb595c..2e5bd51 100644
--- a/ui/src/app/connect/model/DataSetDescription.ts
+++ b/ui/src/app/connect/model/DataSetDescription.ts
@@ -19,8 +19,6 @@
 import {RdfId} from '../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
-import {FormatDescription} from './connect/grounding/FormatDescription';
-import {ProtocolDescription} from './connect/grounding/ProtocolDescription';
 import {EventSchema} from '../schema-editor/model/EventSchema';
 
 @RdfsClass('sp:DataSet')
diff --git a/ui/src/app/connect/model/DataSinkInvocation.ts b/ui/src/app/connect/model/DataSinkInvocation.ts
index 00524ca..a3d9544 100644
--- a/ui/src/app/connect/model/DataSinkInvocation.ts
+++ b/ui/src/app/connect/model/DataSinkInvocation.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 
 @RdfsClass('sp:DataSinkInvocation')
 export class DataSinkInvocation {
diff --git a/ui/src/app/connect/model/DataStreamContainer.ts b/ui/src/app/connect/model/DataStreamContainer.ts
index 88bbb63..0a7ee09 100644
--- a/ui/src/app/connect/model/DataStreamContainer.ts
+++ b/ui/src/app/connect/model/DataStreamContainer.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { DataSetDescription } from './DataSetDescription';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {DataSetDescription} from './DataSetDescription';
 
 @RdfsClass('sp:DataStreamContainer')
 export class DataStreamContainer {
diff --git a/ui/src/app/connect/model/FreeTextStaticProperty.ts b/ui/src/app/connect/model/FreeTextStaticProperty.ts
index ca03261..f1b4653 100644
--- a/ui/src/app/connect/model/FreeTextStaticProperty.ts
+++ b/ui/src/app/connect/model/FreeTextStaticProperty.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import {RdfId} from '../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 import {StaticProperty} from './StaticProperty';
diff --git a/ui/src/app/connect/model/InvocableStreamPipesEntity.ts b/ui/src/app/connect/model/InvocableStreamPipesEntity.ts
index fb37664..9a9eae5 100644
--- a/ui/src/app/connect/model/InvocableStreamPipesEntity.ts
+++ b/ui/src/app/connect/model/InvocableStreamPipesEntity.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { NamedStreamPipesEntity } from "./NamedStreamPipesEntity";
-import { URI } from "./URI";
-import { StaticProperty } from "./StaticProperty";
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {NamedStreamPipesEntity} from "./NamedStreamPipesEntity";
+import {StaticProperty} from "./StaticProperty";
 
 @RdfsClass('sp:InvocableStreamPipesEntity')
 export class InvocableStreamPipesEntity extends NamedStreamPipesEntity {
diff --git a/ui/src/app/connect/model/MappingPropertyNary.ts b/ui/src/app/connect/model/MappingPropertyNary.ts
index cb917ae..48ee0ea 100644
--- a/ui/src/app/connect/model/MappingPropertyNary.ts
+++ b/ui/src/app/connect/model/MappingPropertyNary.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import {RdfId} from '../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 import {StaticProperty} from './StaticProperty';
diff --git a/ui/src/app/connect/model/NamedStreamPipesEntity.ts b/ui/src/app/connect/model/NamedStreamPipesEntity.ts
index 323d4ca..7d272da 100644
--- a/ui/src/app/connect/model/NamedStreamPipesEntity.ts
+++ b/ui/src/app/connect/model/NamedStreamPipesEntity.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { ApplicationLink } from "./ApplicationLink";
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {ApplicationLink} from "./ApplicationLink";
 
 @RdfsClass('sp:StaticProperty')
 export class NamedStreamPipesEntity {
diff --git a/ui/src/app/connect/model/OneOfStaticProperty.ts b/ui/src/app/connect/model/OneOfStaticProperty.ts
index a633e87..a03e786 100644
--- a/ui/src/app/connect/model/OneOfStaticProperty.ts
+++ b/ui/src/app/connect/model/OneOfStaticProperty.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { SelectionStaticProperty } from './SelectionStaticProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {SelectionStaticProperty} from './SelectionStaticProperty';
 
 @RdfsClass('sp:OneOfStaticProperty')
 export class OneOfStaticProperty extends SelectionStaticProperty {}
\ No newline at end of file
diff --git a/ui/src/app/connect/model/Option.ts b/ui/src/app/connect/model/Option.ts
index f88752c..ff70873 100644
--- a/ui/src/app/connect/model/Option.ts
+++ b/ui/src/app/connect/model/Option.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 
 @RdfsClass('sp:Option')
 export class Option {
diff --git a/ui/src/app/connect/model/PipelineTemplateDescription.ts b/ui/src/app/connect/model/PipelineTemplateDescription.ts
index c80f9f0..57b8d04 100644
--- a/ui/src/app/connect/model/PipelineTemplateDescription.ts
+++ b/ui/src/app/connect/model/PipelineTemplateDescription.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { BoundPipelineElement } from "./BoundPipelineElement";
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {BoundPipelineElement} from "./BoundPipelineElement";
 
 
 @RdfsClass('sp:PipelineTemplateDescription')
diff --git a/ui/src/app/connect/model/PipelineTemplateDescriptionContainer.ts b/ui/src/app/connect/model/PipelineTemplateDescriptionContainer.ts
index ba1041c..5343e1e 100644
--- a/ui/src/app/connect/model/PipelineTemplateDescriptionContainer.ts
+++ b/ui/src/app/connect/model/PipelineTemplateDescriptionContainer.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { PipelineTemplateDescription } from './PipelineTemplateDescription';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {PipelineTemplateDescription} from './PipelineTemplateDescription';
 
 @RdfsClass('sp:PipelineTemplateDescriptionContainer')
 export class PipelineTemplateDescriptionContainer {
diff --git a/ui/src/app/connect/model/PipelineTemplateInvocation.ts b/ui/src/app/connect/model/PipelineTemplateInvocation.ts
index d0be04b..54caa94 100644
--- a/ui/src/app/connect/model/PipelineTemplateInvocation.ts
+++ b/ui/src/app/connect/model/PipelineTemplateInvocation.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { StaticProperty } from './StaticProperty';
+import {RdfId} from '../../platform-services/tsonld/RdfId';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {StaticProperty} from './StaticProperty';
 
 @RdfsClass('sp:PipelineTemplateInvocation')
 export class PipelineTemplateInvocation {
diff --git a/ui/src/app/connect/model/SecretStaticProperty.ts b/ui/src/app/connect/model/SecretStaticProperty.ts
index 4c31c18..be477b1 100644
--- a/ui/src/app/connect/model/SecretStaticProperty.ts
+++ b/ui/src/app/connect/model/SecretStaticProperty.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import {RdfId} from '../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 import {StaticProperty} from './StaticProperty';
diff --git a/ui/src/app/connect/model/SelectionStaticProperty.ts b/ui/src/app/connect/model/SelectionStaticProperty.ts
index 211d532..65e490d 100644
--- a/ui/src/app/connect/model/SelectionStaticProperty.ts
+++ b/ui/src/app/connect/model/SelectionStaticProperty.ts
@@ -16,11 +16,10 @@
  *
  */
 
-import { RdfId } from '../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../platform-services/tsonld/RdfsClass';
-import { StaticProperty } from './StaticProperty';
-import { Option } from './Option';
+import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
+import {StaticProperty} from './StaticProperty';
+import {Option} from './Option';
 
 @RdfsClass('sp:SelectionStaticProperty')
 export class SelectionStaticProperty extends StaticProperty {
diff --git a/ui/src/app/connect/model/StaticProperty.ts b/ui/src/app/connect/model/StaticProperty.ts
index daa85de..726d5cc 100644
--- a/ui/src/app/connect/model/StaticProperty.ts
+++ b/ui/src/app/connect/model/StaticProperty.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import {RdfId} from '../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../platform-services/tsonld/RdfsClass';
 import {UnnamedStreamPipesEntity} from "./UnnamedStreamPipesEntity";
diff --git a/ui/src/app/connect/model/connect/AdapterStreamDescription.ts b/ui/src/app/connect/model/connect/AdapterStreamDescription.ts
index 147afa1..f0c8c31 100644
--- a/ui/src/app/connect/model/connect/AdapterStreamDescription.ts
+++ b/ui/src/app/connect/model/connect/AdapterStreamDescription.ts
@@ -18,7 +18,6 @@
 
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import {DataSetDescription} from '../DataSetDescription';
 import {AdapterDescription} from './AdapterDescription';
 import {DataStreamDescription} from '../DataStreamDescription';
 import {UUID} from 'angular2-uuid';
diff --git a/ui/src/app/connect/model/connect/GenericAdapterSetDescription.ts b/ui/src/app/connect/model/connect/GenericAdapterSetDescription.ts
index af33938..951e888 100644
--- a/ui/src/app/connect/model/connect/GenericAdapterSetDescription.ts
+++ b/ui/src/app/connect/model/connect/GenericAdapterSetDescription.ts
@@ -18,7 +18,7 @@
 
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { AdapterSetDescription } from './AdapterSetDescription';
+import {AdapterSetDescription} from './AdapterSetDescription';
 import {FormatDescription} from './grounding/FormatDescription';
 import {ProtocolDescription} from './grounding/ProtocolDescription';
 
diff --git a/ui/src/app/connect/model/connect/GenericAdapterStreamDescription.ts b/ui/src/app/connect/model/connect/GenericAdapterStreamDescription.ts
index 4a693ad..e45be9e 100644
--- a/ui/src/app/connect/model/connect/GenericAdapterStreamDescription.ts
+++ b/ui/src/app/connect/model/connect/GenericAdapterStreamDescription.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { AdapterStreamDescription } from "./AdapterStreamDescription";
+import {AdapterStreamDescription} from "./AdapterStreamDescription";
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {ProtocolDescription} from './grounding/ProtocolDescription';
diff --git a/ui/src/app/connect/model/connect/SpecificAdapterSetDescription.ts b/ui/src/app/connect/model/connect/SpecificAdapterSetDescription.ts
index f614e37..cfb360e 100644
--- a/ui/src/app/connect/model/connect/SpecificAdapterSetDescription.ts
+++ b/ui/src/app/connect/model/connect/SpecificAdapterSetDescription.ts
@@ -17,7 +17,7 @@
  */
 
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { AdapterSetDescription } from './AdapterSetDescription';
+import {AdapterSetDescription} from './AdapterSetDescription';
 
 @RdfsClass('sp:SpecificAdapterSetDescription')
 export class SpecificAdapterSetDescription extends AdapterSetDescription {
diff --git a/ui/src/app/connect/model/connect/SpecificAdapterStreamDescription.ts b/ui/src/app/connect/model/connect/SpecificAdapterStreamDescription.ts
index e78babd..a2fc28a 100644
--- a/ui/src/app/connect/model/connect/SpecificAdapterStreamDescription.ts
+++ b/ui/src/app/connect/model/connect/SpecificAdapterStreamDescription.ts
@@ -17,7 +17,7 @@
  */
 
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { AdapterStreamDescription } from './AdapterStreamDescription';
+import {AdapterStreamDescription} from './AdapterStreamDescription';
 
 @RdfsClass('sp:SpecificAdapterStreamDescription')
 export class SpecificAdapterStreamDescription extends AdapterStreamDescription {
diff --git a/ui/src/app/connect/model/connect/rules/UnitTransformRuleDescription.ts b/ui/src/app/connect/model/connect/rules/UnitTransformRuleDescription.ts
index 8a04656..a6b6757 100644
--- a/ui/src/app/connect/model/connect/rules/UnitTransformRuleDescription.ts
+++ b/ui/src/app/connect/model/connect/rules/UnitTransformRuleDescription.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfsClass } from '../../../../platform-services/tsonld/RdfsClass';
-import { RdfId } from '../../../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../../../platform-services/tsonld/RdfsProperty';
-import { TransformationRuleDescription } from './TransformationRuleDescription';
+import {RdfsClass} from '../../../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../../../platform-services/tsonld/RdfsProperty';
+import {TransformationRuleDescription} from './TransformationRuleDescription';
 
 @RdfsClass('sp:UnitTransformRuleDescription')
 export class UnitTransformRuleDescription extends TransformationRuleDescription {
diff --git a/ui/src/app/connect/model/connect/runtime/RuntimeOptionsResponse.ts b/ui/src/app/connect/model/connect/runtime/RuntimeOptionsResponse.ts
index f0f9cdf..c591976 100644
--- a/ui/src/app/connect/model/connect/runtime/RuntimeOptionsResponse.ts
+++ b/ui/src/app/connect/model/connect/runtime/RuntimeOptionsResponse.ts
@@ -17,9 +17,7 @@
  */
 
 import {RdfsClass} from '../../../../platform-services/tsonld/RdfsClass';
-import {RdfId} from '../../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../../platform-services/tsonld/RdfsProperty';
-import {StaticProperty} from "../../StaticProperty";
 import {RuntimeOptionsRequest} from "./RuntimeOptionsRequest";
 import {Option} from "../../Option";
 
diff --git a/ui/src/app/connect/model/output/AppendOutputStrategy.ts b/ui/src/app/connect/model/output/AppendOutputStrategy.ts
index e05400b..ccec675 100644
--- a/ui/src/app/connect/model/output/AppendOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/AppendOutputStrategy.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { EventProperty } from '../../schema-editor/model/EventProperty';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {EventProperty} from '../../schema-editor/model/EventProperty';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:AppendOutputStrategy')
 export class AppendOutputStrategy extends OutputStrategy {
diff --git a/ui/src/app/connect/model/output/CustomOutputStrategy.ts b/ui/src/app/connect/model/output/CustomOutputStrategy.ts
index 6e78eb2..efabe3b 100644
--- a/ui/src/app/connect/model/output/CustomOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/CustomOutputStrategy.ts
@@ -16,11 +16,9 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:CustomOutputStrategy')
 export class CustomOutputStrategy extends OutputStrategy{
diff --git a/ui/src/app/connect/model/output/CustomTransformOutputStrategy.ts b/ui/src/app/connect/model/output/CustomTransformOutputStrategy.ts
index 836e7e6..e9bd2d0 100644
--- a/ui/src/app/connect/model/output/CustomTransformOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/CustomTransformOutputStrategy.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { EventProperty } from '../../schema-editor/model/EventProperty';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {EventProperty} from '../../schema-editor/model/EventProperty';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:CustomTransformOutputStrategy')
 export class CustomTransformOutputStrategy extends OutputStrategy{
diff --git a/ui/src/app/connect/model/output/FixedOutputStrategy.ts b/ui/src/app/connect/model/output/FixedOutputStrategy.ts
index 3425457..0323be1 100644
--- a/ui/src/app/connect/model/output/FixedOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/FixedOutputStrategy.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { EventProperty } from '../../schema-editor/model/EventProperty';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {EventProperty} from '../../schema-editor/model/EventProperty';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:FixedOutputStrategy')
 export class FixedOutputStrategy extends OutputStrategy{
diff --git a/ui/src/app/connect/model/output/KeepOutputStrategy.ts b/ui/src/app/connect/model/output/KeepOutputStrategy.ts
index 78458d6..c95feb7 100644
--- a/ui/src/app/connect/model/output/KeepOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/KeepOutputStrategy.ts
@@ -16,11 +16,9 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:KeepOutputStrategy')
 export class KeepOutputStrategy extends OutputStrategy {
diff --git a/ui/src/app/connect/model/output/ListOutputStrategy.ts b/ui/src/app/connect/model/output/ListOutputStrategy.ts
index 3ccfe0d..ef33710 100644
--- a/ui/src/app/connect/model/output/ListOutputStrategy.ts
+++ b/ui/src/app/connect/model/output/ListOutputStrategy.ts
@@ -16,11 +16,9 @@
  *
  */
 
-import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { PropertyRenameRule } from './PropertyRenameRule';
-import { OutputStrategy } from './OutputStrategy';
+import {OutputStrategy} from './OutputStrategy';
 
 @RdfsClass('sp:ListOutputStrategy')
 export class ListOutputStrategy extends OutputStrategy{
diff --git a/ui/src/app/connect/model/output/OutputStrategy.ts b/ui/src/app/connect/model/output/OutputStrategy.ts
index 4abcbc6..47b2e3e 100644
--- a/ui/src/app/connect/model/output/OutputStrategy.ts
+++ b/ui/src/app/connect/model/output/OutputStrategy.ts
@@ -19,7 +19,7 @@
 import {RdfId} from '../../../platform-services/tsonld/RdfId';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
-import { PropertyRenameRule } from './PropertyRenameRule';
+import {PropertyRenameRule} from './PropertyRenameRule';
 
 @RdfsClass('sp:OutputStrategy')
 export class OutputStrategy {
diff --git a/ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.ts b/ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.ts
index 537e880..c1aa20a 100644
--- a/ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.ts
+++ b/ui/src/app/connect/new-adapter/component/adapter-started-dialog.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, Inject} from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
+import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
 import {ShepherdService} from '../../../services/tour/shepherd.service';
 import {RestService} from "../../rest.service";
 import {StatusMessage} from "../../model/message/StatusMessage";
@@ -25,7 +25,6 @@ import {GenericAdapterSetDescription} from '../../model/connect/GenericAdapterSe
 import {SpecificAdapterSetDescription} from '../../model/connect/SpecificAdapterSetDescription';
 import {PipelineTemplateService} from '../../../platform-services/apis/pipeline-template.service';
 import {FreeTextStaticProperty} from '../../model/FreeTextStaticProperty';
-import {StaticProperty} from '../../model/StaticProperty';
 import {MappingPropertyUnary} from '../../model/MappingPropertyUnary';
 
 @Component({
diff --git a/ui/src/app/connect/new-adapter/icon.service.ts b/ui/src/app/connect/new-adapter/icon.service.ts
index 56adc5d..5693a11 100644
--- a/ui/src/app/connect/new-adapter/icon.service.ts
+++ b/ui/src/app/connect/new-adapter/icon.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Injectable } from '@angular/core';
+import {Injectable} from '@angular/core';
 
 @Injectable()
 export class IconService {
diff --git a/ui/src/app/connect/new-adapter/new-adapter.component.spec.ts b/ui/src/app/connect/new-adapter/new-adapter.component.spec.ts
index 68fecfa..3a978e0 100644
--- a/ui/src/app/connect/new-adapter/new-adapter.component.spec.ts
+++ b/ui/src/app/connect/new-adapter/new-adapter.component.spec.ts
@@ -16,25 +16,18 @@
  *
  */
 
-import {
-  TestBed,
-  async,
-  ComponentFixture,
-  getTestBed,
-} from '@angular/core/testing';
-import { CommonModule } from '@angular/common';
-import { NO_ERRORS_SCHEMA } from '@angular/core';
-import { NewAdapterComponent } from './new-adapter.component';
-import { BrowserModule } from '@angular/platform-browser';
-import { FormsModule, ReactiveFormsModule } from '@angular/forms';
-import { RestService } from '../rest.service';
-import { FormBuilder } from '@angular/forms';
-import { MatDialog, MatGridListModule } from '@angular/material';
-import { CustomMaterialModule } from '../../CustomMaterial/custom-material.module';
-import { DragulaModule } from 'ng2-dragula';
-import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
+import {async, ComponentFixture, TestBed,} from '@angular/core/testing';
+import {CommonModule} from '@angular/common';
+import {NO_ERRORS_SCHEMA} from '@angular/core';
+import {NewAdapterComponent} from './new-adapter.component';
+import {BrowserModule} from '@angular/platform-browser';
+import {FormsModule, ReactiveFormsModule} from '@angular/forms';
+import {MatGridListModule} from '@angular/material';
+import {CustomMaterialModule} from '../../CustomMaterial/custom-material.module';
+import {DragulaModule} from 'ng2-dragula';
+import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {BrowserAnimationsModule} from '@angular/platform-browser/animations';
 
 describe('NewComponent', () => {
   let fixture: ComponentFixture<NewAdapterComponent>;
diff --git a/ui/src/app/connect/new-adapter/new-adapter.component.ts b/ui/src/app/connect/new-adapter/new-adapter.component.ts
index b285de3..c52104d 100644
--- a/ui/src/app/connect/new-adapter/new-adapter.component.ts
+++ b/ui/src/app/connect/new-adapter/new-adapter.component.ts
@@ -17,31 +17,31 @@
  */
 
 ///<reference path="../model/connect/AdapterDescription.ts"/>
-import { Component, OnInit, Input, Output, EventEmitter, ViewChild, PipeTransform } from '@angular/core';
-import { FormBuilder, FormGroup, Validators } from '@angular/forms';
-import { RestService } from '../rest.service';
-import { FormatDescription } from '../model/connect/grounding/FormatDescription';
-import { AdapterDescription } from '../model/connect/AdapterDescription';
-import { MatDialog } from '@angular/material/dialog';
-import { MatStepper } from '@angular/material/stepper';
-import { AdapterStartedDialog } from './component/adapter-started-dialog.component';
-import { Logger } from '../../shared/logger/default-log.service';
-import { GenericAdapterSetDescription } from '../model/connect/GenericAdapterSetDescription';
-import { GenericAdapterStreamDescription } from '../model/connect/GenericAdapterStreamDescription';
-import { EventSchema } from '../schema-editor/model/EventSchema';
-import { SpecificAdapterSetDescription } from '../model/connect/SpecificAdapterSetDescription';
-import { SpecificAdapterStreamDescription } from '../model/connect/SpecificAdapterStreamDescription';
-import { TransformationRuleDescription } from '../model/connect/rules/TransformationRuleDescription';
-import { TransformationRuleService } from '../transformation-rule.service';
-import { ShepherdService } from '../../services/tour/shepherd.service';
-import { EventSchemaComponent } from '../schema-editor/event-schema/event-schema.component';
-import { ConnectService } from "../connect.service";
-import { RemoveDuplicatesRuleDescription } from '../model/connect/rules/RemoveDuplicatesRuleDescription';
-import { IconService } from './icon.service';
-import { TimestampPipe } from '../filter/timestamp.pipe';
-import { EventProperty } from '../schema-editor/model/EventProperty';
-import { EventRateTransformationRuleDescription } from '../model/connect/rules/EventRateTransformationRuleDescription';
-import { ConfigurationInfo } from "../model/message/ConfigurationInfo";
+import {Component, EventEmitter, Input, OnInit, Output, ViewChild} from '@angular/core';
+import {FormBuilder, FormGroup, Validators} from '@angular/forms';
+import {RestService} from '../rest.service';
+import {FormatDescription} from '../model/connect/grounding/FormatDescription';
+import {AdapterDescription} from '../model/connect/AdapterDescription';
+import {MatDialog} from '@angular/material/dialog';
+import {MatStepper} from '@angular/material/stepper';
+import {AdapterStartedDialog} from './component/adapter-started-dialog.component';
+import {Logger} from '../../shared/logger/default-log.service';
+import {GenericAdapterSetDescription} from '../model/connect/GenericAdapterSetDescription';
+import {GenericAdapterStreamDescription} from '../model/connect/GenericAdapterStreamDescription';
+import {EventSchema} from '../schema-editor/model/EventSchema';
+import {SpecificAdapterSetDescription} from '../model/connect/SpecificAdapterSetDescription';
+import {SpecificAdapterStreamDescription} from '../model/connect/SpecificAdapterStreamDescription';
+import {TransformationRuleDescription} from '../model/connect/rules/TransformationRuleDescription';
+import {TransformationRuleService} from '../transformation-rule.service';
+import {ShepherdService} from '../../services/tour/shepherd.service';
+import {EventSchemaComponent} from '../schema-editor/event-schema/event-schema.component';
+import {ConnectService} from "../connect.service";
+import {RemoveDuplicatesRuleDescription} from '../model/connect/rules/RemoveDuplicatesRuleDescription';
+import {IconService} from './icon.service';
+import {TimestampPipe} from '../filter/timestamp.pipe';
+import {EventProperty} from '../schema-editor/model/EventProperty';
+import {EventRateTransformationRuleDescription} from '../model/connect/rules/EventRateTransformationRuleDescription';
+import {ConfigurationInfo} from "../model/message/ConfigurationInfo";
 
 @Component({
     selector: 'sp-new-adapter',
diff --git a/ui/src/app/connect/protocol-component/protocol.component.ts b/ui/src/app/connect/protocol-component/protocol.component.ts
index 96d6afb..2a01756 100644
--- a/ui/src/app/connect/protocol-component/protocol.component.ts
+++ b/ui/src/app/connect/protocol-component/protocol.component.ts
@@ -16,9 +16,8 @@
  *
  */
 
-import { Component, Input, Output, EventEmitter } from '@angular/core';
-import { ProtocolDescription } from '../model/connect/grounding/ProtocolDescription';
-import {ConfigurationInfo} from "../model/message/ConfigurationInfo";
+import {Component, EventEmitter, Input, Output} from '@angular/core';
+import {ProtocolDescription} from '../model/connect/grounding/ProtocolDescription';
 
 @Component({
   selector: 'app-protocol',
diff --git a/ui/src/app/connect/protocol-list-component/protocol-list.component.ts b/ui/src/app/connect/protocol-list-component/protocol-list.component.ts
index 6b1c726..4aa0b7f 100644
--- a/ui/src/app/connect/protocol-list-component/protocol-list.component.ts
+++ b/ui/src/app/connect/protocol-list-component/protocol-list.component.ts
@@ -16,9 +16,10 @@
  *
  */
 
-import { Component, Input, Output, EventEmitter } from '@angular/core';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
 import {ProtocolDescription} from '../model/connect/grounding/ProtocolDescription';
 import {FormatDescription} from '../model/connect/grounding/FormatDescription';
+
 @Component({
     selector: 'app-protocol-list',
     templateUrl: './protocol-list.component.html',
diff --git a/ui/src/app/connect/rdfmapper/rdfmapper.service.ts b/ui/src/app/connect/rdfmapper/rdfmapper.service.ts
index 675eb34..c723fce 100644
--- a/ui/src/app/connect/rdfmapper/rdfmapper.service.ts
+++ b/ui/src/app/connect/rdfmapper/rdfmapper.service.ts
@@ -18,9 +18,8 @@
 
 import 'reflect-metadata';
 
-import { Injectable } from '@angular/core';
-import { Person } from './Person';
-import { NgModule } from '@angular/core';
+import {Injectable} from '@angular/core';
+import {Person} from './Person';
 
 @Injectable()
 export class RdfmapperService {
diff --git a/ui/src/app/connect/rest.service.ts b/ui/src/app/connect/rest.service.ts
index 770d932..bb05cb2 100644
--- a/ui/src/app/connect/rest.service.ts
+++ b/ui/src/app/connect/rest.service.ts
@@ -16,26 +16,25 @@
  *
  */
 
-import { Injectable } from '@angular/core';
+import {Injectable} from '@angular/core';
 
-import { HttpClient, HttpHeaders } from '@angular/common/http';
+import {HttpClient, HttpHeaders} from '@angular/common/http';
 
-import { Observable, Subscribable, from } from 'rxjs';
-import { map } from 'rxjs/operators';
+import {from, Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
 
 
-
-import { ProtocolDescriptionList } from './model/connect/grounding/ProtocolDescriptionList';
-import { AdapterDescription } from './model/connect/AdapterDescription';
-import { FormatDescriptionList } from './model/connect/grounding/FormatDescriptionList';
-import { EventProperty } from './schema-editor/model/EventProperty';
-import { EventPropertyNested } from './schema-editor/model/EventPropertyNested';
-import { GuessSchema } from './schema-editor/model/GuessSchema';
-import { AuthStatusService } from '../services/auth-status.service';
-import { StatusMessage } from "./model/message/StatusMessage";
-import { UnitDescription } from './model/UnitDescription';
-import { TsonLdSerializerService } from '../platform-services/tsonld-serializer.service';
-import { RuntimeOptionsResponse } from "./model/connect/runtime/RuntimeOptionsResponse";
+import {ProtocolDescriptionList} from './model/connect/grounding/ProtocolDescriptionList';
+import {AdapterDescription} from './model/connect/AdapterDescription';
+import {FormatDescriptionList} from './model/connect/grounding/FormatDescriptionList';
+import {EventProperty} from './schema-editor/model/EventProperty';
+import {EventPropertyNested} from './schema-editor/model/EventPropertyNested';
+import {GuessSchema} from './schema-editor/model/GuessSchema';
+import {AuthStatusService} from '../services/auth-status.service';
+import {StatusMessage} from "./model/message/StatusMessage";
+import {UnitDescription} from './model/UnitDescription';
+import {TsonLdSerializerService} from '../platform-services/tsonld-serializer.service';
+import {RuntimeOptionsResponse} from "./model/connect/runtime/RuntimeOptionsResponse";
 
 @Injectable()
 export class RestService {
diff --git a/ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.ts b/ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.ts
index 19742ed..8447224 100644
--- a/ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.ts
+++ b/ui/src/app/connect/schema-editor/event-property-list/event-property-list.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, DoCheck, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { EventPropertyList } from '../model/EventPropertyList';
-import { EventProperty } from '../model/EventProperty';
-import { DataTypesService } from '../data-type.service';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {EventPropertyList} from '../model/EventPropertyList';
+import {EventProperty} from '../model/EventProperty';
+import {DataTypesService} from '../data-type.service';
 
 
 @Component({
diff --git a/ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.ts b/ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.ts
index 4562307..c73bb50 100644
--- a/ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.ts
+++ b/ui/src/app/connect/schema-editor/event-property-primitive/event-property-primitive.component.ts
@@ -16,18 +16,18 @@
  *
  */
 
-import { Component, DoCheck, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { EventProperty } from '../model/EventProperty';
-import { Subscription, Observable } from 'rxjs';
-import { EventPropertyPrimitive } from '../model/EventPropertyPrimitive';
-import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
-import { DataTypesService } from '../data-type.service';
-import { DomainPropertyProbabilityList } from '../model/DomainPropertyProbabilityList';
-import { ShepherdService } from '../../../services/tour/shepherd.service';
-import { RestService } from '../../rest.service';
-import { UnitDescription } from '../../model/UnitDescription';
-import { UnitProviderService } from '../unit-provider.service';
-import { map, startWith } from 'rxjs/operators';
+import {Component, DoCheck, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {EventProperty} from '../model/EventProperty';
+import {Observable, Subscription} from 'rxjs';
+import {EventPropertyPrimitive} from '../model/EventPropertyPrimitive';
+import {FormBuilder, FormControl, FormGroup} from '@angular/forms';
+import {DataTypesService} from '../data-type.service';
+import {DomainPropertyProbabilityList} from '../model/DomainPropertyProbabilityList';
+import {ShepherdService} from '../../../services/tour/shepherd.service';
+import {RestService} from '../../rest.service';
+import {UnitDescription} from '../../model/UnitDescription';
+import {UnitProviderService} from '../unit-provider.service';
+import {map, startWith} from 'rxjs/operators';
 
 @Component({
   selector: 'app-event-property-primitive',
diff --git a/ui/src/app/connect/schema-editor/event-property-row/event-property-row.component.ts b/ui/src/app/connect/schema-editor/event-property-row/event-property-row.component.ts
index 747d3db..655b5d2 100644
--- a/ui/src/app/connect/schema-editor/event-property-row/event-property-row.component.ts
+++ b/ui/src/app/connect/schema-editor/event-property-row/event-property-row.component.ts
@@ -21,14 +21,12 @@ import {EventProperty} from "../model/EventProperty";
 import {EventPropertyPrimitive} from "../model/EventPropertyPrimitive";
 import {EventPropertyNested} from "../model/EventPropertyNested";
 import {EventPropertyList} from "../model/EventPropertyList";
-import {AdapterDescription} from "../../model/connect/AdapterDescription";
 import {EventSchema} from "../model/EventSchema";
 import {UUID} from "angular2-uuid";
 import {EventPropertyComponent} from "../event-property/event-property.component";
 import {DomainPropertyProbabilityList} from "../model/DomainPropertyProbabilityList";
 import {TreeNode} from "angular-tree-component";
-import {DataTypesService} from "../data-type.service";
-import { MatDialog } from "@angular/material/dialog";
+import {MatDialog} from "@angular/material/dialog";
 
 @Component({
     selector: 'event-property-row',
diff --git a/ui/src/app/connect/schema-editor/event-property/event-property.component.ts b/ui/src/app/connect/schema-editor/event-property/event-property.component.ts
index 24e1b0f..85aefdb 100644
--- a/ui/src/app/connect/schema-editor/event-property/event-property.component.ts
+++ b/ui/src/app/connect/schema-editor/event-property/event-property.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, OnInit, Output, Inject, SimpleChanges, OnChanges} from '@angular/core';
+import {Component, EventEmitter, Inject, OnInit, Output} from '@angular/core';
 import {FormBuilder, FormGroup, Validators} from '@angular/forms';
 import {EventProperty} from '../model/EventProperty';
 import {DomainPropertyProbabilityList} from '../model/DomainPropertyProbabilityList';
diff --git a/ui/src/app/connect/schema-editor/event-schema-preview/event-schema-preview.component.ts b/ui/src/app/connect/schema-editor/event-schema-preview/event-schema-preview.component.ts
index 2e380fb..77a5d90 100644
--- a/ui/src/app/connect/schema-editor/event-schema-preview/event-schema-preview.component.ts
+++ b/ui/src/app/connect/schema-editor/event-schema-preview/event-schema-preview.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { Component, Input } from "@angular/core";
-import { EventSchema } from "../model/EventSchema";
+import {Component, Input} from "@angular/core";
+import {EventSchema} from "../model/EventSchema";
 
 @Component({
     selector: 'app-event-schema-preview',
diff --git a/ui/src/app/connect/schema-editor/event-schema/event-schema.component.ts b/ui/src/app/connect/schema-editor/event-schema/event-schema.component.ts
index 2480156..5b7e524 100644
--- a/ui/src/app/connect/schema-editor/event-schema/event-schema.component.ts
+++ b/ui/src/app/connect/schema-editor/event-schema/event-schema.component.ts
@@ -16,22 +16,18 @@
  *
  */
 
-import { Component, Input, EventEmitter, Output, ViewChild, OnChanges, SimpleChanges } from '@angular/core';
-import { RestService } from '../../rest.service';
-import { EventSchema } from '../model/EventSchema';
-import { AdapterDescription } from '../../model/connect/AdapterDescription';
-import { GuessSchema } from '../model/GuessSchema';
-import { NotificationLd } from '../../model/message/NotificationLd';
-import { EventProperty } from '../model/EventProperty';
-import { EventPropertyNested } from '../model/EventPropertyNested';
-import { EventPropertyPrimitive } from '../model/EventPropertyPrimitive';
-import { EventPropertyList } from '../model/EventPropertyList';
-import { ITreeOptions, TreeComponent } from 'angular-tree-component';
-import { DomainPropertyProbabilityList } from '../model/DomainPropertyProbabilityList';
-import { UUID } from 'angular2-uuid';
-import { DataTypesService } from '../data-type.service';
-import { MatDialog } from '@angular/material/dialog';
-import { EventPropertyComponent } from '../event-property/event-property.component';
+import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges, ViewChild} from '@angular/core';
+import {RestService} from '../../rest.service';
+import {EventSchema} from '../model/EventSchema';
+import {AdapterDescription} from '../../model/connect/AdapterDescription';
+import {GuessSchema} from '../model/GuessSchema';
+import {NotificationLd} from '../../model/message/NotificationLd';
+import {EventProperty} from '../model/EventProperty';
+import {EventPropertyNested} from '../model/EventPropertyNested';
+import {EventPropertyPrimitive} from '../model/EventPropertyPrimitive';
+import {ITreeOptions, TreeComponent} from 'angular-tree-component';
+import {UUID} from 'angular2-uuid';
+import {DataTypesService} from '../data-type.service';
 
 @Component({
   selector: 'app-event-schema',
diff --git a/ui/src/app/connect/schema-editor/model/EventProperty.ts b/ui/src/app/connect/schema-editor/model/EventProperty.ts
index 6323cd9..b46a9c5 100644
--- a/ui/src/app/connect/schema-editor/model/EventProperty.ts
+++ b/ui/src/app/connect/schema-editor/model/EventProperty.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { RdfId } from '../../../platform-services/tsonld/RdfId';
-import { RdfProperty } from '../../../platform-services/tsonld/RdfsProperty';
-import { RdfsClass } from '../../../platform-services/tsonld/RdfsClass';
+import {RdfId} from '../../../platform-services/tsonld/RdfId';
+import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
+import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
 
 
 @RdfsClass('sp:EventProperty')
diff --git a/ui/src/app/connect/schema-editor/model/EventPropertyList.ts b/ui/src/app/connect/schema-editor/model/EventPropertyList.ts
index 6fc4f09..2b5f44a 100644
--- a/ui/src/app/connect/schema-editor/model/EventPropertyList.ts
+++ b/ui/src/app/connect/schema-editor/model/EventPropertyList.ts
@@ -20,6 +20,7 @@ import {EventProperty} from './EventProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
 import {EventPropertyPrimitive} from "./EventPropertyPrimitive";
+
 //  extends EventProperty
 
 @RdfsClass('sp:EventPropertyList')
diff --git a/ui/src/app/connect/schema-editor/model/EventPropertyPrimitive.ts b/ui/src/app/connect/schema-editor/model/EventPropertyPrimitive.ts
index 3ea4220..8472028 100644
--- a/ui/src/app/connect/schema-editor/model/EventPropertyPrimitive.ts
+++ b/ui/src/app/connect/schema-editor/model/EventPropertyPrimitive.ts
@@ -19,7 +19,6 @@
 import {EventProperty} from './EventProperty';
 import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
 import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
-import {createElementCssSelector} from '@angular/compiler';
 
 
 @RdfsClass('sp:EventPropertyPrimitive')
diff --git a/ui/src/app/connect/schema-editor/model/ExampleNode.ts b/ui/src/app/connect/schema-editor/model/ExampleNode.ts
index 4872d76..d63c325 100644
--- a/ui/src/app/connect/schema-editor/model/ExampleNode.ts
+++ b/ui/src/app/connect/schema-editor/model/ExampleNode.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { EventProperty } from "./EventProperty";
+import {EventProperty} from "./EventProperty";
 
 export class ExampleNode extends EventProperty {
     name: string;
diff --git a/ui/src/app/connect/schema-editor/model/GuessSchema.ts b/ui/src/app/connect/schema-editor/model/GuessSchema.ts
index 79e3843..886172a 100644
--- a/ui/src/app/connect/schema-editor/model/GuessSchema.ts
+++ b/ui/src/app/connect/schema-editor/model/GuessSchema.ts
@@ -16,11 +16,11 @@
  *
  */
 
-import { RdfsClass } from '../../../platform-services/tsonld/RdfsClass';
-import { RdfProperty } from '../../../platform-services/tsonld/RdfsProperty';
-import { RdfId } from '../../../platform-services/tsonld/RdfId';
-import { EventSchema } from './EventSchema';
-import { DomainPropertyProbabilityList } from './DomainPropertyProbabilityList';
+import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
+import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
+import {RdfId} from '../../../platform-services/tsonld/RdfId';
+import {EventSchema} from './EventSchema';
+import {DomainPropertyProbabilityList} from './DomainPropertyProbabilityList';
 
 @RdfsClass('sp:GuessSchema')
 export class GuessSchema {
diff --git a/ui/src/app/connect/schema-editor/model/QuantitativeValue.ts b/ui/src/app/connect/schema-editor/model/QuantitativeValue.ts
index b429212..e5a08c7 100644
--- a/ui/src/app/connect/schema-editor/model/QuantitativeValue.ts
+++ b/ui/src/app/connect/schema-editor/model/QuantitativeValue.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { RdfsClass } from '../../../platform-services/tsonld/RdfsClass';
-import { RdfProperty } from '../../../platform-services/tsonld/RdfsProperty';
-import { RdfId } from '../../../platform-services/tsonld/RdfId';
-import { Float } from '../../../platform-services/tsonld/Float';
+import {RdfsClass} from '../../../platform-services/tsonld/RdfsClass';
+import {RdfProperty} from '../../../platform-services/tsonld/RdfsProperty';
+import {RdfId} from '../../../platform-services/tsonld/RdfId';
+import {Float} from '../../../platform-services/tsonld/Float';
 
 @RdfsClass('http://schema.org/QuantitativeValue')
 export class QuantitativeValue {
diff --git a/ui/src/app/connect/schema-editor/unit-provider.service.ts b/ui/src/app/connect/schema-editor/unit-provider.service.ts
index ff928ee..fda2405 100644
--- a/ui/src/app/connect/schema-editor/unit-provider.service.ts
+++ b/ui/src/app/connect/schema-editor/unit-provider.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { UnitDescription } from '../model/UnitDescription';
+import {UnitDescription} from '../model/UnitDescription';
 
 export class UnitProviderService {
 
diff --git a/ui/src/app/connect/select-protocol-component/input.validator.ts b/ui/src/app/connect/select-protocol-component/input.validator.ts
index 0df0e14..62be3d9 100644
--- a/ui/src/app/connect/select-protocol-component/input.validator.ts
+++ b/ui/src/app/connect/select-protocol-component/input.validator.ts
@@ -16,8 +16,7 @@
  *
  */
 
-import { Directive } from '@angular/core';
-import {ValidatorFn, AbstractControl} from '@angular/forms';
+import {AbstractControl} from '@angular/forms';
 
 export function ValidateUrl(control: AbstractControl) {
   if(control.value == null){
diff --git a/ui/src/app/connect/select-protocol-component/select-protocol.component.ts b/ui/src/app/connect/select-protocol-component/select-protocol.component.ts
index 6b366c7..ab2268d 100644
--- a/ui/src/app/connect/select-protocol-component/select-protocol.component.ts
+++ b/ui/src/app/connect/select-protocol-component/select-protocol.component.ts
@@ -16,12 +16,9 @@
  *
  */
 
-import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
-import { isUndefined } from 'util';
-import { ProtocolDescription } from '../model/connect/grounding/ProtocolDescription';
-import { ProtocolDescriptionList } from '../model/connect/grounding/ProtocolDescriptionList';
-import { ValidateUrl } from './input.validator';
-import { FormControl, FormGroup } from '@angular/forms';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {isUndefined} from 'util';
+import {ProtocolDescription} from '../model/connect/grounding/ProtocolDescription';
 
 
 @Component({
diff --git a/ui/src/app/connect/select-static-properties-component/select-static-properties.component.ts b/ui/src/app/connect/select-static-properties-component/select-static-properties.component.ts
index c86b75b..c062440 100644
--- a/ui/src/app/connect/select-static-properties-component/select-static-properties.component.ts
+++ b/ui/src/app/connect/select-static-properties-component/select-static-properties.component.ts
@@ -16,12 +16,12 @@
  *
  */
 
-import { Component, Input, Output, EventEmitter } from '@angular/core';
+import {Component, EventEmitter, Input, Output} from '@angular/core';
 
-import { StaticProperty } from '../model/StaticProperty';
-import { DataSetDescription } from '../model/DataSetDescription';
+import {StaticProperty} from '../model/StaticProperty';
 import {EventSchema} from '../schema-editor/model/EventSchema';
 import {ConfigurationInfo} from "../model/message/ConfigurationInfo";
+
 @Component({
   selector: 'app-select-static-properties',
   templateUrl: './select-static-properties.component.html',
diff --git a/ui/src/app/connect/static-properties/static-any-input/static-any-input.component.ts b/ui/src/app/connect/static-properties/static-any-input/static-any-input.component.ts
index ef0b1f1..573c16d 100644
--- a/ui/src/app/connect/static-properties/static-any-input/static-any-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-any-input/static-any-input.component.ts
@@ -17,7 +17,7 @@
  */
 
 import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
-import { AnyStaticProperty } from '../../model/AnyStaticProperty';
+import {AnyStaticProperty} from '../../model/AnyStaticProperty';
 
 @Component({
   selector: 'app-static-any-input',
diff --git a/ui/src/app/connect/static-properties/static-collection/static-collection.component.ts b/ui/src/app/connect/static-properties/static-collection/static-collection.component.ts
index 7334a53..4f7410e 100644
--- a/ui/src/app/connect/static-properties/static-collection/static-collection.component.ts
+++ b/ui/src/app/connect/static-properties/static-collection/static-collection.component.ts
@@ -18,7 +18,6 @@
 
 import {Component, EventEmitter, Input, Output} from '@angular/core';
 import {ConfigurationInfo} from '../../model/message/ConfigurationInfo';
-import {StaticProperty} from '../../model/StaticProperty';
 import {CollectionStaticProperty} from '../../model/CollectionStaticProperty';
 import {EventSchema} from '../../schema-editor/model/EventSchema';
 import {StaticPropertyUtilService} from '../static-property-util.service';
diff --git a/ui/src/app/connect/static-properties/static-file-input/static-file-input.component.ts b/ui/src/app/connect/static-properties/static-file-input/static-file-input.component.ts
index d5ebb64..9572f8d 100644
--- a/ui/src/app/connect/static-properties/static-file-input/static-file-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-file-input/static-file-input.component.ts
@@ -16,10 +16,9 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FreeTextStaticProperty } from '../../model/FreeTextStaticProperty';
-import { StaticProperty } from '../../model/StaticProperty';
-import { StaticPropertyUtilService } from '../static-property-util.service';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {StaticPropertyUtilService} from '../static-property-util.service';
 import {StaticFileRestService} from './static-file-rest.service';
 import {FileStaticProperty} from '../../model/FileStaticProperty';
 import {HttpEventType, HttpResponse} from '@angular/common/http';
diff --git a/ui/src/app/connect/static-properties/static-free-input/static-free-input.component.ts b/ui/src/app/connect/static-properties/static-free-input/static-free-input.component.ts
index 74b2eba..70279f0 100644
--- a/ui/src/app/connect/static-properties/static-free-input/static-free-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-free-input/static-free-input.component.ts
@@ -16,9 +16,9 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { StaticProperty } from '../../model/StaticProperty';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {ConfigurationInfo} from "../../model/message/ConfigurationInfo";
 
diff --git a/ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.ts b/ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.ts
index 0329f43..d278a99 100644
--- a/ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.ts
+++ b/ui/src/app/connect/static-properties/static-mapping-nary/static-mapping-nary.component.ts
@@ -16,8 +16,7 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {MappingPropertyNary} from "../../model/MappingPropertyNary";
 import {StaticMappingComponent} from "../static-mapping/static-mapping";
diff --git a/ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.ts b/ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.ts
index 7704ed0..4903750 100644
--- a/ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.ts
+++ b/ui/src/app/connect/static-properties/static-mapping-unary/static-mapping-unary.component.ts
@@ -16,10 +16,8 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FreeTextStaticProperty } from '../../model/FreeTextStaticProperty';
-import { StaticProperty } from '../../model/StaticProperty';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {EventSchema} from '../../schema-editor/model/EventSchema';
 import {PropertySelectorService} from "../../../services/property-selector.service";
diff --git a/ui/src/app/connect/static-properties/static-number-input/static-number-input.component.ts b/ui/src/app/connect/static-properties/static-number-input/static-number-input.component.ts
index 04bd6d4..5263613 100644
--- a/ui/src/app/connect/static-properties/static-number-input/static-number-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-number-input/static-number-input.component.ts
@@ -16,15 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FreeTextStaticProperty } from '../../model/FreeTextStaticProperty';
-import { StaticProperty } from '../../model/StaticProperty';
-import { MappingPropertyUnary } from '../../model/MappingPropertyUnary';
-import { DataSetDescription } from '../../model/DataSetDescription';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
-import { Logger } from '../../../shared/logger/default-log.service';
-import { ifError } from 'assert';
-import { ValidateNumber } from '../../select-protocol-component/input.validator';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
+import {ValidateNumber} from '../../select-protocol-component/input.validator';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {ConfigurationInfo} from "../../model/message/ConfigurationInfo";
 
diff --git a/ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.ts b/ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.ts
index df17bc1..d3bb403 100644
--- a/ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-one-of-input/static-one-of-input.component.ts
@@ -17,7 +17,6 @@
  */
 
 import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
-import {AnyStaticProperty} from '../../model/AnyStaticProperty';
 import {OneOfStaticProperty} from '../../model/OneOfStaticProperty';
 
 @Component({
diff --git a/ui/src/app/connect/static-properties/static-property-util.service.ts b/ui/src/app/connect/static-properties/static-property-util.service.ts
index b832572..f34348c 100644
--- a/ui/src/app/connect/static-properties/static-property-util.service.ts
+++ b/ui/src/app/connect/static-properties/static-property-util.service.ts
@@ -16,23 +16,23 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { StaticProperty } from '../model/StaticProperty';
-import { FreeTextStaticProperty } from '../model/FreeTextStaticProperty';
+import {Injectable} from '@angular/core';
+import {StaticProperty} from '../model/StaticProperty';
+import {FreeTextStaticProperty} from '../model/FreeTextStaticProperty';
 import {SecretStaticProperty} from "../model/SecretStaticProperty";
 import {CollectionStaticProperty} from '../model/CollectionStaticProperty';
-import { FileStaticProperty } from "../model/FileStaticProperty";
-import { AnyStaticProperty } from "../model/AnyStaticProperty";
-import { MappingPropertyUnary } from "../model/MappingPropertyUnary";
-import { OneOfStaticProperty } from "../model/OneOfStaticProperty";
-import { MappingPropertyNary } from "../model/MappingPropertyNary";
-import { RuntimeResolvableOneOfStaticProperty } from "../model/RuntimeResolvableOneOfStaticProperty";
-import { RuntimeResolvableAnyStaticProperty } from "../model/RuntimeResolvableAnyStaticProperty";
-import { GroupStaticProperty } from "../model/GroupStaticProperty";
-import { AlternativesStaticProperty } from "../model/AlternativesStaticProperty";
-import { AlternativeStaticProperty } from "../model/AlternativeStaticProperty";
-import { Option } from "../model/Option";
-import { URI } from "../model/URI";
+import {FileStaticProperty} from "../model/FileStaticProperty";
+import {AnyStaticProperty} from "../model/AnyStaticProperty";
+import {MappingPropertyUnary} from "../model/MappingPropertyUnary";
+import {OneOfStaticProperty} from "../model/OneOfStaticProperty";
+import {MappingPropertyNary} from "../model/MappingPropertyNary";
+import {RuntimeResolvableOneOfStaticProperty} from "../model/RuntimeResolvableOneOfStaticProperty";
+import {RuntimeResolvableAnyStaticProperty} from "../model/RuntimeResolvableAnyStaticProperty";
+import {GroupStaticProperty} from "../model/GroupStaticProperty";
+import {AlternativesStaticProperty} from "../model/AlternativesStaticProperty";
+import {AlternativeStaticProperty} from "../model/AlternativeStaticProperty";
+import {Option} from "../model/Option";
+import {URI} from "../model/URI";
 import {ColorPickerStaticProperty} from "../model/ColorPickerStaticProperty";
 
 
diff --git a/ui/src/app/connect/static-properties/static-property.component.ts b/ui/src/app/connect/static-properties/static-property.component.ts
index 6839536..decaf7e 100644
--- a/ui/src/app/connect/static-properties/static-property.component.ts
+++ b/ui/src/app/connect/static-properties/static-property.component.ts
@@ -16,16 +16,16 @@
  *
  */
 
-import {ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
-import { FreeTextStaticProperty } from '../model/FreeTextStaticProperty';
-import { StaticProperty } from '../model/StaticProperty';
-import { MappingPropertyUnary } from '../model/MappingPropertyUnary';
-import { OneOfStaticProperty } from '../model/OneOfStaticProperty';
-import { Logger } from '../../shared/logger/default-log.service';
-
-import { xsService } from '../../NS/XS.service';
-import { StaticPropertyUtilService } from './static-property-util.service';
-import { AnyStaticProperty } from '../model/AnyStaticProperty';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {FreeTextStaticProperty} from '../model/FreeTextStaticProperty';
+import {StaticProperty} from '../model/StaticProperty';
+import {MappingPropertyUnary} from '../model/MappingPropertyUnary';
+import {OneOfStaticProperty} from '../model/OneOfStaticProperty';
+import {Logger} from '../../shared/logger/default-log.service';
+
+import {xsService} from '../../NS/XS.service';
+import {StaticPropertyUtilService} from './static-property-util.service';
+import {AnyStaticProperty} from '../model/AnyStaticProperty';
 import {FileStaticProperty} from '../model/FileStaticProperty';
 import {MappingPropertyNary} from '../model/MappingPropertyNary';
 import {EventSchema} from '../schema-editor/model/EventSchema';
@@ -35,7 +35,7 @@ import {ConfigurationInfo} from "../model/message/ConfigurationInfo";
 import {SecretStaticProperty} from "../model/SecretStaticProperty";
 import {AlternativesStaticProperty} from '../model/AlternativesStaticProperty';
 import {GroupStaticProperty} from '../model/GroupStaticProperty';
-import { CollectionStaticProperty } from "../model/CollectionStaticProperty";
+import {CollectionStaticProperty} from "../model/CollectionStaticProperty";
 import {ColorPickerStaticProperty} from "../model/ColorPickerStaticProperty";
 
 @Component({
diff --git a/ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.ts b/ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.ts
index dcaa31c..2e1c74c 100644
--- a/ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-secret-input/static-secret-input.component.ts
@@ -16,10 +16,9 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { StaticProperty } from '../../model/StaticProperty';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
-import { ValidateString } from '../../select-protocol-component/input.validator';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {ConfigurationInfo} from "../../model/message/ConfigurationInfo";
 
diff --git a/ui/src/app/connect/static-properties/static-text-input/static-text-input.component.ts b/ui/src/app/connect/static-properties/static-text-input/static-text-input.component.ts
index 4bc4770..3b1ec67 100644
--- a/ui/src/app/connect/static-properties/static-text-input/static-text-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-text-input/static-text-input.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { StaticProperty } from '../../model/StaticProperty';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
-import { ValidateString } from '../../select-protocol-component/input.validator';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
+import {ValidateString} from '../../select-protocol-component/input.validator';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 import {ConfigurationInfo} from "../../model/message/ConfigurationInfo";
 
diff --git a/ui/src/app/connect/static-properties/static-url-input/static-url-input.component.ts b/ui/src/app/connect/static-properties/static-url-input/static-url-input.component.ts
index 6ae4ae6..7811393 100644
--- a/ui/src/app/connect/static-properties/static-url-input/static-url-input.component.ts
+++ b/ui/src/app/connect/static-properties/static-url-input/static-url-input.component.ts
@@ -16,15 +16,10 @@
  *
  */
 
-import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
-import { FreeTextStaticProperty } from '../../model/FreeTextStaticProperty';
-import { StaticProperty } from '../../model/StaticProperty';
-import { MappingPropertyUnary } from '../../model/MappingPropertyUnary';
-import { DataSetDescription } from '../../model/DataSetDescription';
-import { FormControl, Validators, FormGroup } from '@angular/forms';
-import {Logger} from '../../../shared/logger/default-log.service';
-import { ifError } from 'assert';
-import { ValidateUrl} from '../../select-protocol-component/input.validator';
+import {Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
+import {StaticProperty} from '../../model/StaticProperty';
+import {FormControl, FormGroup, Validators} from '@angular/forms';
+import {ValidateUrl} from '../../select-protocol-component/input.validator';
 import {StaticPropertyUtilService} from '../static-property-util.service';
 
 @Component({
diff --git a/ui/src/app/connect/transformation-rule.service.spec.ts b/ui/src/app/connect/transformation-rule.service.spec.ts
index f52df5a..8a55cdc 100644
--- a/ui/src/app/connect/transformation-rule.service.spec.ts
+++ b/ui/src/app/connect/transformation-rule.service.spec.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { TestBed, async, getTestBed } from '@angular/core/testing';
-import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
+import {getTestBed, TestBed} from '@angular/core/testing';
+import {HttpClientTestingModule} from '@angular/common/http/testing';
 import {TransformationRuleService} from './transformation-rule.service';
 import {Logger} from '../shared/logger/default-log.service';
 import {EventSchema} from './schema-editor/model/EventSchema';
@@ -26,7 +26,6 @@ import {RenameRuleDescription} from './model/connect/rules/RenameRuleDescription
 import {EventProperty} from './schema-editor/model/EventProperty';
 import {EventPropertyNested} from './schema-editor/model/EventPropertyNested';
 import {AddNestedRuleDescription} from './model/connect/rules/AddNestedRuleDescription';
-import {e, r} from '@angular/core/src/render3';
 import {MoveRuleDescription} from './model/connect/rules/MoveRuleDesctiption';
 import {DeleteRuleDescription} from './model/connect/rules/DeleteRuleDescription';
 
diff --git a/ui/src/app/core-ui/core-ui.module.ts b/ui/src/app/core-ui/core-ui.module.ts
index 33438df..754d833 100644
--- a/ui/src/app/core-ui/core-ui.module.ts
+++ b/ui/src/app/core-ui/core-ui.module.ts
@@ -23,15 +23,15 @@ import {CommonModule} from '@angular/common';
 import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 import {FormsModule, ReactiveFormsModule} from '@angular/forms';
 import {CdkTableModule} from '@angular/cdk/table';
-import { MatNativeDateModule } from '@angular/material/core';
-import { MatDatepickerModule } from '@angular/material/datepicker';
-import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
-import { MatSnackBarModule } from '@angular/material/snack-bar';
+import {MatNativeDateModule} from '@angular/material/core';
+import {MatDatepickerModule} from '@angular/material/datepicker';
+import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
+import {MatSnackBarModule} from '@angular/material/snack-bar';
 import {TableComponent} from './table/table.component';
 import {LineChartComponent} from './linechart/lineChart.component';
-
 //import * as PlotlyJS from 'plotly.js/dist/plotly.js';
-import { PlotlyViaWindowModule } from 'angular-plotly.js';
+import {PlotlyViaWindowModule} from 'angular-plotly.js';
+
 //PlotlyViaCDNModule.plotlyjs = PlotlyJS;
 
 @NgModule({
diff --git a/ui/src/app/core-ui/linechart/lineChart.component.ts b/ui/src/app/core-ui/linechart/lineChart.component.ts
index 72d4720..a500abd 100644
--- a/ui/src/app/core-ui/linechart/lineChart.component.ts
+++ b/ui/src/app/core-ui/linechart/lineChart.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, EventEmitter, Input, OnChanges, Output, SimpleChanges} from '@angular/core';
+import {Component, EventEmitter, OnChanges, Output, SimpleChanges} from '@angular/core';
 import {BaseChartComponent} from '../chart/baseChart.component';
 import {DataResult} from '../../core-model/datalake/DataResult';
 import {GroupedDataResult} from '../../core-model/datalake/GroupedDataResult';
diff --git a/ui/src/app/core-ui/table/table.component.ts b/ui/src/app/core-ui/table/table.component.ts
index 1493eb3..9cd40d6 100644
--- a/ui/src/app/core-ui/table/table.component.ts
+++ b/ui/src/app/core-ui/table/table.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import {Component, EventEmitter, Input, Output} from '@angular/core';
-import { MatTableDataSource } from '@angular/material/table';
+import {Component} from '@angular/core';
+import {MatTableDataSource} from '@angular/material/table';
 import {BaseChartComponent} from '../chart/baseChart.component';
 import {DataResult} from '../../core-model/datalake/DataResult';
 import {GroupedDataResult} from '../../core-model/datalake/GroupedDataResult';
diff --git a/ui/src/app/core/working.state.config.ts b/ui/src/app/core/working.state.config.ts
index a2e3b7d..786b1e4 100644
--- a/ui/src/app/core/working.state.config.ts
+++ b/ui/src/app/core/working.state.config.ts
@@ -16,12 +16,10 @@
  *
  */
 
-import { HomeComponent } from '../home/home.component';
-import { ConfigurationComponent } from '../configuration/configuration.component';
-import { AppContainerModule } from '../app-container/app-container.module';
-import { AppContainerComponent } from '../app-container/app-container.component';
-import { NewAdapterComponent } from '../connect/new-adapter/new-adapter.component';
-import { ConnectComponent } from '../connect/connect.component';
+import {HomeComponent} from '../home/home.component';
+import {ConfigurationComponent} from '../configuration/configuration.component';
+import {AppContainerComponent} from '../app-container/app-container.component';
+import {ConnectComponent} from '../connect/connect.component';
 
 export default function stateConfig($stateProvider, $urlRouterProvider) {
   //	    $urlRouterProvider.otherwise( function($injector, $location) {
diff --git a/ui/src/app/dashboard-v2/components/grid/dashboard-grid.component.ts b/ui/src/app/dashboard-v2/components/grid/dashboard-grid.component.ts
index fc17584..61109ee 100644
--- a/ui/src/app/dashboard-v2/components/grid/dashboard-grid.component.ts
+++ b/ui/src/app/dashboard-v2/components/grid/dashboard-grid.component.ts
@@ -17,11 +17,12 @@
  */
 
 import {
-    AfterViewInit,
-    Component, EventEmitter,
+    Component,
+    EventEmitter,
     Input,
     OnChanges,
-    OnInit, Output,
+    OnInit,
+    Output,
     QueryList,
     SimpleChanges,
     ViewChildren
diff --git a/ui/src/app/dashboard-v2/components/overview/dashboard-overview.component.ts b/ui/src/app/dashboard-v2/components/overview/dashboard-overview.component.ts
index e18af21..4d291cf 100644
--- a/ui/src/app/dashboard-v2/components/overview/dashboard-overview.component.ts
+++ b/ui/src/app/dashboard-v2/components/overview/dashboard-overview.component.ts
@@ -21,7 +21,6 @@ import {Dashboard} from "../../models/dashboard.model";
 import {MatTableDataSource} from "@angular/material/table";
 import {MatDialog} from "@angular/material/dialog";
 import {DashboardService} from "../../services/dashboard.service";
-import {AddVisualizationDialogComponent} from "../../dialogs/add-widget/add-visualization-dialog.component";
 import {EditDashboardDialogComponent} from "../../dialogs/edit-dashboard/edit-dashboard-dialog.component";
 
 @Component({
diff --git a/ui/src/app/dashboard-v2/components/widget/dashboard-widget.component.ts b/ui/src/app/dashboard-v2/components/widget/dashboard-widget.component.ts
index 8c14325..69b1663 100644
--- a/ui/src/app/dashboard-v2/components/widget/dashboard-widget.component.ts
+++ b/ui/src/app/dashboard-v2/components/widget/dashboard-widget.component.ts
@@ -16,15 +16,11 @@
  *
  */
 
-import {AfterViewInit, Component, ElementRef, EventEmitter, Input, OnInit, Output} from "@angular/core";
-import {Dashboard, DashboardItem} from "../../models/dashboard.model";
+import {Component, EventEmitter, Input, OnInit, Output} from "@angular/core";
+import {DashboardItem} from "../../models/dashboard.model";
 import {DashboardService} from "../../services/dashboard.service";
-import {DashboardImageComponent} from "../../../app-transport-monitoring/components/dashboard-image/dashboard-image.component";
 import {DashboardWidget} from "../../../core-model/dashboard/DashboardWidget";
-import {Subject} from "rxjs";
 import {GridsterItem, GridsterItemComponent} from "angular-gridster2";
-import {GridsterInfo} from "../../models/gridster-info.model";
-import {ResizeService} from "../../services/resize.service";
 import {AddVisualizationDialogComponent} from "../../dialogs/add-widget/add-visualization-dialog.component";
 import {MatDialog} from "@angular/material/dialog";
 import {VisualizablePipeline} from "../../../core-model/dashboard/VisualizablePipeline";
diff --git a/ui/src/app/dashboard-v2/components/widgets/base/base-widget.ts b/ui/src/app/dashboard-v2/components/widgets/base/base-widget.ts
index b1b27a5..340bc3d 100644
--- a/ui/src/app/dashboard-v2/components/widgets/base/base-widget.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/base/base-widget.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Input, OnChanges, OnInit, SimpleChanges} from "@angular/core";
+import {Input, OnChanges, SimpleChanges} from "@angular/core";
 import {DashboardItem} from "../../../models/dashboard.model";
 import {DashboardWidget} from "../../../../core-model/dashboard/DashboardWidget";
 import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-extractor";
diff --git a/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-widget.component.ts b/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-widget.component.ts
index 479da83..09a4121 100644
--- a/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-widget.component.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/gauge/gauge-widget.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {AfterViewInit, Component, ElementRef, OnDestroy, OnInit} from "@angular/core";
+import {Component, ElementRef, OnDestroy, OnInit} from "@angular/core";
 import {BaseNgxChartsStreamPipesWidget} from "../base/base-ngx-charts-widget";
 import {RxStompService} from "@stomp/ng2-stompjs";
 import {ResizeService} from "../../../services/resize.service";
diff --git a/ui/src/app/dashboard-v2/components/widgets/line/line-widget.component.ts b/ui/src/app/dashboard-v2/components/widgets/line/line-widget.component.ts
index 31d4ff2..d007165 100644
--- a/ui/src/app/dashboard-v2/components/widgets/line/line-widget.component.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/line/line-widget.component.ts
@@ -16,12 +16,9 @@
  *
  */
 
-import {AfterViewInit, Component, ElementRef, OnDestroy, OnInit} from "@angular/core";
-import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-extractor";
+import {Component, OnDestroy, OnInit} from "@angular/core";
 import {RxStompService} from "@stomp/ng2-stompjs";
-import {LineConfig} from "./line-config";
 import {ResizeService} from "../../../services/resize.service";
-import {BaseNgxChartsStreamPipesWidget} from "../base/base-ngx-charts-widget";
 import {BaseNgxLineChartsStreamPipesWidget} from "../base/base-ngx-line-charts-widget";
 
 @Component({
diff --git a/ui/src/app/dashboard-v2/components/widgets/number/number-widget.component.ts b/ui/src/app/dashboard-v2/components/widgets/number/number-widget.component.ts
index 7157be8..75421c9 100644
--- a/ui/src/app/dashboard-v2/components/widgets/number/number-widget.component.ts
+++ b/ui/src/app/dashboard-v2/components/widgets/number/number-widget.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, Input, OnDestroy, OnInit} from "@angular/core";
+import {Component, OnDestroy, OnInit} from "@angular/core";
 import {RxStompService} from "@stomp/ng2-stompjs";
 import {BaseStreamPipesWidget} from "../base/base-widget";
 import {StaticPropertyExtractor} from "../../../sdk/extractor/static-property-extractor";
diff --git a/ui/src/app/dashboard-v2/dashboard.component.ts b/ui/src/app/dashboard-v2/dashboard.component.ts
index 4581030..bd00dc4 100644
--- a/ui/src/app/dashboard-v2/dashboard.component.ts
+++ b/ui/src/app/dashboard-v2/dashboard.component.ts
@@ -18,7 +18,6 @@
 
 import {Component, OnInit} from "@angular/core";
 import {Dashboard} from "./models/dashboard.model";
-import {MockDashboardService} from "./services/MockDashboard.service";
 import {DashboardService} from "./services/dashboard.service";
 import {RefreshDashboardService} from "./services/refresh-dashboard.service";
 
diff --git a/ui/src/app/dashboard-v2/dashboard.module.ts b/ui/src/app/dashboard-v2/dashboard.module.ts
index 53b8383..5aed5d1 100644
--- a/ui/src/app/dashboard-v2/dashboard.module.ts
+++ b/ui/src/app/dashboard-v2/dashboard.module.ts
@@ -16,14 +16,14 @@
  *
  */
 
-import { NgModule } from '@angular/core';
-import { CommonModule } from '@angular/common';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { GridsterModule } from 'angular-gridster2';
-import { DashboardComponent } from './dashboard.component';
-import { DynamicModule } from 'ng-dynamic-component';
-import { DashboardPanelComponent } from "./components/panel/dashboard-panel.component";
-import { MatTabsModule } from "@angular/material/tabs";
+import {NgModule} from '@angular/core';
+import {CommonModule} from '@angular/common';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {GridsterModule} from 'angular-gridster2';
+import {DashboardComponent} from './dashboard.component';
+import {DynamicModule} from 'ng-dynamic-component';
+import {DashboardPanelComponent} from "./components/panel/dashboard-panel.component";
+import {MatTabsModule} from "@angular/material/tabs";
 import {DashboardWidgetComponent} from "./components/widget/dashboard-widget.component";
 import {CustomMaterialModule} from "../CustomMaterial/custom-material.module";
 import {FormsModule} from "@angular/forms";
diff --git a/ui/src/app/dashboard-v2/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts b/ui/src/app/dashboard-v2/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
index 72d9433..3eb5ec7 100644
--- a/ui/src/app/dashboard-v2/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
+++ b/ui/src/app/dashboard-v2/dialogs/edit-dashboard/edit-dashboard-dialog.component.ts
@@ -16,11 +16,9 @@
  *
  */
 
-import {Component, Inject} from "@angular/core";
-import { MAT_DIALOG_DATA, MatDialogRef } from "@angular/material/dialog";
+import {Component} from "@angular/core";
+import {MatDialogRef} from "@angular/material/dialog";
 import {DashboardService} from "../../services/dashboard.service";
-import {DashboardWidgetSettings} from "../../../core-model/dashboard/DashboardWidgetSettings";
-import {VisualizablePipeline} from "../../../core-model/dashboard/VisualizablePipeline";
 import {Dashboard} from "../../models/dashboard.model";
 
 @Component({
diff --git a/ui/src/app/dashboard-v2/models/multi-series.model.ts b/ui/src/app/dashboard-v2/models/multi-series.model.ts
index e95f777..45dfa91 100644
--- a/ui/src/app/dashboard-v2/models/multi-series.model.ts
+++ b/ui/src/app/dashboard-v2/models/multi-series.model.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import {DashboardItem} from "./dashboard.model";
-
 export interface MultiSeries {
     name?: string;
     series?: Array<MultiSeriesEntry>;
diff --git a/ui/src/app/dashboard-v2/services/MockDashboard.service.ts b/ui/src/app/dashboard-v2/services/MockDashboard.service.ts
index 480da96..72b81a4 100644
--- a/ui/src/app/dashboard-v2/services/MockDashboard.service.ts
+++ b/ui/src/app/dashboard-v2/services/MockDashboard.service.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
 
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
 
-import { Dashboard } from '../models/dashboard.model';
+import {Dashboard} from '../models/dashboard.model';
 
 @Injectable({
     providedIn: 'root'
diff --git a/ui/src/app/dashboard-v2/services/dashboard.service.ts b/ui/src/app/dashboard-v2/services/dashboard.service.ts
index 8a15f8a..96e466f 100644
--- a/ui/src/app/dashboard-v2/services/dashboard.service.ts
+++ b/ui/src/app/dashboard-v2/services/dashboard.service.ts
@@ -22,12 +22,7 @@ import {map} from "rxjs/operators";
 import {from, Observable} from "rxjs";
 import {AuthStatusService} from "../../services/auth-status.service";
 import {Dashboard} from "../models/dashboard.model";
-import {EventSchema} from "../../connect/schema-editor/model/EventSchema";
-import {EventProperty} from "../../connect/schema-editor/model/EventProperty";
-import {EventPropertyPrimitive} from "../../connect/schema-editor/model/EventPropertyPrimitive";
 import {TsonLdSerializerService} from "../../platform-services/tsonld-serializer.service";
-import {StatusMessage} from "../../connect/model/message/StatusMessage";
-import {RuntimeOptionsResponse} from "../../connect/model/connect/runtime/RuntimeOptionsResponse";
 import {DashboardWidget} from "../../core-model/dashboard/DashboardWidget";
 import {VisualizablePipeline} from "../../core-model/dashboard/VisualizablePipeline";
 
diff --git a/ui/src/app/dashboard/components/config-item.controller.ts b/ui/src/app/dashboard/components/config-item.controller.ts
index d8857e4..c10b2bd 100644
--- a/ui/src/app/dashboard/components/config-item.controller.ts
+++ b/ui/src/app/dashboard/components/config-item.controller.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
-
 export class ConfigItemController {
 
 }
\ No newline at end of file
diff --git a/ui/src/app/dashboard/dashboard.controller.ts b/ui/src/app/dashboard/dashboard.controller.ts
index 4947d7f..3f4c182 100644
--- a/ui/src/app/dashboard/dashboard.controller.ts
+++ b/ui/src/app/dashboard/dashboard.controller.ts
@@ -19,7 +19,6 @@
 import {AddWidgetCtrl} from './add-widget.controller';
 import * as angular from 'angular';
 import * as _ from 'lodash';
-import {MissingElementsForTutorialDialogController} from "../editor/dialog/missing-elements-for-tutorial/missing-elements-for-tutorial-dialog.controller";
 import {NoPipelinePresentDialogController} from "./dialog/no-pipeline-present-dialog.controller";
 
 declare const require: any;
diff --git a/ui/src/app/dashboard/dashboard.module.ts b/ui/src/app/dashboard/dashboard.module.ts
index 4bc88c4..d91f651 100644
--- a/ui/src/app/dashboard/dashboard.module.ts
+++ b/ui/src/app/dashboard/dashboard.module.ts
@@ -18,8 +18,6 @@
 
 import * as angular from 'angular';
 
-import * as _ from 'lodash';
-
 import 'angular-ui-sortable';
 import 'angular-ui-bootstrap';
 
@@ -31,58 +29,57 @@ import 'legacy/malhar-angular-dashboard';
 //import 'npm/epoch-charting';
 import 'npm/ngmap'
 
-import { ConfigItemComponent } from "./components/config-item.component";
-import { DashboardCtrl } from './dashboard.controller';
-import { AddWidgetCtrl } from './add-widget.controller';
-import { WidgetInstances } from './widget-instances.service';
-import { WidgetTemplates } from './templates/widget-templates.service';
+import {ConfigItemComponent} from "./components/config-item.component";
+import {DashboardCtrl} from './dashboard.controller';
+import {AddWidgetCtrl} from './add-widget.controller';
+import {WidgetInstances} from './widget-instances.service';
+import {WidgetTemplates} from './templates/widget-templates.service';
 
 import {WidgetDataModel} from "./widget-data-model.service";
 
-import { SocketConnectionDataModel } from './socket-connection-data-model.service';
+import {SocketConnectionDataModel} from './socket-connection-data-model.service';
 
 import soFilter from './templates/so.filter';
 
 import spNumberWidget from './templates/number/number.directive';
-import { spNumberWidgetConfig }from './templates/number/number-config.component';
-import { NumberDataModel } from './templates/number/number-data-model.service';
+import {spNumberWidgetConfig} from './templates/number/number-config.component';
+import {NumberDataModel} from './templates/number/number-data-model.service';
 
 import spVerticalbarWidget from './templates/verticalbar/verticalbar.directive';
-import { spVerticalbarWidgetConfig } from './templates/verticalbar/verticalbar-config.component';
-import { VerticalbarDataModel } from './templates/verticalbar/verticalbar-data-model.service';
+import {spVerticalbarWidgetConfig} from './templates/verticalbar/verticalbar-config.component';
+import {VerticalbarDataModel} from './templates/verticalbar/verticalbar-data-model.service';
 
 import spTableWidget from './templates/table/table.directive';
-import { spTableWidgetConfig } from './templates/table/table-config.component';
-import { TableDataModel } from './templates/table/table-data-model.service';
+import {spTableWidgetConfig} from './templates/table/table-config.component';
+import {TableDataModel} from './templates/table/table-data-model.service';
 
 import spLineWidget from './templates/line/line.directive';
-import { spLineWidgetConfig } from './templates/line/line-config.component';
-import { LineDataModel } from './templates/line/line-data-model.service';
+import {spLineWidgetConfig} from './templates/line/line-config.component';
+import {LineDataModel} from './templates/line/line-data-model.service';
 
 import spGaugeWidget from './templates/gauge/gauge.directive';
-import { spGaugeWidgetConfig } from './templates/gauge/gauge-config.component';
-import { GaugeDataModel } from './templates/gauge/gauge-data-model.service';
+import {spGaugeWidgetConfig} from './templates/gauge/gauge-config.component';
+import {GaugeDataModel} from './templates/gauge/gauge-data-model.service';
 
 import spTrafficlightWidget from './templates/trafficlight/trafficlight.directive';
-import { spTrafficlightWidgetConfig } from './templates/trafficlight/trafficlight-config.component';
-import { TrafficLightDataModel } from './templates/trafficlight/trafficlight-data-model.service';
+import {spTrafficlightWidgetConfig} from './templates/trafficlight/trafficlight-config.component';
+import {TrafficLightDataModel} from './templates/trafficlight/trafficlight-data-model.service';
 
 import spRawWidget from './templates/raw/raw.directive';
-import { spRawWidgetConfig } from './templates/raw/raw-config.component';
-import { RawDataModel } from './templates/raw/raw-data-model.service';
+import {spRawWidgetConfig} from './templates/raw/raw-config.component';
+import {RawDataModel} from './templates/raw/raw-data-model.service';
 //
 import spMapWidget from './templates/map/map.directive';
-import { spMapWidgetConfig } from './templates/map/map-config.component';
-import { MapDataModel } from './templates/map/map-data-model.service';
+import {spMapWidgetConfig} from './templates/map/map-config.component';
+import {MapDataModel} from './templates/map/map-data-model.service';
 
 import spHeatmapWidget from './templates/heatmap/heatmap.directive';
-import { spHeatmapWidgetConfig } from './templates/heatmap/heatmap-config.component';
-import { HeatmapDataModel } from './templates/heatmap/heatmap-data-model.service';
+import {spHeatmapWidgetConfig} from './templates/heatmap/heatmap-config.component';
+import {HeatmapDataModel} from './templates/heatmap/heatmap-data-model.service';
 
 import spImageWidget from './templates/image/image.directive';
-import { spImageWidgetConfig } from './templates/image/image-config.component';
-import { ImageDataModel } from './templates/image/image-data-model.service';
-import {DomainConceptComponent} from "../editor/components/domainconcept/domainconcept.component";
+import {spImageWidgetConfig} from './templates/image/image-config.component';
+import {ImageDataModel} from './templates/image/image-data-model.service';
 
 import spHtmlWidget from './templates/html/html.directive';
 import {HtmlDataModel} from './templates/html/html-data-model.service';
diff --git a/ui/src/app/dashboard/socket-connection-data-model.service.ts b/ui/src/app/dashboard/socket-connection-data-model.service.ts
index 8db14a9..6ebf2e3 100644
--- a/ui/src/app/dashboard/socket-connection-data-model.service.ts
+++ b/ui/src/app/dashboard/socket-connection-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { WidgetDataModel} from "./widget-data-model.service";
+import {WidgetDataModel} from "./widget-data-model.service";
 import * as _ from 'lodash';
 
 declare const Stomp: any;
diff --git a/ui/src/app/dashboard/templates/gauge/gauge-data-model.service.ts b/ui/src/app/dashboard/templates/gauge/gauge-data-model.service.ts
index a0f1e26..dee5b91 100644
--- a/ui/src/app/dashboard/templates/gauge/gauge-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/gauge/gauge-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service.js'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service.js'
 
 export class GaugeDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/gauge/gauge.directive.ts b/ui/src/app/dashboard/templates/gauge/gauge.directive.ts
index a570e74..2c3a494 100644
--- a/ui/src/app/dashboard/templates/gauge/gauge.directive.ts
+++ b/ui/src/app/dashboard/templates/gauge/gauge.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 
 declare const require: any;
diff --git a/ui/src/app/dashboard/templates/heatmap/heatmap-data-model.service.ts b/ui/src/app/dashboard/templates/heatmap/heatmap-data-model.service.ts
index 93e40db..b0c8271 100644
--- a/ui/src/app/dashboard/templates/heatmap/heatmap-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/heatmap/heatmap-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 
 export class HeatmapDataModel extends SocketConnectionDataModel {
diff --git a/ui/src/app/dashboard/templates/heatmap/heatmap.directive.ts b/ui/src/app/dashboard/templates/heatmap/heatmap.directive.ts
index 902ea9e..87077ac 100644
--- a/ui/src/app/dashboard/templates/heatmap/heatmap.directive.ts
+++ b/ui/src/app/dashboard/templates/heatmap/heatmap.directive.ts
@@ -18,7 +18,8 @@
 
 declare const google: any;
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 
 declare const require: any;
diff --git a/ui/src/app/dashboard/templates/html/html-data-model.service.ts b/ui/src/app/dashboard/templates/html/html-data-model.service.ts
index cd4972e..c118aaf 100644
--- a/ui/src/app/dashboard/templates/html/html-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/html/html-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service.js'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service.js'
 
 export class HtmlDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/html/html.directive.ts b/ui/src/app/dashboard/templates/html/html.directive.ts
index 6563f96..5764529 100644
--- a/ui/src/app/dashboard/templates/html/html.directive.ts
+++ b/ui/src/app/dashboard/templates/html/html.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 htmlWidget.$inject = ['WidgetInstances'];
 declare const require: any;
diff --git a/ui/src/app/dashboard/templates/image/image-data-model.service.ts b/ui/src/app/dashboard/templates/image/image-data-model.service.ts
index d5e0233..a0cd955 100644
--- a/ui/src/app/dashboard/templates/image/image-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/image/image-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service.js'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service.js'
 
 export class ImageDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/image/image.directive.ts b/ui/src/app/dashboard/templates/image/image.directive.ts
index 89d4475..6561a85 100644
--- a/ui/src/app/dashboard/templates/image/image.directive.ts
+++ b/ui/src/app/dashboard/templates/image/image.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 imageWidget.$inject = ['WidgetInstances'];
 declare const require: any;
diff --git a/ui/src/app/dashboard/templates/line/line-data-model.service.ts b/ui/src/app/dashboard/templates/line/line-data-model.service.ts
index 025e51d..9cd24a7 100644
--- a/ui/src/app/dashboard/templates/line/line-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/line/line-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 export class LineDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/line/line.directive.ts b/ui/src/app/dashboard/templates/line/line.directive.ts
index a917087..c98a8ab 100644
--- a/ui/src/app/dashboard/templates/line/line.directive.ts
+++ b/ui/src/app/dashboard/templates/line/line.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 lineWidget.$inject = ['WidgetInstances'];
 declare const require: any;
diff --git a/ui/src/app/dashboard/templates/map.deprecated/map-data-model.service.ts b/ui/src/app/dashboard/templates/map.deprecated/map-data-model.service.ts
index 67f1c04..8cae441 100644
--- a/ui/src/app/dashboard/templates/map.deprecated/map-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/map.deprecated/map-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 
 export class MapDataModel extends SocketConnectionDataModel {
diff --git a/ui/src/app/dashboard/templates/map.deprecated/map.directive.ts b/ui/src/app/dashboard/templates/map.deprecated/map.directive.ts
index d650def..a8d92be 100644
--- a/ui/src/app/dashboard/templates/map.deprecated/map.directive.ts
+++ b/ui/src/app/dashboard/templates/map.deprecated/map.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 declare const require: any;
 mapWidget.$inject = ['WidgetInstances', 'NgMap'];
diff --git a/ui/src/app/dashboard/templates/map/map-data-model.service.ts b/ui/src/app/dashboard/templates/map/map-data-model.service.ts
index 67f1c04..8cae441 100644
--- a/ui/src/app/dashboard/templates/map/map-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/map/map-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 
 export class MapDataModel extends SocketConnectionDataModel {
diff --git a/ui/src/app/dashboard/templates/map/map.directive.ts b/ui/src/app/dashboard/templates/map/map.directive.ts
index ad91489..19c4684 100644
--- a/ui/src/app/dashboard/templates/map/map.directive.ts
+++ b/ui/src/app/dashboard/templates/map/map.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 mapWidget.$inject = ['WidgetInstances', 'NgMap'];
 declare let L;
diff --git a/ui/src/app/dashboard/templates/number/number-data-model.service.ts b/ui/src/app/dashboard/templates/number/number-data-model.service.ts
index 9cbe084..009e7a3 100644
--- a/ui/src/app/dashboard/templates/number/number-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/number/number-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service';
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service';
 
 export class NumberDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/number/number.directive.ts b/ui/src/app/dashboard/templates/number/number.directive.ts
index 9630a91..8c82ee9 100644
--- a/ui/src/app/dashboard/templates/number/number.directive.ts
+++ b/ui/src/app/dashboard/templates/number/number.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 declare const require: any;
 numberWidget.$inject = ['WidgetInstances', '$filter'];
diff --git a/ui/src/app/dashboard/templates/raw/raw-data-model.service.ts b/ui/src/app/dashboard/templates/raw/raw-data-model.service.ts
index a366903..5522b78 100644
--- a/ui/src/app/dashboard/templates/raw/raw-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/raw/raw-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 
 export class RawDataModel extends SocketConnectionDataModel {
diff --git a/ui/src/app/dashboard/templates/raw/raw.directive.ts b/ui/src/app/dashboard/templates/raw/raw.directive.ts
index 861b53b..20bbc62 100644
--- a/ui/src/app/dashboard/templates/raw/raw.directive.ts
+++ b/ui/src/app/dashboard/templates/raw/raw.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 declare const require: any;
 rawWidget.$inject = ['WidgetInstances'];
diff --git a/ui/src/app/dashboard/templates/table/table-data-model.service.ts b/ui/src/app/dashboard/templates/table/table-data-model.service.ts
index 0fba63c..b91d9f0 100644
--- a/ui/src/app/dashboard/templates/table/table-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/table/table-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 export class TableDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/table/table.directive.ts b/ui/src/app/dashboard/templates/table/table.directive.ts
index 64ca15a..f477428 100644
--- a/ui/src/app/dashboard/templates/table/table.directive.ts
+++ b/ui/src/app/dashboard/templates/table/table.directive.ts
@@ -16,8 +16,9 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
 import * as angular from 'angular';
+
 'use strict';
 declare const require: any;
 tableWidget.$inject = ['WidgetInstances', '$filter'];
diff --git a/ui/src/app/dashboard/templates/trafficlight/trafficlight-data-model.service.ts b/ui/src/app/dashboard/templates/trafficlight/trafficlight-data-model.service.ts
index 8d010ab..1c73cd5 100644
--- a/ui/src/app/dashboard/templates/trafficlight/trafficlight-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/trafficlight/trafficlight-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service.js'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service.js'
 
 export class TrafficLightDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/trafficlight/trafficlight.directive.ts b/ui/src/app/dashboard/templates/trafficlight/trafficlight.directive.ts
index 0a6152b..1202fc2 100644
--- a/ui/src/app/dashboard/templates/trafficlight/trafficlight.directive.ts
+++ b/ui/src/app/dashboard/templates/trafficlight/trafficlight.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 declare const require: any;
 trafficlightWidget.$inject = ['WidgetInstances'];
diff --git a/ui/src/app/dashboard/templates/verticalbar/verticalbar-data-model.service.ts b/ui/src/app/dashboard/templates/verticalbar/verticalbar-data-model.service.ts
index eb7571f..4e7b99c 100644
--- a/ui/src/app/dashboard/templates/verticalbar/verticalbar-data-model.service.ts
+++ b/ui/src/app/dashboard/templates/verticalbar/verticalbar-data-model.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { SocketConnectionDataModel } from '../../socket-connection-data-model.service'
+import {SocketConnectionDataModel} from '../../socket-connection-data-model.service'
 
 export class VerticalbarDataModel extends SocketConnectionDataModel {
 
diff --git a/ui/src/app/dashboard/templates/verticalbar/verticalbar.directive.ts b/ui/src/app/dashboard/templates/verticalbar/verticalbar.directive.ts
index 470f026..e46ec6e 100644
--- a/ui/src/app/dashboard/templates/verticalbar/verticalbar.directive.ts
+++ b/ui/src/app/dashboard/templates/verticalbar/verticalbar.directive.ts
@@ -16,7 +16,8 @@
  *
  */
 
-import { WidgetInstances } from '../../widget-instances.service'
+import {WidgetInstances} from '../../widget-instances.service'
+
 'use strict';
 declare const require: any;
 verticalbarWidget.$inject = ['WidgetInstances'];
diff --git a/ui/src/app/data-explorer/data-explorer.component.ts b/ui/src/app/data-explorer/data-explorer.component.ts
index 0474b03..b516968 100644
--- a/ui/src/app/data-explorer/data-explorer.component.ts
+++ b/ui/src/app/data-explorer/data-explorer.component.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import {Component, OnInit, ViewChild} from '@angular/core';
+import {Component, OnInit} from '@angular/core';
 import {DatalakeRestService} from '../core-services/datalake/datalake-rest.service';
 import {InfoResult} from '../core-model/datalake/InfoResult';
 import {Observable} from 'rxjs/Observable';
 import {FormControl} from '@angular/forms';
 import {map, startWith} from 'rxjs/operators';
-import { MatSnackBar } from '@angular/material/snack-bar';
+import {MatSnackBar} from '@angular/material/snack-bar';
 
 @Component({
     selector: 'sp-data-explorer',
diff --git a/ui/src/app/data-explorer/data-explorer.module.ts b/ui/src/app/data-explorer/data-explorer.module.ts
index c21ce7d..6d27272 100644
--- a/ui/src/app/data-explorer/data-explorer.module.ts
+++ b/ui/src/app/data-explorer/data-explorer.module.ts
@@ -26,13 +26,17 @@ import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
 import {DatalakeRestService} from '../core-services/datalake/datalake-rest.service';
 import {FormsModule, ReactiveFormsModule} from '@angular/forms';
 import {CdkTableModule} from '@angular/cdk/table';
-import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
-import { MatSnackBarModule } from '@angular/material/snack-bar';
+import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
+import {MatSnackBarModule} from '@angular/material/snack-bar';
 import {CoreUiModule} from '../core-ui/core-ui.module';
 import {ExplorerComponent} from './explorer/explorer.component';
 import {DataDownloadDialog} from './explorer/datadownloadDialog/dataDownload.dialog';
 
-import {OWL_DATE_TIME_FORMATS, OwlDateTimeModule, OwlNativeDateTimeModule} from '@danielmoncada/angular-datetime-picker';
+import {
+    OWL_DATE_TIME_FORMATS,
+    OwlDateTimeModule,
+    OwlNativeDateTimeModule
+} from '@danielmoncada/angular-datetime-picker';
 
 export const MY_NATIVE_FORMATS = {
     fullPickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false},
diff --git a/ui/src/app/data-explorer/explorer/datadownloadDialog/dataDownload.dialog.ts b/ui/src/app/data-explorer/explorer/datadownloadDialog/dataDownload.dialog.ts
index f768202..fc57118 100644
--- a/ui/src/app/data-explorer/explorer/datadownloadDialog/dataDownload.dialog.ts
+++ b/ui/src/app/data-explorer/explorer/datadownloadDialog/dataDownload.dialog.ts
@@ -17,8 +17,8 @@
  */
 
 import {Component, Inject, ViewChild} from '@angular/core';
-import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
-import { MatStepper } from '@angular/material/stepper';
+import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog';
+import {MatStepper} from '@angular/material/stepper';
 import {HttpEventType} from '@angular/common/http';
 import {DatalakeRestService} from '../../../core-services/datalake/datalake-rest.service';
 
diff --git a/ui/src/app/data-explorer/explorer/explorer.component.ts b/ui/src/app/data-explorer/explorer/explorer.component.ts
index 86174d0..8320614 100644
--- a/ui/src/app/data-explorer/explorer/explorer.component.ts
+++ b/ui/src/app/data-explorer/explorer/explorer.component.ts
@@ -20,10 +20,10 @@ import {Component, OnInit} from '@angular/core';
 import {DatalakeRestService} from '../../core-services/datalake/datalake-rest.service';
 import {InfoResult} from '../../core-model/datalake/InfoResult';
 import {Observable} from 'rxjs/Observable';
-import {FormControl, FormGroup} from '@angular/forms';
+import {FormControl} from '@angular/forms';
 import {map, startWith} from 'rxjs/operators';
-import { MatDialog } from '@angular/material/dialog';
-import { MatSnackBar } from '@angular/material/snack-bar';
+import {MatDialog} from '@angular/material/dialog';
+import {MatSnackBar} from '@angular/material/snack-bar';
 import {DataDownloadDialog} from './datadownloadDialog/dataDownload.dialog';
 import {timer} from 'rxjs/internal/observable/timer';
 import {DataResult} from '../../core-model/datalake/DataResult';
diff --git a/ui/src/app/editor/components/alternative/alternative.component.ts b/ui/src/app/editor/components/alternative/alternative.component.ts
index 47b43dd..7bf1dca 100644
--- a/ui/src/app/editor/components/alternative/alternative.component.ts
+++ b/ui/src/app/editor/components/alternative/alternative.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {AlternativeController} from "./alternative.controller";
+
 declare const require: any;
 
 export let AlternativeComponent = {
diff --git a/ui/src/app/editor/components/alternative/alternative.controller.ts b/ui/src/app/editor/components/alternative/alternative.controller.ts
index 6976f11..1b6f8e5 100644
--- a/ui/src/app/editor/components/alternative/alternative.controller.ts
+++ b/ui/src/app/editor/components/alternative/alternative.controller.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
-
 export class AlternativeController {
 
     staticProperty: any;
diff --git a/ui/src/app/editor/components/any-remote/any-remote.component.ts b/ui/src/app/editor/components/any-remote/any-remote.component.ts
index de2e7c4..2a95535 100644
--- a/ui/src/app/editor/components/any-remote/any-remote.component.ts
+++ b/ui/src/app/editor/components/any-remote/any-remote.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {AnyRemoteController} from "./any-remote.controller";
+
 declare const require: any;
 
 export let AnyRemoteComponent = {
diff --git a/ui/src/app/editor/components/any/any.component.ts b/ui/src/app/editor/components/any/any.component.ts
index 9a3f35d..edde4c2 100644
--- a/ui/src/app/editor/components/any/any.component.ts
+++ b/ui/src/app/editor/components/any/any.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {AnyController} from "./any.controller";
+
 declare const require: any;
 
 export let AnyComponent = {
diff --git a/ui/src/app/editor/components/any/any.controller.ts b/ui/src/app/editor/components/any/any.controller.ts
index fc0a841..7999386 100644
--- a/ui/src/app/editor/components/any/any.controller.ts
+++ b/ui/src/app/editor/components/any/any.controller.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
-
 export class AnyController {
 
     staticProperty: any;
diff --git a/ui/src/app/editor/components/collection/collection.component.ts b/ui/src/app/editor/components/collection/collection.component.ts
index 2d4b0ee..4701737 100644
--- a/ui/src/app/editor/components/collection/collection.component.ts
+++ b/ui/src/app/editor/components/collection/collection.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {CollectionController} from "./collection.controller";
+
 declare const require: any;
 
 export let CollectionComponent = {
diff --git a/ui/src/app/editor/components/customize/customize-dialog.component.ts b/ui/src/app/editor/components/customize/customize-dialog.component.ts
index 9dfd0b0..dfbb345 100644
--- a/ui/src/app/editor/components/customize/customize-dialog.component.ts
+++ b/ui/src/app/editor/components/customize/customize-dialog.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {CustomizeDialogController} from "./customize-dialog.controller";
+
 declare const require: any;
 
 export let CustomizeDialogComponent = {
diff --git a/ui/src/app/editor/components/customoutput/customoutput.component.ts b/ui/src/app/editor/components/customoutput/customoutput.component.ts
index d591dcf..c8f3e13 100644
--- a/ui/src/app/editor/components/customoutput/customoutput.component.ts
+++ b/ui/src/app/editor/components/customoutput/customoutput.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {CustomOutputController} from "./customoutput.controller";
+
 declare const require: any;
 
 export let CustomOutputComponent = {
diff --git a/ui/src/app/editor/components/customoutput/propertyselection/property-selection.component.ts b/ui/src/app/editor/components/customoutput/propertyselection/property-selection.component.ts
index 3704125..b1d22c5 100644
--- a/ui/src/app/editor/components/customoutput/propertyselection/property-selection.component.ts
+++ b/ui/src/app/editor/components/customoutput/propertyselection/property-selection.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PropertySelectionController} from "./property-selection.controller";
+
 declare const require: any;
 
 export let PropertySelectionComponent = {
diff --git a/ui/src/app/editor/components/customoutput/propertyselection/property-selection.controller.ts b/ui/src/app/editor/components/customoutput/propertyselection/property-selection.controller.ts
index d8de4e8..cf6a664 100644
--- a/ui/src/app/editor/components/customoutput/propertyselection/property-selection.controller.ts
+++ b/ui/src/app/editor/components/customoutput/propertyselection/property-selection.controller.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
-
 export class PropertySelectionController {
 
     outputStrategy: any;
diff --git a/ui/src/app/editor/components/domainconcept/domainconcept.component.ts b/ui/src/app/editor/components/domainconcept/domainconcept.component.ts
index 8e22ee7..4273eb6 100644
--- a/ui/src/app/editor/components/domainconcept/domainconcept.component.ts
+++ b/ui/src/app/editor/components/domainconcept/domainconcept.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DomainConceptController} from "./domainconcept.controller";
+
 declare const require: any;
 
 export let DomainConceptComponent = {
diff --git a/ui/src/app/editor/components/fileupload/fileupload.component.ts b/ui/src/app/editor/components/fileupload/fileupload.component.ts
index b3d69d4..9a9070a 100644
--- a/ui/src/app/editor/components/fileupload/fileupload.component.ts
+++ b/ui/src/app/editor/components/fileupload/fileupload.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {FileUploadController} from "./fileupload.controller";
+
 declare const require: any;
 
 export let FileUploadComponent = {
diff --git a/ui/src/app/editor/components/freetext/freetext.component.ts b/ui/src/app/editor/components/freetext/freetext.component.ts
index 9e40f5a..f0c178c 100644
--- a/ui/src/app/editor/components/freetext/freetext.component.ts
+++ b/ui/src/app/editor/components/freetext/freetext.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {FreeTextController} from "./freetext.controller";
+
 declare const require: any;
 
 export let FreeTextComponent = {
diff --git a/ui/src/app/editor/components/freetext/freetext.controller.ts b/ui/src/app/editor/components/freetext/freetext.controller.ts
index e4c7279..dfe7257 100644
--- a/ui/src/app/editor/components/freetext/freetext.controller.ts
+++ b/ui/src/app/editor/components/freetext/freetext.controller.ts
@@ -17,7 +17,6 @@
  */
 
 import * as angular from 'angular';
-import {AnyRemoteController} from "../any-remote/any-remote.controller";
 
 export class FreeTextController {
 
diff --git a/ui/src/app/editor/components/group/group.component.ts b/ui/src/app/editor/components/group/group.component.ts
index 897536d..f2beae7 100644
--- a/ui/src/app/editor/components/group/group.component.ts
+++ b/ui/src/app/editor/components/group/group.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {GroupController} from "./group.controller";
+
 declare const require: any;
 
 export let GroupComponent = {
diff --git a/ui/src/app/editor/components/mappingnary/mappingnary.component.ts b/ui/src/app/editor/components/mappingnary/mappingnary.component.ts
index 3112be9..5fa427a 100644
--- a/ui/src/app/editor/components/mappingnary/mappingnary.component.ts
+++ b/ui/src/app/editor/components/mappingnary/mappingnary.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {MappingNaryController} from "./mappingnary.controller";
+
 declare const require: any;
 
 export let MappingNaryComponent = {
diff --git a/ui/src/app/editor/components/mappingunary/mappingunary.component.ts b/ui/src/app/editor/components/mappingunary/mappingunary.component.ts
index 3a3a4c4..62a9391 100644
--- a/ui/src/app/editor/components/mappingunary/mappingunary.component.ts
+++ b/ui/src/app/editor/components/mappingunary/mappingunary.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {MappingUnaryController} from "./mappingunary.controller";
+
 declare const require: any;
 
 export let MappingUnaryComponent = {
diff --git a/ui/src/app/editor/components/matchingproperty/matchingproperty.component.ts b/ui/src/app/editor/components/matchingproperty/matchingproperty.component.ts
index 698bd46..974ee28 100644
--- a/ui/src/app/editor/components/matchingproperty/matchingproperty.component.ts
+++ b/ui/src/app/editor/components/matchingproperty/matchingproperty.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {MatchingPropertyController} from "./matchingproperty.controller";
+
 declare const require: any;
 
 export let MatchingPropertyComponent = {
diff --git a/ui/src/app/editor/components/multivalue/multiple-value-input.component.ts b/ui/src/app/editor/components/multivalue/multiple-value-input.component.ts
index 087468f..3b6fa39 100644
--- a/ui/src/app/editor/components/multivalue/multiple-value-input.component.ts
+++ b/ui/src/app/editor/components/multivalue/multiple-value-input.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {MultipleValueInputController} from "./multiple-value-input.controller";
+
 declare const require: any;
 
 export let MultipleValueInputComponent = {
diff --git a/ui/src/app/editor/components/oneof-remote/oneof-remote.component.ts b/ui/src/app/editor/components/oneof-remote/oneof-remote.component.ts
index 3e185e1..2591cfe 100644
--- a/ui/src/app/editor/components/oneof-remote/oneof-remote.component.ts
+++ b/ui/src/app/editor/components/oneof-remote/oneof-remote.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {OneOfRemoteController} from "./oneof-remote.controller";
+
 declare const require: any;
 
 export let OneOfRemoteComponent = {
diff --git a/ui/src/app/editor/components/oneof/oneof.component.ts b/ui/src/app/editor/components/oneof/oneof.component.ts
index f3cdc0b..b808ede 100644
--- a/ui/src/app/editor/components/oneof/oneof.component.ts
+++ b/ui/src/app/editor/components/oneof/oneof.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {OneOfController} from "./oneof.controller";
+
 declare const require: any;
 
 export let OneOfComponent = {
diff --git a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
index de051cb..9161eb5 100644
--- a/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
+++ b/ui/src/app/editor/components/pipeline-assembly/pipeline-assembly.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineAssemblyController} from "./pipeline-assembly.controller";
+
 declare const require: any;
 
 export let PipelineAssemblyComponent = {
diff --git a/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts b/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
index da21eed..01eb01c 100644
--- a/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-documentation/pipeline-element-documentation.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementDocumentationController} from "./pipeline-element-documentation.controller";
+
 declare const require: any;
 
 export let PipelineElementDocumentationComponent = {
diff --git a/ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.ts b/ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.ts
index f52b49f..59033bb 100644
--- a/ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-icon-stand/pipeline-element-icon-stand.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementIconStandController} from "./pipeline-element-icon-stand.controller";
+
 declare const require: any;
 
 export let PipelineElementIconStandComponent = {
diff --git a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
index 0dec661..0ef74a0 100644
--- a/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-options/pipeline-element-options.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementOptionsController} from "./pipeline-element-options.controller";
+
 declare const require: any;
 
 export let PipelineElementOptionsComponent = {
diff --git a/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts b/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
index 6e1111f..67bd342 100644
--- a/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
+++ b/ui/src/app/editor/components/pipeline-element-recommendation/pipeline-element-recommendation.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementRecommendationController} from "./pipeline-element-recommendation.controller";
+
 declare const require: any;
 
 export let PipelineElementRecommendationComponent = {
diff --git a/ui/src/app/editor/components/pipeline-element/pipeline-element.component.ts b/ui/src/app/editor/components/pipeline-element/pipeline-element.component.ts
index 586a643..6dcb017 100644
--- a/ui/src/app/editor/components/pipeline-element/pipeline-element.component.ts
+++ b/ui/src/app/editor/components/pipeline-element/pipeline-element.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementController} from "./pipeline-element.controller";
+
 declare const require: any;
 
 export let PipelineElementComponent = {
diff --git a/ui/src/app/editor/components/pipeline/pipeline.component.ts b/ui/src/app/editor/components/pipeline/pipeline.component.ts
index 912cd43..4dbcd64 100644
--- a/ui/src/app/editor/components/pipeline/pipeline.component.ts
+++ b/ui/src/app/editor/components/pipeline/pipeline.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineController} from "./pipeline.controller";
+
 declare const require: any;
 
 export let PipelineComponent = {
diff --git a/ui/src/app/editor/components/pipeline/pipeline.controller.ts b/ui/src/app/editor/components/pipeline/pipeline.controller.ts
index b45fb98..abae2a0 100644
--- a/ui/src/app/editor/components/pipeline/pipeline.controller.ts
+++ b/ui/src/app/editor/components/pipeline/pipeline.controller.ts
@@ -17,6 +17,7 @@
  */
 
 import * as angular from "angular";
+
 import {PipelineValidationService} from "../../services/pipeline-validation.service";
 import {RestApi} from "../../../services/rest-api.service";
 
diff --git a/ui/src/app/editor/components/replaceoutput/replaceoutput.component.ts b/ui/src/app/editor/components/replaceoutput/replaceoutput.component.ts
index 2d94161..209dc90 100644
--- a/ui/src/app/editor/components/replaceoutput/replaceoutput.component.ts
+++ b/ui/src/app/editor/components/replaceoutput/replaceoutput.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {ReplaceOutputController} from "./replaceoutput.controller";
+
 declare const require: any;
 
 export let ReplaceOutputComponent = {
diff --git a/ui/src/app/editor/components/secret/secret.component.ts b/ui/src/app/editor/components/secret/secret.component.ts
index ef7d89b..88c7a3e 100644
--- a/ui/src/app/editor/components/secret/secret.component.ts
+++ b/ui/src/app/editor/components/secret/secret.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {SecretController} from "./secret.controller";
+
 declare const require: any;
 
 export let SecretComponent = {
diff --git a/ui/src/app/editor/components/secret/secret.controller.ts b/ui/src/app/editor/components/secret/secret.controller.ts
index 84fb4a5..626a456 100644
--- a/ui/src/app/editor/components/secret/secret.controller.ts
+++ b/ui/src/app/editor/components/secret/secret.controller.ts
@@ -16,8 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
-
 export class SecretController {
 
     staticProperty: any;
diff --git a/ui/src/app/editor/components/topic/topic-selection-dialog.component.ts b/ui/src/app/editor/components/topic/topic-selection-dialog.component.ts
index 2981d6c..b68b28f 100644
--- a/ui/src/app/editor/components/topic/topic-selection-dialog.component.ts
+++ b/ui/src/app/editor/components/topic/topic-selection-dialog.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {TopicSelectionDialogController} from "./topic-selection-dialog.controller";
+
 declare const require: any;
 
 export let TopicSelectionDialogComponent = {
diff --git a/ui/src/app/editor/editor.module.ts b/ui/src/app/editor/editor.module.ts
index 86a3a74..5cdcfed 100644
--- a/ui/src/app/editor/editor.module.ts
+++ b/ui/src/app/editor/editor.module.ts
@@ -23,8 +23,6 @@ import 'angular-ui-bootstrap';
 
 import spServices from '../services/services.module';
 
-import 'legacy/flowtype';
-import 'legacy/jQuery.circleMenu';
 import 'jquery.panzoom';
 import 'npm/bootstrap';
 import 'npm/angular-trix';
@@ -34,10 +32,8 @@ import 'npm/ng-showdown';
 
 import {EditorCtrl} from './editor.controller';
 import myDataBind from './my-data-bind.directive';
-import imageBind  from './image-bind.directive';
-//import capitalize from './capitalize.filter';
+import imageBind from './image-bind.directive';
 import displayRecommendedFilter from './filter/display-recommended.filter';
-//import objectProvider from '../services/object-provider.service';
 
 import {AnyComponent} from './components/any/any.component';
 import {CustomOutputComponent} from './components/customoutput/customoutput.component';
diff --git a/ui/src/app/editor/services/editor-dialog-manager.service.ts b/ui/src/app/editor/services/editor-dialog-manager.service.ts
index af7f8ff..9410261 100644
--- a/ui/src/app/editor/services/editor-dialog-manager.service.ts
+++ b/ui/src/app/editor/services/editor-dialog-manager.service.ts
@@ -17,9 +17,6 @@
  */
 
 import * as angular from 'angular';
-
-declare const require: any;
-
 import {CustomizeController} from "../dialog/customize-pipeline-element/customize.controller";
 import {MatchingErrorController} from "../dialog/matching-error/matching-error.controller";
 import {TopicSelectionDialog} from "../dialog/topic/topic-selection-modal.controller";
@@ -29,6 +26,8 @@ import {SavePipelineController} from "../dialog/save-pipeline/save-pipeline.cont
 import {WelcomeTourDialogController} from "../dialog/welcome-tour/welcome-tour-dialog.controller";
 import {MissingElementsForTutorialDialogController} from "../dialog/missing-elements-for-tutorial/missing-elements-for-tutorial-dialog.controller";
 
+declare const require: any;
+
 export class EditorDialogManager {
 
     $mdDialog: any;
diff --git a/ui/src/app/home/components/status.component.ts b/ui/src/app/home/components/status.component.ts
index e0039e2..746ec8b 100644
--- a/ui/src/app/home/components/status.component.ts
+++ b/ui/src/app/home/components/status.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { Component } from "@angular/core";
-import { RestApi } from "../../services/rest-api.service";
+import {Component} from "@angular/core";
+import {RestApi} from "../../services/rest-api.service";
 
 @Component({
     selector: 'status',
diff --git a/ui/src/app/home/home.component.ts b/ui/src/app/home/home.component.ts
index f3367ca..f67096b 100644
--- a/ui/src/app/home/home.component.ts
+++ b/ui/src/app/home/home.component.ts
@@ -16,10 +16,10 @@
  *
  */
 
-import { Component } from '@angular/core';
-import { DomSanitizer } from '@angular/platform-browser';
-import { HomeService } from './home.service';
-import { StateService } from '@uirouter/core';
+import {Component} from '@angular/core';
+import {DomSanitizer} from '@angular/platform-browser';
+import {HomeService} from './home.service';
+import {StateService} from '@uirouter/core';
 
 @Component({
     templateUrl: './home.component.html',
diff --git a/ui/src/app/home/home.module.ts b/ui/src/app/home/home.module.ts
index 6eb4492..445f3c8 100644
--- a/ui/src/app/home/home.module.ts
+++ b/ui/src/app/home/home.module.ts
@@ -16,15 +16,15 @@
  *
  */
 
-import { NgModule } from '@angular/core';
-import { HomeComponent } from './home.component';
-import { HomeService } from './home.service';
-import { MatGridListModule } from '@angular/material/grid-list';
-import { MatIconModule } from '@angular/material/icon';
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { CommonModule } from '@angular/common';
-import { StatusComponent } from "./components/status.component";
-import { RestApi } from "../services/rest-api.service";
+import {NgModule} from '@angular/core';
+import {HomeComponent} from './home.component';
+import {HomeService} from './home.service';
+import {MatGridListModule} from '@angular/material/grid-list';
+import {MatIconModule} from '@angular/material/icon';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {CommonModule} from '@angular/common';
+import {StatusComponent} from "./components/status.component";
+import {RestApi} from "../services/rest-api.service";
 
 @NgModule({
     imports: [
diff --git a/ui/src/app/info/info.component.ts b/ui/src/app/info/info.component.ts
index c0f5d3c..d73f4f6 100644
--- a/ui/src/app/info/info.component.ts
+++ b/ui/src/app/info/info.component.ts
@@ -16,8 +16,8 @@
  *
  */
 
-import { Component } from '@angular/core';
-import { MatTabChangeEvent } from "@angular/material/tabs";
+import {Component} from '@angular/core';
+import {MatTabChangeEvent} from "@angular/material/tabs";
 
 @Component({
     templateUrl: './info.component.html',
diff --git a/ui/src/app/info/info.module.ts b/ui/src/app/info/info.module.ts
index 9dbeb75..b0626d6 100644
--- a/ui/src/app/info/info.module.ts
+++ b/ui/src/app/info/info.module.ts
@@ -16,25 +16,25 @@
  *
  */
 
-import { NgModule } from '@angular/core';
-import { MatButtonModule } from '@angular/material/button';
-import { MatCheckboxModule } from '@angular/material/checkbox';
-import { MatDividerModule } from '@angular/material/divider';
-import { MatGridListModule } from '@angular/material/grid-list';
-import { MatIconModule } from '@angular/material/icon';
-import { MatInputModule } from '@angular/material/input';
-import { MatTooltipModule } from '@angular/material/tooltip';
+import {NgModule} from '@angular/core';
+import {MatButtonModule} from '@angular/material/button';
+import {MatCheckboxModule} from '@angular/material/checkbox';
+import {MatDividerModule} from '@angular/material/divider';
+import {MatGridListModule} from '@angular/material/grid-list';
+import {MatIconModule} from '@angular/material/icon';
+import {MatInputModule} from '@angular/material/input';
+import {MatTooltipModule} from '@angular/material/tooltip';
 
-import { FlexLayoutModule } from '@angular/flex-layout';
-import { CommonModule } from '@angular/common';
-import { FormsModule } from '@angular/forms';
+import {FlexLayoutModule} from '@angular/flex-layout';
+import {CommonModule} from '@angular/common';
+import {FormsModule} from '@angular/forms';
 
-import { InfoComponent } from './info.component';
-import { CustomMaterialModule } from "../CustomMaterial/custom-material.module";
-import { LicenseComponent } from "./license/license.component";
-import { AboutComponent } from "./about/about.component";
-import { VersionsComponent } from "./versions/versions.component";
-import { VersionInfoService } from "./versions/service/version-info.service";
+import {InfoComponent} from './info.component';
+import {CustomMaterialModule} from "../CustomMaterial/custom-material.module";
+import {LicenseComponent} from "./license/license.component";
+import {AboutComponent} from "./about/about.component";
+import {VersionsComponent} from "./versions/versions.component";
+import {VersionInfoService} from "./versions/service/version-info.service";
 
 @NgModule({
     imports: [
diff --git a/ui/src/app/info/versions/service/version-info.service.ts b/ui/src/app/info/versions/service/version-info.service.ts
index 10e02db..53c4bc8 100644
--- a/ui/src/app/info/versions/service/version-info.service.ts
+++ b/ui/src/app/info/versions/service/version-info.service.ts
@@ -16,13 +16,13 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
 
-import { VersionInfo } from './version-info.model';
-import { SystemInfo } from "./system-info.model";
+import {VersionInfo} from './version-info.model';
+import {SystemInfo} from "./system-info.model";
 
 @Injectable()
 export class VersionInfoService {
diff --git a/ui/src/app/info/versions/versions.component.ts b/ui/src/app/info/versions/versions.component.ts
index 3c8e2d2..a208f75 100644
--- a/ui/src/app/info/versions/versions.component.ts
+++ b/ui/src/app/info/versions/versions.component.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import {Component, Input} from '@angular/core';
+import {Component} from '@angular/core';
 import {VersionInfoService} from "./service/version-info.service";
 import {VersionInfo} from "./service/version-info.model";
 import {SystemInfo} from "./service/system-info.model";
diff --git a/ui/src/app/layout/app.controller.ts b/ui/src/app/layout/app.controller.ts
index 67713fd..1596604 100644
--- a/ui/src/app/layout/app.controller.ts
+++ b/ui/src/app/layout/app.controller.ts
@@ -16,10 +16,6 @@
  *
  */
 
-import 'legacy/stomp';
-import {AuthService} from "../services/auth.service";
-
-declare const Stomp: any;
 
 export class AppCtrl {
 
diff --git a/ui/src/app/login/login.controller.ts b/ui/src/app/login/login.controller.ts
index 69ec220..5869774 100644
--- a/ui/src/app/login/login.controller.ts
+++ b/ui/src/app/login/login.controller.ts
@@ -1,4 +1,3 @@
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
diff --git a/ui/src/app/login/login.module.ts b/ui/src/app/login/login.module.ts
index 7d74ede..40d2bae 100644
--- a/ui/src/app/login/login.module.ts
+++ b/ui/src/app/login/login.module.ts
@@ -20,9 +20,9 @@ import * as angular from 'angular';
 
 import spServices from '../services/services.module'
 
-import { RegisterCtrl } from './register.controller'
-import { LoginCtrl } from './login.controller'
-import { SetupCtrl } from './setup.controller'
+import {RegisterCtrl} from './register.controller'
+import {LoginCtrl} from './login.controller'
+import {SetupCtrl} from './setup.controller'
 import {StartupCtrl} from "./startup/startup.controller";
 
 export default angular.module('sp.login', [spServices])
diff --git a/ui/src/app/login/startup/startup.controller.ts b/ui/src/app/login/startup/startup.controller.ts
index 5faee23..ec54467 100644
--- a/ui/src/app/login/startup/startup.controller.ts
+++ b/ui/src/app/login/startup/startup.controller.ts
@@ -18,7 +18,6 @@
 
 import {AuthService} from "../../services/auth.service";
 import {AuthStatusService} from "../../services/auth-status.service";
-import {LoginCtrl} from "../login.controller";
 
 export class StartupCtrl {
 
diff --git a/ui/src/app/myelements/my-elements.controller.ts b/ui/src/app/myelements/my-elements.controller.ts
index 8e16e7b..8f49f22 100644
--- a/ui/src/app/myelements/my-elements.controller.ts
+++ b/ui/src/app/myelements/my-elements.controller.ts
@@ -19,6 +19,7 @@
 import * as angular from 'angular';
 
 import {JsonLdDialogController} from "./dialog/jsonldDialog.controller";
+
 declare const require: any;
 
 export class MyElementsCtrl {
diff --git a/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts b/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
index 745776f..c2b2826 100644
--- a/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
+++ b/ui/src/app/pipeline-details/components/actions/pipeline-actions.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineActionsController} from "./pipeline-actions.controller";
+
 declare const require: any;
 
 export let PipelineActionsComponent = {
diff --git a/ui/src/app/pipeline-details/components/edit/quickedit.component.ts b/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
index 9638280..89047ed 100644
--- a/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
+++ b/ui/src/app/pipeline-details/components/edit/quickedit.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {QuickEditController} from "./quickedit.controller";
+
 declare const require: any;
 
 export let QuickEditComponent = {
diff --git a/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts b/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
index dda3957..45abf0c 100644
--- a/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
+++ b/ui/src/app/pipeline-details/components/elements/pipeline-elements-row.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementsRowController} from "./pipeline-elements-row.controller";
+
 declare const require: any;
 
 export let PipelineElementsRowComponent = {
diff --git a/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts b/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
index c69189f..dc911a7 100644
--- a/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
+++ b/ui/src/app/pipeline-details/components/elements/pipeline-elements.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineElementsController} from "./pipeline-elements.controller";
+
 declare const require: any;
 
 export let PipelineElementsComponent = {
diff --git a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
index c171c78..5bc8866 100644
--- a/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
+++ b/ui/src/app/pipeline-details/components/preview/pipeline-preview.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelinePreviewController} from "./pipeline-preview.controller";
+
 declare const require: any;
 
 export let PipelinePreviewComponent = {
diff --git a/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts b/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
index 2d8446b..566313f 100644
--- a/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
+++ b/ui/src/app/pipeline-details/components/status/pipeline-status.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineStatusController} from "./pipeline-status.controller";
+
 declare const require: any;
 
 export let PipelineStatusComponent = {
diff --git a/ui/src/app/pipelines/components/pipeline-details/pipeline-details.component.ts b/ui/src/app/pipelines/components/pipeline-details/pipeline-details.component.ts
index 1e24e74..dd37aa0 100644
--- a/ui/src/app/pipelines/components/pipeline-details/pipeline-details.component.ts
+++ b/ui/src/app/pipelines/components/pipeline-details/pipeline-details.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PipelineDetailsController} from "./pipeline-details.controller";
+
 declare const require: any;
 
 export let PipelineDetailsComponent = {
diff --git a/ui/src/app/pipelines/pipelines.controller.ts b/ui/src/app/pipelines/pipelines.controller.ts
index eeb60cb..e38f8e2 100644
--- a/ui/src/app/pipelines/pipelines.controller.ts
+++ b/ui/src/app/pipelines/pipelines.controller.ts
@@ -18,15 +18,14 @@
 
 import * as angular from 'angular';
 import * as FileSaver from 'file-saver';
-
-declare const jsPlumb: any;
-declare const require: any;
-
 import {StartAllPipelinesController} from './dialog/start-all-pipelines-dialog.controller';
 import {PipelineCategoriesDialogController} from './dialog/pipeline-categories-dialog.controller';
 import {ElementIconText} from "../services/get-element-icon-text.service";
 import {ImportPipelineDialogController} from "./dialog/import-pipeline-dialog.controller";
 
+declare const jsPlumb: any;
+declare const require: any;
+
 export class PipelineCtrl {
 
     RestApi: any;
diff --git a/ui/src/app/pipelines/pipelines.module.ts b/ui/src/app/pipelines/pipelines.module.ts
index 9805231..1347cb3 100644
--- a/ui/src/app/pipelines/pipelines.module.ts
+++ b/ui/src/app/pipelines/pipelines.module.ts
@@ -23,11 +23,11 @@ import 'npm/angular-sanitize';
 
 import spServices from '../services/services.module';
 
-import { PipelineCtrl } from './pipelines.controller';
-import { PipelineDetailsComponent } from './components/pipeline-details/pipeline-details.component';
-import { PipelineCategoryFilter } from './pipeline-category.filter';
-import { CategoryAlreadyInPipelineFilter } from './category-already-in-pipeline.filter';
-import { PipelineOperationsService } from "./services/pipeline-operations.service";
+import {PipelineCtrl} from './pipelines.controller';
+import {PipelineDetailsComponent} from './components/pipeline-details/pipeline-details.component';
+import {PipelineCategoryFilter} from './pipeline-category.filter';
+import {CategoryAlreadyInPipelineFilter} from './category-already-in-pipeline.filter';
+import {PipelineOperationsService} from "./services/pipeline-operations.service";
 
 import ngFileUpload from 'ng-file-upload';
 
diff --git a/ui/src/app/pipelines/services/pipeline-operations.service.ts b/ui/src/app/pipelines/services/pipeline-operations.service.ts
index af1164b..74d40be 100644
--- a/ui/src/app/pipelines/services/pipeline-operations.service.ts
+++ b/ui/src/app/pipelines/services/pipeline-operations.service.ts
@@ -19,6 +19,7 @@
 import * as angular from 'angular';
 import {PipelineStatusDialogController} from "../dialog/pipeline-status-dialog.controller";
 import {DeletePipelineDialogController} from "../dialog/delete-pipeline-dialog.controller";
+
 declare const require: any;
 
 export class PipelineOperationsService {
diff --git a/ui/src/app/platform-services/apis/pipeline-template.service.ts b/ui/src/app/platform-services/apis/pipeline-template.service.ts
index 77e3a85..93251d5 100644
--- a/ui/src/app/platform-services/apis/pipeline-template.service.ts
+++ b/ui/src/app/platform-services/apis/pipeline-template.service.ts
@@ -16,41 +16,14 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { HttpClient } from '@angular/common/http';
-import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
-
-import { DataSetDescription } from '../../connect/model/DataSetDescription';
-import { TsonLd } from '../tsonld/tsonld';
-import { ProtocolDescription } from '../../connect/model/connect/grounding/ProtocolDescription';
-import { ProtocolDescriptionList } from '../../connect/model/connect/grounding/ProtocolDescriptionList';
-import { FreeTextStaticProperty } from '../../connect/model/FreeTextStaticProperty';
-import { FormatDescriptionList } from '../../connect/model/connect/grounding/FormatDescriptionList';
-import { FormatDescription } from '../../connect/model/connect/grounding/FormatDescription';
-import { AdapterDescriptionList } from '../../connect/model/connect/AdapterDescriptionList';
-import { AdapterDescription } from '../../connect/model/connect/AdapterDescription';
-import { EventSchema } from '../../connect/schema-editor/model/EventSchema';
-import { EventPropertyNested } from '../../connect/schema-editor/model/EventPropertyNested';
-import { EventPropertyList } from '../../connect/schema-editor/model/EventPropertyList';
-import { EventPropertyPrimitive } from '../../connect/schema-editor/model/EventPropertyPrimitive';
-import { DomainPropertyProbability } from '../../connect/schema-editor/model/DomainPropertyProbability';
-import { DomainPropertyProbabilityList } from '../../connect/schema-editor/model/DomainPropertyProbabilityList';
-import { GuessSchema } from '../../connect/schema-editor/model/GuessSchema';
-import { EventProperty } from '../../connect/schema-editor/model/EventProperty';
-import { DataStreamContainer } from '../../connect/model/DataStreamContainer';
-import { PipelineTemplateInvocation } from '../../connect/model/PipelineTemplateInvocation';
-import { PipelineTemplateDescription } from '../../connect/model/PipelineTemplateDescription';
-import { PipelineTemplateDescriptionContainer } from '../../connect/model/PipelineTemplateDescriptionContainer';
-import { StaticProperty } from '../../connect/model/StaticProperty';
-import { MappingPropertyUnary } from '../../connect/model/MappingPropertyUnary';
-import { URI } from '../../connect/model/URI';
-import { AuthStatusService } from '../../services/auth-status.service';
-import { DataStreamDescription } from '../../connect/model/DataStreamDescription';
-import { Enumeration } from '../../connect/schema-editor/model/Enumeration';
-import { QuantitativeValue } from '../../connect/schema-editor/model/QuantitativeValue';
-import {BoundPipelineElement} from '../../connect/model/BoundPipelineElement';
-import {DataSinkInvocation} from '../../connect/model/DataSinkInvocation';
+import {Injectable} from '@angular/core';
+import {HttpClient} from '@angular/common/http';
+import {Observable} from 'rxjs';
+import {map} from 'rxjs/operators';
+import {FreeTextStaticProperty} from '../../connect/model/FreeTextStaticProperty';
+import {PipelineTemplateInvocation} from '../../connect/model/PipelineTemplateInvocation';
+import {StaticProperty} from '../../connect/model/StaticProperty';
+import {AuthStatusService} from '../../services/auth-status.service';
 import 'rxjs-compat/add/operator/map';
 import {TsonLdSerializerService} from '../tsonld-serializer.service';
 
diff --git a/ui/src/app/platform-services/platform.module.ts b/ui/src/app/platform-services/platform.module.ts
index 56f3830..e566bc6 100644
--- a/ui/src/app/platform-services/platform.module.ts
+++ b/ui/src/app/platform-services/platform.module.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { NgModule } from '@angular/core';
+import {NgModule} from '@angular/core';
 import {TsonLdSerializerService} from './tsonld-serializer.service';
 import {PipelineTemplateService} from './apis/pipeline-template.service';
 
diff --git a/ui/src/app/platform-services/tsonld-serializer.service.ts b/ui/src/app/platform-services/tsonld-serializer.service.ts
index 726c2a6..3d2bc1f 100644
--- a/ui/src/app/platform-services/tsonld-serializer.service.ts
+++ b/ui/src/app/platform-services/tsonld-serializer.service.ts
@@ -16,38 +16,38 @@
  *
  */
 
-import { Injectable } from '@angular/core';
-import { AnyStaticProperty } from '../connect/model/AnyStaticProperty';
-import { OneOfStaticProperty } from '../connect/model/OneOfStaticProperty';
-import { ProtocolDescription } from '../connect/model/connect/grounding/ProtocolDescription';
-import { ProtocolDescriptionList } from '../connect/model/connect/grounding/ProtocolDescriptionList';
-import { FreeTextStaticProperty } from '../connect/model/FreeTextStaticProperty';
-import { FileStaticProperty } from '../connect/model/FileStaticProperty';
-import { FormatDescriptionList } from '../connect/model/connect/grounding/FormatDescriptionList';
-import { FormatDescription } from '../connect/model/connect/grounding/FormatDescription';
-import { AdapterDescriptionList } from '../connect/model/connect/AdapterDescriptionList';
-import { Option } from '../connect/model/Option';
-import { AdapterDescription } from '../connect/model/connect/AdapterDescription';
-import { AdapterSetDescription } from '../connect/model/connect/AdapterSetDescription';
-import { AdapterStreamDescription } from '../connect/model/connect/AdapterStreamDescription';
-import { DataSetDescription } from '../connect/model/DataSetDescription';
-import { EventSchema } from '../connect/schema-editor/model/EventSchema';
-import { EventProperty } from '../connect/schema-editor/model/EventProperty';
-import { EventPropertyNested } from '../connect/schema-editor/model/EventPropertyNested';
-import { EventPropertyList } from '../connect/schema-editor/model/EventPropertyList';
-import { EventPropertyPrimitive } from '../connect/schema-editor/model/EventPropertyPrimitive';
-import { DomainPropertyProbability } from '../connect/schema-editor/model/DomainPropertyProbability';
-import { DomainPropertyProbabilityList } from '../connect/schema-editor/model/DomainPropertyProbabilityList';
-import { GuessSchema } from '../connect/schema-editor/model/GuessSchema';
-import { URI } from '../connect/model/URI';
-import { RenameRuleDescription } from '../connect/model/connect/rules/RenameRuleDescription';
-import { DeleteRuleDescription } from '../connect/model/connect/rules/DeleteRuleDescription';
-import { AddNestedRuleDescription } from '../connect/model/connect/rules/AddNestedRuleDescription';
-import { RemoveDuplicatesRuleDescription } from '../connect/model/connect/rules/RemoveDuplicatesRuleDescription';
-import { AddTimestampRuleDescription } from '../connect/model/connect/rules/AddTimestampRuleDescription';
-import { AddValueTransformationRuleDescription } from '../connect/model/connect/rules/AddValueTransformationRuleDescription';
-import { MoveRuleDescription } from '../connect/model/connect/rules/MoveRuleDesctiption';
-import { UnitTransformRuleDescription } from '../connect/model/connect/rules/UnitTransformRuleDescription';
+import {Injectable} from '@angular/core';
+import {AnyStaticProperty} from '../connect/model/AnyStaticProperty';
+import {OneOfStaticProperty} from '../connect/model/OneOfStaticProperty';
+import {ProtocolDescription} from '../connect/model/connect/grounding/ProtocolDescription';
+import {ProtocolDescriptionList} from '../connect/model/connect/grounding/ProtocolDescriptionList';
+import {FreeTextStaticProperty} from '../connect/model/FreeTextStaticProperty';
+import {FileStaticProperty} from '../connect/model/FileStaticProperty';
+import {FormatDescriptionList} from '../connect/model/connect/grounding/FormatDescriptionList';
+import {FormatDescription} from '../connect/model/connect/grounding/FormatDescription';
+import {AdapterDescriptionList} from '../connect/model/connect/AdapterDescriptionList';
+import {Option} from '../connect/model/Option';
+import {AdapterDescription} from '../connect/model/connect/AdapterDescription';
+import {AdapterSetDescription} from '../connect/model/connect/AdapterSetDescription';
+import {AdapterStreamDescription} from '../connect/model/connect/AdapterStreamDescription';
+import {DataSetDescription} from '../connect/model/DataSetDescription';
+import {EventSchema} from '../connect/schema-editor/model/EventSchema';
+import {EventProperty} from '../connect/schema-editor/model/EventProperty';
+import {EventPropertyNested} from '../connect/schema-editor/model/EventPropertyNested';
+import {EventPropertyList} from '../connect/schema-editor/model/EventPropertyList';
+import {EventPropertyPrimitive} from '../connect/schema-editor/model/EventPropertyPrimitive';
+import {DomainPropertyProbability} from '../connect/schema-editor/model/DomainPropertyProbability';
+import {DomainPropertyProbabilityList} from '../connect/schema-editor/model/DomainPropertyProbabilityList';
+import {GuessSchema} from '../connect/schema-editor/model/GuessSchema';
+import {URI} from '../connect/model/URI';
+import {RenameRuleDescription} from '../connect/model/connect/rules/RenameRuleDescription';
+import {DeleteRuleDescription} from '../connect/model/connect/rules/DeleteRuleDescription';
+import {AddNestedRuleDescription} from '../connect/model/connect/rules/AddNestedRuleDescription';
+import {RemoveDuplicatesRuleDescription} from '../connect/model/connect/rules/RemoveDuplicatesRuleDescription';
+import {AddTimestampRuleDescription} from '../connect/model/connect/rules/AddTimestampRuleDescription';
+import {AddValueTransformationRuleDescription} from '../connect/model/connect/rules/AddValueTransformationRuleDescription';
+import {MoveRuleDescription} from '../connect/model/connect/rules/MoveRuleDesctiption';
+import {UnitTransformRuleDescription} from '../connect/model/connect/rules/UnitTransformRuleDescription';
 import {TsonLd} from './tsonld/index';
 import {Observable} from 'rxjs';
 import {TransformationRuleDescription} from '../connect/model/connect/rules/TransformationRuleDescription';
@@ -65,7 +65,6 @@ import {PipelineTemplateInvocation} from '../connect/model/PipelineTemplateInvoc
 import {MappingPropertyUnary} from '../connect/model/MappingPropertyUnary';
 import {DataProcessorInvocation} from '../connect/model/DataProcessorInvocation';
 import {AppendOutputStrategy} from '../connect/model/output/AppendOutputStrategy';
-import {CustomOutputComponent} from '../editor/components/customoutput/customoutput.component';
 import {CustomOutputStrategy} from '../connect/model/output/CustomOutputStrategy';
 import {CustomTransformOutputStrategy} from '../connect/model/output/CustomTransformOutputStrategy';
 import {FixedOutputStrategy} from '../connect/model/output/FixedOutputStrategy';
@@ -82,7 +81,7 @@ import {PipelineTemplateDescriptionContainer} from '../connect/model/PipelineTem
 import {PipelineTemplateDescription} from '../connect/model/PipelineTemplateDescription';
 import {BoundPipelineElement} from '../connect/model/BoundPipelineElement';
 import {DataSinkInvocation} from '../connect/model/DataSinkInvocation';
-import {RuntimeResolvableOneOfStaticProperty } from "../connect/model/RuntimeResolvableOneOfStaticProperty";
+import {RuntimeResolvableOneOfStaticProperty} from "../connect/model/RuntimeResolvableOneOfStaticProperty";
 import {RuntimeResolvableAnyStaticProperty} from "../connect/model/RuntimeResolvableAnyStaticProperty";
 import {RuntimeOptionsRequest} from "../connect/model/connect/runtime/RuntimeOptionsRequest";
 import {RuntimeOptionsResponse} from "../connect/model/connect/runtime/RuntimeOptionsResponse";
@@ -91,7 +90,7 @@ import {SecretStaticProperty} from "../connect/model/SecretStaticProperty";
 import {AlternativesStaticProperty} from '../connect/model/AlternativesStaticProperty';
 import {AlternativeStaticProperty} from '../connect/model/AlternativeStaticProperty';
 import {GroupStaticProperty} from '../connect/model/GroupStaticProperty';
-import { CollectionStaticProperty } from "../connect/model/CollectionStaticProperty";
+import {CollectionStaticProperty} from "../connect/model/CollectionStaticProperty";
 import {VisualizablePipeline} from "../core-model/dashboard/VisualizablePipeline";
 import {DashboardWidget} from "../core-model/dashboard/DashboardWidget";
 import {DashboardWidgetSettings} from "../core-model/dashboard/DashboardWidgetSettings";
diff --git a/ui/src/app/platform-services/tsonld/tsonld.ts b/ui/src/app/platform-services/tsonld/tsonld.ts
index 638082b..c72a6b1 100644
--- a/ui/src/app/platform-services/tsonld/tsonld.ts
+++ b/ui/src/app/platform-services/tsonld/tsonld.ts
@@ -17,7 +17,7 @@
  */
 
 import 'reflect-metadata';
-import {Observable, from} from 'rxjs';
+import {from, Observable} from 'rxjs';
 
 import * as jsonld from 'jsonld';
 
diff --git a/ui/src/app/sensors/components/deployment/deployment-type.component.ts b/ui/src/app/sensors/components/deployment/deployment-type.component.ts
index 9a87ecc..7ab23da 100644
--- a/ui/src/app/sensors/components/deployment/deployment-type.component.ts
+++ b/ui/src/app/sensors/components/deployment/deployment-type.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DeploymentTypeController} from "./deployment-type.controller";
+
 declare const require: any;
 
 export let DeploymentTypeComponent = {
diff --git a/ui/src/app/sensors/components/deployment/deployment.component.ts b/ui/src/app/sensors/components/deployment/deployment.component.ts
index b0297fc..914cdd9 100644
--- a/ui/src/app/sensors/components/deployment/deployment.component.ts
+++ b/ui/src/app/sensors/components/deployment/deployment.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DeploymentController} from "./deployment.controller";
+
 declare const require: any;
 
 export let DeploymentComponent = {
diff --git a/ui/src/app/sensors/components/general/advanced-settings.component.ts b/ui/src/app/sensors/components/general/advanced-settings.component.ts
index e66f1c3..0206cdb 100644
--- a/ui/src/app/sensors/components/general/advanced-settings.component.ts
+++ b/ui/src/app/sensors/components/general/advanced-settings.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {AdvancedSettingsController} from "./advanced-settings.controller";
+
 declare const require: any;
 
 export let AdvancedSettingsComponent = {
diff --git a/ui/src/app/sensors/components/general/collapsible.component.ts b/ui/src/app/sensors/components/general/collapsible.component.ts
index 1c6534c..fb3072c 100644
--- a/ui/src/app/sensors/components/general/collapsible.component.ts
+++ b/ui/src/app/sensors/components/general/collapsible.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {CollapsibleController} from "./collapsible.controller";
+
 declare const require: any;
 
 export let CollapsibleComponent = {
diff --git a/ui/src/app/sensors/components/general/options.component.ts b/ui/src/app/sensors/components/general/options.component.ts
index 519d29e..28ad58d 100644
--- a/ui/src/app/sensors/components/general/options.component.ts
+++ b/ui/src/app/sensors/components/general/options.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {OptionsController} from "./options.controller";
+
 declare const require: any;
 
 export let OptionsComponent = {
diff --git a/ui/src/app/sensors/components/general/value-specification.component.ts b/ui/src/app/sensors/components/general/value-specification.component.ts
index aba6f43..63e8d69 100644
--- a/ui/src/app/sensors/components/general/value-specification.component.ts
+++ b/ui/src/app/sensors/components/general/value-specification.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {ValueSpecificationController} from "./value-specification.controller";
+
 declare const require: any;
 
 export let ValueSpecificationComponent = {
diff --git a/ui/src/app/sensors/components/generated-element/generated-element-description.component.ts b/ui/src/app/sensors/components/generated-element/generated-element-description.component.ts
index 48d8053..3bd10a3 100644
--- a/ui/src/app/sensors/components/generated-element/generated-element-description.component.ts
+++ b/ui/src/app/sensors/components/generated-element/generated-element-description.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {GeneratedElementDescriptionController} from "./generated-element-description.controller";
+
 declare const require: any;
 
 export let GeneratedElementDescriptionComponent = {
diff --git a/ui/src/app/sensors/components/generated-element/generated-element-implementation.component.ts b/ui/src/app/sensors/components/generated-element/generated-element-implementation.component.ts
index 84abf71..fdbb58c 100644
--- a/ui/src/app/sensors/components/generated-element/generated-element-implementation.component.ts
+++ b/ui/src/app/sensors/components/generated-element/generated-element-implementation.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {GeneratedElementImplementationController} from "./generated-element-implementation.controller";
+
 declare const require: any;
 
 export let GeneratedElementImplementationComponent = {
diff --git a/ui/src/app/sensors/components/grounding/supported-grounding.component.ts b/ui/src/app/sensors/components/grounding/supported-grounding.component.ts
index ca90e72..262c922 100644
--- a/ui/src/app/sensors/components/grounding/supported-grounding.component.ts
+++ b/ui/src/app/sensors/components/grounding/supported-grounding.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {SupportedGroundingController} from "./supported-grounding.controller";
+
 declare const require: any;
 
 export let SupportedGroundingComponent = {
diff --git a/ui/src/app/sensors/components/grounding/transport-format.component.ts b/ui/src/app/sensors/components/grounding/transport-format.component.ts
index 393fb1a..d83bded 100644
--- a/ui/src/app/sensors/components/grounding/transport-format.component.ts
+++ b/ui/src/app/sensors/components/grounding/transport-format.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {TransportFormatController} from "./transport-format.controller";
+
 declare const require: any;
 
 export let TransportFormatComponent = {
diff --git a/ui/src/app/sensors/components/output/output-strategy.component.ts b/ui/src/app/sensors/components/output/output-strategy.component.ts
index fe09adb..942e764 100644
--- a/ui/src/app/sensors/components/output/output-strategy.component.ts
+++ b/ui/src/app/sensors/components/output/output-strategy.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {OutputStrategyController} from "./output-strategy.controller";
+
 declare const require: any;
 
 export let OutputStrategyComponent = {
diff --git a/ui/src/app/sensors/components/property/datatype-property.component.ts b/ui/src/app/sensors/components/property/datatype-property.component.ts
index b51cc62..9e6cdc8 100644
--- a/ui/src/app/sensors/components/property/datatype-property.component.ts
+++ b/ui/src/app/sensors/components/property/datatype-property.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DatatypePropertyController} from "./datatype-property.controller";
+
 declare const require: any;
 
 export let DatatypePropertyComponent = {
diff --git a/ui/src/app/sensors/components/property/domain-concept-property.component.ts b/ui/src/app/sensors/components/property/domain-concept-property.component.ts
index b2f47ea..3af21ad 100644
--- a/ui/src/app/sensors/components/property/domain-concept-property.component.ts
+++ b/ui/src/app/sensors/components/property/domain-concept-property.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DomainConceptPropertyController} from "./domain-concept-property.controller";
+
 declare const require: any;
 
 export let DomainConceptPropertyComponent = {
diff --git a/ui/src/app/sensors/components/property/domain-property.component.ts b/ui/src/app/sensors/components/property/domain-property.component.ts
index 6fbf7e6..0eb6a85 100644
--- a/ui/src/app/sensors/components/property/domain-property.component.ts
+++ b/ui/src/app/sensors/components/property/domain-property.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {DomainPropertyController} from "./domain-property.controller";
+
 declare const require: any;
 
 export let DomainPropertyComponent = {
diff --git a/ui/src/app/sensors/components/property/event-properties.component.ts b/ui/src/app/sensors/components/property/event-properties.component.ts
index 330654f..f797082 100644
--- a/ui/src/app/sensors/components/property/event-properties.component.ts
+++ b/ui/src/app/sensors/components/property/event-properties.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {EventPropertiesController} from "./event-properties.controller";
+
 declare const require: any;
 
 export let EventPropertiesComponent = {
diff --git a/ui/src/app/sensors/components/property/property-restriction.component.ts b/ui/src/app/sensors/components/property/property-restriction.component.ts
index 7405aa0..65565d6 100644
--- a/ui/src/app/sensors/components/property/property-restriction.component.ts
+++ b/ui/src/app/sensors/components/property/property-restriction.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PropertyRestrictionController} from "./property-restriction.controller";
+
 declare const require: any;
 
 export let PropertyRestrictionComponent = {
diff --git a/ui/src/app/sensors/components/property/required-property-values.component.ts b/ui/src/app/sensors/components/property/required-property-values.component.ts
index c78b31c..31f3f1a 100644
--- a/ui/src/app/sensors/components/property/required-property-values.component.ts
+++ b/ui/src/app/sensors/components/property/required-property-values.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {RequiredPropertyValuesController} from "./required-property-values.controller";
+
 declare const require: any;
 
 export let RequiredPropertyValuesComponent = {
diff --git a/ui/src/app/sensors/components/property/static-properties.component.ts b/ui/src/app/sensors/components/property/static-properties.component.ts
index 415a8a8..7e4393f 100644
--- a/ui/src/app/sensors/components/property/static-properties.component.ts
+++ b/ui/src/app/sensors/components/property/static-properties.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {StaticPropertiesController} from "./static-properties.controller";
+
 declare const require: any;
 
 export let StaticPropertiesComponent = {
diff --git a/ui/src/app/sensors/components/quality/property-quality-definitions.component.ts b/ui/src/app/sensors/components/quality/property-quality-definitions.component.ts
index 71a5626..30ef74c 100644
--- a/ui/src/app/sensors/components/quality/property-quality-definitions.component.ts
+++ b/ui/src/app/sensors/components/quality/property-quality-definitions.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {PropertyQualityDefinitionsController} from "./property-quality-definitions.controller";
+
 declare const require: any;
 
 export let PropertyQualityDefinitionsComponent = {
diff --git a/ui/src/app/sensors/components/quality/stream-quality-definitions.component.ts b/ui/src/app/sensors/components/quality/stream-quality-definitions.component.ts
index f032688..32ee34e 100644
--- a/ui/src/app/sensors/components/quality/stream-quality-definitions.component.ts
+++ b/ui/src/app/sensors/components/quality/stream-quality-definitions.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {StreamQualityDefinitionsController} from "./stream-quality-definitions.controller";
+
 declare const require: any;
 
 export let StreamQualityDefinitionsComponent = {
diff --git a/ui/src/app/sensors/components/restriction/stream-restriction.component.ts b/ui/src/app/sensors/components/restriction/stream-restriction.component.ts
index 6501429..d1203c3 100644
--- a/ui/src/app/sensors/components/restriction/stream-restriction.component.ts
+++ b/ui/src/app/sensors/components/restriction/stream-restriction.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {StreamRestrictionController} from "./stream-restriction.controller";
+
 declare const require: any;
 
 export let StreamRestrictionComponent = {
diff --git a/ui/src/app/sensors/components/sepa/sepa-basics.component.ts b/ui/src/app/sensors/components/sepa/sepa-basics.component.ts
index b425c1a..b35fa3e 100644
--- a/ui/src/app/sensors/components/sepa/sepa-basics.component.ts
+++ b/ui/src/app/sensors/components/sepa/sepa-basics.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {SepaBasicsController} from "./sepa-basics.controller";
+
 declare const require: any;
 
 export let SepaBasicsComponent = {
diff --git a/ui/src/app/sensors/components/sepa/sepa-stream-detail.component.ts b/ui/src/app/sensors/components/sepa/sepa-stream-detail.component.ts
index e4989ea..9e1bb21 100644
--- a/ui/src/app/sensors/components/sepa/sepa-stream-detail.component.ts
+++ b/ui/src/app/sensors/components/sepa/sepa-stream-detail.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {SepaStreamDetailController} from "./sepa-stream-detail.controller";
+
 declare const require: any;
 
 export let SepaStreamDetailComponent = {
diff --git a/ui/src/app/sensors/components/unit/measurement-unit.component.ts b/ui/src/app/sensors/components/unit/measurement-unit.component.ts
index cd40558..765233a 100644
--- a/ui/src/app/sensors/components/unit/measurement-unit.component.ts
+++ b/ui/src/app/sensors/components/unit/measurement-unit.component.ts
@@ -17,6 +17,7 @@
  */
 
 import {MeasurementUnitController} from "./measurement-unit.controller";
+
 declare const require: any;
 
 export let MeasurementUnitComponent = {
diff --git a/ui/src/app/services/auth-status.service.ts b/ui/src/app/services/auth-status.service.ts
index 8fda527..0274970 100644
--- a/ui/src/app/services/auth-status.service.ts
+++ b/ui/src/app/services/auth-status.service.ts
@@ -16,7 +16,7 @@
  *
  */
 
-import { Injectable } from '@angular/core';
+import {Injectable} from '@angular/core';
 
 @Injectable()
 export class AuthStatusService {
diff --git a/ui/src/app/services/auth.service.ts b/ui/src/app/services/auth.service.ts
index 90c2aea..cfd7e02 100644
--- a/ui/src/app/services/auth.service.ts
+++ b/ui/src/app/services/auth.service.ts
@@ -18,7 +18,6 @@
 
 import {RestApi} from "./rest-api.service";
 import {AuthStatusService} from "./auth-status.service";
-import {TransitionService} from "./transition.service";
 
 export class AuthService {
 
diff --git a/ui/src/app/services/jsplumb.service.ts b/ui/src/app/services/jsplumb.service.ts
index 0dfa60d..f66f9af 100644
--- a/ui/src/app/services/jsplumb.service.ts
+++ b/ui/src/app/services/jsplumb.service.ts
@@ -16,7 +16,6 @@
  *
  */
 
-import * as angular from 'angular';
 import {ObjectProvider} from "./object-provider.service";
 import {JsplumbConfigService} from "./jsplumb-config.service";
 import {JsplumbBridge} from "./jsplumb-bridge.service";
diff --git a/ui/src/app/services/route-transition-interceptor.service.ts b/ui/src/app/services/route-transition-interceptor.service.ts
index 1a1dbe2..aa96ac9 100644
--- a/ui/src/app/services/route-transition-interceptor.service.ts
+++ b/ui/src/app/services/route-transition-interceptor.service.ts
@@ -18,7 +18,6 @@
 
 import {AuthService} from "./auth.service";
 import {AuthStatusService} from "./auth-status.service";
-import {RestApi} from "./rest-api.service";
 
 export class RouteTransitionInterceptorService {
 
diff --git a/ui/src/app/services/services.module.ts b/ui/src/app/services/services.module.ts
index c5ec697..7369d54 100644
--- a/ui/src/app/services/services.module.ts
+++ b/ui/src/app/services/services.module.ts
@@ -21,29 +21,29 @@ import 'npm/dagre';
 
 import spConstants from '../constants/constants.module'
 
-import { ImageChecker } from './image-checker.service'
-import { AuthService } from './auth.service'
-import { ElementIconText } from './get-element-icon-text.service'
-import { InitTooltips } from './init-tooltips.service'
-import { RestApi } from './rest-api.service'
-import { AuthStatusService } from './auth-status.service'
-import { DomainProperties } from './domain-properties.service'
-import { JsplumbBridge } from './jsplumb-bridge.service'
-import { JsplumbService } from './jsplumb.service'
-import { PipelinePositioningService } from './pipeline-positioning.service'
-import { PipelineEditorService } from './pipeline-editor.service'
-import { DialogBuilder } from './dialog-builder.service'
-import { MeasurementUnits } from './measurement-units.service'
-import { DeploymentService } from './deployment.service'
-import { JsplumbConfigService } from './jsplumb-config.service'
-import { PipelineElementIconService } from './pipeline-icon.service'
-import { ObjectProvider } from './object-provider.service'
-import { downgradeInjectable } from '@angular/upgrade/static';
-import { TransitionService } from "./transition.service";
-import { ShepherdService } from "./tour/shepherd.service";
-import { TourProviderService } from "./tour/tour-provider.service";
-import { PropertySelectorService } from "./property-selector.service";
-import { RouteTransitionInterceptorService } from "./route-transition-interceptor.service";
+import {ImageChecker} from './image-checker.service'
+import {AuthService} from './auth.service'
+import {ElementIconText} from './get-element-icon-text.service'
+import {InitTooltips} from './init-tooltips.service'
+import {RestApi} from './rest-api.service'
+import {AuthStatusService} from './auth-status.service'
+import {DomainProperties} from './domain-properties.service'
+import {JsplumbBridge} from './jsplumb-bridge.service'
+import {JsplumbService} from './jsplumb.service'
+import {PipelinePositioningService} from './pipeline-positioning.service'
+import {PipelineEditorService} from './pipeline-editor.service'
+import {DialogBuilder} from './dialog-builder.service'
+import {MeasurementUnits} from './measurement-units.service'
+import {DeploymentService} from './deployment.service'
+import {JsplumbConfigService} from './jsplumb-config.service'
+import {PipelineElementIconService} from './pipeline-icon.service'
+import {ObjectProvider} from './object-provider.service'
+import {downgradeInjectable} from '@angular/upgrade/static';
+import {TransitionService} from "./transition.service";
+import {ShepherdService} from "./tour/shepherd.service";
+import {TourProviderService} from "./tour/tour-provider.service";
+import {PropertySelectorService} from "./property-selector.service";
+import {RouteTransitionInterceptorService} from "./route-transition-interceptor.service";
 
 import CreatePipelineTour from './tour/create-pipeline-tour.constants';
 import DashboardTour from './tour/dashboard-tour.constants';
diff --git a/ui/src/app/services/tour/shepherd.service.ts b/ui/src/app/services/tour/shepherd.service.ts
index ba085f6..62edc53 100644
--- a/ui/src/app/services/tour/shepherd.service.ts
+++ b/ui/src/app/services/tour/shepherd.service.ts
@@ -19,7 +19,6 @@
 import Shepherd from 'shepherd.js';
 //import "shepherd.js/dist/css/shepherd-theme-arrows.css";
 import {Inject, Injectable} from "@angular/core";
-import {LoginCtrl} from "../../login/login.controller";
 
 @Injectable()
 export class ShepherdService {
diff --git a/ui/src/app/services/tour/tour-provider.service.ts b/ui/src/app/services/tour/tour-provider.service.ts
index 4508a65..ff4af3c 100644
--- a/ui/src/app/services/tour/tour-provider.service.ts
+++ b/ui/src/app/services/tour/tour-provider.service.ts
@@ -17,8 +17,6 @@
  *
  */
 
-import {AppCtrl} from "../../layout/app.controller";
-
 export class TourProviderService {
 
     guidedTours: any;
diff --git a/ui/src/app/shared/logger/log.service.ts b/ui/src/app/shared/logger/log.service.ts
index 6906033..e5a1fd5 100644
--- a/ui/src/app/shared/logger/log.service.ts
+++ b/ui/src/app/shared/logger/log.service.ts
@@ -20,7 +20,7 @@
 declare var console: any;
 
 // Import the application components and services.
-import { ILogger } from "./default-log.service";
+import {ILogger} from "./default-log.service";
 
 
 // I log values to the ambient console object.
diff --git a/ui/src/assets/css/angular-material.css b/ui/src/assets/css/angular-material.css
deleted file mode 100644
index d056a92..0000000
--- a/ui/src/assets/css/angular-material.css
+++ /dev/null
@@ -1,6 +0,0 @@
-/*!
- * AngularJS Material Design
- * https://github.com/angular/material
- * @license MIT
- * v1.1.18
- */body,html{height:100%;position:relative}body{margin:0;padding:0}[tabindex="-1"]:focus{outline:none}.inset{padding:10px}a.md-no-style,button.md-no-style{font-weight:400;background-color:inherit;text-align:left;border:none;padding:0;margin:0}button,input,select,textarea{vertical-align:baseline}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[type=button][disabled],input[type=reset][disabled],input[ty [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/archivoRailwyRoboto.css b/ui/src/assets/css/archivoRailwyRoboto.css
deleted file mode 100644
index e5de1b4..0000000
--- a/ui/src/assets/css/archivoRailwyRoboto.css
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-@font-face {
-    font-family: 'Archivo';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Archivo Regular'), local('Archivo-Regular');
-    unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-  }
-  
-  @font-face {
-    font-family: 'Archivo';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Archivo Regular'), local('Archivo-Regular');
-    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-  }
-  @font-face {
-    font-family: 'Archivo';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Archivo Regular'), local('Archivo-Regular');
-    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-  }
-  
-  @font-face {
-    font-family: 'Raleway';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Raleway'), local('Raleway-Regular') url;
-    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-  }
-  @font-face {
-    font-family: 'Raleway';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Raleway'), local('Raleway-Regular');
-    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-  }
-
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular') ;
-    unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-  }
-
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-  }
-
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+1F00-1FFF;
-  }
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+0370-03FF;
-  }
-  
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-  }
-  
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-  }
-  @font-face {
-    font-family: 'Roboto';
-    font-style: normal;
-    font-weight: 400;
-    src: local('Roboto'), local('Roboto-Regular');
-    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-  }
\ No newline at end of file
diff --git a/ui/src/assets/css/bootstrap.min.css b/ui/src/assets/css/bootstrap.min.css
deleted file mode 100644
index cd1c616..0000000
--- a/ui/src/assets/css/bootstrap.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * Bootstrap v3.3.4 (http://getbootstrap.com)
- * Copyright 2011-2015 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-b [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/epoch.min.css b/ui/src/assets/css/epoch.min.css
deleted file mode 100644
index 39999ee..0000000
--- a/ui/src/assets/css/epoch.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.epoch .axis path,.epoch .axis line{shape-rendering:crispEdges}.epoch .axis.canvas .tick line{shape-rendering:geometricPrecision}div#_canvas_css_reference{width:0;height:0;position:absolute;top:-1000px;left:-1000px}div#_canvas_css_reference svg{position:absolute;width:0;height:0;top:-1000px;left:-1000px}.epoch{font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:12pt}.epoch .axis path,.epoch .axis line{fill:transparent;stroke:#000}.epoch .axis .tick text{font-size:9pt}.ep [...]
diff --git a/ui/src/assets/css/font-awesome.min.css b/ui/src/assets/css/font-awesome.min.css
deleted file mode 100644
index 9c24364..0000000
--- a/ui/src/assets/css/font-awesome.min.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- *  Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:norma [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/jquery-ui.css b/ui/src/assets/css/jquery-ui.css
deleted file mode 100644
index c3f48a9..0000000
--- a/ui/src/assets/css/jquery-ui.css
+++ /dev/null
@@ -1,1243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/*! jQuery UI - v1.11.4 - 2015-03-11
-* http://jqueryui.com
-* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
-* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=highlight_soft&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=flat&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=glass&bgImgOpacityDe [...]
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden {
-    display: none;
-}
-.ui-helper-hidden-accessible {
-    border: 0;
-    clip: rect(0 0 0 0);
-    height: 1px;
-    margin: -1px;
-    overflow: hidden;
-    padding: 0;
-    position: absolute;
-    width: 1px;
-}
-.ui-helper-reset {
-    margin: 0;
-    padding: 0;
-    border: 0;
-    outline: 0;
-    line-height: 1.3;
-    text-decoration: none;
-    font-size: 100%;
-    list-style: none;
-}
-.ui-helper-clearfix:before,
-.ui-helper-clearfix:after {
-    content: "";
-    display: table;
-    border-collapse: collapse;
-}
-.ui-helper-clearfix:after {
-    clear: both;
-}
-.ui-helper-clearfix {
-    min-height: 0; /* support: IE7 */
-}
-.ui-helper-zfix {
-    width: 100%;
-    height: 100%;
-    top: 0;
-    left: 0;
-    position: absolute;
-    opacity: 0;
-    filter:Alpha(Opacity=0); /* support: IE8 */
-}
-
-.ui-front {
-    z-index: 100;
-}
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled {
-    cursor: default !important;
-}
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-    display: block;
-    text-indent: -99999px;
-    overflow: hidden;
-    background-repeat: no-repeat;
-}
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay {
-    position: fixed;
-    top: 0;
-    left: 0;
-    width: 100%;
-    height: 100%;
-}
-.ui-accordion .ui-accordion-header {
-    display: block;
-    cursor: pointer;
-    position: relative;
-    margin: 2px 0 0 0;
-    padding: .5em .5em .5em .7em;
-    min-height: 0; /* support: IE7 */
-    font-size: 100%;
-}
-.ui-accordion .ui-accordion-icons {
-    padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-icons .ui-accordion-icons {
-    padding-left: 2.2em;
-}
-.ui-accordion .ui-accordion-header .ui-accordion-header-icon {
-    position: absolute;
-    left: .5em;
-    top: 50%;
-    margin-top: -8px;
-}
-.ui-accordion .ui-accordion-content {
-    padding: 1em 2.2em;
-    border-top: 0;
-    overflow: auto;
-}
-.ui-autocomplete {
-    position: absolute;
-    top: 0;
-    left: 0;
-    cursor: default;
-}
-.ui-button {
-    display: inline-block;
-    position: relative;
-    padding: 0;
-    line-height: normal;
-    margin-right: .1em;
-    cursor: pointer;
-    vertical-align: middle;
-    text-align: center;
-    overflow: visible; /* removes extra width in IE */
-}
-.ui-button,
-.ui-button:link,
-.ui-button:visited,
-.ui-button:hover,
-.ui-button:active {
-    text-decoration: none;
-}
-/* to make room for the icon, a width needs to be set here */
-.ui-button-icon-only {
-    width: 2.2em;
-}
-/* button elements seem to need a little more width */
-button.ui-button-icon-only {
-    width: 2.4em;
-}
-.ui-button-icons-only {
-    width: 3.4em;
-}
-button.ui-button-icons-only {
-    width: 3.7em;
-}
-
-/* button text element */
-.ui-button .ui-button-text {
-    display: block;
-    line-height: normal;
-}
-.ui-button-text-only .ui-button-text {
-    padding: .4em 1em;
-}
-.ui-button-icon-only .ui-button-text,
-.ui-button-icons-only .ui-button-text {
-    padding: .4em;
-    text-indent: -9999999px;
-}
-.ui-button-text-icon-primary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-    padding: .4em 1em .4em 2.1em;
-}
-.ui-button-text-icon-secondary .ui-button-text,
-.ui-button-text-icons .ui-button-text {
-    padding: .4em 2.1em .4em 1em;
-}
-.ui-button-text-icons .ui-button-text {
-    padding-left: 2.1em;
-    padding-right: 2.1em;
-}
-/* no icon support for input elements, provide padding by default */
-input.ui-button {
-    padding: .4em 1em;
-}
-
-/* button icon element(s) */
-.ui-button-icon-only .ui-icon,
-.ui-button-text-icon-primary .ui-icon,
-.ui-button-text-icon-secondary .ui-icon,
-.ui-button-text-icons .ui-icon,
-.ui-button-icons-only .ui-icon {
-    position: absolute;
-    top: 50%;
-    margin-top: -8px;
-}
-.ui-button-icon-only .ui-icon {
-    left: 50%;
-    margin-left: -8px;
-}
-.ui-button-text-icon-primary .ui-button-icon-primary,
-.ui-button-text-icons .ui-button-icon-primary,
-.ui-button-icons-only .ui-button-icon-primary {
-    left: .5em;
-}
-.ui-button-text-icon-secondary .ui-button-icon-secondary,
-.ui-button-text-icons .ui-button-icon-secondary,
-.ui-button-icons-only .ui-button-icon-secondary {
-    right: .5em;
-}
-
-/* button sets */
-.ui-buttonset {
-    margin-right: 7px;
-}
-.ui-buttonset .ui-button {
-    margin-left: 0;
-    margin-right: -.3em;
-}
-
-/* workarounds */
-/* reset extra padding in Firefox, see h5bp.com/l */
-input.ui-button::-moz-focus-inner,
-button.ui-button::-moz-focus-inner {
-    border: 0;
-    padding: 0;
-}
-.ui-datepicker {
-    width: 17em;
-    padding: .2em .2em 0;
-    display: none;
-}
-.ui-datepicker .ui-datepicker-header {
-    position: relative;
-    padding: .2em 0;
-}
-.ui-datepicker .ui-datepicker-prev,
-.ui-datepicker .ui-datepicker-next {
-    position: absolute;
-    top: 2px;
-    width: 1.8em;
-    height: 1.8em;
-}
-.ui-datepicker .ui-datepicker-prev-hover,
-.ui-datepicker .ui-datepicker-next-hover {
-    top: 1px;
-}
-.ui-datepicker .ui-datepicker-prev {
-    left: 2px;
-}
-.ui-datepicker .ui-datepicker-next {
-    right: 2px;
-}
-.ui-datepicker .ui-datepicker-prev-hover {
-    left: 1px;
-}
-.ui-datepicker .ui-datepicker-next-hover {
-    right: 1px;
-}
-.ui-datepicker .ui-datepicker-prev span,
-.ui-datepicker .ui-datepicker-next span {
-    display: block;
-    position: absolute;
-    left: 50%;
-    margin-left: -8px;
-    top: 50%;
-    margin-top: -8px;
-}
-.ui-datepicker .ui-datepicker-title {
-    margin: 0 2.3em;
-    line-height: 1.8em;
-    text-align: center;
-}
-.ui-datepicker .ui-datepicker-title select {
-    font-size: 1em;
-    margin: 1px 0;
-}
-.ui-datepicker select.ui-datepicker-month,
-.ui-datepicker select.ui-datepicker-year {
-    width: 45%;
-}
-.ui-datepicker table {
-    width: 100%;
-    font-size: .9em;
-    border-collapse: collapse;
-    margin: 0 0 .4em;
-}
-.ui-datepicker th {
-    padding: .7em .3em;
-    text-align: center;
-    font-weight: bold;
-    border: 0;
-}
-.ui-datepicker td {
-    border: 0;
-    padding: 1px;
-}
-.ui-datepicker td span,
-.ui-datepicker td a {
-    display: block;
-    padding: .2em;
-    text-align: right;
-    text-decoration: none;
-}
-.ui-datepicker .ui-datepicker-buttonpane {
-    background-image: none;
-    margin: .7em 0 0 0;
-    padding: 0 .2em;
-    border-left: 0;
-    border-right: 0;
-    border-bottom: 0;
-}
-.ui-datepicker .ui-datepicker-buttonpane button {
-    float: right;
-    margin: .5em .2em .4em;
-    cursor: pointer;
-    padding: .2em .6em .3em .6em;
-    width: auto;
-    overflow: visible;
-}
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
-    float: left;
-}
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi {
-    width: auto;
-}
-.ui-datepicker-multi .ui-datepicker-group {
-    float: left;
-}
-.ui-datepicker-multi .ui-datepicker-group table {
-    width: 95%;
-    margin: 0 auto .4em;
-}
-.ui-datepicker-multi-2 .ui-datepicker-group {
-    width: 50%;
-}
-.ui-datepicker-multi-3 .ui-datepicker-group {
-    width: 33.3%;
-}
-.ui-datepicker-multi-4 .ui-datepicker-group {
-    width: 25%;
-}
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
-    border-left-width: 0;
-}
-.ui-datepicker-multi .ui-datepicker-buttonpane {
-    clear: left;
-}
-.ui-datepicker-row-break {
-    clear: both;
-    width: 100%;
-    font-size: 0;
-}
-
-/* RTL support */
-.ui-datepicker-rtl {
-    direction: rtl;
-}
-.ui-datepicker-rtl .ui-datepicker-prev {
-    right: 2px;
-    left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next {
-    left: 2px;
-    right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-prev:hover {
-    right: 1px;
-    left: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-next:hover {
-    left: 1px;
-    right: auto;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane {
-    clear: right;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button {
-    float: left;
-}
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
-.ui-datepicker-rtl .ui-datepicker-group {
-    float: right;
-}
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
-    border-right-width: 0;
-    border-left-width: 1px;
-}
-.ui-dialog {
-    overflow: hidden;
-    position: absolute;
-    top: 0;
-    left: 0;
-    padding: .2em;
-    outline: 0;
-}
-.ui-dialog .ui-dialog-titlebar {
-    padding: .4em 1em;
-    position: relative;
-}
-.ui-dialog .ui-dialog-title {
-    float: left;
-    margin: .1em 0;
-    white-space: nowrap;
-    width: 90%;
-    overflow: hidden;
-    text-overflow: ellipsis;
-}
-.ui-dialog .ui-dialog-titlebar-close {
-    position: absolute;
-    right: .3em;
-    top: 50%;
-    width: 20px;
-    margin: -10px 0 0 0;
-    padding: 1px;
-    height: 20px;
-}
-.ui-dialog .ui-dialog-content {
-    position: relative;
-    border: 0;
-    padding: .5em 1em;
-    background: none;
-    overflow: auto;
-}
-.ui-dialog .ui-dialog-buttonpane {
-    text-align: left;
-    border-width: 1px 0 0 0;
-    background-image: none;
-    margin-top: .5em;
-    padding: .3em 1em .5em .4em;
-}
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
-    float: right;
-}
-.ui-dialog .ui-dialog-buttonpane button {
-    margin: .5em .4em .5em 0;
-    cursor: pointer;
-}
-.ui-dialog .ui-resizable-se {
-    width: 12px;
-    height: 12px;
-    right: -5px;
-    bottom: -5px;
-    background-position: 16px 16px;
-}
-.ui-draggable .ui-dialog-titlebar {
-    cursor: move;
-}
-.ui-draggable-handle {
-    -ms-touch-action: none;
-    touch-action: none;
-}
-.ui-menu {
-    list-style: none;
-    padding: 0;
-    margin: 0;
-    display: block;
-    outline: none;
-}
-.ui-menu .ui-menu {
-    position: absolute;
-}
-.ui-menu .ui-menu-item {
-    position: relative;
-    margin: 0;
-    padding: 3px 1em 3px .4em;
-    cursor: pointer;
-    min-height: 0; /* support: IE7 */
-    /* support: IE10, see #8844 */
-    list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
-}
-.ui-menu .ui-menu-divider {
-    margin: 5px 0;
-    height: 0;
-    font-size: 0;
-    line-height: 0;
-    border-width: 1px 0 0 0;
-}
-.ui-menu .ui-state-focus,
-.ui-menu .ui-state-active {
-    margin: -1px;
-}
-
-/* icon support */
-.ui-menu-icons {
-    position: relative;
-}
-.ui-menu-icons .ui-menu-item {
-    padding-left: 2em;
-}
-
-/* left-aligned */
-.ui-menu .ui-icon {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: .2em;
-    margin: auto 0;
-}
-
-/* right-aligned */
-.ui-menu .ui-menu-icon {
-    left: auto;
-    right: 0;
-}
-.ui-progressbar {
-    height: 2em;
-    text-align: left;
-    overflow: hidden;
-}
-.ui-progressbar .ui-progressbar-value {
-    margin: -1px;
-    height: 100%;
-}
-.ui-progressbar .ui-progressbar-overlay {
-    background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cIC [...]
-    height: 100%;
-    filter: alpha(opacity=25); /* support: IE8 */
-    opacity: 0.25;
-}
-.ui-progressbar-indeterminate .ui-progressbar-value {
-    background-image: none;
-}
-.ui-resizable {
-    position: relative;
-}
-.ui-resizable-handle {
-    position: absolute;
-    font-size: 0.1px;
-    display: block;
-    -ms-touch-action: none;
-    touch-action: none;
-}
-.ui-resizable-disabled .ui-resizable-handle,
-.ui-resizable-autohide .ui-resizable-handle {
-    display: none;
-}
-.ui-resizable-n {
-    cursor: n-resize;
-    height: 7px;
-    width: 100%;
-    top: -5px;
-    left: 0;
-}
-.ui-resizable-s {
-    cursor: s-resize;
-    height: 7px;
-    width: 100%;
-    bottom: -5px;
-    left: 0;
-}
-.ui-resizable-e {
-    cursor: e-resize;
-    width: 7px;
-    right: -5px;
-    top: 0;
-    height: 100%;
-}
-.ui-resizable-w {
-    cursor: w-resize;
-    width: 7px;
-    left: -5px;
-    top: 0;
-    height: 100%;
-}
-.ui-resizable-se {
-    cursor: se-resize;
-    width: 12px;
-    height: 12px;
-    right: 1px;
-    bottom: 1px;
-}
-.ui-resizable-sw {
-    cursor: sw-resize;
-    width: 9px;
-    height: 9px;
-    left: -5px;
-    bottom: -5px;
-}
-.ui-resizable-nw {
-    cursor: nw-resize;
-    width: 9px;
-    height: 9px;
-    left: -5px;
-    top: -5px;
-}
-.ui-resizable-ne {
-    cursor: ne-resize;
-    width: 9px;
-    height: 9px;
-    right: -5px;
-    top: -5px;
-}
-.ui-selectable {
-    -ms-touch-action: none;
-    touch-action: none;
-}
-.ui-selectable-helper {
-    position: absolute;
-    z-index: 100;
-    border: 1px dotted black;
-}
-.ui-selectmenu-menu {
-    padding: 0;
-    margin: 0;
-    position: absolute;
-    top: 0;
-    left: 0;
-    display: none;
-}
-.ui-selectmenu-menu .ui-menu {
-    overflow: auto;
-    /* Support: IE7 */
-    overflow-x: hidden;
-    padding-bottom: 1px;
-}
-.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
-    font-size: 1em;
-    font-weight: bold;
-    line-height: 1.5;
-    padding: 2px 0.4em;
-    margin: 0.5em 0 0 0;
-    height: auto;
-    border: 0;
-}
-.ui-selectmenu-open {
-    display: block;
-}
-.ui-selectmenu-button {
-    display: inline-block;
-    overflow: hidden;
-    position: relative;
-    text-decoration: none;
-    cursor: pointer;
-}
-.ui-selectmenu-button span.ui-icon {
-    right: 0.5em;
-    left: auto;
-    margin-top: -8px;
-    position: absolute;
-    top: 50%;
-}
-.ui-selectmenu-button span.ui-selectmenu-text {
-    text-align: left;
-    padding: 0.4em 2.1em 0.4em 1em;
-    display: block;
-    line-height: 1.4;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-}
-.ui-slider {
-    position: relative;
-    text-align: left;
-}
-.ui-slider .ui-slider-handle {
-    position: absolute;
-    z-index: 2;
-    width: 1.2em;
-    height: 1.2em;
-    cursor: default;
-    -ms-touch-action: none;
-    touch-action: none;
-}
-.ui-slider .ui-slider-range {
-    position: absolute;
-    z-index: 1;
-    font-size: .7em;
-    display: block;
-    border: 0;
-    background-position: 0 0;
-}
-
-/* support: IE8 - See #6727 */
-.ui-slider.ui-state-disabled .ui-slider-handle,
-.ui-slider.ui-state-disabled .ui-slider-range {
-    filter: inherit;
-}
-
-.ui-slider-horizontal {
-    height: .8em;
-}
-.ui-slider-horizontal .ui-slider-handle {
-    top: -.3em;
-    margin-left: -.6em;
-}
-.ui-slider-horizontal .ui-slider-range {
-    top: 0;
-    height: 100%;
-}
-.ui-slider-horizontal .ui-slider-range-min {
-    left: 0;
-}
-.ui-slider-horizontal .ui-slider-range-max {
-    right: 0;
-}
-
-.ui-slider-vertical {
-    width: .8em;
-    height: 100px;
-}
-.ui-slider-vertical .ui-slider-handle {
-    left: -.3em;
-    margin-left: 0;
-    margin-bottom: -.6em;
-}
-.ui-slider-vertical .ui-slider-range {
-    left: 0;
-    width: 100%;
-}
-.ui-slider-vertical .ui-slider-range-min {
-    bottom: 0;
-}
-.ui-slider-vertical .ui-slider-range-max {
-    top: 0;
-}
-.ui-sortable-handle {
-    -ms-touch-action: none;
-    touch-action: none;
-}
-.ui-spinner {
-    position: relative;
-    display: inline-block;
-    overflow: hidden;
-    padding: 0;
-    vertical-align: middle;
-}
-.ui-spinner-input {
-    border: none;
-    background: none;
-    color: inherit;
-    padding: 0;
-    margin: .2em 0;
-    vertical-align: middle;
-    margin-left: .4em;
-    margin-right: 22px;
-}
-.ui-spinner-button {
-    width: 16px;
-    height: 50%;
-    font-size: .5em;
-    padding: 0;
-    margin: 0;
-    text-align: center;
-    position: absolute;
-    cursor: default;
-    display: block;
-    overflow: hidden;
-    right: 0;
-}
-/* more specificity required here to override default borders */
-.ui-spinner a.ui-spinner-button {
-    border-top: none;
-    border-bottom: none;
-    border-right: none;
-}
-/* vertically center icon */
-.ui-spinner .ui-icon {
-    position: absolute;
-    margin-top: -8px;
-    top: 50%;
-    left: 0;
-}
-.ui-spinner-up {
-    top: 0;
-}
-.ui-spinner-down {
-    bottom: 0;
-}
-
-/* TR overrides */
-.ui-spinner .ui-icon-triangle-1-s {
-    /* need to fix icons sprite */
-    background-position: -65px -16px;
-}
-.ui-tabs {
-    position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-    padding: .2em;
-}
-.ui-tabs .ui-tabs-nav {
-    margin: 0;
-    padding: .2em .2em 0;
-}
-.ui-tabs .ui-tabs-nav li {
-    list-style: none;
-    float: left;
-    position: relative;
-    top: 0;
-    margin: 1px .2em 0 0;
-    border-bottom-width: 0;
-    padding: 0;
-    white-space: nowrap;
-}
-.ui-tabs .ui-tabs-nav .ui-tabs-anchor {
-    float: left;
-    padding: .5em 1em;
-    text-decoration: none;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active {
-    margin-bottom: -1px;
-    padding-bottom: 1px;
-}
-.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
-.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
-    cursor: text;
-}
-.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
-    cursor: pointer;
-}
-.ui-tabs .ui-tabs-panel {
-    display: block;
-    border-width: 0;
-    padding: 1em 1.4em;
-    background: none;
-}
-.ui-tooltip {
-    padding: 8px;
-    position: absolute;
-    z-index: 9999;
-    max-width: 300px;
-    -webkit-box-shadow: 0 0 5px #aaa;
-    box-shadow: 0 0 5px #aaa;
-}
-body .ui-tooltip {
-    border-width: 2px;
-}
-
-/* Component containers
-----------------------------------*/
-.ui-widget {
-    font-family: Verdana,Arial,sans-serif;
-    font-size: 1.1em;
-}
-.ui-widget .ui-widget {
-    font-size: 1em;
-}
-.ui-widget input,
-.ui-widget select,
-.ui-widget textarea,
-.ui-widget button {
-    font-family: Verdana,Arial,sans-serif;
-    font-size: 1em;
-}
-.ui-widget-content {
-    border: 1px solid #aaaaaa;
-    background: #ffffff url("images/ui-bg_flat_75_ffffff_40x100.png") 50% 50% repeat-x;
-    color: #222222;
-}
-.ui-widget-content a {
-    color: #222222;
-}
-.ui-widget-header {
-    border: 1px solid #aaaaaa;
-    background: #cccccc url("images/ui-bg_highlight-soft_75_cccccc_1x100.png") 50% 50% repeat-x;
-    color: #222222;
-    font-weight: bold;
-}
-.ui-widget-header a {
-    color: #222222;
-}
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default,
-.ui-widget-content .ui-state-default,
-.ui-widget-header .ui-state-default {
-    border: 1px solid #d3d3d3;
-    background: #e6e6e6 url("images/ui-bg_glass_75_e6e6e6_1x400.png") 50% 50% repeat-x;
-    font-weight: normal;
-    color: #555555;
-}
-.ui-state-default a,
-.ui-state-default a:link,
-.ui-state-default a:visited {
-    color: #555555;
-    text-decoration: none;
-}
-.ui-state-hover,
-.ui-widget-content .ui-state-hover,
-.ui-widget-header .ui-state-hover,
-.ui-state-focus,
-.ui-widget-content .ui-state-focus,
-.ui-widget-header .ui-state-focus {
-    border: 1px solid #999999;
-    background: #dadada url("images/ui-bg_glass_75_dadada_1x400.png") 50% 50% repeat-x;
-    font-weight: normal;
-    color: #212121;
-}
-.ui-state-hover a,
-.ui-state-hover a:hover,
-.ui-state-hover a:link,
-.ui-state-hover a:visited,
-.ui-state-focus a,
-.ui-state-focus a:hover,
-.ui-state-focus a:link,
-.ui-state-focus a:visited {
-    color: #212121;
-    text-decoration: none;
-}
-.ui-state-active,
-.ui-widget-content .ui-state-active,
-.ui-widget-header .ui-state-active {
-    border: 1px solid #aaaaaa;
-    background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x;
-    font-weight: normal;
-    color: #212121;
-}
-.ui-state-active a,
-.ui-state-active a:link,
-.ui-state-active a:visited {
-    color: #212121;
-    text-decoration: none;
-}
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight,
-.ui-widget-content .ui-state-highlight,
-.ui-widget-header .ui-state-highlight {
-    border: 1px solid #fcefa1;
-    background: #fbf9ee url("images/ui-bg_glass_55_fbf9ee_1x400.png") 50% 50% repeat-x;
-    color: #363636;
-}
-.ui-state-highlight a,
-.ui-widget-content .ui-state-highlight a,
-.ui-widget-header .ui-state-highlight a {
-    color: #363636;
-}
-.ui-state-error,
-.ui-widget-content .ui-state-error,
-.ui-widget-header .ui-state-error {
-    border: 1px solid #cd0a0a;
-    background: #fef1ec url("images/ui-bg_glass_95_fef1ec_1x400.png") 50% 50% repeat-x;
-    color: #cd0a0a;
-}
-.ui-state-error a,
-.ui-widget-content .ui-state-error a,
-.ui-widget-header .ui-state-error a {
-    color: #cd0a0a;
-}
-.ui-state-error-text,
-.ui-widget-content .ui-state-error-text,
-.ui-widget-header .ui-state-error-text {
-    color: #cd0a0a;
-}
-.ui-priority-primary,
-.ui-widget-content .ui-priority-primary,
-.ui-widget-header .ui-priority-primary {
-    font-weight: bold;
-}
-.ui-priority-secondary,
-.ui-widget-content .ui-priority-secondary,
-.ui-widget-header .ui-priority-secondary {
-    opacity: .7;
-    filter:Alpha(Opacity=70); /* support: IE8 */
-    font-weight: normal;
-}
-.ui-state-disabled,
-.ui-widget-content .ui-state-disabled,
-.ui-widget-header .ui-state-disabled {
-    opacity: .35;
-    filter:Alpha(Opacity=35); /* support: IE8 */
-    background-image: none;
-}
-.ui-state-disabled .ui-icon {
-    filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
-}
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon {
-    width: 16px;
-    height: 16px;
-}
-.ui-icon,
-.ui-widget-content .ui-icon {
-    background-image: url("images/ui-icons_222222_256x240.png");
-}
-.ui-widget-header .ui-icon {
-    background-image: url("images/ui-icons_222222_256x240.png");
-}
-.ui-state-default .ui-icon {
-    background-image: url("images/ui-icons_888888_256x240.png");
-}
-.ui-state-hover .ui-icon,
-.ui-state-focus .ui-icon {
-    background-image: url("images/ui-icons_454545_256x240.png");
-}
-.ui-state-active .ui-icon {
-    background-image: url("images/ui-icons_454545_256x240.png");
-}
-.ui-state-highlight .ui-icon {
-    background-image: url("images/ui-icons_2e83ff_256x240.png");
-}
-.ui-state-error .ui-icon,
-.ui-state-error-text .ui-icon {
-    background-image: url("images/ui-icons_cd0a0a_256x240.png");
-}
-
-/* positioning */
-.ui-icon-blank { background-position: 16px 16px; }
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-on { background-position: -96px -144px; }
-.ui-icon-radio-off { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-left,
-.ui-corner-tl {
-    border-top-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-top,
-.ui-corner-right,
-.ui-corner-tr {
-    border-top-right-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-left,
-.ui-corner-bl {
-    border-bottom-left-radius: 4px;
-}
-.ui-corner-all,
-.ui-corner-bottom,
-.ui-corner-right,
-.ui-corner-br {
-    border-bottom-right-radius: 4px;
-}
-
-/* Overlays */
-.ui-widget-overlay {
-    background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
-    opacity: .3;
-    filter: Alpha(Opacity=30); /* support: IE8 */
-}
-.ui-widget-shadow {
-    margin: -8px 0 0 -8px;
-    padding: 8px;
-    background: #aaaaaa url("images/ui-bg_flat_0_aaaaaa_40x100.png") 50% 50% repeat-x;
-    opacity: .3;
-    filter: Alpha(Opacity=30); /* support: IE8 */
-    border-radius: 8px;
-}
\ No newline at end of file
diff --git a/ui/src/assets/css/jquery.dataTables.min.css b/ui/src/assets/css/jquery.dataTables.min.css
deleted file mode 100644
index fb6d5f3..0000000
--- a/ui/src/assets/css/jquery.dataTables.min.css
+++ /dev/null
@@ -1,542 +0,0 @@
-table.dataTable {
-    width: 100%;
-    margin: 0 auto;
-    clear: both;
-    border-collapse: separate;
-    border-spacing: 0
-}
-
-table.dataTable thead th,
-table.dataTable tfoot th {
-    font-weight: bold
-}
-
-table.dataTable thead th,
-table.dataTable thead td {
-    padding: 10px 18px;
-    border-bottom: 1px solid #111
-}
-
-table.dataTable thead th:active,
-table.dataTable thead td:active {
-    outline: none
-}
-
-table.dataTable tfoot th,
-table.dataTable tfoot td {
-    padding: 10px 18px 6px 18px;
-    border-top: 1px solid #111
-}
-
-table.dataTable thead .sorting,
-table.dataTable thead .sorting_asc,
-table.dataTable thead .sorting_desc,
-table.dataTable thead .sorting_asc_disabled,
-table.dataTable thead .sorting_desc_disabled {
-    cursor: pointer;
-    *cursor: hand;
-    background-repeat: no-repeat;
-    background-position: center right
-}
-
-table.dataTable thead .sorting {
-    background-image: url("../images/sort_both.png")
-}
-
-table.dataTable thead .sorting_asc {
-    background-image: url("../images/sort_asc.png")
-}
-
-table.dataTable thead .sorting_desc {
-    background-image: url("../images/sort_desc.png")
-}
-
-table.dataTable thead .sorting_asc_disabled {
-    background-image: url("../images/sort_asc_disabled.png")
-}
-
-table.dataTable thead .sorting_desc_disabled {
-    background-image: url("../images/sort_desc_disabled.png")
-}
-
-table.dataTable tbody tr {
-    background-color: #ffffff
-}
-
-table.dataTable tbody tr.selected {
-    background-color: #B0BED9
-}
-
-table.dataTable tbody th,
-table.dataTable tbody td {
-    padding: 8px 10px
-}
-
-table.dataTable.row-border tbody th,
-table.dataTable.row-border tbody td,
-table.dataTable.display tbody th,
-table.dataTable.display tbody td {
-    border-top: 1px solid #ddd
-}
-
-table.dataTable.row-border tbody tr:first-child th,
-table.dataTable.row-border tbody tr:first-child td,
-table.dataTable.display tbody tr:first-child th,
-table.dataTable.display tbody tr:first-child td {
-    border-top: none
-}
-
-table.dataTable.cell-border tbody th,
-table.dataTable.cell-border tbody td {
-    border-top: 1px solid #ddd;
-    border-right: 1px solid #ddd
-}
-
-table.dataTable.cell-border tbody tr th:first-child,
-table.dataTable.cell-border tbody tr td:first-child {
-    border-left: 1px solid #ddd
-}
-
-table.dataTable.cell-border tbody tr:first-child th,
-table.dataTable.cell-border tbody tr:first-child td {
-    border-top: none
-}
-
-table.dataTable.stripe tbody tr.odd,
-table.dataTable.display tbody tr.odd {
-    background-color: #f9f9f9
-}
-
-table.dataTable.stripe tbody tr.odd.selected,
-table.dataTable.display tbody tr.odd.selected {
-    background-color: #acbad4
-}
-
-table.dataTable.hover tbody tr:hover,
-table.dataTable.display tbody tr:hover {
-    background-color: #f6f6f6
-}
-
-table.dataTable.hover tbody tr:hover.selected,
-table.dataTable.display tbody tr:hover.selected {
-    background-color: #aab7d1
-}
-
-table.dataTable.order-column tbody tr>.sorting_1,
-table.dataTable.order-column tbody tr>.sorting_2,
-table.dataTable.order-column tbody tr>.sorting_3,
-table.dataTable.display tbody tr>.sorting_1,
-table.dataTable.display tbody tr>.sorting_2,
-table.dataTable.display tbody tr>.sorting_3 {
-    background-color: #fafafa
-}
-
-table.dataTable.order-column tbody tr.selected>.sorting_1,
-table.dataTable.order-column tbody tr.selected>.sorting_2,
-table.dataTable.order-column tbody tr.selected>.sorting_3,
-table.dataTable.display tbody tr.selected>.sorting_1,
-table.dataTable.display tbody tr.selected>.sorting_2,
-table.dataTable.display tbody tr.selected>.sorting_3 {
-    background-color: #acbad5
-}
-
-table.dataTable.display tbody tr.odd>.sorting_1,
-table.dataTable.order-column.stripe tbody tr.odd>.sorting_1 {
-    background-color: #f1f1f1
-}
-
-table.dataTable.display tbody tr.odd>.sorting_2,
-table.dataTable.order-column.stripe tbody tr.odd>.sorting_2 {
-    background-color: #f3f3f3
-}
-
-table.dataTable.display tbody tr.odd>.sorting_3,
-table.dataTable.order-column.stripe tbody tr.odd>.sorting_3 {
-    background-color: whitesmoke
-}
-
-table.dataTable.display tbody tr.odd.selected>.sorting_1,
-table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_1 {
-    background-color: #a6b4cd
-}
-
-table.dataTable.display tbody tr.odd.selected>.sorting_2,
-table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_2 {
-    background-color: #a8b5cf
-}
-
-table.dataTable.display tbody tr.odd.selected>.sorting_3,
-table.dataTable.order-column.stripe tbody tr.odd.selected>.sorting_3 {
-    background-color: #a9b7d1
-}
-
-table.dataTable.display tbody tr.even>.sorting_1,
-table.dataTable.order-column.stripe tbody tr.even>.sorting_1 {
-    background-color: #fafafa
-}
-
-table.dataTable.display tbody tr.even>.sorting_2,
-table.dataTable.order-column.stripe tbody tr.even>.sorting_2 {
-    background-color: #fcfcfc
-}
-
-table.dataTable.display tbody tr.even>.sorting_3,
-table.dataTable.order-column.stripe tbody tr.even>.sorting_3 {
-    background-color: #fefefe
-}
-
-table.dataTable.display tbody tr.even.selected>.sorting_1,
-table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_1 {
-    background-color: #acbad5
-}
-
-table.dataTable.display tbody tr.even.selected>.sorting_2,
-table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_2 {
-    background-color: #aebcd6
-}
-
-table.dataTable.display tbody tr.even.selected>.sorting_3,
-table.dataTable.order-column.stripe tbody tr.even.selected>.sorting_3 {
-    background-color: #afbdd8
-}
-
-table.dataTable.display tbody tr:hover>.sorting_1,
-table.dataTable.order-column.hover tbody tr:hover>.sorting_1 {
-    background-color: #eaeaea
-}
-
-table.dataTable.display tbody tr:hover>.sorting_2,
-table.dataTable.order-column.hover tbody tr:hover>.sorting_2 {
-    background-color: #ececec
-}
-
-table.dataTable.display tbody tr:hover>.sorting_3,
-table.dataTable.order-column.hover tbody tr:hover>.sorting_3 {
-    background-color: #efefef
-}
-
-table.dataTable.display tbody tr:hover.selected>.sorting_1,
-table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_1 {
-    background-color: #a2aec7
-}
-
-table.dataTable.display tbody tr:hover.selected>.sorting_2,
-table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_2 {
-    background-color: #a3b0c9
-}
-
-table.dataTable.display tbody tr:hover.selected>.sorting_3,
-table.dataTable.order-column.hover tbody tr:hover.selected>.sorting_3 {
-    background-color: #a5b2cb
-}
-
-table.dataTable.no-footer {
-    border-bottom: 1px solid #111
-}
-
-table.dataTable.nowrap th,
-table.dataTable.nowrap td {
-    white-space: nowrap
-}
-
-table.dataTable.compact thead th,
-table.dataTable.compact thead td {
-    padding: 4px 17px 4px 4px
-}
-
-table.dataTable.compact tfoot th,
-table.dataTable.compact tfoot td {
-    padding: 4px
-}
-
-table.dataTable.compact tbody th,
-table.dataTable.compact tbody td {
-    padding: 4px
-}
-
-table.dataTable th.dt-left,
-table.dataTable td.dt-left {
-    text-align: left
-}
-
-table.dataTable th.dt-center,
-table.dataTable td.dt-center,
-table.dataTable td.dataTables_empty {
-    text-align: center
-}
-
-table.dataTable th.dt-right,
-table.dataTable td.dt-right {
-    text-align: right
-}
-
-table.dataTable th.dt-justify,
-table.dataTable td.dt-justify {
-    text-align: justify
-}
-
-table.dataTable th.dt-nowrap,
-table.dataTable td.dt-nowrap {
-    white-space: nowrap
-}
-
-table.dataTable thead th.dt-head-left,
-table.dataTable thead td.dt-head-left,
-table.dataTable tfoot th.dt-head-left,
-table.dataTable tfoot td.dt-head-left {
-    text-align: left
-}
-
-table.dataTable thead th.dt-head-center,
-table.dataTable thead td.dt-head-center,
-table.dataTable tfoot th.dt-head-center,
-table.dataTable tfoot td.dt-head-center {
-    text-align: center
-}
-
-table.dataTable thead th.dt-head-right,
-table.dataTable thead td.dt-head-right,
-table.dataTable tfoot th.dt-head-right,
-table.dataTable tfoot td.dt-head-right {
-    text-align: right
-}
-
-table.dataTable thead th.dt-head-justify,
-table.dataTable thead td.dt-head-justify,
-table.dataTable tfoot th.dt-head-justify,
-table.dataTable tfoot td.dt-head-justify {
-    text-align: justify
-}
-
-table.dataTable thead th.dt-head-nowrap,
-table.dataTable thead td.dt-head-nowrap,
-table.dataTable tfoot th.dt-head-nowrap,
-table.dataTable tfoot td.dt-head-nowrap {
-    white-space: nowrap
-}
-
-table.dataTable tbody th.dt-body-left,
-table.dataTable tbody td.dt-body-left {
-    text-align: left
-}
-
-table.dataTable tbody th.dt-body-center,
-table.dataTable tbody td.dt-body-center {
-    text-align: center
-}
-
-table.dataTable tbody th.dt-body-right,
-table.dataTable tbody td.dt-body-right {
-    text-align: right
-}
-
-table.dataTable tbody th.dt-body-justify,
-table.dataTable tbody td.dt-body-justify {
-    text-align: justify
-}
-
-table.dataTable tbody th.dt-body-nowrap,
-table.dataTable tbody td.dt-body-nowrap {
-    white-space: nowrap
-}
-
-table.dataTable,
-table.dataTable th,
-table.dataTable td {
-    box-sizing: content-box
-}
-
-.dataTables_wrapper {
-    position: relative;
-    clear: both;
-    *zoom: 1;
-    zoom: 1
-}
-
-.dataTables_wrapper .dataTables_length {
-    float: left
-}
-
-.dataTables_wrapper .dataTables_filter {
-    float: right;
-    text-align: right
-}
-
-.dataTables_wrapper .dataTables_filter input {
-    margin-left: 0.5em
-}
-
-.dataTables_wrapper .dataTables_info {
-    clear: both;
-    float: left;
-    padding-top: 0.755em
-}
-
-.dataTables_wrapper .dataTables_paginate {
-    float: right;
-    text-align: right;
-    padding-top: 0.25em
-}
-
-.dataTables_wrapper .dataTables_paginate .paginate_button {
-    box-sizing: border-box;
-    display: inline-block;
-    min-width: 1.5em;
-    padding: 0.5em 1em;
-    margin-left: 2px;
-    text-align: center;
-    text-decoration: none !important;
-    cursor: pointer;
-    *cursor: hand;
-    color: #333 !important;
-    border: 1px solid transparent;
-    border-radius: 2px
-}
-
-.dataTables_wrapper .dataTables_paginate .paginate_button.current,
-.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
-    color: #333 !important;
-    border: 1px solid #979797;
-    background-color: white;
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fff), color-stop(100%, #dcdcdc));
-    background: -webkit-linear-gradient(top, #fff 0%, #dcdcdc 100%);
-    background: -moz-linear-gradient(top, #fff 0%, #dcdcdc 100%);
-    background: -ms-linear-gradient(top, #fff 0%, #dcdcdc 100%);
-    background: -o-linear-gradient(top, #fff 0%, #dcdcdc 100%);
-    background: linear-gradient(to bottom, #fff 0%, #dcdcdc 100%)
-}
-
-.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
-.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
-.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
-    cursor: default;
-    color: #666 !important;
-    border: 1px solid transparent;
-    background: transparent;
-    box-shadow: none
-}
-
-.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
-    color: white !important;
-    border: 1px solid #111;
-    background-color: #585858;
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #585858), color-stop(100%, #111));
-    background: -webkit-linear-gradient(top, #585858 0%, #111 100%);
-    background: -moz-linear-gradient(top, #585858 0%, #111 100%);
-    background: -ms-linear-gradient(top, #585858 0%, #111 100%);
-    background: -o-linear-gradient(top, #585858 0%, #111 100%);
-    background: linear-gradient(to bottom, #585858 0%, #111 100%)
-}
-
-.dataTables_wrapper .dataTables_paginate .paginate_button:active {
-    outline: none;
-    background-color: #2b2b2b;
-    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #2b2b2b), color-stop(100%, #0c0c0c));
-    background: -webkit-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
-    background: -moz-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
-    background: -ms-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
-    background: -o-linear-gradient(top, #2b2b2b 0%, #0c0c0c 100%);
-    background: linear-gradient(to bottom, #2b2b2b 0%, #0c0c0c 100%);
-    box-shadow: inset 0 0 3px #111
-}
-
-.dataTables_wrapper .dataTables_paginate .ellipsis {
-    padding: 0 1em
-}
-
-.dataTables_wrapper .dataTables_processing {
-    position: absolute;
-    top: 50%;
-    left: 50%;
-    width: 100%;
-    height: 40px;
-    margin-left: -50%;
-    margin-top: -25px;
-    padding-top: 20px;
-    text-align: center;
-    font-size: 1.2em;
-    background-color: white;
-    background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
-    background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
-    background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
-    background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
-    background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
-    background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%)
-}
-
-.dataTables_wrapper .dataTables_length,
-.dataTables_wrapper .dataTables_filter,
-.dataTables_wrapper .dataTables_info,
-.dataTables_wrapper .dataTables_processing,
-.dataTables_wrapper .dataTables_paginate {
-    color: #333
-}
-
-.dataTables_wrapper .dataTables_scroll {
-    clear: both
-}
-
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
-    *margin-top: -1px;
-    -webkit-overflow-scrolling: touch
-}
-
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td {
-    vertical-align: middle
-}
-
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>th>div.dataTables_sizing,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>thead>tr>td>div.dataTables_sizing,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>th>div.dataTables_sizing,
-.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody>table>tbody>tr>td>div.dataTables_sizing {
-    height: 0;
-    overflow: hidden;
-    margin: 0 !important;
-    padding: 0 !important
-}
-
-.dataTables_wrapper.no-footer .dataTables_scrollBody {
-    border-bottom: 1px solid #111
-}
-
-.dataTables_wrapper.no-footer div.dataTables_scrollHead table.dataTable,
-.dataTables_wrapper.no-footer div.dataTables_scrollBody>table {
-    border-bottom: none
-}
-
-.dataTables_wrapper:after {
-    visibility: hidden;
-    display: block;
-    content: "";
-    clear: both;
-    height: 0
-}
-
-@media screen and (max-width: 767px) {
-
-    .dataTables_wrapper .dataTables_info,
-    .dataTables_wrapper .dataTables_paginate {
-        float: none;
-        text-align: center
-    }
-
-    .dataTables_wrapper .dataTables_paginate {
-        margin-top: 0.5em
-    }
-}
-
-@media screen and (max-width: 640px) {
-
-    .dataTables_wrapper .dataTables_length,
-    .dataTables_wrapper .dataTables_filter {
-        float: none;
-        text-align: center
-    }
-
-    .dataTables_wrapper .dataTables_filter {
-        margin-top: 0.5em
-    }
-}
\ No newline at end of file
diff --git a/ui/src/assets/css/picker.min.css b/ui/src/assets/css/picker.min.css
deleted file mode 100644
index 88a2999..0000000
--- a/ui/src/assets/css/picker.min.css
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * Angular Date Time Picker - V7.0.0
- * https://www.npmjs.com/package/ng-pick-datetime
- * Licensed under MIT (https://github.com/DanielYKPan/date-time-picker/blob/master/LICENSE)
- *
- * MODIFIED
- */
-.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-ms-flexbox;display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;z-index [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/slick-theme.min.css b/ui/src/assets/css/slick-theme.min.css
deleted file mode 100644
index 24289cb..0000000
--- a/ui/src/assets/css/slick-theme.min.css
+++ /dev/null
@@ -1 +0,0 @@
-@charset 'UTF-8';.slick-dots,.slick-next,.slick-prev{position:absolute;display:block;padding:0}.slick-dots li button:before,.slick-next:before,.slick-prev:before{font-family:slick;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.slick-loading .slick-list{background:url(ajax-loader.gif) center center no-repeat #fff}@font-face{font-family:slick;font-weight:400;font-style:normal;src:url(fonts/slick.eot);src:url(fonts/slick.eot?#iefix) format('embedded-opentype'),url(fon [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/slick.min.css b/ui/src/assets/css/slick.min.css
deleted file mode 100644
index bac1e8a..0000000
--- a/ui/src/assets/css/slick.min.css
+++ /dev/null
@@ -1 +0,0 @@
-.slick-list,.slick-slider,.slick-track{position:relative;display:block}.slick-loading .slick-slide,.slick-loading .slick-track{visibility:hidden}.slick-slider{box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-khtml-user-select:none;-ms-touch-action:pan-y;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.slick-list{overflow:hidden;margin:0;padding:0}.slick-list:focus{outline:0}.slick-list.draggi [...]
\ No newline at end of file
diff --git a/ui/src/assets/css/trix.css b/ui/src/assets/css/trix.css
deleted file mode 100644
index 21e023b..0000000
--- a/ui/src/assets/css/trix.css
+++ /dev/null
@@ -1,304 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-@charset "UTF-8";
-/*
-Trix 0.10.1
-Copyright © 2017 Basecamp, LLC
-http://trix-editor.org/*/
-trix-editor {
-    border: 1px solid #bbb;
-    border-radius: 3px;
-    margin: 0;
-    padding: 0.4em 0.6em;
-    min-height: 5em;
-    outline: none; }
-trix-toolbar * {
-    box-sizing: border-box; }
-trix-toolbar .button_row {
-    display: flex;
-    flex-wrap: nowrap;
-    justify-content: space-between; }
-trix-toolbar .button_group {
-    display: flex;
-    margin-bottom: 10px;
-    border: 1px solid #bbb;
-    border-top-color: #ccc;
-    border-bottom-color: #888;
-    border-radius: 3px; }
-trix-toolbar .button_group button, trix-toolbar .button_group input[type=button] {
-    position: relative;
-    float: left;
-    font-size: inherit;
-    padding: 0;
-    margin: 0;
-    outline: none;
-    border: none;
-    border-bottom: 1px solid #ddd;
-    border-radius: 0;
-    background: transparent; }
-trix-toolbar .button_group button:not(:first-child), trix-toolbar .button_group input[type=button]:not(:first-child) {
-    border-left: 1px solid #ccc; }
-trix-toolbar .button_group button:not(:disabled), trix-toolbar .button_group input[type=button]:not(:disabled) {
-    cursor: pointer; }
-trix-toolbar .button_group button.active, trix-toolbar .button_group input[type=button].active {
-    background: #cbeefa; }
-trix-toolbar .button_group button.icon, trix-toolbar .button_group input[type=button].icon {
-    width: 2.6em;
-    height: 1.6em;
-    max-width: calc(0.8em + 4vw);
-    text-indent: -9999px; }
-@media (max-device-width: 768px) {
-    trix-toolbar .button_group button.icon, trix-toolbar .button_group input[type=button].icon {
-        height: 2em;
-        max-width: calc(0.8em + 3.5vw); } }
-trix-toolbar .button_group button.icon::before, trix-toolbar .button_group input[type=button].icon::before {
-    display: inline-block;
-    position: absolute;
-    top: 0;
-    right: 0;
-    bottom: 0;
-    left: 0;
-    opacity: 0.6;
-    content: "";
-    background-position: center;
-    background-repeat: no-repeat;
-    background-size: contain; }
-@media (max-device-width: 768px) {
-    trix-toolbar .button_group button.icon::before, trix-toolbar .button_group input[type=button].icon::before {
-        right: 6%;
-        left: 6%; } }
-trix-toolbar .button_group button.icon.bold::before, trix-toolbar .button_group input[type=button].icon.bold::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M15.6%2011.8c1-.7%201.6-1.8%201.6-2.8a4%204%200%200%200-4-4H7v14h7c2.1%200%203.7-1.7%203.7-3.8%200-1.5-.8-2.8-2.1-3.4zM10%207.5h3a1.5%201.5%200%201%201%200%203h-3v-3zm3.5%209H10v-3h3.5a1.5%201.5%200%201%201%200%203z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.italic::before, trix-toolbar .button_group input[type=button].icon.italic::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M10%205v3h2.2l-3.4%208H6v3h8v-3h-2.2l3.4-8H18V5h-8z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.link::before, trix-toolbar .button_group input[type=button].icon.link::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M9.88%2013.7a4.3%204.3%200%200%201%200-6.07l3.37-3.37a4.26%204.26%200%200%201%206.07%200%204.3%204.3%200%200%201%200%206.06l-1.96%201.72a.91.91%200%201%201-1.3-1.3l1.97-1.71a2.46%202.46%200%200%200-3.48-3.48l-3.38%203.37a2.46%202.46%200%200%200%200%203.48.91.91%200%201%201-1.3%201.3z%22%2F%3E%3Cpath%20d%3D%22M4.25%2019.46a4.3%2 [...]
-trix-toolbar .button_group button.icon.strike::before, trix-toolbar .button_group input[type=button].icon.strike::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.73%2014l.28.14c.26.15.45.3.57.44.12.14.18.3.18.5%200%20.3-.15.56-.44.75-.3.2-.76.3-1.39.3A13.52%2013.52%200%200%201%207%2014.95v3.37a10.64%2010.64%200%200%200%204.84.88c1.26%200%202.35-.19%203.28-.56.93-.37%201.64-.9%202.14-1.57s.74-1.45.74-2.32c0-.26-.02-.51-.06-.75h-5.21zm-5.5-4c-.08-.34-.12-.7-.12-1.1%200-1.29.52-2.3%201 [...]
-trix-toolbar .button_group button.icon.quote::before, trix-toolbar .button_group input[type=button].icon.quote::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M6%2017h3l2-4V7H5v6h3zm8%200h3l2-4V7h-6v6h3z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.heading-1::before, trix-toolbar .button_group input[type=button].icon.heading-1::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12%209v3H9v7H6v-7H3V9h9zM8%204h14v3h-6v12h-3V7H8V4z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.code::before, trix-toolbar .button_group input[type=button].icon.code::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.2%2012L15%2015.2l1.4%201.4L21%2012l-4.6-4.6L15%208.8l3.2%203.2zM5.8%2012L9%208.8%207.6%207.4%203%2012l4.6%204.6L9%2015.2%205.8%2012z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.bullets::before, trix-toolbar .button_group input[type=button].icon.bullets::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20version%3D%221%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M4%204a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm0%206a2%202%200%201%200%200%204%202%202%200%200%200%200-4zm4%203h14v-2H8v2zm0-6h14v-2H8v2zm0-8v2h14V5H8z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.numbers::before, trix-toolbar .button_group input[type=button].icon.numbers::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M2%2017h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1%203h1.8L2%2013.1v.9h3v-1H3.2L5%2010.9V10H2v1zm5-6v2h14V5H7zm0%2014h14v-2H7v2zm0-6h14v-2H7v2z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.undo::before, trix-toolbar .button_group input[type=button].icon.undo::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M12.5%208c-2.6%200-5%201-6.9%202.6L2%207v9h9l-3.6-3.6A8%208%200%200%201%2020%2016l2.4-.8a10.5%2010.5%200%200%200-10-7.2z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.redo::before, trix-toolbar .button_group input[type=button].icon.redo::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M18.4%2010.6a10.5%2010.5%200%200%200-16.9%204.6L4%2016a8%208%200%200%201%2012.7-3.6L13%2016h9V7l-3.6%203.6z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.nesting-level.decrease::before, trix-toolbar .button_group input[type=button].icon.nesting-level.decrease::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-8.3-.3l2.8%202.9L6%2014.2%204%2012l2-2-1.4-1.5L1%2012l.7.7zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.nesting-level.increase::before, trix-toolbar .button_group input[type=button].icon.nesting-level.increase::before {
-    background-image: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%3E%3Cpath%20d%3D%22M3%2019h19v-2H3v2zm7-6h12v-2H10v2zm-6.9-1L1%2014.2l1.4%201.4L6%2012l-.7-.7-2.8-2.8L1%209.9%203.1%2012zM3%205v2h19V5H3z%22%2F%3E%3C%2Fsvg%3E); }
-trix-toolbar .button_group button.icon.active::before, trix-toolbar .button_group input[type=button].icon.active::before {
-    opacity: 1; }
-trix-toolbar .button_group button.icon:disabled::before, trix-toolbar .button_group input[type=button].icon:disabled::before {
-    opacity: 0.125; }
-trix-toolbar .button_group button:not(.icon), trix-toolbar .button_group input[type=button]:not(.icon) {
-    font-size: 0.75em;
-    font-weight: 600;
-    white-space: nowrap;
-    padding: 0 0.5em;
-    color: rgba(0, 0, 0, 0.6); }
-@media (max-device-width: 768px) {
-    trix-toolbar .button_group button:not(.icon), trix-toolbar .button_group input[type=button]:not(.icon) {
-        letter-spacing: -0.01em;
-        padding: 0 0.3em; } }
-trix-toolbar .button_group button:not(.icon).active, trix-toolbar .button_group input[type=button]:not(.icon).active {
-    color: black; }
-trix-toolbar .button_group button:not(.icon):disabled, trix-toolbar .button_group input[type=button]:not(.icon):disabled {
-    color: rgba(0, 0, 0, 0.125); }
-trix-toolbar .dialogs {
-    position: relative; }
-trix-toolbar .dialogs .dialog {
-    position: absolute;
-    top: 0;
-    left: 0;
-    right: 0;
-    font-size: 0.75em;
-    padding: 15px 10px;
-    background: #fff;
-    box-shadow: 0 0.3em 1em #ccc;
-    border-top: 2px solid #888;
-    border-radius: 5px;
-    z-index: 5; }
-trix-toolbar .dialogs .dialog input {
-    font-size: inherit;
-    font-weight: normal; }
-trix-toolbar .dialogs .dialog input[type=url], trix-toolbar .dialogs .dialog input[type=text] {
-    padding: 0.5em 0.8em;
-    margin: 0 10px 0 0;
-    border-radius: 3px;
-    border: 1px solid #bbb;
-    background-color: #fff;
-    box-shadow: none;
-    outline: none;
-    -webkit-appearance: none;
-    -moz-appearance: none; }
-trix-toolbar .dialogs .dialog input[type=url].validate:invalid, trix-toolbar .dialogs .dialog input[type=text].validate:invalid {
-    box-shadow: #F00 0px 0px 1.5px 1px; }
-trix-toolbar .dialogs .dialog .button_group input[type=button] {
-    font-size: inherit;
-    padding: 0.5em;
-    border-bottom: none; }
-trix-toolbar .dialogs .dialog.link_dialog {
-    max-width: 600px; }
-trix-toolbar .dialogs .dialog.link_dialog .link_url_fields {
-    display: flex;
-    align-items: baseline; }
-trix-toolbar .dialogs .dialog.link_dialog .link_url_fields input[type=url] {
-    flex: 1; }
-trix-toolbar .dialogs .dialog.link_dialog .link_url_fields .button_group {
-    flex: 0 0 content;
-    margin: 0; }
-trix-editor [data-trix-mutable=true] {
-    -webkit-user-select: none;
-    -moz-user-select: none;
-    -ms-user-select: none;
-    user-select: none; }
-trix-editor [data-trix-mutable=true] ::-moz-selection {
-    background: none; }
-trix-editor [data-trix-mutable=true] img {
-    box-shadow: 0 0 0 2px highlight; }
-trix-editor [data-trix-mutable=true].attachment.attachment-file {
-    box-shadow: 0 0 0 2px highlight;
-    border-color: transparent; }
-trix-editor .attachment:hover {
-    cursor: default; }
-trix-editor .attachment.attachment-preview .caption:hover {
-    cursor: text; }
-trix-editor .attachment button.remove {
-    cursor: pointer; }
-trix-editor .attachment button.remove.icon {
-    text-indent: -9999px;
-    display: block;
-    position: absolute;
-    z-index: 1;
-    padding: 0;
-    margin: 0;
-    top: -1.1em;
-    left: calc(50% - 0.8em);
-    width: 1.8em;
-    height: 1.8em;
-    line-height: 1.8em;
-    border-radius: 50%;
-    text-indent: -9999px;
-    background-color: #fff;
-    border: 2px solid highlight;
-    box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.25); }
-trix-editor .attachment button.remove.icon::before {
-    display: inline-block;
-    position: absolute;
-    top: 0.1em;
-    right: 0.1em;
-    bottom: 0.1em;
-    left: 0.1em;
-    opacity: 0.75;
-    content: "";
-    background-image: url(data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19%206.4L17.6%205%2012%2010.6%206.4%205%205%206.4l5.6%205.6L5%2017.6%206.4%2019l5.6-5.6%205.6%205.6%201.4-1.4-5.6-5.6z%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E);
-    background-position: center;
-    background-repeat: no-repeat;
-    background-size: contain; }
-trix-editor .attachment button.remove:hover {
-    border-color: #333; }
-trix-editor .attachment button.remove:hover::before {
-    opacity: 1; }
-trix-editor .attachment .caption.caption-editing textarea {
-    display: inline-block;
-    width: 100%;
-    margin: 0;
-    padding: 0;
-    font-size: inherit;
-    font-family: inherit;
-    line-height: inherit;
-    color: inherit;
-    text-align: center;
-    vertical-align: top;
-    border: none;
-    outline: none;
-    -webkit-appearance: none;
-    -moz-appearance: none; }
-trix-editor .attachment progress {
-    position: absolute;
-    z-index: 1;
-    height: 20px;
-    top: calc(50% - 10px);
-    left: 5%;
-    width: 90%;
-    opacity: 0.9; }
-@charset "UTF-8";
-.trix-content {
-    line-height: 1.5; }
-.trix-content h1 {
-    font-size: 1.2em;
-    line-height: 1.2;
-    margin: 0; }
-.trix-content blockquote {
-    margin: 0 0 0 0.3em;
-    padding: 0 0 0 0.6em;
-    border-left: 0.3em solid #ccc; }
-.trix-content pre {
-    font-family: monospace;
-    font-size: 0.9em;
-    margin: 0;
-    padding: 0.5em;
-    white-space: pre;
-    background-color: #eee;
-    overflow-x: auto; }
-.trix-content ul, .trix-content ol, .trix-content li {
-    margin: 0;
-    padding: 0; }
-.trix-content ul li, .trix-content ol li, .trix-content li li {
-    margin-left: 1em; }
-.trix-content img {
-    max-width: 100%;
-    height: auto; }
-.trix-content a[data-trix-attachment] {
-    color: inherit;
-    text-decoration: none; }
-.trix-content a[data-trix-attachment]:hover, .trix-content a[data-trix-attachment]:visited:hover {
-    color: inherit; }
-.trix-content .attachment {
-    display: inline-block;
-    position: relative;
-    max-width: 100%;
-    margin: 0;
-    padding: 0; }
-.trix-content .attachment .caption {
-    padding: 0;
-    text-align: center; }
-.trix-content .attachment .caption .size:before {
-    content: ' · '; }
-.trix-content .attachment.attachment-preview {
-    width: 100%;
-    text-align: center; }
-.trix-content .attachment.attachment-preview .caption {
-    color: #666;
-    font-size: 0.9em;
-    line-height: 1.2; }
-.trix-content .attachment.attachment-file {
-    color: #333;
-    line-height: 1;
-    margin: 0 2px 2px 0;
-    padding: 0.4em 1em;
-    border: 1px solid #bbb;
-    border-radius: 5px; }
\ No newline at end of file
diff --git a/ui/src/assets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 b/ui/src/assets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2
deleted file mode 100644
index 7e854e6..0000000
Binary files a/ui/src/assets/fonts/KFOmCnqEu92Fr1Mu4mxK.woff2 and /dev/null differ
diff --git a/ui/src/assets/fonts/materialicons.css b/ui/src/assets/fonts/MaterialIcons-Regular.css
similarity index 97%
rename from ui/src/assets/fonts/materialicons.css
rename to ui/src/assets/fonts/MaterialIcons-Regular.css
index b63c891..6d4fffc 100644
--- a/ui/src/assets/fonts/materialicons.css
+++ b/ui/src/assets/fonts/MaterialIcons-Regular.css
@@ -32,7 +32,7 @@
   font-family: 'Material Icons';
   font-weight: normal;
   font-style: normal;
-  font-size: 24px;  /* Preferred icon size */
+  font-size: 24px;
   display: inline-block;
   line-height: 1;
   text-transform: none;
diff --git a/ui/src/app/editor/components/any/any.controller.ts b/ui/src/assets/fonts/Roboto-Regular.css
similarity index 81%
copy from ui/src/app/editor/components/any/any.controller.ts
copy to ui/src/assets/fonts/Roboto-Regular.css
index fc0a841..eac6cfa 100644
--- a/ui/src/app/editor/components/any/any.controller.ts
+++ b/ui/src/assets/fonts/Roboto-Regular.css
@@ -16,12 +16,12 @@
  *
  */
 
-import * as angular from 'angular';
-
-export class AnyController {
-
-    staticProperty: any;
-
-    constructor() {
-    }
-}
\ No newline at end of file
+/* latin */
+@font-face {
+  font-family: 'Roboto';
+  font-style: normal;
+  font-weight: 700;
+  src: local('Roboto'),
+  local('Roboto'),
+  url(Roboto-Regular.ttf) format('ttf');
+}
diff --git a/ui/src/assets/fonts/Roboto-Regular.ttf b/ui/src/assets/fonts/Roboto-Regular.ttf
new file mode 100644
index 0000000..2b6392f
Binary files /dev/null and b/ui/src/assets/fonts/Roboto-Regular.ttf differ
diff --git a/ui/src/assets/fonts/archivo.css b/ui/src/assets/fonts/archivo.css
deleted file mode 100644
index 084ee99..0000000
--- a/ui/src/assets/fonts/archivo.css
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/* vietnamese */
-@font-face {
-  font-family: 'Archivo';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Archivo Regular'), local('Archivo-Regular'), url(https://fonts.gstatic.com/s/archivo/v3/k3kQo8UDI-1M0wlSfdboLnnA.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'Archivo';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Archivo Regular'), local('Archivo-Regular'), url(https://fonts.gstatic.com/s/archivo/v3/k3kQo8UDI-1M0wlSfdfoLnnA.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'Archivo';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Archivo Regular'), local('Archivo-Regular'), url(https://fonts.gstatic.com/s/archivo/v3/k3kQo8UDI-1M0wlSfdnoLg.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'Archivo Black';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Archivo Black Regular'), local('ArchivoBlack-Regular'), url(https://fonts.gstatic.com/s/archivoblack/v7/HTxqL289NzCGg4MzN6KJ7eW6CYKF_i7y.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'Archivo Black';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Archivo Black Regular'), local('ArchivoBlack-Regular'), url(https://fonts.gstatic.com/s/archivoblack/v7/HTxqL289NzCGg4MzN6KJ7eW6CYyF_g.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
-  font-family: 'PT Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0-ExdGM.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'PT Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0aExdGM.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'PT Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0yExdGM.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'PT Sans';
-  font-style: normal;
-  font-weight: 400;
-  src: local('PT Sans'), local('PTSans-Regular'), url(https://fonts.gstatic.com/s/ptsans/v9/jizaRExUiTo99u79D0KExQ.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
diff --git a/ui/src/assets/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 b/ui/src/assets/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2
deleted file mode 100644
index e916217..0000000
Binary files a/ui/src/assets/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2 and /dev/null differ
diff --git a/ui/src/assets/fonts/raleway.css b/ui/src/assets/fonts/raleway.css
deleted file mode 100644
index 53801a4..0000000
--- a/ui/src/assets/fonts/raleway.css
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/* latin-ext */
-@font-face {
-  font-family: 'Raleway';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Raleway'), local('Raleway-Regular'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptug8zYS_SKggPNyCMIT5lu.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'Raleway';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Raleway'), local('Raleway-Regular'), url(https://fonts.gstatic.com/s/raleway/v12/1Ptug8zYS_SKggPNyC0ITw.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
diff --git a/ui/src/assets/fonts/roboto.css b/ui/src/assets/fonts/roboto.css
deleted file mode 100644
index 9b3cfb0..0000000
--- a/ui/src/assets/fonts/roboto.css
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/* cyrillic-ext */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu72xKOzY.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu5mxKOzY.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7mxKOzY.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu4WxKOzY.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7WxKOzY.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v18/KFOmCnqEu92Fr1Mu7GxKOzY.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'Roboto';
-  font-style: normal;
-  font-weight: 400;
-  src: local('Roboto'), local('Roboto-Regular'), url(KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
diff --git a/ui/src/assets/fonts/robotodraft.css b/ui/src/assets/fonts/robotodraft.css
deleted file mode 100644
index 6c46639..0000000
--- a/ui/src/assets/fonts/robotodraft.css
+++ /dev/null
@@ -1,298 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/* cyrillic-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7c9YRHR.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E749YRHR.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7Y9YRHR.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7k9YRHR.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7U9YRHR.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7Q9YRHR.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: italic;
-  font-weight: 400;
-  src: local('RobotoDraft Italic'), local('RobotoDraft-Italic'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDYZGBLgJnUjLre-wxFG1W-E7o9YQ.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0XRCzotw.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0eRCzotw.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0WRCzotw.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0ZRCzotw.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0VRCzotw.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0URCzotw.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 300;
-  src: local('RobotoDraft Light'), local('RobotoDraft-Light'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10QAa0aRCw.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W2I7glZQ.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W_I7glZQ.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W3I7glZQ.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W4I7glZQ.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W0I7glZQ.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W1I7glZQ.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 400;
-  src: local('RobotoDraft'), local('RobotoDraft-Regular'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDaZGBLgJnUjLre-wxFG1W7I7g.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0XRCzotw.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0eRCzotw.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0WRCzotw.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0ZRCzotw.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0VRCzotw.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0URCzotw.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 500;
-  src: local('RobotoDraft Medium'), local('RobotoDraft-Medium'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG11IAK0aRCw.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
-/* cyrillic-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0XRCzotw.woff2) format('woff2');
-  unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
-}
-/* cyrillic */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0eRCzotw.woff2) format('woff2');
-  unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
-}
-/* greek-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0WRCzotw.woff2) format('woff2');
-  unicode-range: U+1F00-1FFF;
-}
-/* greek */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0ZRCzotw.woff2) format('woff2');
-  unicode-range: U+0370-03FF;
-}
-/* vietnamese */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0VRCzotw.woff2) format('woff2');
-  unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
-}
-/* latin-ext */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0URCzotw.woff2) format('woff2');
-  unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
-}
-/* latin */
-@font-face {
-  font-family: 'RobotoDraft';
-  font-style: normal;
-  font-weight: 700;
-  src: local('RobotoDraft Bold'), local('RobotoDraft-Bold'), url(https://fonts.gstatic.com/s/robotodraft/v5/2sDHZGBLgJnUjLre-wxFG10ABq0aRCw.woff2) format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
-}
diff --git a/ui/src/assets/lib/d3.min.js b/ui/src/assets/lib/d3.min.js
deleted file mode 100644
index d7cfb70..0000000
--- a/ui/src/assets/lib/d3.min.js
+++ /dev/null
@@ -1,5 +0,0 @@
-!function(){function n(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function t(n){return null===n?0/0:+n}function e(n){return!isNaN(n)}function r(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function u(n){return n.length}function i(n){for(var t=1;n*t%1;)t*=1 [...]
-(T*T/M>i||ca((y*z+x*L)/M-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,C,N,E,_/=S,b/=S,w,d,m),m.point(C,N),u(C,N,E,_,b,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*La),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Ta,e*Ta])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:fun [...]
-}),Bo.timer(function(){return p.c=c(r||1)?Ae:c,1},0,o),void 0)}function c(r){if(u.active!==e)return l();for(var o=r/g,a=f(o),c=v.length;c>0;)v[--c].call(n,a);return o>=1?(i.event&&i.event.end.call(n,s,t),l()):void 0}function l(){return--u.count?delete u[e]:delete n.__transition__,1}var s=n.__data__,f=i.ease,h=i.delay,g=i.duration,p=Ka,v=[];return p.t=h+o,r>=h?a(r-h):(p.c=a,void 0)},0,o)}}function Oo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+ [...]
-var t=x.length;if(t){x.sort(c);for(var e,r=1,u=x[0],i=[u];t>r;++r)e=x[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return x=M=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),Bo.geo.centroid=function(n){dc=mc=yc=xc=Mc=_c=bc=wc=Sc=kc=Ec=0,Bo.geo.stream(n,Ac);var t=Sc,e=kc,r=Ec,u=t*t+e*e+r*r;return za>u&&( [...]
-},Bo.scale.quantize=function(){return no(0,1,[0,1])},Bo.scale.threshold=function(){return to([.5],[0,1])},Bo.scale.identity=function(){return eo([0,1])},Bo.svg={},Bo.svg.arc=function(){function n(){var n=t.apply(this,arguments),i=e.apply(this,arguments),o=r.apply(this,arguments)+_l,a=u.apply(this,arguments)+_l,c=(o>a&&(c=o,o=a,a=c),a-o),l=Ea>c?"0":"1",s=Math.cos(o),f=Math.sin(o),h=Math.cos(a),g=Math.sin(a);return c>=bl?n?"M0,"+i+"A"+i+","+i+" 0 1,1 0,"+-i+"A"+i+","+i+" 0 1,1 0,"+i+"M0,"+ [...]
\ No newline at end of file
diff --git a/ui/src/assets/lib/epoch.min.js b/ui/src/assets/lib/epoch.min.js
deleted file mode 100644
index a2c0015..0000000
--- a/ui/src/assets/lib/epoch.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-var base,base1,base2,base3;null==window.Epoch&&(window.Epoch={}),null==(base=window.Epoch).Chart&&(base.Chart={}),null==(base1=window.Epoch).Time&&(base1.Time={}),null==(base2=window.Epoch).Util&&(base2.Util={}),null==(base3=window.Epoch).Formats&&(base3.Formats={}),Epoch.warn=function(t){return(console.warn||console.log)("Epoch Warning: "+t)},Epoch.exception=function(t){throw"Epoch Error: "+t},Epoch.TestContext=function(){function t(){var t,n,e;for(this._log=[],t=0,n=i.length;n>t;t++)e= [...]
-return i-a(t.y)}),e.exit().transition().duration(150).style("opacity","0").remove(),n.exit().transition().duration(750).style("opacity","0").remove()},i.prototype._drawHorizontal=function(){var t,i,n,e,r,o,s,a;return e=[this.x(),this.y()],o=e[0],s=e[1],a=this.y1(s),r=this.width-this.margins.left-this.margins.right,t=this._remapData(),i=this.g.selectAll(".layer").data(t,function(t){return t.group}),i.transition().duration(750).attr("transform",function(t){return"translate(0, "+s(t.group)+ [...]
-a=t.histogram;for(p in a)hasProp.call(a,p)&&(n=a[p],r=parseInt((p-this.options.bucketRange[0])/i),this.options.cutOutliers&&(0>r||r>=this.options.buckets)||(0>r?r=0:r>=this.options.buckets&&(r=this.options.buckets-1),s.buckets[r]+=parseInt(n)));for(e=o=0,h=s.buckets.length;h>=0?h>o:o>h;e=h>=0?++o:--o)s.max=Math.max(s.max,s.buckets[e]);return s},i.prototype.y=function(){return d3.scale.linear().domain(this.options.bucketRange).range([this.innerHeight(),0])},i.prototype.ySvg=function(){ret [...]
\ No newline at end of file
diff --git a/ui/src/assets/lib/flowtype.js b/ui/src/assets/lib/flowtype.js
deleted file mode 100644
index 73e441b..0000000
--- a/ui/src/assets/lib/flowtype.js
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-/*
-* FlowType.JS v1.1
-* Copyright 2013-2014, Simple Focus http://simplefocus.com/
-*
-* FlowType.JS by Simple Focus (http://simplefocus.com/)
-* is licensed under the MIT License. Read a copy of the
-* license in the LICENSE.txt file or at
-* http://choosealicense.com/licenses/mit
-*
-* Thanks to Giovanni Difeterici (http://www.gdifeterici.com/)
-*/
-
-(function($) {
-   $.fn.flowtype = function(options) {
-
-// Establish default settings/variables
-// ====================================
-      var settings = $.extend({
-         maximum   : 9999,
-         minimum   : 1,
-         maxFont   : 9999,
-         minFont   : 1,
-         fontRatio : 35
-      }, options),
-
-// Do the magic math
-// =================
-      changes = function(el) {
-         var $el = $(el),
-            elw = $el.width(),
-            width = elw > settings.maximum ? settings.maximum : elw < settings.minimum ? settings.minimum : elw,
-            fontBase = width / settings.fontRatio,
-            fontSize = fontBase > settings.maxFont ? settings.maxFont : fontBase < settings.minFont ? settings.minFont : fontBase;
-         $el.css('font-size', fontSize + 'px');
-      };
-
-// Make the magic visible
-// ======================
-      return this.each(function() {
-      // Context for resize callback
-         var that = this;
-      // Make changes upon resize
-         $(window).resize(function(){changes(that);});
-      // Set changes on load
-         changes(this);
-      });
-   };
-}(jQuery));
diff --git a/ui/src/assets/lib/jQuery.circleMenu.js b/ui/src/assets/lib/jQuery.circleMenu.js
deleted file mode 100644
index 010acb8..0000000
--- a/ui/src/assets/lib/jQuery.circleMenu.js
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-;(function($, window, document, undefined){
-    var pluginName = 'circleMenu',
-        defaults = {
-            depth: 0,
-            item_diameter: 30,
-            circle_radius: 80,
-            angle:{
-                start: 0,
-                end: 90
-            },
-            speed: 500,
-            delay: 1000,
-            step_out: 20,
-            step_in: -20,
-            trigger: 'hover',
-            transition_function: 'ease'
-        };
-
-    function vendorPrefixes(items,prop,value){
-        ['-webkit-','-moz-','-o-','-ms-',''].forEach(function(prefix){
-            items.css(prefix+prop,value);
-        });
-    }
-
-    function CircleMenu(element, options){
-        this._timeouts = [];
-        this.element = $(element);
-        this.options = $.extend({}, defaults, options);
-        this._defaults = defaults;
-        this._name = pluginName;
-        this.init();
-        this.hook();
-    }
-
-    CircleMenu.prototype.init = function(){
-        var self = this,
-            directions = {
-                'bottom-left':[180,90],
-                'bottom':[135,45],
-                'right':[-45,45],
-                'left':[225,135],
-                'top':[225,315],
-                'bottom-half':[180,0],
-                'right-half':[-90,90],
-                'left-half':[270,90],
-                'top-half':[180,360],
-                'top-left':[270,180],
-                'top-right':[270,360],
-                'full':[-90,270-Math.floor(360/(self.element.children('li').length - 1))],
-                'bottom-right':[0,90]
-            },
-            dir;
-
-        self._state = 'closed';
-        self.element.addClass(pluginName+'-closed');
-
-        if(typeof self.options.direction === 'string'){
-            dir = directions[self.options.direction.toLowerCase()];
-            if(dir){
-                self.options.angle.start = dir[0];
-                self.options.angle.end = dir[1];
-            }
-        }
-
-        self.menu_items = self.element.children('li'); //Todo geändert von li:not(:first-child)
-        self.initCss();
-        self.item_count = self.menu_items.length;
-        self._step = (self.options.angle.end - self.options.angle.start) / (self.item_count-1); // TEILT DURCH NULL!!!
-        self.menu_items.each(function(index){
-            var $item = $(this),
-                angle = (self.options.angle.start + (self._step * index)) * (Math.PI/180),
-                x = Math.round(self.options.circle_radius * Math.cos(angle)),
-                y = Math.round(self.options.circle_radius * Math.sin(angle));
-
-            $item.data('plugin_'+pluginName+'-pos-x', x);
-            $item.data('plugin_'+pluginName+'-pos-y', y);
-            $item.on('click', function(){
-                self.select(index+2);
-            });
-        });
-
-        // Initialize event hooks from options
-        ['open','close','init','select'].forEach(function(evt){
-            var fn;
-
-            if(self.options[evt]){
-                fn = self.options[evt];
-                self.element.on(pluginName+'-'+evt, function(){
-                    return fn.apply(self,arguments);
-                });
-                delete self.options[evt];
-            }
-        });
-
-        self.submenus = self.menu_items.children('ul');
-        self.submenus.circleMenu($.extend({},self.options,{depth:self.options.depth+1}));
-
-        self.trigger('init');
-    };
-    CircleMenu.prototype.trigger = function(){
-        var args = [],
-            i, len;
-
-        for(i = 0, len = arguments.length; i < len; i++){
-            args.push(arguments[i]);
-        }
-        this.element.trigger(pluginName+'-'+args.shift(), args);
-    };
-    CircleMenu.prototype.hook = function(){
-        var self = this;
-
-        if(self.options.trigger === 'hover'){
-            self.element.on('mouseenter',function(evt){
-                self.open();
-            }).on('mouseleave',function(evt){
-                self.close();
-            });
-        }else if(self.options.trigger === 'click'){
-            self.element.children('li:first-child').on('click',function(evt){ //TODO funktioniert nicht mit Patch
-                evt.preventDefault();
-                if(self._state === 'closed' || self._state === 'closing'){
-                    self.open();
-                }else{
-                    self.close(true);
-                }
-                return false;
-            });
-        }else if(self.options.trigger === 'none'){
-            // Do nothing
-        }
-    };
-    CircleMenu.prototype.open = function(){
-        var self = this,
-            $self = this.element,
-            start = 0,
-            set;
-
-        self.clearTimeouts();
-        if(self._state === 'open') return self;
-        $self.addClass(pluginName+'-open');
-        $self.removeClass(pluginName+'-closed');
-        if(self.options.step_out >= 0){
-            set = self.menu_items;
-        }else{
-            set = $(self.menu_items.get().reverse());
-        }
-        set.each(function(index){
-            var $item = $(this);
-
-            self._timeouts.push(setTimeout(function(){
-                $item.css({
-                    left: $item.data('plugin_'+pluginName+'-pos-x')+'px',
-                    top: $item.data('plugin_'+pluginName+'-pos-y')+'px'
-                });
-                vendorPrefixes($item,'transform','scale(1)');
-            }, start + Math.abs(self.options.step_out) * index));
-        });
-        self._timeouts.push(setTimeout(function(){
-            if(self._state === 'opening') self.trigger('open');
-            self._state = 'open';
-        },start+Math.abs(self.options.step_out) * set.length));
-        self._state = 'opening';
-        return self;
-    };
-    CircleMenu.prototype.close = function(immediate){
-        var self = this,
-            $self = this.element,
-            do_animation = function do_animation(){
-            var start = 0,
-                set;
-
-            self.submenus.circleMenu('close');
-            self.clearTimeouts();
-            if(self._state === 'closed') return self;
-            if(self.options.step_in >= 0){
-                set = self.menu_items;
-            }else{
-                set = $(self.menu_items.get().reverse());
-            }
-            set.each(function(index){
-                var $item = $(this);
-
-                self._timeouts.push(setTimeout(function(){
-                    $item.css({top:0,left:0});
-                    vendorPrefixes($item,'transform','scale(.5)');
-                }, start + Math.abs(self.options.step_in) * index));
-            });
-            self._timeouts.push(setTimeout(function(){
-                if(self._state === 'closing') self.trigger('close');
-                self._state = 'closed';
-            },start+Math.abs(self.options.step_in) * set.length));
-            $self.removeClass(pluginName+'-open');
-            $self.addClass(pluginName+'-closed');
-            self._state = 'closing';
-            return self;
-        };
-        if(immediate){
-            do_animation();
-        }else{
-            self._timeouts.push(setTimeout(do_animation,self.options.delay));
-        }
-        return this;
-    };
-    CircleMenu.prototype.select = function(index){
-        var self = this,
-            selected, set_other;
-
-        //if(self._state === 'open' || self._state === 'opening'){
-        //    self.clearTimeouts();
-        //    //set_other = self.element.children('li:not(:nth-child('+index+'),:first-child)'); //TODO
-        //    set_other = self.element.children('li:not(:nth-child('+index+'))');
-        //    selected = self.element.children('li:nth-child('+index+')');
-        //    self.trigger('select',selected);
-        //    vendorPrefixes(selected.add(set_other), 'transition', 'all 500ms ease-out');
-        //    vendorPrefixes(selected, 'transform', 'scale(2)');
-        //    vendorPrefixes(set_other, 'transform', 'scale(0)');
-        //    selected.css('opacity','0');
-        //    set_other.css('opacity','0');
-        //    self.element.removeClass(pluginName+'-open');
-        //    setTimeout(function(){self.initCss();},500);
-        //}
-    };
-    CircleMenu.prototype.clearTimeouts = function(){
-        var timeout;
-
-        while(timeout = this._timeouts.shift()){
-            clearTimeout(timeout);
-        }
-    };
-    CircleMenu.prototype.initCss = function(){
-        var self = this, 
-            $items;
-
-
-        self._state = 'closed';
-        self.element.removeClass(pluginName+'-open');
-        self.element.css({
-            'list-style': 'none',
-            'margin': 0,
-            'padding': 0,
-            'width': self.options.item_diameter+'px'
-        });
-        $items = self.element.children('li');
-        $items.attr('style','');
-
-        $items.each(function() {
-            var boxSize = getBoxSize($(this).attr('weight'));
-            $(this).css( {
-                'display': 'block',
-                'width': boxSize +'px',
-                'height': boxSize +'px',
-                'text-align': 'center',
-                'line-height': boxSize +'px',
-                'position': 'absolute',
-                'z-index': 1,
-                'opacity': '',
-                'border': '2px solid ' +getColor($(this).attr('type'))
-            });
-
-            //self.options.item_diameter+'px',
-        });
-
-
-        //self.element.children('li:first-child').css({'z-index': 1000-self.options.depth}); //TODO geändert
-        self.menu_items.css({
-            top:0,
-            left:0
-        });
-        //vendorPrefixes($items, 'border-radius', self.options.item_diameter+'px');
-        vendorPrefixes(self.menu_items, 'transform', 'scale(.5)');
-        setTimeout(function(){
-            vendorPrefixes($items, 'transition', 'all '+self.options.speed+'ms '+self.options.transition_function);
-        },0);
-    };
-    
-    var getColor = function(type) {
-        if (type =='sepa') {
-            return "#009688";
-        } else {
-            return "#3F51B5";
-        }
-    }
-
-    var getBoxSize = function(weight) {
-        var maxSize = 120;
-        var minSize = 50;
-        var resultingSize =  maxSize * weight;
-        if (resultingSize <= minSize) {
-            return minSize;
-        } else if (resultingSize >= maxSize) {
-            return maxSize;
-        } else {
-            return resultingSize;
-        }
-    }
-
-    $.fn[pluginName] = function(options){
-        return this.each(function(){
-            var obj = $.data(this, 'plugin_'+pluginName),
-                commands = {
-                'init':function(){obj.init();},
-                'open':function(){obj.open();},
-                'close':function(){obj.close(true);}
-            };
-            if(typeof options === 'string' && obj && commands[options]){
-                commands[options]();
-            }
-            if(!obj){
-                $.data(this, 'plugin_' + pluginName, new CircleMenu(this, options));
-            }
-        });
-    };
-})(jQuery, window, document);
diff --git a/ui/src/assets/lib/jquery-2.2.4.min.js b/ui/src/assets/lib/jquery-2.2.4.min.js
deleted file mode 100644
index 4024b66..0000000
--- a/ui/src/assets/lib/jquery-2.2.4.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v2.2.4 | (c) jQuery Foundation | jquery.org/license */
-!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=a.document,e=c.slice,f=c.concat,g=c.push,h=c.indexOf,i={},j=i.toString,k=i.hasOwnProperty,l={},m="2.2.4",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r= [...]
-}catch(e){}O.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return O.hasData(a)||N.hasData(a)},data:function(a,b,c){return O.access(a,b,c)},removeData:function(a,b){O.remove(a,b)},_data:function(a,b,c){return N.access(a,b,c)},_removeData:function(a,b){N.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=O.get(f),1===f.nodeType&&!N.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.inde [...]
-void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):cb.test(a.nodeName)||db.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.par [...]
diff --git a/ui/src/assets/lib/jquery-touch-punch.js b/ui/src/assets/lib/jquery-touch-punch.js
deleted file mode 100644
index 31272ce..0000000
--- a/ui/src/assets/lib/jquery-touch-punch.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*!
- * jQuery UI Touch Punch 0.2.3
- *
- * Copyright 2011–2014, Dave Furfero
- * Dual licensed under the MIT or GPL Version 2 licenses.
- *
- * Depends:
- *  jquery.ui.widget.js
- *  jquery.ui.mouse.js
- */
-!function(a){function f(a,b){if(!(a.originalEvent.touches.length>1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTou [...]
\ No newline at end of file
diff --git a/ui/src/assets/lib/jquery-ui.min.js b/ui/src/assets/lib/jquery-ui.min.js
deleted file mode 100644
index 5824d12..0000000
--- a/ui/src/assets/lib/jquery-ui.min.js
+++ /dev/null
@@ -1,13 +0,0 @@
-/*! jQuery UI - v1.11.4 - 2015-03-11
-* http://jqueryui.com
-* Includes: core.js, widget.js, mouse.js, position.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, draggable.js, droppable.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js, menu.js, progressbar.js, resizable.js, selectable.js, selectmenu.js,  [...]
-* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */
-
-(function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e(jQuery)})(function(e){function t(t,s){var n,a,o,r=t.nodeName.toLowerCase();return"area"===r?(n=t.parentNode,a=n.name,t.href&&a&&"map"===n.nodeName.toLowerCase()?(o=e("img[usemap='#"+a+"']")[0],!!o&&i(o)):!1):(/^(input|select|textarea|button|object)$/.test(r)?!t.disabled:"a"===r?t.href||s:s)&&i(t)}function i(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this, [...]
-i.siblings(".ui-state-active").removeClass("ui-state-active"),this.focus(t,i)}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var i=this.active||this.element.find(this.options.items).eq(0);t||this.focus(e,i)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){this._closeOnDocumentClick(e)&&this.collapseAll [...]
-return e.datepicker._get(n,"constrainInput")?(i=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==t.charCode?t.keyCode:t.charCode),t.ctrlKey||t.metaKey||" ">s||!i||i.indexOf(s)>-1):void 0},_doKeyUp:function(t){var i,s=e.datepicker._getInst(t.target);if(s.input.val()!==s.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(s,"dateFormat"),s.input?s.input.val():null,e.datepicker._getFormatConfig(s)),i&&(e.datepicker._setDateFromField(s),e.datepick [...]
-},_convertPositionTo:function(e,t){t||(t=this.position);var i="absolute"===e?1:-1,s=this._isRootNode(this.scrollParent[0]);return{top:t.top+this.offset.relative.top*i+this.offset.parent.top*i-("fixed"===this.cssPosition?-this.offset.scroll.top:s?0:this.offset.scroll.top)*i,left:t.left+this.offset.relative.left*i+this.offset.parent.left*i-("fixed"===this.cssPosition?-this.offset.scroll.left:s?0:this.offset.scroll.left)*i}},_generatePosition:function(e,t){var i,s,n,a,o=this.options,r=this. [...]
-if(t.keyCode===e.ui.keyCode.TAB&&!t.isDefaultPrevented()){var i=this.uiDialog.find(":tabbable"),s=i.filter(":first"),n=i.filter(":last");t.target!==n[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==s[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(this._delay(function(){n.focus()}),t.preventDefault()):(this._delay(function(){s.focus()}),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDia [...]
-f&&e.effects.save(i,l),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=e.effects.setTransition(i,d,a.from.y,i.from),i.to=e.effects.setTransition(i,d,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=e.effects.setTransition(i,c,a.from.x,i.from),i.to=e.effects.setTransition(i,c,a.to.x,i.to)),i [...]
-return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!o.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){var i,s,n,a,o=this.options,r=!1;for(this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==this.document[0]&&"HTML"! [...]
-this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab [...]
\ No newline at end of file
diff --git a/ui/src/assets/lib/jquery.dataTables.min.js b/ui/src/assets/lib/jquery.dataTables.min.js
deleted file mode 100644
index 1fa65aa..0000000
--- a/ui/src/assets/lib/jquery.dataTables.min.js
+++ /dev/null
@@ -1,3863 +0,0 @@
-/*!
- DataTables 1.10.16
- ©2008-2017 SpryMedia Ltd - datatables.net/license
-*/
-(function (h) {
-    "function" === typeof define && define.amd ? define(["jquery"], function (E) {
-        return h(E, window, document)
-    }) : "object" === typeof exports ? module.exports = function (E, G) {
-        E || (E = window);
-        G || (G = "undefined" !== typeof window ? require("jquery") : require("jquery")(E));
-        return h(G, E, E.document)
-    } : h(jQuery, window, document)
-})(function (h, E, G, k) {
-    function X(a) {
-        var b, c, d = {};
-        h.each(a, function (e) {
-            if ((b = e.match(/^([^A-Z]+?)([A-Z])/)) && -1 !== "a aa ai ao as b fn i m o s ".indexOf(b[1] + " ")) c = e.replace(b[0], b[2].toLowerCase()),
-                d[c] = e, "o" === b[1] && X(a[e])
-        });
-        a._hungarianMap = d
-    }
-
-    function I(a, b, c) {
-        a._hungarianMap || X(a);
-        var d;
-        h.each(b, function (e) {
-            d = a._hungarianMap[e];
-            if (d !== k && (c || b[d] === k)) "o" === d.charAt(0) ? (b[d] || (b[d] = {}), h.extend(!0, b[d], b[e]), I(a[d], b[d], c)) : b[d] = b[e]
-        })
-    }
-
-    function Ca(a) {
-        var b = m.defaults.oLanguage,
-            c = a.sZeroRecords;
-        !a.sEmptyTable && (c && "No data available in table" === b.sEmptyTable) && F(a, a, "sZeroRecords", "sEmptyTable");
-        !a.sLoadingRecords && (c && "Loading..." === b.sLoadingRecords) && F(a, a, "sZeroRecords", "sLoadingRecords");
-        a.sInfoThousands && (a.sThousands = a.sInfoThousands);
-        (a = a.sDecimal) && cb(a)
-    }
-
-    function db(a) {
-        A(a, "ordering", "bSort");
-        A(a, "orderMulti", "bSortMulti");
-        A(a, "orderClasses", "bSortClasses");
-        A(a, "orderCellsTop", "bSortCellsTop");
-        A(a, "order", "aaSorting");
-        A(a, "orderFixed", "aaSortingFixed");
-        A(a, "paging", "bPaginate");
-        A(a, "pagingType", "sPaginationType");
-        A(a, "pageLength", "iDisplayLength");
-        A(a, "searching", "bFilter");
-        "boolean" === typeof a.sScrollX && (a.sScrollX = a.sScrollX ? "100%" : "");
-        "boolean" === typeof a.scrollX && (a.scrollX =
-            a.scrollX ? "100%" : "");
-        if (a = a.aoSearchCols)
-            for (var b = 0, c = a.length; b < c; b++) a[b] && I(m.models.oSearch, a[b])
-    }
-
-    function eb(a) {
-        A(a, "orderable", "bSortable");
-        A(a, "orderData", "aDataSort");
-        A(a, "orderSequence", "asSorting");
-        A(a, "orderDataType", "sortDataType");
-        var b = a.aDataSort;
-        "number" === typeof b && !h.isArray(b) && (a.aDataSort = [b])
-    }
-
-    function fb(a) {
-        if (!m.__browser) {
-            var b = {};
-            m.__browser = b;
-            var c = h("<div/>").css({
-                    position: "fixed",
-                    top: 0,
-                    left: -1 * h(E).scrollLeft(),
-                    height: 1,
-                    width: 1,
-                    overflow: "hidden"
-                }).append(h("<div/>").css({
-                    position: "absolute",
-                    top: 1,
-                    left: 1,
-                    width: 100,
-                    overflow: "scroll"
-                }).append(h("<div/>").css({
-                    width: "100%",
-                    height: 10
-                }))).appendTo("body"),
-                d = c.children(),
-                e = d.children();
-            b.barWidth = d[0].offsetWidth - d[0].clientWidth;
-            b.bScrollOversize = 100 === e[0].offsetWidth && 100 !== d[0].clientWidth;
-            b.bScrollbarLeft = 1 !== Math.round(e.offset().left);
-            b.bBounding = c[0].getBoundingClientRect().width ? !0 : !1;
-            c.remove()
-        }
-        h.extend(a.oBrowser, m.__browser);
-        a.oScroll.iBarWidth = m.__browser.barWidth
-    }
-
-    function gb(a, b, c, d, e, f) {
-        var g, j = !1;
-        c !== k && (g = c, j = !0);
-        for (; d !==
-            e;) a.hasOwnProperty(d) && (g = j ? b(g, a[d], d, a) : a[d], j = !0, d += f);
-        return g
-    }
-
-    function Da(a, b) {
-        var c = m.defaults.column,
-            d = a.aoColumns.length,
-            c = h.extend({}, m.models.oColumn, c, {
-                nTh: b ? b : G.createElement("th"),
-                sTitle: c.sTitle ? c.sTitle : b ? b.innerHTML : "",
-                aDataSort: c.aDataSort ? c.aDataSort : [d],
-                mData: c.mData ? c.mData : d,
-                idx: d
-            });
-        a.aoColumns.push(c);
-        c = a.aoPreSearchCols;
-        c[d] = h.extend({}, m.models.oSearch, c[d]);
-        ja(a, d, h(b).data())
-    }
-
-    function ja(a, b, c) {
-        var b = a.aoColumns[b],
-            d = a.oClasses,
-            e = h(b.nTh);
-        if (!b.sWidthOrig) {
-            b.sWidthOrig =
-                e.attr("width") || null;
-            var f = (e.attr("style") || "").match(/width:\s*(\d+[pxem%]+)/);
-            f && (b.sWidthOrig = f[1])
-        }
-        c !== k && null !== c && (eb(c), I(m.defaults.column, c), c.mDataProp !== k && !c.mData && (c.mData = c.mDataProp), c.sType && (b._sManualType = c.sType), c.className && !c.sClass && (c.sClass = c.className), c.sClass && e.addClass(c.sClass), h.extend(b, c), F(b, c, "sWidth", "sWidthOrig"), c.iDataSort !== k && (b.aDataSort = [c.iDataSort]), F(b, c, "aDataSort"));
-        var g = b.mData,
-            j = Q(g),
-            i = b.mRender ? Q(b.mRender) : null,
-            c = function (a) {
-                return "string" ===
-                    typeof a && -1 !== a.indexOf("@")
-            };
-        b._bAttrSrc = h.isPlainObject(g) && (c(g.sort) || c(g.type) || c(g.filter));
-        b._setter = null;
-        b.fnGetData = function (a, b, c) {
-            var d = j(a, b, k, c);
-            return i && b ? i(d, b, a, c) : d
-        };
-        b.fnSetData = function (a, b, c) {
-            return R(g)(a, b, c)
-        };
-        "number" !== typeof g && (a._rowReadObject = !0);
-        a.oFeatures.bSort || (b.bSortable = !1, e.addClass(d.sSortableNone));
-        a = -1 !== h.inArray("asc", b.asSorting);
-        c = -1 !== h.inArray("desc", b.asSorting);
-        !b.bSortable || !a && !c ? (b.sSortingClass = d.sSortableNone, b.sSortingClassJUI = "") : a && !c ? (b.sSortingClass =
-            d.sSortableAsc, b.sSortingClassJUI = d.sSortJUIAscAllowed) : !a && c ? (b.sSortingClass = d.sSortableDesc, b.sSortingClassJUI = d.sSortJUIDescAllowed) : (b.sSortingClass = d.sSortable, b.sSortingClassJUI = d.sSortJUI)
-    }
-
-    function Y(a) {
-        if (!1 !== a.oFeatures.bAutoWidth) {
-            var b = a.aoColumns;
-            Ea(a);
-            for (var c = 0, d = b.length; c < d; c++) b[c].nTh.style.width = b[c].sWidth
-        }
-        b = a.oScroll;
-        ("" !== b.sY || "" !== b.sX) && ka(a);
-        r(a, null, "column-sizing", [a])
-    }
-
-    function Z(a, b) {
-        var c = la(a, "bVisible");
-        return "number" === typeof c[b] ? c[b] : null
-    }
-
-    function $(a, b) {
-        var c =
-            la(a, "bVisible"),
-            c = h.inArray(b, c);
-        return -1 !== c ? c : null
-    }
-
-    function aa(a) {
-        var b = 0;
-        h.each(a.aoColumns, function (a, d) {
-            d.bVisible && "none" !== h(d.nTh).css("display") && b++
-        });
-        return b
-    }
-
-    function la(a, b) {
-        var c = [];
-        h.map(a.aoColumns, function (a, e) {
-            a[b] && c.push(e)
-        });
-        return c
-    }
-
-    function Fa(a) {
-        var b = a.aoColumns,
-            c = a.aoData,
-            d = m.ext.type.detect,
-            e, f, g, j, i, h, l, q, t;
-        e = 0;
-        for (f = b.length; e < f; e++)
-            if (l = b[e], t = [], !l.sType && l._sManualType) l.sType = l._sManualType;
-            else if (!l.sType) {
-            g = 0;
-            for (j = d.length; g < j; g++) {
-                i = 0;
-                for (h = c.length; i < h; i++) {
-                    t[i] ===
-                        k && (t[i] = B(a, i, e, "type"));
-                    q = d[g](t[i], a);
-                    if (!q && g !== d.length - 1) break;
-                    if ("html" === q) break
-                }
-                if (q) {
-                    l.sType = q;
-                    break
-                }
-            }
-            l.sType || (l.sType = "string")
-        }
-    }
-
-    function hb(a, b, c, d) {
-        var e, f, g, j, i, n, l = a.aoColumns;
-        if (b)
-            for (e = b.length - 1; 0 <= e; e--) {
-                n = b[e];
-                var q = n.targets !== k ? n.targets : n.aTargets;
-                h.isArray(q) || (q = [q]);
-                f = 0;
-                for (g = q.length; f < g; f++)
-                    if ("number" === typeof q[f] && 0 <= q[f]) {
-                        for (; l.length <= q[f];) Da(a);
-                        d(q[f], n)
-                    } else if ("number" === typeof q[f] && 0 > q[f]) d(l.length + q[f], n);
-                else if ("string" === typeof q[f]) {
-                    j = 0;
-                    for (i = l.length; j <
-                        i; j++)("_all" == q[f] || h(l[j].nTh).hasClass(q[f])) && d(j, n)
-                }
-            }
-        if (c) {
-            e = 0;
-            for (a = c.length; e < a; e++) d(e, c[e])
-        }
-    }
-
-    function M(a, b, c, d) {
-        var e = a.aoData.length,
-            f = h.extend(!0, {}, m.models.oRow, {
-                src: c ? "dom" : "data",
-                idx: e
-            });
-        f._aData = b;
-        a.aoData.push(f);
-        for (var g = a.aoColumns, j = 0, i = g.length; j < i; j++) g[j].sType = null;
-        a.aiDisplayMaster.push(e);
-        b = a.rowIdFn(b);
-        b !== k && (a.aIds[b] = f);
-        (c || !a.oFeatures.bDeferRender) && Ga(a, e, c, d);
-        return e
-    }
-
-    function ma(a, b) {
-        var c;
-        b instanceof h || (b = h(b));
-        return b.map(function (b, e) {
-            c = Ha(a, e);
-            return M(a,
-                c.data, e, c.cells)
-        })
-    }
-
-    function B(a, b, c, d) {
-        var e = a.iDraw,
-            f = a.aoColumns[c],
-            g = a.aoData[b]._aData,
-            j = f.sDefaultContent,
-            i = f.fnGetData(g, d, {
-                settings: a,
-                row: b,
-                col: c
-            });
-        if (i === k) return a.iDrawError != e && null === j && (J(a, 0, "Requested unknown parameter " + ("function" == typeof f.mData ? "{function}" : "'" + f.mData + "'") + " for row " + b + ", column " + c, 4), a.iDrawError = e), j;
-        if ((i === g || null === i) && null !== j && d !== k) i = j;
-        else if ("function" === typeof i) return i.call(g);
-        return null === i && "display" == d ? "" : i
-    }
-
-    function ib(a, b, c, d) {
-        a.aoColumns[c].fnSetData(a.aoData[b]._aData,
-            d, {
-                settings: a,
-                row: b,
-                col: c
-            })
-    }
-
-    function Ia(a) {
-        return h.map(a.match(/(\\.|[^\.])+/g) || [""], function (a) {
-            return a.replace(/\\\./g, ".")
-        })
-    }
-
-    function Q(a) {
-        if (h.isPlainObject(a)) {
-            var b = {};
-            h.each(a, function (a, c) {
-                c && (b[a] = Q(c))
-            });
-            return function (a, c, f, g) {
-                var j = b[c] || b._;
-                return j !== k ? j(a, c, f, g) : a
-            }
-        }
-        if (null === a) return function (a) {
-            return a
-        };
-        if ("function" === typeof a) return function (b, c, f, g) {
-            return a(b, c, f, g)
-        };
-        if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
-            var c = function (a,
-                b, f) {
-                var g, j;
-                if ("" !== f) {
-                    j = Ia(f);
-                    for (var i = 0, n = j.length; i < n; i++) {
-                        f = j[i].match(ba);
-                        g = j[i].match(U);
-                        if (f) {
-                            j[i] = j[i].replace(ba, "");
-                            "" !== j[i] && (a = a[j[i]]);
-                            g = [];
-                            j.splice(0, i + 1);
-                            j = j.join(".");
-                            if (h.isArray(a)) {
-                                i = 0;
-                                for (n = a.length; i < n; i++) g.push(c(a[i], b, j))
-                            }
-                            a = f[0].substring(1, f[0].length - 1);
-                            a = "" === a ? g : g.join(a);
-                            break
-                        } else if (g) {
-                            j[i] = j[i].replace(U, "");
-                            a = a[j[i]]();
-                            continue
-                        }
-                        if (null === a || a[j[i]] === k) return k;
-                        a = a[j[i]]
-                    }
-                }
-                return a
-            };
-            return function (b, e) {
-                return c(b, e, a)
-            }
-        }
-        return function (b) {
-            return b[a]
-        }
-    }
-
-    function R(a) {
-        if (h.isPlainObject(a)) return R(a._);
-        if (null === a) return function () {};
-        if ("function" === typeof a) return function (b, d, e) {
-            a(b, "set", d, e)
-        };
-        if ("string" === typeof a && (-1 !== a.indexOf(".") || -1 !== a.indexOf("[") || -1 !== a.indexOf("("))) {
-            var b = function (a, d, e) {
-                var e = Ia(e),
-                    f;
-                f = e[e.length - 1];
-                for (var g, j, i = 0, n = e.length - 1; i < n; i++) {
-                    g = e[i].match(ba);
-                    j = e[i].match(U);
-                    if (g) {
-                        e[i] = e[i].replace(ba, "");
-                        a[e[i]] = [];
-                        f = e.slice();
-                        f.splice(0, i + 1);
-                        g = f.join(".");
-                        if (h.isArray(d)) {
-                            j = 0;
-                            for (n = d.length; j < n; j++) f = {}, b(f, d[j], g), a[e[i]].push(f)
-                        } else a[e[i]] = d;
-                        return
-                    }
-                    j && (e[i] = e[i].replace(U,
-                        ""), a = a[e[i]](d));
-                    if (null === a[e[i]] || a[e[i]] === k) a[e[i]] = {};
-                    a = a[e[i]]
-                }
-                if (f.match(U)) a[f.replace(U, "")](d);
-                else a[f.replace(ba, "")] = d
-            };
-            return function (c, d) {
-                return b(c, d, a)
-            }
-        }
-        return function (b, d) {
-            b[a] = d
-        }
-    }
-
-    function Ja(a) {
-        return D(a.aoData, "_aData")
-    }
-
-    function na(a) {
-        a.aoData.length = 0;
-        a.aiDisplayMaster.length = 0;
-        a.aiDisplay.length = 0;
-        a.aIds = {}
-    }
-
-    function oa(a, b, c) {
-        for (var d = -1, e = 0, f = a.length; e < f; e++) a[e] == b ? d = e : a[e] > b && a[e]--; - 1 != d && c === k && a.splice(d, 1)
-    }
-
-    function ca(a, b, c, d) {
-        var e = a.aoData[b],
-            f, g = function (c, d) {
-                for (; c.childNodes.length;) c.removeChild(c.firstChild);
-                c.innerHTML = B(a, b, d, "display")
-            };
-        if ("dom" === c || (!c || "auto" === c) && "dom" === e.src) e._aData = Ha(a, e, d, d === k ? k : e._aData).data;
-        else {
-            var j = e.anCells;
-            if (j)
-                if (d !== k) g(j[d], d);
-                else {
-                    c = 0;
-                    for (f = j.length; c < f; c++) g(j[c], c)
-                }
-        }
-        e._aSortData = null;
-        e._aFilterData = null;
-        g = a.aoColumns;
-        if (d !== k) g[d].sType = null;
-        else {
-            c = 0;
-            for (f = g.length; c < f; c++) g[c].sType = null;
-            Ka(a, e)
-        }
-    }
-
-    function Ha(a, b, c, d) {
-        var e = [],
-            f = b.firstChild,
-            g, j, i = 0,
-            n, l = a.aoColumns,
-            q = a._rowReadObject,
-            d = d !== k ? d : q ? {} : [],
-            t = function (a, b) {
-                if ("string" === typeof a) {
-                    var c = a.indexOf("@"); -
-                    1 !== c && (c = a.substring(c + 1), R(a)(d, b.getAttribute(c)))
-                }
-            },
-            m = function (a) {
-                if (c === k || c === i) j = l[i], n = h.trim(a.innerHTML), j && j._bAttrSrc ? (R(j.mData._)(d, n), t(j.mData.sort, a), t(j.mData.type, a), t(j.mData.filter, a)) : q ? (j._setter || (j._setter = R(j.mData)), j._setter(d, n)) : d[i] = n;
-                i++
-            };
-        if (f)
-            for (; f;) {
-                g = f.nodeName.toUpperCase();
-                if ("TD" == g || "TH" == g) m(f), e.push(f);
-                f = f.nextSibling
-            } else {
-                e = b.anCells;
-                f = 0;
-                for (g = e.length; f < g; f++) m(e[f])
-            }
-        if (b = b.firstChild ? b : b.nTr)(b = b.getAttribute("id")) && R(a.rowId)(d, b);
-        return {
-            data: d,
-            cells: e
-        }
-    }
-
-    function Ga(a, b, c, d) {
-        var e = a.aoData[b],
-            f = e._aData,
-            g = [],
-            j, i, n, l, q;
-        if (null === e.nTr) {
-            j = c || G.createElement("tr");
-            e.nTr = j;
-            e.anCells = g;
-            j._DT_RowIndex = b;
-            Ka(a, e);
-            l = 0;
-            for (q = a.aoColumns.length; l < q; l++) {
-                n = a.aoColumns[l];
-                i = c ? d[l] : G.createElement(n.sCellType);
-                i._DT_CellIndex = {
-                    row: b,
-                    column: l
-                };
-                g.push(i);
-                if ((!c || n.mRender || n.mData !== l) && (!h.isPlainObject(n.mData) || n.mData._ !== l + ".display")) i.innerHTML = B(a, b, l, "display");
-                n.sClass && (i.className += " " + n.sClass);
-                n.bVisible && !c ? j.appendChild(i) : !n.bVisible && c && i.parentNode.removeChild(i);
-                n.fnCreatedCell && n.fnCreatedCell.call(a.oInstance, i, B(a, b, l), f, b, l)
-            }
-            r(a, "aoRowCreatedCallback", null, [j, f, b])
-        }
-        e.nTr.setAttribute("role", "row")
-    }
-
-    function Ka(a, b) {
-        var c = b.nTr,
-            d = b._aData;
-        if (c) {
-            var e = a.rowIdFn(d);
-            e && (c.id = e);
-            d.DT_RowClass && (e = d.DT_RowClass.split(" "), b.__rowc = b.__rowc ? qa(b.__rowc.concat(e)) : e, h(c).removeClass(b.__rowc.join(" ")).addClass(d.DT_RowClass));
-            d.DT_RowAttr && h(c).attr(d.DT_RowAttr);
-            d.DT_RowData && h(c).data(d.DT_RowData)
-        }
-    }
-
-    function jb(a) {
-        var b, c, d, e, f, g = a.nTHead,
-            j = a.nTFoot,
-            i = 0 ===
-            h("th, td", g).length,
-            n = a.oClasses,
-            l = a.aoColumns;
-        i && (e = h("<tr/>").appendTo(g));
-        b = 0;
-        for (c = l.length; b < c; b++) f = l[b], d = h(f.nTh).addClass(f.sClass), i && d.appendTo(e), a.oFeatures.bSort && (d.addClass(f.sSortingClass), !1 !== f.bSortable && (d.attr("tabindex", a.iTabIndex).attr("aria-controls", a.sTableId), La(a, f.nTh, b))), f.sTitle != d[0].innerHTML && d.html(f.sTitle), Ma(a, "header")(a, d, f, n);
-        i && da(a.aoHeader, g);
-        h(g).find(">tr").attr("role", "row");
-        h(g).find(">tr>th, >tr>td").addClass(n.sHeaderTH);
-        h(j).find(">tr>th, >tr>td").addClass(n.sFooterTH);
-        if (null !== j) {
-            a = a.aoFooter[0];
-            b = 0;
-            for (c = a.length; b < c; b++) f = l[b], f.nTf = a[b].cell, f.sClass && h(f.nTf).addClass(f.sClass)
-        }
-    }
-
-    function ea(a, b, c) {
-        var d, e, f, g = [],
-            j = [],
-            i = a.aoColumns.length,
-            n;
-        if (b) {
-            c === k && (c = !1);
-            d = 0;
-            for (e = b.length; d < e; d++) {
-                g[d] = b[d].slice();
-                g[d].nTr = b[d].nTr;
-                for (f = i - 1; 0 <= f; f--) !a.aoColumns[f].bVisible && !c && g[d].splice(f, 1);
-                j.push([])
-            }
-            d = 0;
-            for (e = g.length; d < e; d++) {
-                if (a = g[d].nTr)
-                    for (; f = a.firstChild;) a.removeChild(f);
-                f = 0;
-                for (b = g[d].length; f < b; f++)
-                    if (n = i = 1, j[d][f] === k) {
-                        a.appendChild(g[d][f].cell);
-                        for (j[d][f] = 1; g[d + i] !== k && g[d][f].cell == g[d + i][f].cell;) j[d + i][f] = 1, i++;
-                        for (; g[d][f + n] !== k && g[d][f].cell == g[d][f + n].cell;) {
-                            for (c = 0; c < i; c++) j[d + c][f + n] = 1;
-                            n++
-                        }
-                        h(g[d][f].cell).attr("rowspan", i).attr("colspan", n)
-                    }
-            }
-        }
-    }
-
-    function N(a) {
-        var b = r(a, "aoPreDrawCallback", "preDraw", [a]);
-        if (-1 !== h.inArray(!1, b)) C(a, !1);
-        else {
-            var b = [],
-                c = 0,
-                d = a.asStripeClasses,
-                e = d.length,
-                f = a.oLanguage,
-                g = a.iInitDisplayStart,
-                j = "ssp" == y(a),
-                i = a.aiDisplay;
-            a.bDrawing = !0;
-            g !== k && -1 !== g && (a._iDisplayStart = j ? g : g >= a.fnRecordsDisplay() ? 0 : g, a.iInitDisplayStart = -1);
-            var g = a._iDisplayStart,
-                n = a.fnDisplayEnd();
-            if (a.bDeferLoading) a.bDeferLoading = !1, a.iDraw++, C(a, !1);
-            else if (j) {
-                if (!a.bDestroying && !kb(a)) return
-            } else a.iDraw++;
-            if (0 !== i.length) {
-                f = j ? a.aoData.length : n;
-                for (j = j ? 0 : g; j < f; j++) {
-                    var l = i[j],
-                        q = a.aoData[l];
-                    null === q.nTr && Ga(a, l);
-                    l = q.nTr;
-                    if (0 !== e) {
-                        var t = d[c % e];
-                        q._sRowStripe != t && (h(l).removeClass(q._sRowStripe).addClass(t), q._sRowStripe = t)
-                    }
-                    r(a, "aoRowCallback", null, [l, q._aData, c, j]);
-                    b.push(l);
-                    c++
-                }
-            } else c = f.sZeroRecords, 1 == a.iDraw && "ajax" == y(a) ? c = f.sLoadingRecords :
-                f.sEmptyTable && 0 === a.fnRecordsTotal() && (c = f.sEmptyTable), b[0] = h("<tr/>", {
-                    "class": e ? d[0] : ""
-                }).append(h("<td />", {
-                    valign: "top",
-                    colSpan: aa(a),
-                    "class": a.oClasses.sRowEmpty
-                }).html(c))[0];
-            r(a, "aoHeaderCallback", "header", [h(a.nTHead).children("tr")[0], Ja(a), g, n, i]);
-            r(a, "aoFooterCallback", "footer", [h(a.nTFoot).children("tr")[0], Ja(a), g, n, i]);
-            d = h(a.nTBody);
-            d.children().detach();
-            d.append(h(b));
-            r(a, "aoDrawCallback", "draw", [a]);
-            a.bSorted = !1;
-            a.bFiltered = !1;
-            a.bDrawing = !1
-        }
-    }
-
-    function S(a, b) {
-        var c = a.oFeatures,
-            d = c.bFilter;
-        c.bSort && lb(a);
-        d ? fa(a, a.oPreviousSearch) : a.aiDisplay = a.aiDisplayMaster.slice();
-        !0 !== b && (a._iDisplayStart = 0);
-        a._drawHold = b;
-        N(a);
-        a._drawHold = !1
-    }
-
-    function mb(a) {
-        var b = a.oClasses,
-            c = h(a.nTable),
-            c = h("<div/>").insertBefore(c),
-            d = a.oFeatures,
-            e = h("<div/>", {
-                id: a.sTableId + "_wrapper",
-                "class": b.sWrapper + (a.nTFoot ? "" : " " + b.sNoFooter)
-            });
-        a.nHolding = c[0];
-        a.nTableWrapper = e[0];
-        a.nTableReinsertBefore = a.nTable.nextSibling;
-        for (var f = a.sDom.split(""), g, j, i, n, l, q, k = 0; k < f.length; k++) {
-            g = null;
-            j = f[k];
-            if ("<" == j) {
-                i = h("<div/>")[0];
-                n = f[k + 1];
-                if ("'" == n || '"' == n) {
-                    l = "";
-                    for (q = 2; f[k + q] != n;) l += f[k + q], q++;
-                    "H" == l ? l = b.sJUIHeader : "F" == l && (l = b.sJUIFooter); - 1 != l.indexOf(".") ? (n = l.split("."), i.id = n[0].substr(1, n[0].length - 1), i.className = n[1]) : "#" == l.charAt(0) ? i.id = l.substr(1, l.length - 1) : i.className = l;
-                    k += q
-                }
-                e.append(i);
-                e = h(i)
-            } else if (">" == j) e = e.parent();
-            else if ("l" == j && d.bPaginate && d.bLengthChange) g = nb(a);
-            else if ("f" == j && d.bFilter) g = ob(a);
-            else if ("r" == j && d.bProcessing) g = pb(a);
-            else if ("t" == j) g = qb(a);
-            else if ("i" == j && d.bInfo) g = rb(a);
-            else if ("p" ==
-                j && d.bPaginate) g = sb(a);
-            else if (0 !== m.ext.feature.length) {
-                i = m.ext.feature;
-                q = 0;
-                for (n = i.length; q < n; q++)
-                    if (j == i[q].cFeature) {
-                        g = i[q].fnInit(a);
-                        break
-                    }
-            }
-            g && (i = a.aanFeatures, i[j] || (i[j] = []), i[j].push(g), e.append(g))
-        }
-        c.replaceWith(e);
-        a.nHolding = null
-    }
-
-    function da(a, b) {
-        var c = h(b).children("tr"),
-            d, e, f, g, j, i, n, l, q, k;
-        a.splice(0, a.length);
-        f = 0;
-        for (i = c.length; f < i; f++) a.push([]);
-        f = 0;
-        for (i = c.length; f < i; f++) {
-            d = c[f];
-            for (e = d.firstChild; e;) {
-                if ("TD" == e.nodeName.toUpperCase() || "TH" == e.nodeName.toUpperCase()) {
-                    l = 1 * e.getAttribute("colspan");
-                    q = 1 * e.getAttribute("rowspan");
-                    l = !l || 0 === l || 1 === l ? 1 : l;
-                    q = !q || 0 === q || 1 === q ? 1 : q;
-                    g = 0;
-                    for (j = a[f]; j[g];) g++;
-                    n = g;
-                    k = 1 === l ? !0 : !1;
-                    for (j = 0; j < l; j++)
-                        for (g = 0; g < q; g++) a[f + g][n + j] = {
-                            cell: e,
-                            unique: k
-                        }, a[f + g].nTr = d
-                }
-                e = e.nextSibling
-            }
-        }
-    }
-
-    function ra(a, b, c) {
-        var d = [];
-        c || (c = a.aoHeader, b && (c = [], da(c, b)));
-        for (var b = 0, e = c.length; b < e; b++)
-            for (var f = 0, g = c[b].length; f < g; f++)
-                if (c[b][f].unique && (!d[f] || !a.bSortCellsTop)) d[f] = c[b][f].cell;
-        return d
-    }
-
-    function sa(a, b, c) {
-        r(a, "aoServerParams", "serverParams", [b]);
-        if (b && h.isArray(b)) {
-            var d = {},
-                e = /(.*?)\[\]$/;
-            h.each(b, function (a, b) {
-                var c = b.name.match(e);
-                c ? (c = c[0], d[c] || (d[c] = []), d[c].push(b.value)) : d[b.name] = b.value
-            });
-            b = d
-        }
-        var f, g = a.ajax,
-            j = a.oInstance,
-            i = function (b) {
-                r(a, null, "xhr", [a, b, a.jqXHR]);
-                c(b)
-            };
-        if (h.isPlainObject(g) && g.data) {
-            f = g.data;
-            var n = h.isFunction(f) ? f(b, a) : f,
-                b = h.isFunction(f) && n ? n : h.extend(!0, b, n);
-            delete g.data
-        }
-        n = {
-            data: b,
-            success: function (b) {
-                var c = b.error || b.sError;
-                c && J(a, 0, c);
-                a.json = b;
-                i(b)
-            },
-            dataType: "json",
-            cache: !1,
-            type: a.sServerMethod,
-            error: function (b, c) {
-                var d = r(a, null, "xhr",
-                    [a, null, a.jqXHR]); - 1 === h.inArray(!0, d) && ("parsererror" == c ? J(a, 0, "Invalid JSON response", 1) : 4 === b.readyState && J(a, 0, "Ajax error", 7));
-                C(a, !1)
-            }
-        };
-        a.oAjaxData = b;
-        r(a, null, "preXhr", [a, b]);
-        a.fnServerData ? a.fnServerData.call(j, a.sAjaxSource, h.map(b, function (a, b) {
-            return {
-                name: b,
-                value: a
-            }
-        }), i, a) : a.sAjaxSource || "string" === typeof g ? a.jqXHR = h.ajax(h.extend(n, {
-            url: g || a.sAjaxSource
-        })) : h.isFunction(g) ? a.jqXHR = g.call(j, b, i, a) : (a.jqXHR = h.ajax(h.extend(n, g)), g.data = f)
-    }
-
-    function kb(a) {
-        return a.bAjaxDataGet ? (a.iDraw++, C(a,
-            !0), sa(a, tb(a), function (b) {
-            ub(a, b)
-        }), !1) : !0
-    }
-
-    function tb(a) {
-        var b = a.aoColumns,
-            c = b.length,
-            d = a.oFeatures,
-            e = a.oPreviousSearch,
-            f = a.aoPreSearchCols,
-            g, j = [],
-            i, n, l, k = V(a);
-        g = a._iDisplayStart;
-        i = !1 !== d.bPaginate ? a._iDisplayLength : -1;
-        var t = function (a, b) {
-            j.push({
-                name: a,
-                value: b
-            })
-        };
-        t("sEcho", a.iDraw);
-        t("iColumns", c);
-        t("sColumns", D(b, "sName").join(","));
-        t("iDisplayStart", g);
-        t("iDisplayLength", i);
-        var pa = {
-            draw: a.iDraw,
-            columns: [],
-            order: [],
-            start: g,
-            length: i,
-            search: {
-                value: e.sSearch,
-                regex: e.bRegex
-            }
-        };
-        for (g = 0; g < c; g++) n = b[g],
-            l = f[g], i = "function" == typeof n.mData ? "function" : n.mData, pa.columns.push({
-                data: i,
-                name: n.sName,
-                searchable: n.bSearchable,
-                orderable: n.bSortable,
-                search: {
-                    value: l.sSearch,
-                    regex: l.bRegex
-                }
-            }), t("mDataProp_" + g, i), d.bFilter && (t("sSearch_" + g, l.sSearch), t("bRegex_" + g, l.bRegex), t("bSearchable_" + g, n.bSearchable)), d.bSort && t("bSortable_" + g, n.bSortable);
-        d.bFilter && (t("sSearch", e.sSearch), t("bRegex", e.bRegex));
-        d.bSort && (h.each(k, function (a, b) {
-            pa.order.push({
-                column: b.col,
-                dir: b.dir
-            });
-            t("iSortCol_" + a, b.col);
-            t("sSortDir_" +
-                a, b.dir)
-        }), t("iSortingCols", k.length));
-        b = m.ext.legacy.ajax;
-        return null === b ? a.sAjaxSource ? j : pa : b ? j : pa
-    }
-
-    function ub(a, b) {
-        var c = ta(a, b),
-            d = b.sEcho !== k ? b.sEcho : b.draw,
-            e = b.iTotalRecords !== k ? b.iTotalRecords : b.recordsTotal,
-            f = b.iTotalDisplayRecords !== k ? b.iTotalDisplayRecords : b.recordsFiltered;
-        if (d) {
-            if (1 * d < a.iDraw) return;
-            a.iDraw = 1 * d
-        }
-        na(a);
-        a._iRecordsTotal = parseInt(e, 10);
-        a._iRecordsDisplay = parseInt(f, 10);
-        d = 0;
-        for (e = c.length; d < e; d++) M(a, c[d]);
-        a.aiDisplay = a.aiDisplayMaster.slice();
-        a.bAjaxDataGet = !1;
-        N(a);
-        a._bInitComplete ||
-            ua(a, b);
-        a.bAjaxDataGet = !0;
-        C(a, !1)
-    }
-
-    function ta(a, b) {
-        var c = h.isPlainObject(a.ajax) && a.ajax.dataSrc !== k ? a.ajax.dataSrc : a.sAjaxDataProp;
-        return "data" === c ? b.aaData || b[c] : "" !== c ? Q(c)(b) : b
-    }
-
-    function ob(a) {
-        var b = a.oClasses,
-            c = a.sTableId,
-            d = a.oLanguage,
-            e = a.oPreviousSearch,
-            f = a.aanFeatures,
-            g = '<input type="search" class="' + b.sFilterInput + '"/>',
-            j = d.sSearch,
-            j = j.match(/_INPUT_/) ? j.replace("_INPUT_", g) : j + g,
-            b = h("<div/>", {
-                id: !f.f ? c + "_filter" : null,
-                "class": b.sFilter
-            }).append(h("<label/>").append(j)),
-            f = function () {
-                var b = !this.value ?
-                    "" : this.value;
-                b != e.sSearch && (fa(a, {
-                    sSearch: b,
-                    bRegex: e.bRegex,
-                    bSmart: e.bSmart,
-                    bCaseInsensitive: e.bCaseInsensitive
-                }), a._iDisplayStart = 0, N(a))
-            },
-            g = null !== a.searchDelay ? a.searchDelay : "ssp" === y(a) ? 400 : 0,
-            i = h("input", b).val(e.sSearch).attr("placeholder", d.sSearchPlaceholder).on("keyup.DT search.DT input.DT paste.DT cut.DT", g ? Na(f, g) : f).on("keypress.DT", function (a) {
-                if (13 == a.keyCode) return !1
-            }).attr("aria-controls", c);
-        h(a.nTable).on("search.dt.DT", function (b, c) {
-            if (a === c) try {
-                i[0] !== G.activeElement && i.val(e.sSearch)
-            } catch (d) {}
-        });
-        return b[0]
-    }
-
-    function fa(a, b, c) {
-        var d = a.oPreviousSearch,
-            e = a.aoPreSearchCols,
-            f = function (a) {
-                d.sSearch = a.sSearch;
-                d.bRegex = a.bRegex;
-                d.bSmart = a.bSmart;
-                d.bCaseInsensitive = a.bCaseInsensitive
-            };
-        Fa(a);
-        if ("ssp" != y(a)) {
-            vb(a, b.sSearch, c, b.bEscapeRegex !== k ? !b.bEscapeRegex : b.bRegex, b.bSmart, b.bCaseInsensitive);
-            f(b);
-            for (b = 0; b < e.length; b++) wb(a, e[b].sSearch, b, e[b].bEscapeRegex !== k ? !e[b].bEscapeRegex : e[b].bRegex, e[b].bSmart, e[b].bCaseInsensitive);
-            xb(a)
-        } else f(b);
-        a.bFiltered = !0;
-        r(a, null, "search", [a])
-    }
-
-    function xb(a) {
-        for (var b =
-                m.ext.search, c = a.aiDisplay, d, e, f = 0, g = b.length; f < g; f++) {
-            for (var j = [], i = 0, n = c.length; i < n; i++) e = c[i], d = a.aoData[e], b[f](a, d._aFilterData, e, d._aData, i) && j.push(e);
-            c.length = 0;
-            h.merge(c, j)
-        }
-    }
-
-    function wb(a, b, c, d, e, f) {
-        if ("" !== b) {
-            for (var g = [], j = a.aiDisplay, d = Oa(b, d, e, f), e = 0; e < j.length; e++) b = a.aoData[j[e]]._aFilterData[c], d.test(b) && g.push(j[e]);
-            a.aiDisplay = g
-        }
-    }
-
-    function vb(a, b, c, d, e, f) {
-        var d = Oa(b, d, e, f),
-            f = a.oPreviousSearch.sSearch,
-            g = a.aiDisplayMaster,
-            j, e = [];
-        0 !== m.ext.search.length && (c = !0);
-        j = yb(a);
-        if (0 >= b.length) a.aiDisplay =
-            g.slice();
-        else {
-            if (j || c || f.length > b.length || 0 !== b.indexOf(f) || a.bSorted) a.aiDisplay = g.slice();
-            b = a.aiDisplay;
-            for (c = 0; c < b.length; c++) d.test(a.aoData[b[c]]._sFilterRow) && e.push(b[c]);
-            a.aiDisplay = e
-        }
-    }
-
-    function Oa(a, b, c, d) {
-        a = b ? a : Pa(a);
-        c && (a = "^(?=.*?" + h.map(a.match(/"[^"]+"|[^ ]+/g) || [""], function (a) {
-            if ('"' === a.charAt(0)) var b = a.match(/^"(.*)"$/),
-                a = b ? b[1] : a;
-            return a.replace('"', "")
-        }).join(")(?=.*?") + ").*$");
-        return RegExp(a, d ? "i" : "")
-    }
-
-    function yb(a) {
-        var b = a.aoColumns,
-            c, d, e, f, g, j, i, h, l = m.ext.type.search;
-        c = !1;
-        d = 0;
-        for (f = a.aoData.length; d < f; d++)
-            if (h = a.aoData[d], !h._aFilterData) {
-                j = [];
-                e = 0;
-                for (g = b.length; e < g; e++) c = b[e], c.bSearchable ? (i = B(a, d, e, "filter"), l[c.sType] && (i = l[c.sType](i)), null === i && (i = ""), "string" !== typeof i && i.toString && (i = i.toString())) : i = "", i.indexOf && -1 !== i.indexOf("&") && (va.innerHTML = i, i = Wb ? va.textContent : va.innerText), i.replace && (i = i.replace(/[\r\n]/g, "")), j.push(i);
-                h._aFilterData = j;
-                h._sFilterRow = j.join("  ");
-                c = !0
-            } return c
-    }
-
-    function zb(a) {
-        return {
-            search: a.sSearch,
-            smart: a.bSmart,
-            regex: a.bRegex,
-            caseInsensitive: a.bCaseInsensitive
-        }
-    }
-
-    function Ab(a) {
-        return {
-            sSearch: a.search,
-            bSmart: a.smart,
-            bRegex: a.regex,
-            bCaseInsensitive: a.caseInsensitive
-        }
-    }
-
-    function rb(a) {
-        var b = a.sTableId,
-            c = a.aanFeatures.i,
-            d = h("<div/>", {
-                "class": a.oClasses.sInfo,
-                id: !c ? b + "_info" : null
-            });
-        c || (a.aoDrawCallback.push({
-            fn: Bb,
-            sName: "information"
-        }), d.attr("role", "status").attr("aria-live", "polite"), h(a.nTable).attr("aria-describedby", b + "_info"));
-        return d[0]
-    }
-
-    function Bb(a) {
-        var b = a.aanFeatures.i;
-        if (0 !== b.length) {
-            var c = a.oLanguage,
-                d = a._iDisplayStart +
-                1,
-                e = a.fnDisplayEnd(),
-                f = a.fnRecordsTotal(),
-                g = a.fnRecordsDisplay(),
-                j = g ? c.sInfo : c.sInfoEmpty;
-            g !== f && (j += " " + c.sInfoFiltered);
-            j += c.sInfoPostFix;
-            j = Cb(a, j);
-            c = c.fnInfoCallback;
-            null !== c && (j = c.call(a.oInstance, a, d, e, f, g, j));
-            h(b).html(j)
-        }
-    }
-
-    function Cb(a, b) {
-        var c = a.fnFormatNumber,
-            d = a._iDisplayStart + 1,
-            e = a._iDisplayLength,
-            f = a.fnRecordsDisplay(),
-            g = -1 === e;
-        return b.replace(/_START_/g, c.call(a, d)).replace(/_END_/g, c.call(a, a.fnDisplayEnd())).replace(/_MAX_/g, c.call(a, a.fnRecordsTotal())).replace(/_TOTAL_/g, c.call(a,
-            f)).replace(/_PAGE_/g, c.call(a, g ? 1 : Math.ceil(d / e))).replace(/_PAGES_/g, c.call(a, g ? 1 : Math.ceil(f / e)))
-    }
-
-    function ga(a) {
-        var b, c, d = a.iInitDisplayStart,
-            e = a.aoColumns,
-            f;
-        c = a.oFeatures;
-        var g = a.bDeferLoading;
-        if (a.bInitialised) {
-            mb(a);
-            jb(a);
-            ea(a, a.aoHeader);
-            ea(a, a.aoFooter);
-            C(a, !0);
-            c.bAutoWidth && Ea(a);
-            b = 0;
-            for (c = e.length; b < c; b++) f = e[b], f.sWidth && (f.nTh.style.width = v(f.sWidth));
-            r(a, null, "preInit", [a]);
-            S(a);
-            e = y(a);
-            if ("ssp" != e || g) "ajax" == e ? sa(a, [], function (c) {
-                var f = ta(a, c);
-                for (b = 0; b < f.length; b++) M(a, f[b]);
-                a.iInitDisplayStart =
-                    d;
-                S(a);
-                C(a, !1);
-                ua(a, c)
-            }, a) : (C(a, !1), ua(a))
-        } else setTimeout(function () {
-            ga(a)
-        }, 200)
-    }
-
-    function ua(a, b) {
-        a._bInitComplete = !0;
-        (b || a.oInit.aaData) && Y(a);
-        r(a, null, "plugin-init", [a, b]);
-        r(a, "aoInitComplete", "init", [a, b])
-    }
-
-    function Qa(a, b) {
-        var c = parseInt(b, 10);
-        a._iDisplayLength = c;
-        Ra(a);
-        r(a, null, "length", [a, c])
-    }
-
-    function nb(a) {
-        for (var b = a.oClasses, c = a.sTableId, d = a.aLengthMenu, e = h.isArray(d[0]), f = e ? d[0] : d, d = e ? d[1] : d, e = h("<select/>", {
-                name: c + "_length",
-                "aria-controls": c,
-                "class": b.sLengthSelect
-            }), g = 0, j = f.length; g < j; g++) e[0][g] =
-            new Option("number" === typeof d[g] ? a.fnFormatNumber(d[g]) : d[g], f[g]);
-        var i = h("<div><label/></div>").addClass(b.sLength);
-        a.aanFeatures.l || (i[0].id = c + "_length");
-        i.children().append(a.oLanguage.sLengthMenu.replace("_MENU_", e[0].outerHTML));
-        h("select", i).val(a._iDisplayLength).on("change.DT", function () {
-            Qa(a, h(this).val());
-            N(a)
-        });
-        h(a.nTable).on("length.dt.DT", function (b, c, d) {
-            a === c && h("select", i).val(d)
-        });
-        return i[0]
-    }
-
-    function sb(a) {
-        var b = a.sPaginationType,
-            c = m.ext.pager[b],
-            d = "function" === typeof c,
-            e = function (a) {
-                N(a)
-            },
-            b = h("<div/>").addClass(a.oClasses.sPaging + b)[0],
-            f = a.aanFeatures;
-        d || c.fnInit(a, b, e);
-        f.p || (b.id = a.sTableId + "_paginate", a.aoDrawCallback.push({
-            fn: function (a) {
-                if (d) {
-                    var b = a._iDisplayStart,
-                        i = a._iDisplayLength,
-                        h = a.fnRecordsDisplay(),
-                        l = -1 === i,
-                        b = l ? 0 : Math.ceil(b / i),
-                        i = l ? 1 : Math.ceil(h / i),
-                        h = c(b, i),
-                        k, l = 0;
-                    for (k = f.p.length; l < k; l++) Ma(a, "pageButton")(a, f.p[l], l, h, b, i)
-                } else c.fnUpdate(a, e)
-            },
-            sName: "pagination"
-        }));
-        return b
-    }
-
-    function Sa(a, b, c) {
-        var d = a._iDisplayStart,
-            e = a._iDisplayLength,
-            f = a.fnRecordsDisplay();
-        0 === f || -1 ===
-            e ? d = 0 : "number" === typeof b ? (d = b * e, d > f && (d = 0)) : "first" == b ? d = 0 : "previous" == b ? (d = 0 <= e ? d - e : 0, 0 > d && (d = 0)) : "next" == b ? d + e < f && (d += e) : "last" == b ? d = Math.floor((f - 1) / e) * e : J(a, 0, "Unknown paging action: " + b, 5);
-        b = a._iDisplayStart !== d;
-        a._iDisplayStart = d;
-        b && (r(a, null, "page", [a]), c && N(a));
-        return b
-    }
-
-    function pb(a) {
-        return h("<div/>", {
-            id: !a.aanFeatures.r ? a.sTableId + "_processing" : null,
-            "class": a.oClasses.sProcessing
-        }).html(a.oLanguage.sProcessing).insertBefore(a.nTable)[0]
-    }
-
-    function C(a, b) {
-        a.oFeatures.bProcessing && h(a.aanFeatures.r).css("display",
-            b ? "block" : "none");
-        r(a, null, "processing", [a, b])
-    }
-
-    function qb(a) {
-        var b = h(a.nTable);
-        b.attr("role", "grid");
-        var c = a.oScroll;
-        if ("" === c.sX && "" === c.sY) return a.nTable;
-        var d = c.sX,
-            e = c.sY,
-            f = a.oClasses,
-            g = b.children("caption"),
-            j = g.length ? g[0]._captionSide : null,
-            i = h(b[0].cloneNode(!1)),
-            n = h(b[0].cloneNode(!1)),
-            l = b.children("tfoot");
-        l.length || (l = null);
-        i = h("<div/>", {
-            "class": f.sScrollWrapper
-        }).append(h("<div/>", {
-            "class": f.sScrollHead
-        }).css({
-            overflow: "hidden",
-            position: "relative",
-            border: 0,
-            width: d ? !d ? null : v(d) : "100%"
-        }).append(h("<div/>", {
-            "class": f.sScrollHeadInner
-        }).css({
-            "box-sizing": "content-box",
-            width: c.sXInner || "100%"
-        }).append(i.removeAttr("id").css("margin-left", 0).append("top" === j ? g : null).append(b.children("thead"))))).append(h("<div/>", {
-            "class": f.sScrollBody
-        }).css({
-            position: "relative",
-            overflow: "auto",
-            width: !d ? null : v(d)
-        }).append(b));
-        l && i.append(h("<div/>", {
-            "class": f.sScrollFoot
-        }).css({
-            overflow: "hidden",
-            border: 0,
-            width: d ? !d ? null : v(d) : "100%"
-        }).append(h("<div/>", {
-            "class": f.sScrollFootInner
-        }).append(n.removeAttr("id").css("margin-left",
-            0).append("bottom" === j ? g : null).append(b.children("tfoot")))));
-        var b = i.children(),
-            k = b[0],
-            f = b[1],
-            t = l ? b[2] : null;
-        if (d) h(f).on("scroll.DT", function () {
-            var a = this.scrollLeft;
-            k.scrollLeft = a;
-            l && (t.scrollLeft = a)
-        });
-        h(f).css(e && c.bCollapse ? "max-height" : "height", e);
-        a.nScrollHead = k;
-        a.nScrollBody = f;
-        a.nScrollFoot = t;
-        a.aoDrawCallback.push({
-            fn: ka,
-            sName: "scrolling"
-        });
-        return i[0]
-    }
-
-    function ka(a) {
-        var b = a.oScroll,
-            c = b.sX,
-            d = b.sXInner,
-            e = b.sY,
-            b = b.iBarWidth,
-            f = h(a.nScrollHead),
-            g = f[0].style,
-            j = f.children("div"),
-            i = j[0].style,
-            n = j.children("table"),
-            j = a.nScrollBody,
-            l = h(j),
-            q = j.style,
-            t = h(a.nScrollFoot).children("div"),
-            m = t.children("table"),
-            o = h(a.nTHead),
-            p = h(a.nTable),
-            s = p[0],
-            r = s.style,
-            u = a.nTFoot ? h(a.nTFoot) : null,
-            x = a.oBrowser,
-            T = x.bScrollOversize,
-            Xb = D(a.aoColumns, "nTh"),
-            O, K, P, w, Ta = [],
-            y = [],
-            z = [],
-            A = [],
-            B, C = function (a) {
-                a = a.style;
-                a.paddingTop = "0";
-                a.paddingBottom = "0";
-                a.borderTopWidth = "0";
-                a.borderBottomWidth = "0";
-                a.height = 0
-            };
-        K = j.scrollHeight > j.clientHeight;
-        if (a.scrollBarVis !== K && a.scrollBarVis !== k) a.scrollBarVis = K, Y(a);
-        else {
-            a.scrollBarVis = K;
-            p.children("thead, tfoot").remove();
-            u && (P = u.clone().prependTo(p), O = u.find("tr"), P = P.find("tr"));
-            w = o.clone().prependTo(p);
-            o = o.find("tr");
-            K = w.find("tr");
-            w.find("th, td").removeAttr("tabindex");
-            c || (q.width = "100%", f[0].style.width = "100%");
-            h.each(ra(a, w), function (b, c) {
-                B = Z(a, b);
-                c.style.width = a.aoColumns[B].sWidth
-            });
-            u && H(function (a) {
-                a.style.width = ""
-            }, P);
-            f = p.outerWidth();
-            if ("" === c) {
-                r.width = "100%";
-                if (T && (p.find("tbody").height() > j.offsetHeight || "scroll" == l.css("overflow-y"))) r.width = v(p.outerWidth() - b);
-                f = p.outerWidth()
-            } else "" !== d && (r.width =
-                v(d), f = p.outerWidth());
-            H(C, K);
-            H(function (a) {
-                z.push(a.innerHTML);
-                Ta.push(v(h(a).css("width")))
-            }, K);
-            H(function (a, b) {
-                if (h.inArray(a, Xb) !== -1) a.style.width = Ta[b]
-            }, o);
-            h(K).height(0);
-            u && (H(C, P), H(function (a) {
-                A.push(a.innerHTML);
-                y.push(v(h(a).css("width")))
-            }, P), H(function (a, b) {
-                a.style.width = y[b]
-            }, O), h(P).height(0));
-            H(function (a, b) {
-                a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' + z[b] + "</div>";
-                a.style.width = Ta[b]
-            }, K);
-            u && H(function (a, b) {
-                a.innerHTML = '<div class="dataTables_sizing" style="height:0;overflow:hidden;">' +
-                    A[b] + "</div>";
-                a.style.width = y[b]
-            }, P);
-            if (p.outerWidth() < f) {
-                O = j.scrollHeight > j.offsetHeight || "scroll" == l.css("overflow-y") ? f + b : f;
-                if (T && (j.scrollHeight > j.offsetHeight || "scroll" == l.css("overflow-y"))) r.width = v(O - b);
-                ("" === c || "" !== d) && J(a, 1, "Possible column misalignment", 6)
-            } else O = "100%";
-            q.width = v(O);
-            g.width = v(O);
-            u && (a.nScrollFoot.style.width = v(O));
-            !e && T && (q.height = v(s.offsetHeight + b));
-            c = p.outerWidth();
-            n[0].style.width = v(c);
-            i.width = v(c);
-            d = p.height() > j.clientHeight || "scroll" == l.css("overflow-y");
-            e = "padding" +
-                (x.bScrollbarLeft ? "Left" : "Right");
-            i[e] = d ? b + "px" : "0px";
-            u && (m[0].style.width = v(c), t[0].style.width = v(c), t[0].style[e] = d ? b + "px" : "0px");
-            p.children("colgroup").insertBefore(p.children("thead"));
-            l.scroll();
-            if ((a.bSorted || a.bFiltered) && !a._drawHold) j.scrollTop = 0
-        }
-    }
-
-    function H(a, b, c) {
-        for (var d = 0, e = 0, f = b.length, g, j; e < f;) {
-            g = b[e].firstChild;
-            for (j = c ? c[e].firstChild : null; g;) 1 === g.nodeType && (c ? a(g, j, d) : a(g, d), d++), g = g.nextSibling, j = c ? j.nextSibling : null;
-            e++
-        }
-    }
-
-    function Ea(a) {
-        var b = a.nTable,
-            c = a.aoColumns,
-            d = a.oScroll,
-            e = d.sY,
-            f = d.sX,
-            g = d.sXInner,
-            j = c.length,
-            i = la(a, "bVisible"),
-            n = h("th", a.nTHead),
-            l = b.getAttribute("width"),
-            k = b.parentNode,
-            t = !1,
-            m, o, p = a.oBrowser,
... 7927 lines suppressed ...