From fc64b035e4a42f85c5fba80a4590cd93b14d2958 Mon Sep 17 00:00:00 2001
From: 3scapeX <78601930+eduardocs21@users.noreply.github.com>
Date: Fri, 18 Oct 2024 16:34:09 +0200
Subject: [PATCH] updated Blockly OSM blocks
Update of one picture and some information in the docu of the openSenseMap blocks in Blockly. The description should now correspond to the current block including the SSL option.
---
.../blockly/blocks/web/opensensemap.mdx | 8 +-
.../web-opensensemap/blockly-Web-oSeM-1.svg | 1043 ++++++++++++++++-
2 files changed, 1044 insertions(+), 7 deletions(-)
diff --git a/docs/editors/blockly/blocks/web/opensensemap.mdx b/docs/editors/blockly/blocks/web/opensensemap.mdx
index ae9214b..79bb8d6 100644
--- a/docs/editors/blockly/blocks/web/opensensemap.mdx
+++ b/docs/editors/blockly/blocks/web/opensensemap.mdx
@@ -14,13 +14,9 @@ Um Messwerte an die openSenseMap senden zu können, musst du deine Box zuerst mi
![](/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg)
-Im ersten Dropdown-Menü des Blocks kannst du auswählen, ob deine senseBox an die herkömmliche openSenseMap oder an workshop.openSenseMap senden soll.
+Zuerst kannst du auswählen, ob die senseBox mit "SSL" eine sichere Verbindung herstellen soll. Durch einen Authentifizierungsschlüssel stellst du sicher, dass niemand ungewollt Daten an deine senseBox senden kann. Wenn du diese Option auswählst, gehe auf openSenseMap in die Sicherheitseinstellungen deiner registrierten senseBox. Wähle hier die Option "Box Authentifizierung aktivieren" aus und füge den Schlüssel in Blockly in das Textfeld "API-Schlüssel" bzw. "access token" ein.
-> **opensensemap.org:** senseBoxen, die für langfristige Messreihen angelegt wurden.
->
-> **workshop.opensensemap.org:** senseBoxen, die im Rahmen von kurzen Experimenten oder zum Testen angelegt wurden.
-
-Im zweiten Dropdown-Menü des Blocks wählst du aus, ob es sich bei deiner senseBox um eine stationäre oder eine mobile Station handelt und im Textfeld "senseBox ID" die nach der Registrierung angezeigte senseBox-ID eintragen.
+Im ersten Dropdown-Menü des Blocks wählst du aus, ob es sich bei deiner senseBox um eine stationäre oder eine mobile Station handelt. Im Textfeld "senseBox ID" trägst du die nach der Registrierung angezeigte senseBox-ID ein.
Im freien Blockabschnitt `Sensoren` müssen dann die angeschlossenen Sensoren mithilfe des `Sende Messwert an die openSenseMap`-Blocks angeknüpft werden.
![](/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-2.svg)
diff --git a/static/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg b/static/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg
index b0d0998..4a09dc5 100755
--- a/static/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg
+++ b/static/img/blockly-bilder/web-opensensemap/blockly-Web-oSeM-1.svg
@@ -1 +1,1042 @@
- ">Verbinde mit openSenseMap opensensemap.org ▾ Typ Stationär ▾ senseBox ID senseBox ID Sensoren
\ No newline at end of file
+
+ .blocklyText,
+.blocklyFlyoutLabelText {
+font: normal 11pt sans-serif;
+}
+.blocklyText {
+fill: #fff;
+}
+.blocklyNonEditableText>rect,
+.blocklyEditableText>rect {
+fill: #fff;
+fill-opacity: .6;
+stroke: none;
+}
+.blocklyNonEditableText>text,
+.blocklyEditableText>text {
+fill: #000;
+}
+.blocklyFlyoutLabelText {
+fill: #000;
+}
+.blocklyText.blocklyBubbleText {
+fill: #000;
+}
+.blocklyEditableText:not(.editing):hover>rect {
+stroke: #fff;
+stroke-width: 2;
+}
+.blocklyHtmlInput {
+font-family: sans-serif;
+font-weight: normal;
+}
+.blocklySelected>.blocklyPath {
+stroke: #fc3;
+stroke-width: 3px;
+}
+.blocklyHighlightedConnectionPath {
+stroke: #fc3;
+}
+.blocklyPath {
+fill-opacity: .5;
+}
+.blocklyPathLight,
+.blocklyPathDark {
+display: none;
+}
+.blocklyInsertionMarker>.blocklyPath {
+fill-opacity: 0.2;
+stroke: none;
+}
+.blocklyInsertionMarker>.blocklyPathLight,
+.blocklyInsertionMarker>.blocklyPathDark {
+fill-opacity: 0.2;
+stroke: none;
+}
+.blocklySvg {
+ background-color: #fff;
+ outline: none;
+ overflow: hidden; /* IE overflows by default. */
+ position: absolute;
+ display: block;
+}
+
+.blocklyWidgetDiv {
+ display: none;
+ position: absolute;
+ z-index: 99999; /* big value for bootstrap3 compatibility */
+}
+
+.injectionDiv {
+ height: 100%;
+ position: relative;
+ overflow: hidden; /* So blocks in drag surface disappear at edges */
+ touch-action: none;
+}
+
+.blocklyNonSelectable {
+ user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+}
+
+.blocklyWsDragSurface {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+}
+
+/* Added as a separate rule with multiple classes to make it more specific
+ than a bootstrap rule that selects svg:root. See issue #1275 for context.
+*/
+.blocklyWsDragSurface.blocklyOverflowVisible {
+ overflow: visible;
+}
+
+.blocklyBlockDragSurface {
+ display: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ overflow: visible !important;
+ z-index: 50; /* Display below toolbox, but above everything else. */
+}
+
+.blocklyBlockCanvas.blocklyCanvasTransitioning,
+.blocklyBubbleCanvas.blocklyCanvasTransitioning {
+ transition: transform .5s;
+}
+
+.blocklyTooltipDiv {
+ background-color: #ffffc7;
+ border: 1px solid #ddc;
+ box-shadow: 4px 4px 20px 1px rgba(0,0,0,.15);
+ color: #000;
+ display: none;
+ font: 9pt sans-serif;
+ opacity: .9;
+ padding: 2px;
+ position: absolute;
+ z-index: 100000; /* big value for bootstrap3 compatibility */
+}
+
+.blocklyDropDownDiv {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 1000;
+ display: none;
+ border: 1px solid;
+ border-color: #dadce0;
+ background-color: #fff;
+ border-radius: 2px;
+ padding: 4px;
+ box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
+}
+
+.blocklyDropDownDiv.blocklyFocused {
+ box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
+}
+
+.blocklyDropDownContent {
+ max-height: 300px; /* @todo: spec for maximum height. */
+ overflow: auto;
+ overflow-x: hidden;
+ position: relative;
+}
+
+.blocklyDropDownArrow {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 16px;
+ height: 16px;
+ z-index: -1;
+ background-color: inherit;
+ border-color: inherit;
+}
+
+.blocklyDropDownButton {
+ display: inline-block;
+ float: left;
+ padding: 0;
+ margin: 4px;
+ border-radius: 4px;
+ outline: none;
+ border: 1px solid;
+ transition: box-shadow .1s;
+ cursor: pointer;
+}
+
+.blocklyArrowTop {
+ border-top: 1px solid;
+ border-left: 1px solid;
+ border-top-left-radius: 4px;
+ border-color: inherit;
+}
+
+.blocklyArrowBottom {
+ border-bottom: 1px solid;
+ border-right: 1px solid;
+ border-bottom-right-radius: 4px;
+ border-color: inherit;
+}
+
+.blocklyResizeSE {
+ cursor: se-resize;
+ fill: #aaa;
+}
+
+.blocklyResizeSW {
+ cursor: sw-resize;
+ fill: #aaa;
+}
+
+.blocklyResizeLine {
+ stroke: #515A5A;
+ stroke-width: 1;
+}
+
+.blocklyHighlightedConnectionPath {
+ fill: none;
+ stroke: #fc3;
+ stroke-width: 4px;
+}
+
+.blocklyPathLight {
+ fill: none;
+ stroke-linecap: round;
+ stroke-width: 1;
+}
+
+.blocklySelected>.blocklyPathLight {
+ display: none;
+}
+
+.blocklyDraggable {
+ cursor: grab;
+ cursor: -webkit-grab;
+}
+
+.blocklyDragging {
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+
+ /* Changes cursor on mouse down. Not effective in Firefox because of
+ https://bugzilla.mozilla.org/show_bug.cgi?id=771241 */
+.blocklyDraggable:active {
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+
+/* Change the cursor on the whole drag surface in case the mouse gets
+ ahead of block during a drag. This way the cursor is still a closed hand.
+ */
+.blocklyDraggable {
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+
+.blocklyDragging.blocklyDraggingDelete {
+ cursor: url("/media/blockly/handdelete.cur"), auto;
+}
+
+.blocklyDragging>.blocklyPath,
+.blocklyDragging>.blocklyPathLight {
+ fill-opacity: .8;
+ stroke-opacity: .8;
+}
+
+.blocklyDragging>.blocklyPathDark {
+ display: none;
+}
+
+.blocklyDisabled>.blocklyPath {
+ fill-opacity: .5;
+ stroke-opacity: .5;
+}
+
+.blocklyDisabled>.blocklyPathLight,
+.blocklyDisabled>.blocklyPathDark {
+ display: none;
+}
+
+.blocklyInsertionMarker>.blocklyPath,
+.blocklyInsertionMarker>.blocklyPathLight,
+.blocklyInsertionMarker>.blocklyPathDark {
+ fill-opacity: .2;
+ stroke: none;
+}
+
+.blocklyMultilineText {
+ font-family: monospace;
+}
+
+.blocklyNonEditableText>text {
+ pointer-events: none;
+}
+
+.blocklyFlyout {
+ position: absolute;
+ z-index: 20;
+}
+
+.blocklyText text {
+ cursor: default;
+}
+
+/*
+ Don't allow users to select text. It gets annoying when trying to
+ drag a block and selected text moves instead.
+*/
+.blocklySvg text,
+.blocklyBlockDragSurface text {
+ user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ cursor: inherit;
+}
+
+.blocklyHidden {
+ display: none;
+}
+
+.blocklyFieldDropdown:not(.blocklyHidden) {
+ display: block;
+}
+
+.blocklyIconGroup {
+ cursor: default;
+}
+
+.blocklyIconGroup:not(:hover),
+.blocklyIconGroupReadonly {
+ opacity: .6;
+}
+
+.blocklyIconShape {
+ fill: #00f;
+ stroke: #fff;
+ stroke-width: 1px;
+}
+
+.blocklyIconSymbol {
+ fill: #fff;
+}
+
+.blocklyMinimalBody {
+ margin: 0;
+ padding: 0;
+}
+
+.blocklyHtmlInput {
+ border: none;
+ border-radius: 4px;
+ height: 100%;
+ margin: 0;
+ outline: none;
+ padding: 0;
+ width: 100%;
+ text-align: center;
+ display: block;
+ box-sizing: border-box;
+}
+
+/* Remove the increase and decrease arrows on the field number editor */
+input.blocklyHtmlInput[type=number]::-webkit-inner-spin-button,
+input.blocklyHtmlInput[type=number]::-webkit-outer-spin-button {
+ -webkit-appearance: none;
+ margin: 0;
+}
+
+input[type=number] {
+ -moz-appearance: textfield;
+}
+
+.blocklyMainBackground {
+ stroke-width: 1;
+ stroke: #c6c6c6; /* Equates to #ddd due to border being off-pixel. */
+}
+
+.blocklyMutatorBackground {
+ fill: #fff;
+ stroke: #ddd;
+ stroke-width: 1;
+}
+
+.blocklyFlyoutBackground {
+ fill: #ddd;
+ fill-opacity: .8;
+}
+
+.blocklyMainWorkspaceScrollbar {
+ z-index: 20;
+}
+
+.blocklyFlyoutScrollbar {
+ z-index: 30;
+}
+
+.blocklyScrollbarHorizontal,
+.blocklyScrollbarVertical {
+ position: absolute;
+ outline: none;
+}
+
+.blocklyScrollbarBackground {
+ opacity: 0;
+}
+
+.blocklyScrollbarHandle {
+ fill: #ccc;
+}
+
+.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
+.blocklyScrollbarHandle:hover {
+ fill: #bbb;
+}
+
+/* Darken flyout scrollbars due to being on a grey background. */
+/* By contrast, workspace scrollbars are on a white background. */
+.blocklyScrollbarHandle {
+ fill: #bbb;
+}
+
+.blocklyScrollbarBackground:hover+.blocklyScrollbarHandle,
+.blocklyScrollbarHandle:hover {
+ fill: #aaa;
+}
+
+.blocklyInvalidInput {
+ background: #faa;
+}
+
+.blocklyVerticalMarker {
+ stroke-width: 3px;
+ fill: rgba(255,255,255,.5);
+ pointer-events: none;
+}
+
+.blocklyComputeCanvas {
+ position: absolute;
+ width: 0;
+ height: 0;
+}
+
+.blocklyNoPointerEvents {
+ pointer-events: none;
+}
+
+.blocklyContextMenu {
+ border-radius: 4px;
+ max-height: 100%;
+}
+
+.blocklyDropdownMenu {
+ border-radius: 2px;
+ padding: 0 !important;
+}
+
+.blocklyMenuItem {
+ /* 28px on the left for icon or checkbox. */
+ padding-left: 28px;
+}
+
+/* BiDi override for the resting state. */
+.blocklyMenuItemRtl {
+ /* Flip left/right padding for BiDi. */
+ padding-left: 5px;
+ padding-right: 28px;
+}
+
+.blocklyMenu {
+ background: #fff;
+ border: 1px solid transparent;
+ box-shadow: 0 0 3px 1px rgba(0,0,0,.3);
+ font: normal 13px Arial, sans-serif;
+ margin: 0;
+ outline: none;
+ padding: 4px 0;
+ position: absolute;
+ overflow-y: auto;
+ overflow-x: hidden;
+ max-height: 100%;
+ z-index: 20000; /* Arbitrary, but some apps depend on it... */
+}
+
+.blocklyMenu.blocklyFocused {
+ box-shadow: 0 0 6px 1px rgba(0,0,0,.3);
+}
+
+.blocklyMenu {
+ background: inherit; /* Compatibility with gapi, reset from goog-menu */
+ border: inherit; /* Compatibility with gapi, reset from goog-menu */
+ font: normal 13px "Helvetica Neue", Helvetica, sans-serif;
+ outline: none;
+ position: relative; /* Compatibility with gapi, reset from goog-menu */
+ z-index: 20000; /* Arbitrary, but some apps depend on it... */
+}
+
+/* State: resting. */
+.blocklyMenuItem {
+ border: none;
+ color: #000;
+ cursor: pointer;
+ list-style: none;
+ margin: 0;
+ /* 7em on the right for shortcut. */
+ min-width: 7em;
+ padding: 6px 15px;
+ white-space: nowrap;
+}
+
+/* State: disabled. */
+.blocklyMenuItemDisabled {
+ color: #ccc;
+ cursor: inherit;
+}
+
+/* State: hover. */
+.blocklyMenuItemHighlight {
+ background-color: rgba(0,0,0,.1);
+}
+
+/* State: selected/checked. */
+.blocklyMenuItemCheckbox {
+ height: 16px;
+ position: absolute;
+ width: 16px;
+}
+
+.blocklyMenuItemCheckbox {
+ background: url(/media/blockly/sprites.png) no-repeat -48px -16px;
+ float: left;
+ margin-left: -24px;
+ position: static; /* Scroll with the menu. */
+}
+
+.blocklyMenuItemCheckbox {
+ float: right;
+ margin-right: -24px;
+}
+
+
+.blocklyCommentForeignObject {
+ position: relative;
+ z-index: 0;
+}
+
+.blocklyCommentRect {
+ fill: #E7DE8E;
+ stroke: #bcA903;
+ stroke-width: 1px;
+}
+
+.blocklyCommentTarget {
+ fill: transparent;
+ stroke: #bcA903;
+}
+
+.blocklyCommentTargetFocused {
+ fill: none;
+}
+
+.blocklyCommentHandleTarget {
+ fill: none;
+}
+
+.blocklyCommentHandleTargetFocused {
+ fill: transparent;
+}
+
+.blocklyFocused>.blocklyCommentRect {
+ fill: #B9B272;
+ stroke: #B9B272;
+}
+
+.blocklySelected>.blocklyCommentTarget {
+ stroke: #fc3;
+ stroke-width: 3px;
+}
+
+.blocklyCommentDeleteIcon {
+ cursor: pointer;
+ fill: #000;
+ display: none;
+}
+
+.blocklyCommentDeleteIcon {
+ display: block;
+}
+
+.blocklyDeleteIconShape {
+ fill: #000;
+ stroke: #000;
+ stroke-width: 1px;
+}
+
+.blocklyDeleteIconShape.blocklyDeleteIconHighlighted {
+ stroke: #fc3;
+}
+
+
+.blocklyCommentTextarea {
+ background-color: #fef49c;
+ border: 0;
+ display: block;
+ margin: 0;
+ outline: 0;
+ padding: 3px;
+ resize: none;
+ text-overflow: hidden;
+}
+
+
+.blocklyAngleCircle {
+ stroke: #444;
+ stroke-width: 1;
+ fill: #ddd;
+ fill-opacity: 0.8;
+}
+
+.blocklyAngleMarks {
+ stroke: #444;
+ stroke-width: 1;
+}
+
+.blocklyAngleGauge {
+ fill: #f88;
+ fill-opacity: 0.8;
+ pointer-events: none;
+}
+
+.blocklyAngleLine {
+ stroke: #f00;
+ stroke-width: 2;
+ stroke-linecap: round;
+ pointer-events: none;
+}
+
+
+.blocklyColourTable {
+ border-collapse: collapse;
+ display: block;
+ outline: none;
+ padding: 1px;
+}
+
+.blocklyColourTable>tr>td {
+ border: 0.5px solid #888;
+ box-sizing: border-box;
+ cursor: pointer;
+ display: inline-block;
+ height: 20px;
+ padding: 0;
+ width: 20px;
+}
+
+.blocklyColourTable>tr>td.blocklyColourHighlighted {
+ border-color: #eee;
+ box-shadow: 2px 2px 7px 2px rgba(0, 0, 0, 0.3);
+ position: relative;
+}
+
+.blocklyColourSelected:hover {
+ border-color: #eee !important;
+ outline: 1px solid #333;
+ position: relative;
+}
+
+
+.blocklyHtmlTextAreaInput {
+ font-family: monospace;
+ resize: none;
+ overflow: hidden;
+ height: 100%;
+ text-align: left;
+}
+
+.blocklyHtmlTextAreaInputOverflowedY {
+ overflow-y: scroll;
+}
+
+
+.blocklyFlyoutButton {
+ fill: #888;
+ cursor: default;
+}
+
+.blocklyFlyoutButtonShadow {
+ fill: #666;
+}
+
+.blocklyFlyoutButton:hover {
+ fill: #aaa;
+}
+
+.blocklyFlyoutLabel {
+ cursor: default;
+}
+
+.blocklyFlyoutLabelBackground {
+ opacity: 0;
+}
+
+
+.blocklyZoom>svg>image {
+ opacity: .4;
+}
+
+.blocklyZoom>svg>image:hover {
+ opacity: .6;
+}
+
+.blocklyZoom>svg>image:active {
+ opacity: .8;
+}
+
+
+.blocklyTreeRow:not(.blocklyTreeSelected):hover {
+ background-color: rgba(255, 255, 255, .2);
+}
+
+.blocklyToolboxCategory {
+ margin: 1px 5px 1px 0;
+}
+
+.blocklyToolboxCategory {
+ margin: 1px 0 1px 5px;
+}
+
+.blocklyTreeRow {
+ height: 22px;
+ line-height: 22px;
+ margin-bottom: 3px;
+ padding-right: 8px;
+ white-space: nowrap;
+}
+
+.blocklyTreeRow {
+ margin-left: 8px;
+ padding-right: 0;
+}
+
+.blocklyTreeIcon {
+ background-image: url(/media/blockly/sprites.png);
+ height: 16px;
+ vertical-align: middle;
+ visibility: hidden;
+ width: 16px;
+}
+
+.blocklyTreeIconClosed {
+ background-position: -32px -1px;
+}
+
+.blocklyTreeIconClosed {
+ background-position: 0 -1px;
+}
+
+.blocklyTreeSelected>.blocklyTreeIconClosed {
+ background-position: -32px -17px;
+}
+
+.blocklyTreeSelected>.blocklyTreeIconClosed {
+ background-position: 0 -17px;
+}
+
+.blocklyTreeIconOpen {
+ background-position: -16px -1px;
+}
+
+.blocklyTreeSelected>.blocklyTreeIconOpen {
+ background-position: -16px -17px;
+}
+
+.blocklyTreeLabel {
+ cursor: default;
+ font: 16px sans-serif;
+ padding: 0 3px;
+ vertical-align: middle;
+}
+
+.blocklyTreeLabel {
+ cursor: url("/media/blockly/handdelete.cur"), auto;
+}
+
+.blocklyTreeLabel {
+ color: #fff;
+}
+
+
+.blocklyTreeSeparator {
+ border-bottom: solid #e5e5e5 1px;
+ height: 0;
+ margin: 5px 0;
+}
+
+.blocklyTreeSeparator {
+ border-right: solid #e5e5e5 1px;
+ border-bottom: none;
+ height: auto;
+ margin: 0 5px 0 5px;
+ padding: 5px 0;
+ width: 0;
+}
+
+
+.blocklyToolboxDelete {
+ cursor: url("/media/blockly/handdelete.cur"), auto;
+}
+
+.blocklyToolboxGrab {
+ cursor: url("/media/blockly/handclosed.cur"), auto;
+ cursor: grabbing;
+ cursor: -webkit-grabbing;
+}
+
+/* Category tree in Toolbox. */
+.blocklyToolboxDiv {
+ background-color: #ddd;
+ overflow-x: visible;
+ overflow-y: auto;
+ padding: 4px 0 4px 0;
+ position: absolute;
+ z-index: 70; /* so blocks go under toolbox when dragging */
+ -webkit-tap-highlight-color: transparent; /* issue #1345 */
+}
+
+.blocklyToolboxContents {
+ display: flex;
+ flex-wrap: wrap;
+ flex-direction: column;
+}
+
+.blocklyToolboxContents:focus {
+ outline: none;
+}
+
+
+.blocklyModalOverlay {
+ width: 100%;
+ height: 100%;
+ left: 0;
+ top: 0;
+ position: fixed;
+}
+.blocklyModalContainer {
+ background-color: #fff;
+ border: 1px solid gray;
+ font-family: Helvetica;
+ font-weight: 300;
+ padding: 1em;
+ width: 400px;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ box-shadow: 0px 10px 20px grey;
+ z-index: 100;
+ margin: 15% auto;
+}
+.blocklyModalHeader {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+}
+.blocklyModalHeaderTitle {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 1.2em;
+ line-height: 1.25;
+}
+.blocklyModalBtn {
+ margin-left: auto;
+ height: fit-content;
+}
+.blocklyModalBtnClose:before {
+ content: "\2715";
+}
+.blocklyModalBtn {
+ margin-right: 0.5em;
+ border: 1px solid gray;
+ font-weight: 500;
+ color: gray;
+ border-radius: 25px;
+}
+.blocklyModalBtnPrimary {
+ background-color: gray;
+ color: #fff;
+}
+
+
+.typedModalTitle {
+ font-weight: bold;
+ font-size: 1em;
+}
+.typedModalVariableInputContainer {
+ margin: 1em 0 1em 0;
+}
+.typedModalVariableLabel{
+ margin-right: 0.5em;
+}
+.typedModalTypes ul{
+ display: flex;
+ flex-wrap: wrap;
+ list-style-type: none;
+ padding: 0;
+}
+.typedModalTypes li {
+ margin-right: 1em;
+ display: flex;
+}
+
+
+ /** Setup grid layout of DropDown */
+ .fieldGridDropDownContainer.blocklyMenu {
+ display: grid;
+ grid-gap: 7px;
+ }
+ /* Change look of cells (add border, sizing, padding, and text color) */
+ .blocklyMenuItem {
+ border: 1px solid rgba(1, 1, 1, 0.5);
+ border-radius: 4px;
+ color: white;
+ min-width: auto;
+ padding-left: 15px; /* override padding-left now that checkmark is hidden */
+ }
+ /* Change look of selected cell */
+ .blocklyMenuItemCheckbox {
+ display: none; /* Hide checkmark */
+ }
+ .blocklyMenuItem.blocklyMenuItemSelected {
+ background-color: rgba(1, 1, 1, 0.25);
+ }
+ /* Change look of focus/highlighted cell */
+ .blocklyMenuItem.blocklyMenuItemHighlight {
+ box-shadow: 0 0 0 4px hsla(0, 0%, 100%, .2);
+ }
+ .blocklyMenuItemHighlight {
+ /* Uses less selectors so as to not affect blocklyMenuItemSelected */
+ background-color: inherit;
+ }
+ .fieldGridDropDownContainer {
+ margin: 7px; /* needed for highlight */
+ }
+
+
+.fieldSliderContainer {
+ align-items: center;
+ display: flex;
+ height: 32px;
+ justify-content: center;
+ width: 150px;
+}
+.fieldSlider {
+ -webkit-appearance: none;
+ background: transparent; /* override white in chrome */
+ margin: 4px;
+ padding: 0;
+ width: 100%;
+}
+.fieldSlider:focus {
+ outline: none;
+}
+/* Webkit */
+.fieldSlider::-webkit-slider-runnable-track {
+ background: #ddd;
+ border-radius: 5px;
+ height: 10px;
+}
+.fieldSlider::-webkit-slider-thumb {
+ -webkit-appearance: none;
+ background: #fff;
+ border-radius: 50%;
+ box-shadow: 0 0 0 4px rgba(255,255,255,.15);
+ cursor: pointer;
+ height: 24px;
+ margin-top: -7px;
+ width: 24px;
+}
+/* Firefox */
+.fieldSlider::-moz-range-track {
+ background: #ddd;
+ border-radius: 5px;
+ height: 10px;
+}
+.fieldSlider::-moz-range-thumb {
+ background: #fff;
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 0 0 4px rgba(255,255,255,.15);
+ cursor: pointer;
+ height: 24px;
+ width: 24px;
+}
+.fieldSlider::-moz-focus-outer {
+ /* override the focus border style */
+ border: 0;
+}
+/* IE */
+.fieldSlider::-ms-track {
+ /* IE wont let the thumb overflow the track, so fake it */
+ background: transparent;
+ border-color: transparent;
+ border-width: 15px 0;
+ /* remove default tick marks */
+ color: transparent;
+ height: 10px;
+ width: 100%;
+ margin: -4px 0;
+}
+.fieldSlider::-ms-fill-lower {
+ background: #ddd;
+ border-radius: 5px;
+}
+.fieldSlider::-ms-fill-upper {
+ background: #ddd;
+ border-radius: 5px;
+}
+.fieldSlider::-ms-thumb {
+ background: #fff;
+ border: none;
+ border-radius: 50%;
+ box-shadow: 0 0 0 4px rgba(255,255,255,.15);
+ cursor: pointer;
+ height: 24px;
+ width: 24px;
+}
+
+
+.zoomToFit {
+ opacity: 0.4;
+}
+.zoomToFit:hover {
+ opacity: 0.6;
+}
+.zoomToFit:active {
+ opacity: 0.8;
+}
+
+
+.blocklyBackpack {
+ opacity: 0.4;
+}
+.blocklyBackpackDarken {
+ opacity: 0.6;
+}
+.blocklyBackpack:active {
+ opacity: 0.8;
+}
+.blocklyPath {
+ fill-opacity: 1;
+ }
+ .blocklyPathDark {
+ display: flex;
+ }
+ .blocklyPathLight {
+ display: flex;
+ } ">Setup() Endlosschleife() Verbinde mit openSenseMap: SSL ✓ Typ Stationär ▾ senseBox ID senseBox ID API Schlüssel access_token Sensoren Intervall: Interval 10000 ms
\ No newline at end of file