From 18fc37c1290c604cc3948add3148c868aec4869b Mon Sep 17 00:00:00 2001 From: Paul Kaplan <pkaplan@media.mit.edu> Date: Tue, 10 Jul 2018 14:40:19 -0400 Subject: [PATCH] Propagate extension device images to make extension specific flows --- .../connection-modal/connected-step.jsx | 18 +- .../connection-modal/connecting-step.jsx | 50 +++-- .../connection-modal/connection-modal.css | 183 +++++++++++++++++- .../connection-modal/connection-modal.jsx | 13 +- .../connection-modal/device-tile.jsx | 62 ++++-- .../connection-modal/error-step.jsx | 22 ++- .../connection-modal/icons/back.svg | Bin 0 -> 1349 bytes .../icons/bluetooth-white.svg | Bin 0 -> 1826 bytes .../connection-modal/icons/cancel.svg | Bin 0 -> 1365 bytes .../connection-modal/icons/close.svg | Bin 0 -> 1352 bytes .../connection-modal/icons/help.svg | Bin 0 -> 2042 bytes .../connection-modal/icons/refresh.svg | Bin 0 -> 2667 bytes .../connection-modal/icons/searching.png | Bin 0 -> 42439 bytes .../connection-modal/scanning-step.jsx | 33 +++- src/components/modal/modal.css | 4 + src/components/modal/modal.jsx | 7 + src/containers/blocks.jsx | 22 ++- src/containers/connection-modal.jsx | 6 + src/containers/scanning-step.jsx | 2 + .../ev3/ev3-hub-illustration.svg | Bin 0 -> 15543 bytes .../device-connection/ev3/ev3-menu-icon.svg | Bin 0 -> 5438 bytes .../microbit/microbit-illustration.svg | Bin 0 -> 56730 bytes .../microbit/microbit-menu-icon.svg | Bin 0 -> 18696 bytes src/lib/libraries/extensions/index.jsx | 12 ++ 24 files changed, 377 insertions(+), 57 deletions(-) create mode 100644 src/components/connection-modal/icons/back.svg create mode 100644 src/components/connection-modal/icons/bluetooth-white.svg create mode 100644 src/components/connection-modal/icons/cancel.svg create mode 100644 src/components/connection-modal/icons/close.svg create mode 100644 src/components/connection-modal/icons/help.svg create mode 100644 src/components/connection-modal/icons/refresh.svg create mode 100644 src/components/connection-modal/icons/searching.png create mode 100644 src/lib/libraries/extensions/device-connection/ev3/ev3-hub-illustration.svg create mode 100644 src/lib/libraries/extensions/device-connection/ev3/ev3-menu-icon.svg create mode 100644 src/lib/libraries/extensions/device-connection/microbit/microbit-illustration.svg create mode 100644 src/lib/libraries/extensions/device-connection/microbit/microbit-menu-icon.svg diff --git a/src/components/connection-modal/connected-step.jsx b/src/components/connection-modal/connected-step.jsx index 53b7b6356..c02f644bc 100644 --- a/src/components/connection-modal/connected-step.jsx +++ b/src/components/connection-modal/connected-step.jsx @@ -4,13 +4,26 @@ import React from 'react'; import Box from '../box/box.jsx'; import Dots from './dots.jsx'; - +import bluetoothIcon from './icons/bluetooth-white.svg'; import styles from './connection-modal.css'; import classNames from 'classnames'; const ConnectedStep = props => ( <Box className={styles.body}> - <Box className={styles.activityArea} /> + <Box className={styles.activityArea}> + <Box className={styles.centeredRow}> + <div className={styles.deviceActivity}> + <img + className={styles.deviceActivityIcon} + src={props.deviceImage} + /> + <img + className={styles.bluetoothConnectedIcon} + src={bluetoothIcon} + /> + </div> + </Box> + </Box> <Box className={styles.bottomArea}> <Box className={styles.instructions}> <FormattedMessage @@ -50,6 +63,7 @@ const ConnectedStep = props => ( ); ConnectedStep.propTypes = { + deviceImage: PropTypes.string.isRequired, onCancel: PropTypes.func, onDisconnect: PropTypes.func }; diff --git a/src/components/connection-modal/connecting-step.jsx b/src/components/connection-modal/connecting-step.jsx index 7b0fd6f43..063e67a82 100644 --- a/src/components/connection-modal/connecting-step.jsx +++ b/src/components/connection-modal/connecting-step.jsx @@ -5,11 +5,27 @@ import React from 'react'; import Box from '../box/box.jsx'; import Dots from './dots.jsx'; +import bluetoothIcon from './icons/bluetooth-white.svg'; +import closeIcon from '../close-button/icon--close.svg'; + import styles from './connection-modal.css'; const ConnectingStep = props => ( <Box className={styles.body}> - <Box className={styles.activityArea} /> + <Box className={styles.activityArea}> + <Box className={styles.centeredRow}> + <div className={styles.deviceActivity}> + <img + className={styles.deviceActivityIcon} + src={props.deviceImage} + /> + <img + className={styles.bluetoothConnectingIcon} + src={bluetoothIcon} + /> + </div> + </Box> + </Box> <Box className={styles.bottomArea}> <Box className={styles.instructions}> <FormattedMessage @@ -22,21 +38,33 @@ const ConnectingStep = props => ( counter={1} total={3} /> - <button - className={styles.connectionButton} - onClick={props.onDisconnect} - > - <FormattedMessage - defaultMessage="X" - description="Button to cancel connecting" - id="gui.connection.cancelbutton" - /> - </button> + <div className={styles.segmentedButton}> + <button + disabled + className={styles.connectionButton} + > + <FormattedMessage + defaultMessage="Connecting..." + description="Label indicating that connection is in progress" + id="gui.connection.connecting-cancelbutton" + /> + </button> + <button + className={styles.connectionButton} + onClick={props.onDisconnect} + > + <img + className={styles.abortConnectingIcon} + src={closeIcon} + /> + </button> + </div> </Box> </Box> ); ConnectingStep.propTypes = { + deviceImage: PropTypes.string.isRequired, onDisconnect: PropTypes.func }; diff --git a/src/components/connection-modal/connection-modal.css b/src/components/connection-modal/connection-modal.css index 410569fa5..ee0a0aae1 100644 --- a/src/components/connection-modal/connection-modal.css +++ b/src/components/connection-modal/connection-modal.css @@ -18,14 +18,26 @@ margin: 0 0 0.75rem; } +.centered-row { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; +} + .device-tile-pane { - overflow-y: scroll; + overflow-y: auto; width: 100%; height: 100%; padding: 0.5rem; } .device-tile { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; + background-color: $ui-white; border-radius: 0.25rem; padding: 10px; @@ -34,22 +46,133 @@ margin-bottom: 0.5rem; } +.device-tile-name { + display: flex; + align-items: center; +} + +.device-tile-image { + margin-right: 0.5rem; +} + +.device-tile-name-wrapper { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; +} + +.device-tile-name-label { + font-weight: bold; + font-size: 0.625rem; +} + +.device-tile-name-text { + font-size: 0.875rem; +} + .device-tile button { - padding: 0.75rem 1rem; + padding: 0.6rem 0.75rem; + border: none; border-radius: 0.25rem; font-weight: 600; font-size: 0.85rem; background: $motion-primary; border: $motion-primary; color: white; + cursor: pointer; +} + +.signal-strength-meter { + display: flex; + justify-content: space-between; + align-items: flex-end; + width: 22px; + height: 16px; + margin-right: 1rem; +} + +.signal-bar { + width: 4px; + border-radius: 4px; + background-color: #DBDBDB; +} + +.signal-bar:nth-of-type(1) { height: 25%; } +.signal-bar:nth-of-type(2) { height: 50%; } +.signal-bar:nth-of-type(3) { height: 75%; } +.signal-bar:nth-of-type(4) { height: 100%; } + +.green-bar { + background-color: $pen-primary; +} + +.radar { + width: 40px; + height: 40px; + margin-right: 0.5rem; + animation: spin 4s linear infinite; +} + +@keyframes spin { + 100% { + transform: rotate(360deg); + } +} + + +.device-activity { + position: relative; +} + +.device-activity-icon { + /* width: 80px; + height: 80px; */ } -.signal-strength-text { - margin: 5px; +.bluetooth-connecting-icon { + position: absolute; + top: -5px; + right: -15px; + padding: 5px 5px; + background-color: $motion-primary; + border-radius: 100%; + box-shadow: 0px 0px 0px 4px $motion-transparent; + /* animation: pulse-blue-ring 1s infinite ease-in-out alternate; */ + animation: wiggle 0.5s infinite ease-in-out alternate; + +} + +@keyframes pulse-blue-ring { + 100% { + box-shadow: 0px 0px 0px 8px $motion-light-transparent; + } +} + + +.bluetooth-connected-icon { + position: absolute; + top: -5px; + right: -15px; + padding: 5px 5px; + background-color: $pen-primary; + border-radius: 100%; + box-shadow: 0px 0px 0px 4px $pen-transparent; +} + + + +@keyframes wiggle { + 0% {transform: rotate(3deg) scale(1.05);} + 25% {transform: rotate(-3deg) scale(1.05);} + 50% {transform: rotate(5deg) scale(1.05);} + 75% {transform: rotate(-2deg) scale(1.05);} + 100% {transform: rotate(0deg) scale(1.05);} } .device-tile-widgets { - float: right; + display: flex; + align-items: center; } .activityArea { @@ -63,16 +186,54 @@ .button-row { font-weight: bolder; text-align: center; + display: flex; +} + +.abort-connecting-icon { + width: 10px; + transform: rotate(45deg); } .connection-button { - padding: 0.75rem 1rem; + padding: 0.6rem 0.75rem; border-radius: 0.5rem; background: $motion-primary; color: white; font-weight: 600; font-size: 0.85rem; margin: 0.25rem; + border: none; + cursor: pointer; + display: flex; + align-items: center; +} + +.connection-button:disabled { + background: $motion-transparent; +} + +.segmented-button { + display: flex; +} + +.segmented-button .connection-button:first-of-type { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + margin-right: 0; +} + +.segmented-button .connection-button:last-of-type { + margin-left: 1px; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.button-icon-right { + margin-left: 0.5rem; +} + +.button-icon-left { + margin-right: 0.5rem; } .red-button { @@ -82,13 +243,17 @@ .corner-buttons { display: flex; justify-content: space-between; - padding: 1rem; + width: 100%; + padding: 0 1rem; } .bottom-area { - height: 150px; background-color: $ui-white; text-align: center; + display: flex; + flex-direction: column; + align-items: center; + padding-bottom: 12px; } .instructions { @@ -106,7 +271,7 @@ .dots-holder { display: flex; - padding: 0.2rem; + padding: 0.25rem 0.1rem; border-radius: 1rem; background: $motion-light-transparent; } diff --git a/src/components/connection-modal/connection-modal.jsx b/src/components/connection-modal/connection-modal.jsx index 3392f3fbe..b150d7fd8 100644 --- a/src/components/connection-modal/connection-modal.jsx +++ b/src/components/connection-modal/connection-modal.jsx @@ -20,19 +20,12 @@ const PHASES = keyMirror({ error: null }); -const messages = defineMessages({ - connectionModalLabel: { - defaultMessage: 'Scratch Device Connection Modal', - description: 'Title for scratch device connection modal', - id: 'gui.connectionModal.modalLabel' - } -}); - const ConnectionModalComponent = props => ( <Modal className={styles.modalContent} - contentLabel={props.intl.formatMessage(messages.connectionModalLabel)} + contentLabel={props.name} headerClassName={styles.header} + headerImage={props.smallDeviceImage} onRequestClose={props.onCancel} > <Box className={styles.body}> @@ -46,8 +39,10 @@ const ConnectionModalComponent = props => ( ConnectionModalComponent.propTypes = { intl: intlShape, + name: PropTypes.node, onCancel: PropTypes.func.isRequired, phase: PropTypes.oneOf(Object.keys(PHASES)).isRequired, + smallDeviceImage: PropTypes.string, title: PropTypes.string.isRequired }; diff --git a/src/components/connection-modal/device-tile.jsx b/src/components/connection-modal/device-tile.jsx index 365b5ea7a..c806453aa 100644 --- a/src/components/connection-modal/device-tile.jsx +++ b/src/components/connection-modal/device-tile.jsx @@ -1,5 +1,6 @@ import {FormattedMessage} from 'react-intl'; import PropTypes from 'prop-types'; +import classNames from 'classnames'; import React from 'react'; import bindAll from 'lodash.bindall'; import Box from '../box/box.jsx'; @@ -19,21 +20,57 @@ class DeviceTile extends React.Component { render () { return ( <Box className={styles.deviceTile}> - <Box> - <span>{this.props.name}</span> - <Box className={styles.deviceTileWidgets}> - <span className={styles.signalStrengthText}>{this.props.rssi}</span> - <button - onClick={this.handleConnecting} - > + <Box className={styles.deviceTileName}> + <img + className={styles.deviceTileImage} + src={this.props.smallDeviceImage} + /> + <Box className={styles.deviceTileNameWrapper}> + <Box className={styles.deviceTileNameLabel}> <FormattedMessage - defaultMessage="Connect" - description="Button to start connecting to a specific device" - id="gui.connection.connect" + defaultMessage="Device name" + description="Label for field showing the device name" + id="gui.connection.device-name-label" /> - </button> + </Box> + <Box className={styles.deviceTileNameText}> + {this.props.name} + </Box> </Box> </Box> + <Box className={styles.deviceTileWidgets}> + <Box className={styles.signalStrengthMeter}> + <div + className={classNames(styles.signalBar, { + [styles.greenBar]: this.props.rssi > -80 + })} + /> + <div + className={classNames(styles.signalBar, { + [styles.greenBar]: this.props.rssi > -60 + })} + /> + <div + className={classNames(styles.signalBar, { + [styles.greenBar]: this.props.rssi > -40 + })} + /> + <div + className={classNames(styles.signalBar, { + [styles.greenBar]: this.props.rssi > -20 + })} + /> + </Box> + <button + onClick={this.handleConnecting} + > + <FormattedMessage + defaultMessage="Connect" + description="Button to start connecting to a specific device" + id="gui.connection.connect" + /> + </button> + </Box> </Box> ); } @@ -43,7 +80,8 @@ DeviceTile.propTypes = { name: PropTypes.string, onConnecting: PropTypes.func, peripheralId: PropTypes.string, - rssi: PropTypes.number + rssi: PropTypes.number, + smallDeviceImage: PropTypes.string }; export default DeviceTile; diff --git a/src/components/connection-modal/error-step.jsx b/src/components/connection-modal/error-step.jsx index 11af0a29b..681d74b72 100644 --- a/src/components/connection-modal/error-step.jsx +++ b/src/components/connection-modal/error-step.jsx @@ -4,12 +4,23 @@ import React from 'react'; import Box from '../box/box.jsx'; import Dots from './dots.jsx'; +import helpIcon from './icons/help.svg'; +import backIcon from './icons/back.svg'; import styles from './connection-modal.css'; const ErrorStep = props => ( <Box className={styles.body}> - <Box className={styles.activityArea} /> + <Box className={styles.activityArea}> + <Box className={styles.centeredRow}> + <div className={styles.deviceActivity}> + <img + className={styles.deviceActivityIcon} + src={props.deviceImage} + /> + </div> + </Box> + </Box> <Box className={styles.bottomArea}> <div className={styles.instructions}> <FormattedMessage @@ -27,6 +38,10 @@ const ErrorStep = props => ( className={styles.connectionButton} onClick={props.onScanning} > + <img + className={styles.buttonIconLeft} + src={backIcon} + /> <FormattedMessage defaultMessage="Try again" description="Button to initiate trying the device connection again after an error" @@ -37,6 +52,10 @@ const ErrorStep = props => ( className={styles.connectionButton} onClick={props.onHelp} > + <img + className={styles.buttonIconLeft} + src={helpIcon} + /> <FormattedMessage defaultMessage="Help" description="Button to view help content" @@ -49,6 +68,7 @@ const ErrorStep = props => ( ); ErrorStep.propTypes = { + deviceImage: PropTypes.string.isRequired, onHelp: PropTypes.func, onScanning: PropTypes.func }; diff --git a/src/components/connection-modal/icons/back.svg b/src/components/connection-modal/icons/back.svg new file mode 100644 index 0000000000000000000000000000000000000000..42f7508f279eaeee36aac930e3f343d2bfc7c518 GIT binary patch literal 1349 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdRts8CYKNX<;oD1q_HGE>W)@+)kW3=|9$j6g^U*-%3zg^Jvqykc9WjFOT9D}DX) z@^Za$W4-*MbbTWO0|WiyvUI2ttBRb=yliX=4J|D#^}(`Ac3cVy3JNxgy1EMPsd=eI zi6!|(Rtmw{sU^u73Z@2nMhY6HrUoYFnhLrKNH!+rXQbw4CPKZZmz<xgUkuTss|z)< zB(o$Z)h;P9Ion1b!iHFtl3JW>=UkMUSdyBeP@Y+m0kuufMjtE%Q<YY12NFpuhMJeI zkeOnu1Ts%ap}3?dKReY{DK9@S6~@zr2CAWwLRw}{4onin)-5W{Nwrl<ElbVIPf3CL z8SL+Z#F7k!6k8=<LjyfSQ*%>GBO@I{Gd)X76GH=I1!qe=3llR_0|O&NBvDH}Q&TfT z6LT{Qkf4RRsiCErxq_vhv5A3+skxCcNYu>Cz{0}9Qo+YW&(hMu($dt_QpeCp&)Cq? z#K_!8!P!L5%*@!p&<v#7P|woL$lSofM8QPQ)ZEz6#1v$mp`MAEk)frjrGkl`xv8av zfq{vkj-jERfw7UHrMWrC2ul-F19Kxw3mroPJu?F%LrY5&1yem^QxjujLvygGv9X!C zv5Ap_sh)+Ag{irTkts+mOw`9*&&1r+$imzLMX`^C9>@_UCYEM8CVEDeCT7NF#>NWH z7J4SeCKkrV7G^redd6m!W~OF_#tN2tM#h$=My7^lI!1bCW~LUFW|j(|(6lf!Gcq?t z5_C2+&@(c#FfuSQM-nwO&@(nQG&C~+>o+$vF)}wX0vTXpY-Db1Y5`JeVQ6SzYGI<_ zY-p%wWMOV(U<eYnFf=tXGBhw#Ff`P&G%+(bG_%k#)-$m%G&8X@GEp!z(lanMFflYS z(lOC9HZU|bu{5zz@G&&fvotg`w=_0E2?|3KJrfHvGeZL-WMOAR6Fo~aGh+*56k$VC zJ!4B_Gea}5sF|UKxuv0kp{bs!xrw=nfdx34OihdpEiDwB4NdjTO-(J#Oie+;CYDBK zhQ<~k#b&1FW|kJ_AW=(mb4x>WW00t^p_!otC_WI0#mCS<&(hq)+{hf9HepE%6rAR! zmIlUV=AaY@ONWLAdM0KTW)>!3#g>qS42lo*)U5>0Pi~nxIlAyHqwEF-N(v=KiFw6o z`9-<5N?>MAVo9n7$P_bB#?Vo))Uz-)FfcICR4B?X0m<nanH%VVL_lH)ExJg0bP<}A V>}>QwSr3}E_0#RRY(OQK9RRSgMk)XR literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/bluetooth-white.svg b/src/components/connection-modal/icons/bluetooth-white.svg new file mode 100644 index 0000000000000000000000000000000000000000..df2ae141ebce92e1af1ad8f3f6e90b57c8248225 GIT binary patch literal 1826 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdRts8CYKNX<;oD1q_HGE>W)@+)kW3=|9$j6g^U*-%3zg^Jvqykc9WjFOT9D}DX) z@^Za$W4-*MbbTWO0|WiyvUI2ttBRb=yliX=4J|D#^}(`Ac3cVy3JNxgy1EMPsd=eI zi6!|(Rtmw{sU^u73Z@2nMhY6HrUoYFnhLrKNH!+rXQbw4CPKZZmz<xgUkuTss|z)< zB(o$Z)h;QgG_@o@za&GqJR`Ft)kYs846!vOwK&<%xhOTUBsE2$JhLPNYO$V;K3EE- zDy`TKB$8GPH9B1(GsRX3&1fZs;*z5L>{MH&y!^aW7*7`()P_n5X_+}WFi8+wx2QBH z)mACBEHy7bB?TH1;Ls>YEXhzvu~qUlG|)3JFf+F_veYp&(lazLGdDFbRq!!1(lfR+ zH8-{}*D*BFGcYhTGc&MI@Ih8>s%L3vZeeL^i7JdRBuW9<bQ3)T3riyl6GLN&=@zCY z#wI2@rh1l^CZ<NlW=1H+nCn@XTN)aen4y}EWJr{PuZ5n4g^8t!g{7H}A;=dNCgv9A z3eFaK#umoLW(EcpAYpR@LsL^rV+9L60|N^aLla9Q9YZ}6OG`@&6Js-wsG*UGfw7sT zjuFTRa|<H_GX)<DJp-7qxt^t&k%@tcxw(RmnVy-6p^=%Pp|Oq`$bqH?#^wsnW_l*Z zh8Cs<MrJx@dgcb^mIkJ##tLS7hGvGACPtP<I%axiMwUkA21cd|rg|2Z#>Qr*h87@E zGXqN_6C(=+XHz|66H`-jBTG||5r!6~X6BYA3MP7%CKd)pCgwWkdPar@2F4a9#tNo- z1_q|4MwX_QI_7%jrj~}LMyBQ<6AX+^3=K^!Omr;t42(?-OpGi{6ioFDLGfv1X0BtQ zX9Nl?BQr|{Q$1r#6LT|j3kw|!Jrh$y3v)A&r_J?@P0Y;<%#C#{^(-wxE(XOdl43(c zJyR1CV*?9g1!ogIOEW_=Q)2^T9YaGs3kyqA17k}C6EMrj$jk_onoNxhjZ6*A6-@Pv zjEyZU%neOJqL!wn2Idx~ASauen_C)!lb*4jv4y3nxuJ!EnVyk>g`tU=k-3hcv7U*U zp{WTdFyR4jXsl;wXl7<%V2%<^hDLe@M#d(l1}3P&plCNRFf#$C3wWd&TIiXY8X20K zn=61qz{14B2$WhZ^ejQZ!cxIf&%nUa$jsEjQpXS>>TIcJWNd0_W@uujV+c}WU~Ft; zs9>pQVrph!U}<0uR%~Q!U}R~oV5w(jY-C|#Vrd8xHMcM{urLFqeG@%1LkkN-b4yUp zGPf`?voJDNa5gm6GcYx@GzNLwM9;*;(8AEdM8VKh&(O%+z|;gB7#4=c24<Ef3Wg?n z<`(7#hK44fATl<$ur#m)8DXMlZftI0Xa*5BG&3?YHwP&;18D^1WMe%eQ%f@=V>7TQ z%oWC<#AR#<&VQz6=B6eVW;)=EZfs;~2FmmZ7n|vsTbNpyo0u3vTx?=tX<`UU;3g)9 z#wMmlW?&Z^S{j&}8|j$pSr~$17vv8UJ#%wYV{>y*hBvk_FgLR>0~ukWXKrL^Xl`Pt zW2$FtWMpn>Xl@F2o4J{psVT?^BXa{o6Ej1wAk@L8dPYXZ7RH7~W(q#Yfvjg_WNKn$ zZe*$8Y^i5rWNcz=Vqgj?0!&Q|&5VqV6fE@&O^r>B%*+jS4D>9`LBVZdY@vX?7>QB> j7r}0sIXSxUqE*=q43z9_^g$&kw6NAsx8t$_RZDgN8Rn#< literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/cancel.svg b/src/components/connection-modal/icons/cancel.svg new file mode 100644 index 0000000000000000000000000000000000000000..b30decdb65a22a832208426f4258a5fa1dea00b7 GIT binary patch literal 1365 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdRts8CYKNX<;oD1q_HGE>W)@+)kW3=|9$j6g^U*-%3zg^Jvqykc9WjFOT9D}DX) z@^Za$W4-*MbbTWO0|WiyvUI2ttBRb=yliX=4J|D#^}(`Ac3cVy3JNxgy1EMPsd=eI zi6!|(Rtmw{sU^u73Z@2nMhY6HrUoYFnhLrKNH!+rXQbw4CPKZZmz<xgUkuTss|z)< zB(o$Z)h;<PFF7^GMjyh1SeBAnoNVV@l$uzQnxasiS&{*@PtQglECo}QR%{0nNh^k$ zn68kSVygr(QAwe=q$oc-)mAAlKQ9%=(}f1Cp^`#cW=;-F62#UmD$Pl?RZ1;O&C5?o zf%+Tl_kzTd422Y1C0|2RJrgq%OJh?VFw5M?(p<sW&_vJN%*4dN)KbULOwZ8V+}zy2 zRKd_#&&<%m)WX~xMbt>o(!j#d(8LJI1RqO1OG^t2Lkmkw9YZ5MQ&S5A149c1A9Fne z3kwrN3kwwM%=C;cjEv1p4a^`08ylM%SSXn485x_KnHpL^t%Hb~=$RTDnp#>Im?K%| zY@%mqZfR&_Y-R!yH8eD_FfuYzFwrwGFfcSSF|gDzG|@9Nu`o5Zv_KOzw6L(SFf&td zMpkUBXKrL+Xk=lkfNZd_o{^c6rKthPV1y%#^ehbxOw7%UK)y3EF|e>SHnPw$G|)3J zFf_C<RPZs;Gc__dG`BD|)&Y6n%-GD(&<JFop}DcCrG=%rj+vghv5~ojp}CoYv7V)+ ziK(TfiJ^{}o{^cknSrsTA+nQA^(+jGOpMG7P@Qb5XKZ3<W@c^)aWd3k6FmzHBLhPd zb8`hGSAdw7rX~i)CJN4=KsGWoGB>o;G1jv%GB&X=Gc{E((=#?VvoJ9*wm=pIx!%~) z($dgS2gwNJs5aL#F)=nWH8rwS@G%4hjFG9au_dx<XQV`AjIa<X!6A#9>Y11un3!6c zqZ$E9l4hoc#wI!-=bM;VSQ;sS(<wv{l$;EV4a|*=6+mekY68gh(69%&&D7My)Yt?i zqL37W9dBY`X{O+eWH89>Mh2E9mgdOTf!uCtYHny@3bqa{GbusxZ%%%3DlC60yMcj{ VosB*y8$vU>e!3l(4X7lu0{}cOM0EfF literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/close.svg b/src/components/connection-modal/icons/close.svg new file mode 100644 index 0000000000000000000000000000000000000000..a537fc800d01115552a00073103be09cf5ce9fcf GIT binary patch literal 1352 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdRts8CYKNX<;oD1q_HGE>W)@+)kW3=|9$j6g^U*-%3zg^Jvqykc9WjFOT9D}DX) z@^Za$W4-*MbbTWO0|WiyvUI2ttBRb=yliX=4J|D#^}(`Ac3cVy3JNxgy1EMPsd=eI zi6!|(Rtmw{sU^u73Z@2nMhY6HrUoYFnhLrKNH!+rXQbw4CPKZZmz<xgUkuTss|z)< zB(o$Z)h;<Fzc|%KAHspym6BSVZ0B5*npl#WqEMb$k^!|&&qg0C1yhw)YzGoaD~1}F zu8^5xs{}SsNuju;C_g*ZRw*w(FBQhqg$Apkl0sT$P7X{G#MUh;%}KRYN-ayx%TGyx z`Wo!>g2a*xg%n#QUqe$p6EhP_V^bY4%iPG)T*2AUM9<vJ#KgeVQpeCt&(Pf5+}yxa z!O&RG%+SKr!rUB1)JV_Lz{1eb#0bd*A4@$;OA8A_3rkBKLnA#?QwswFLkk5Tb3FqK z3ll>N3l!_j^o%WxjLl39%pe9E8=D$fD46OQ8JnA#8d^ZDgNT~wnHn3KT3Q&GBU$Hc zqGxDsX=r3@W&#p5G&Hd=GBQ&z(K9eGFf=kTu+%X$(K9o#Fg3QcKod2zu&}T&GgELz zR&1<iZe(F-WMQg+Y_PGOk(rUDsR77fgd>dfEDa4z%*~8IzB4f~u&^{Xvd}R!&@(VF zG_){O@G;RdH8M9ew=g!=0eRod*v!z-2xOn3xv{CGg{8TUnVz|^k-3GTxtW5oo~5OU zsimcfp^llJk(s%ffw83_vXf2qEDVfHjLZyBoouRSY+`6;W^M^_GSpxbJqrsX149#Y za|I+<fS8u1CI-eP3eKQFHZn9aH?-6-*0V4&HnA`>HB~UvGd4G~FflN;Ko$kL-q_O8 z($G)`$q3}AHrF#TF*Y(aHL_IjF$4vSk*Tq<C9-N~q(o$lun;N1A&Z*onV1`xm|B{n z8Uad@W~PS5CORPJo0wQw8YzI&DMS#IoD7T&%#Do|KxrCk0?75yum`!#)YQb(*aRh_ zkQ9R*Z(?C-rr?ZZFv#sj29_q4=E&B8+-_=WZfIc&whk>b!7`<?8yG0r+317v9yD|7 Mr`vJafC?`=0Qy-#Q2+n{ literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/help.svg b/src/components/connection-modal/icons/help.svg new file mode 100644 index 0000000000000000000000000000000000000000..2938e8340ebb54dd699f80eaf48794bd383a96a4 GIT binary patch literal 2042 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdRts8CYKNX<;oD1q_HGE>W)@+)kW3=|9$j6g^U*-%3zg^Jvqykc9WjFOT9D}DX) z@^Za$W4-*MbbTWO0|WiyvUI2ttBRb=yliX=4J|D#^}(`Ac3cVy3JNxgy1EMPsd=eI zi6!|(Rtmw{sU^u73Z@2nMhY6HrUoYFnhLrKNH!+rXQbw4CPKZZmz<xgUkuTss|z)< zB(o$Z)h;77r@%%Z!iHFtl3JW>=UkMUSdyBeP@Y+m0kuufMjtE%Q<YY12NFpuhMJeI zkeOnu1Ts%ap}3?dKReY{DK9@S6~@zr2CAWwLRw}{4onin)-5W{Nwrl<ElbVIPf3CL z8SL+Z#F7k!6k8=<OFc_VO9N9A6H6UK3k7FWJyQ!qGXqO=6A;%($IwL2#L(Q>#LQ5^ zNXO7X&%nUI(!|tQ!P!U$q}0gF)Y#Hc0mOvrGEzV?(MZ7=Y=DKarGc@Ik%FNGvMxgl z6ca&Qgl$Or3@wn&G_+8NQt-9ZvoJL_GBq<a(lIpBGd43cH8L|(aJJMlGPAHWvM@jq zw$QUMFf}tWwJ-!JwlFp`Ff+1LKo&LDGchtUG%+?&a7Gojv@|xbv@}sbHrPbZ#LV2x z*wjn`*%b&;XF~%$6Jtvgb5lt8K@}Ss=vf+?7#bOy=@=U8!3;(fg}VY-*hmlNWMqR8 zzD9NhLKGZGCT4~fhQ^@KFw`?MF*Y<XHCFI3G|)3NwKOv@veYp|2!mX0Y+_+<U}}LZ zY-pfoYGh(+ZfFJ)H8nD}w6ri&0EwDeTAG>}gG7x@49pCT3>82|n3-Bw7@L@bV%E~! zz`)ep5~LXJaRWVbLo;(jOA7@<Lp>u?6H@~VOORR<GeZ+gLn8$rLqk1tLsLs514EFo zp^>4Xg_*H}v!RimiHWI&sky0+rJkv|k)@%ziJ^j_k)DO6xrL#zsg8x7rGcrbiJ`eU zvZ%S9rLlp5fgvbqBPll1GdDCbHZ?Od1UbXf(7?>n%n+0`jg8Drj7*I|>CM=}*wo0x z1X<MCLeJ35z}&*b9Gs3}ip}*54Gb*|ER1!`^vsRT4NQ#96cA!yJ!YmxMy3kRD591Y zCT7N#V3o#ZmX^lGIu?3H#%4z5rlzK7qUNTS=H}*>U;_+|4NXl<%ylgEOf1a}%}p&$ z6wLLEEG!L-42%qQEcDFGEzHafEzA|n^-K*7jLZ$pK!IasVP<4(Vx-_>p=WGiY-wa> z1QInjG&2Et6O`)Bj7$tH%q%T+EcDEcOf8MgOpHNU#L&XR43vN@^h}M74J^$K3{gdm zER8@(*%)N91wyfrg|VrLfuRw|WVo=op1GlssfCH5B`7}`8(D&aK*wCq(Ad)4*xU@9 z&0)cgBnnPe=HMVkR%~dfXJBM#X=r4uW3FdrU}#`$X<-D4Pnf8Mo`JckskxbfiGnkd zVhcTEOJhSzW0Ztxp$7{gP|~(AHLx%N1(2n&fuW(Lv5A6@rJkjkiG`7w1t<X;TN)c1 z8X2G#IF@>rhNgywMi!vb!ob+f*x1knl!i@>O^u9<L0*On8tNGuSQwat9A>G9ENW_K zYHAD$2LodZBO@adaP~5^G&L|b2NkTyqDICh=Ejz$pfb<E#MIov%+wT=7fsBJO)M=z ywi&?!7%7um>R~GpqLkoOjBaLfejcnMQFa3ZB|95^P<;WdkMz^+xNJbxtsMX|8_BW& literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/refresh.svg b/src/components/connection-modal/icons/refresh.svg new file mode 100644 index 0000000000000000000000000000000000000000..3d4aebb47071a08f9214c5e4c5eafb035e2b86ea GIT binary patch literal 2667 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 literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/icons/searching.png b/src/components/connection-modal/icons/searching.png new file mode 100644 index 0000000000000000000000000000000000000000..260f3227f2ef09cc1aa6fbca0fc928e2b5be0e28 GIT binary patch literal 42439 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�_>^B<`jD%<lSo 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	l* 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 literal 0 HcmV?d00001 diff --git a/src/components/connection-modal/scanning-step.jsx b/src/components/connection-modal/scanning-step.jsx index b10f538a0..1728e1fd5 100644 --- a/src/components/connection-modal/scanning-step.jsx +++ b/src/components/connection-modal/scanning-step.jsx @@ -6,6 +6,9 @@ import Box from '../box/box.jsx'; import DeviceTile from './device-tile.jsx'; import Dots from './dots.jsx'; +import radarIcon from './icons/searching.png'; +import refreshIcon from './icons/refresh.svg'; + import styles from './connection-modal.css'; const ScanningStep = props => ( @@ -14,11 +17,17 @@ const ScanningStep = props => ( {props.scanning ? ( props.deviceList.length === 0 ? ( <div className={styles.activityAreaInfo}> - <FormattedMessage - defaultMessage="Looking for devices" - description="" - id="gui.connection.scanning.lookingfordevices" - /> + <div className={styles.centeredRow}> + <img + className={styles.radar} + src={radarIcon} + /> + <FormattedMessage + defaultMessage="Looking for devices" + description="Text shown while scanning for devices" + id="gui.connection.scanning.lookingfordevices" + /> + </div> </div> ) : ( <Box className={styles.deviceTilePane}> @@ -28,6 +37,7 @@ const ScanningStep = props => ( name={device.name} peripheralId={device.peripheralId} rssi={device.rssi} + smallDeviceImage={props.smallDeviceImage} onConnecting={props.onConnecting} />) )} @@ -37,7 +47,7 @@ const ScanningStep = props => ( <Box className={styles.instructions}> <FormattedMessage defaultMessage="No devices found" - description="" + description="Text shown when no devices could be found" id="gui.connection.scanning.noDevicesFound" /> </Box> @@ -47,7 +57,7 @@ const ScanningStep = props => ( <Box className={styles.instructions}> <FormattedMessage defaultMessage="Select your device in the list above." - description="" + description="Prompt for choosing a device to connect to" id="gui.connection.scanning.instructions" /> </Box> @@ -60,10 +70,14 @@ const ScanningStep = props => ( onClick={props.onRefresh} > <FormattedMessage - defaultMessage="refresh" + defaultMessage="Refresh" description="Button in prompt for starting a search" id="gui.connection.search" /> + <img + className={styles.buttonIconRight} + src={refreshIcon} + /> </button> </Box> </Box> @@ -77,7 +91,8 @@ ScanningStep.propTypes = { })), onConnecting: PropTypes.func, onRefresh: PropTypes.func, - scanning: PropTypes.bool.isRequired + scanning: PropTypes.bool.isRequired, + smallDeviceImage: PropTypes.string }; ScanningStep.defaultProps = { diff --git a/src/components/modal/modal.css b/src/components/modal/modal.css index 3aa21280b..9a5a035a7 100644 --- a/src/components/modal/modal.css +++ b/src/components/modal/modal.css @@ -83,6 +83,10 @@ $sides: 20rem; user-select: none; } +.header-image { + margin-right: 0.5rem; +} + .header-item-filter { display: flex; flex-basis: $sides; diff --git a/src/components/modal/modal.jsx b/src/components/modal/modal.jsx index 631e77261..940af7558 100644 --- a/src/components/modal/modal.jsx +++ b/src/components/modal/modal.jsx @@ -33,6 +33,12 @@ const ModalComponent = props => ( styles.headerItemTitle )} > + {props.headerImage ? ( + <img + className={styles.headerImage} + src={props.headerImage} + /> + ) : null} {props.contentLabel} </div> <div @@ -75,6 +81,7 @@ ModalComponent.propTypes = { ]).isRequired, fullScreen: PropTypes.bool, headerClassName: PropTypes.string, + headerImage: PropTypes.string, onRequestClose: PropTypes.func }; diff --git a/src/containers/blocks.jsx b/src/containers/blocks.jsx index ca327d2ce..20c6d482f 100644 --- a/src/containers/blocks.jsx +++ b/src/containers/blocks.jsx @@ -12,6 +12,7 @@ import Prompt from './prompt.jsx'; import ConnectionModal from './connection-modal.jsx'; import BlocksComponent from '../components/blocks/blocks.jsx'; import ExtensionLibrary from './extension-library.jsx'; +import extensionData from '../lib/libraries/extensions/index.jsx'; import CustomProcedures from './custom-procedures.jsx'; import errorBoundaryHOC from '../lib/error-boundary-hoc.jsx'; import {STAGE_DISPLAY_SIZES} from '../lib/layout-constants'; @@ -318,6 +319,11 @@ class Blocks extends React.Component { this.handleExtensionAdded(blocksInfo); } handleCategorySelected (categoryId) { + const extension = extensionData.find(ext => ext.extensionId === categoryId); + if (extension && extension.launchDeviceConnectionFlow) { + this.handleConnectionModalStart(categoryId); + } + this.withToolboxUpdates(() => { this.workspace.toolbox_.setSelectedCategoryById(categoryId); }); @@ -338,10 +344,15 @@ class Blocks extends React.Component { this.setState(p); } handleConnectionModalStart (extensionId) { - const c = {connectionModal: { - extensionId: extensionId - }}; - this.setState(c); + const extension = extensionData.find(ext => ext.extensionId === extensionId); + if (extension) { + this.setState({connectionModal: { + extensionId: extensionId, + deviceImage: extension.deviceImage, + smallDeviceImage: extension.smallDeviceImage, + name: extension.name + }}); + } } handleConnectionModalClose () { this.setState({connectionModal: null}); @@ -402,7 +413,10 @@ class Blocks extends React.Component { ) : null} {this.state.connectionModal ? ( <ConnectionModal + deviceImage={this.state.connectionModal.deviceImage} extensionId={this.state.connectionModal.extensionId} + name={this.state.connectionModal.name} + smallDeviceImage={this.state.connectionModal.smallDeviceImage} vm={vm} onCancel={this.handleConnectionModalClose} onStatusButtonUpdate={this.handleStatusButtonUpdate} diff --git a/src/containers/connection-modal.jsx b/src/containers/connection-modal.jsx index 5443646e4..b256b0309 100644 --- a/src/containers/connection-modal.jsx +++ b/src/containers/connection-modal.jsx @@ -73,8 +73,11 @@ class ConnectionModal extends React.Component { render () { return ( <ConnectionModalComponent + deviceImage={this.props.deviceImage} extensionId={this.props.extensionId} + name={this.props.name} phase={this.state.phase} + smallDeviceImage={this.props.smallDeviceImage} title={this.props.extensionId} vm={this.props.vm} onCancel={this.props.onCancel} @@ -89,9 +92,12 @@ class ConnectionModal extends React.Component { } ConnectionModal.propTypes = { + deviceImage: PropTypes.string.isRequired, extensionId: PropTypes.string.isRequired, + name: PropTypes.node.isRequired, onCancel: PropTypes.func.isRequired, onStatusButtonUpdate: PropTypes.func.isRequired, + smallDeviceImage: PropTypes.string.isRequired, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/containers/scanning-step.jsx b/src/containers/scanning-step.jsx index 600eb8da8..ecc193189 100644 --- a/src/containers/scanning-step.jsx +++ b/src/containers/scanning-step.jsx @@ -53,6 +53,7 @@ class ScanningStep extends React.Component { <ScanningStepComponent deviceList={this.state.deviceList} phase={this.state.phase} + smallDeviceImage={this.props.smallDeviceImage} title={this.props.extensionId} onConnected={this.props.onConnected} onConnecting={this.props.onConnecting} @@ -66,6 +67,7 @@ ScanningStep.propTypes = { extensionId: PropTypes.string.isRequired, onConnected: PropTypes.func.isRequired, onConnecting: PropTypes.func.isRequired, + smallDeviceImage: PropTypes.string, vm: PropTypes.instanceOf(VM).isRequired }; diff --git a/src/lib/libraries/extensions/device-connection/ev3/ev3-hub-illustration.svg b/src/lib/libraries/extensions/device-connection/ev3/ev3-hub-illustration.svg new file mode 100644 index 0000000000000000000000000000000000000000..7f8c8c395969e202e01d4e18c0225b5ab98c49b0 GIT binary patch literal 15543 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 P4Q%2X%&-CN6t)8ZiZ$QW literal 0 HcmV?d00001 diff --git a/src/lib/libraries/extensions/device-connection/ev3/ev3-menu-icon.svg b/src/lib/libraries/extensions/device-connection/ev3/ev3-menu-icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..7c8ea12abb768d48c8d544b1984fabf621e28c42 GIT binary patch literal 5438 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 literal 0 HcmV?d00001 diff --git a/src/lib/libraries/extensions/device-connection/microbit/microbit-illustration.svg b/src/lib/libraries/extensions/device-connection/microbit/microbit-illustration.svg new file mode 100644 index 0000000000000000000000000000000000000000..3ef892bcc456fd9196e72356742391fd74b67a93 GIT binary patch literal 56730 zcmcDqugJ|&C`&CW&dkrVRWj5wP*O<EOU_Tp%uBab3Jr17wNSFR<FY9(OIIk*Oex8* zRWdX*E2vOX$Vkmh&nU4~vNQ$p$}&^So$@Pel?)UN6buc`6f8}Zkc~A|QmDwy$t$*1 z$|xx*u+rBrFE7_CH`dE9O4m0sFfh<BE=z|hv8u?)%*)26(9qJ-QXed<WXGkTprBx* zsH>~so|>0hlvt8qWTg<Com!Hdp<rsDXQZHEYHDC&uBo7_fMjD*enx6;W+K#sddc~@ z`o$1Ey1Gy!OEODxQtfgxlZ*0`GD~zbb8<?HONtUpGV}9n^dXWEyHiq&lkJ>~QWHy3 zQxwWGOERF=>)GgorC_SkitRumX~j?r(iJjOY?ZKDprlY-Qk0*aYO9o&pO*^b>B0hD zNg*vWCkG}8V(S)_=A_yxrIw}U<)@@TLj@c%NVe!EWtJ!@loTcA6{qDF<=QHNnK_9i zsTwAF24JA0V60~fW@#cB0yd~1u_Qww#a7AJ(7;H?K+nwFRKdp#%5XN)Glwz_bd2?k z%}o^ybj%=X40J3E!7OJ39Sak%oS~k%k*SV_nVy-Ese*}~A&6rRmT@+LNSW)I8ks7X z>KQ|%K$e;5SeS#&@c}si%62w1Faim}<O~gr^^D9-!CVCp#{$9uxyaejzziY@vDnbS z0`4FX6XHrAkTAsQ&LAelH--kLAooH22yy@<1fmptEp^PzK#o>$Hq(Q%P4$dSb<9om z49r2k0I`kqEX_?7oFNhhdKTuU3Ly1nmU>1;rV5riP=>Rip`Ia(V`!vjZmMGrQ4Qrl z&4KbDHh}d&T>*DOl!C9Z0myK;`;08WK@C-CWTs~VG96+Bj0ZIy#)Vi7)d+PW)Kn<X z+1LmiOHi({G02}VH^X>PQ(;_)mBvQkK!OAw)KI9~q7-~hP2lb}HAD(n1F$BD384IK zs$&i{9m<0^8LS8DCQ}nwfI6F+Awt*G94U069GFoMDX1+VJy3@sTot9@Yi_P*VG4Jp zxhdE<h<D6Q^bBF~4`D-1hHxNmgy?`e5@HyX<7{rJXK4y^H7NhULKMP=8V2D&TnW(u zbtc3xC<l~A;i<ye5|rwoGM13k2r&T4ff^0vK^zL!19h4uQc^WQPOAnei51F&ng+_H zh_q%1)(3L~+-Xrt-~ur?Be4Kp<k>1I8yOqA85y9Lfo8BW5H62Y4CdwMRizf?D=Fj` zBqnE;RN5*T=ou>6+317HFi7bOD$+pM1|&3Etbxi<h0$Wo2%hIgi#13=<_syMpqUj? zdO^wy2pgKgAsk3)0nq_1E+8cllrvhaK^tz$CWa>Frsj|`4BB>s6<P#}DFYoNXfp`b z!g7W+xe$#oSi8)}2-Ym~f$KvpW<jN<t&*~dv!%J48!7I|q$&qFS;2^*zQke``X zQf#YaWUgQcZnr5InJYkAQpT1L2Dq4p7>-_2Lqy56(%4eL5?so`EK)GBAj3vjyBr>3 z5CK@z+(6IV6cUQ~0~Ol7*UibyOHEEJuvIF`FU?DVS8^cXto+P8xHv4}EKT%G6^tPv z24)*UTCJd_uBifqLsAGroR8#KhycC(V`!{rs$dHB1Bh(~@f*mS5GEeqz&a$xIwp|B z<ZPs8Xl@GQ8R~(U3Si0*B%$C8W*g`kn<_w58bgzW4wT_+tY=|l3gel83;?SJv!G^x z*+vQwl~9Y}F2I_(+`s^mEJ(}jh6W%nfRnAWp@9j=6L8-d7=xT=1n%XS>X<-X2Tlk& zCSX^?bU-}^G7QRe2K8r<d<yCrnZk9MfeeP52j+pSF$ISW)W;yhpiJuc8PZR6FUl`1 zz|}`Jg?Cad^~}M&R82^rA|+o?A%q^r;0`#bu?NFQjXoo=r_A(>6`T!?^-Mqw06k*` zLt{_}O~+Kv!W6+aG6kyv^(amB%)k;L^(J~opu!9knjogLp%J*#1!5Z->Y0PmBUm+r z4Qg>KfI4{~35fX+^&lr0!d-*h6vkR1fV_h6hAAXv=ou+Eo9LN>tu%smtieu&^sym! z!`K#}t~W?6$YzKEAeOT!*v%lO8Q3FWN5Yt(Fo3YZ=0enhyb3YEM9+vUmxFVog0r!n ziKz~RZKP+YV+<Yy0I?u02eHgR-Ae_qLJLs8QvqTzgzaN!q-UuEVLKa|fQA>KJVR5E zJ{^c|C<kIFlmoE~st4i(uwf9U55yJ-#}_PNXaGtr3Q!p+&l%DehVl$_Ec6T&40IqC z8R!`4nJ7RM7(fRGK&2Ig4RJbz?Q96{N<uh>79h1?y-+5^I717t=@6w*3y~Z~FdA(1 z)6wcz!a2|ko&k-Gp-gBFBqhs%$}LDK?*l52Axvj51sz{8&@lv+(V!4B1PwD8=oo^_ zJ_Tn39Ya${t*v8dss|bt0vQ2i`haQ^m^di@L8C`dIYU#BP7nz($;S|u(wsqpAnOcG zKnV)!1h7$HHz}Z&Z;<*CXTQ`KULwKztw?=PBU6+bo`{N{h`f*F(jgt5=FS%8j)(w) zj&-6ms9eol&0Q_17lz51Maem-;0C3CSz->%V4RT)8nD6_zlKT*$rZLr=6a?|3dxnW zN*17ESxKSDR>>IDjDc8(n(M&jI79-QJ7E0;NUFo$DuZ?<NVS=q0>Hu?n(cKIMoR$r z$P;ShjFtf8mZ+m80BAx8tt1*`C4e!a4Pa!ZXN24eC)@^rv@jq8yqLuxxF}3V9<xPs zrJ*H1c1>W7h;dv!V_4PhW1xqq=E2P=XzNnfT+h(J)Wpc#*eq2SqC^2x%)rQ0!3SN~ z0MubnaK;n{&3S>FYLHd~*lGyV2h^H@wkw<sLCr=e2h?@}RdC=wD#T!L6>g*lvKri5 zHPSN#%R-u-V1ppcC{T?8@-+4^!6@B9fds-fC?O1Lk$`6b(I*5A-~~OX(gV#1LR)%> z$`QN8U^_tWf()vUMh0kl8ojLz3M3Fl^x(iTYYcADLQ*Y+?F>n^5Dt2pGuAW1NVSlD z3`VLo1oa9rQ>~#Ms5Nb1ZmI)LmI~lR3t>VMErbnCv=9y`(Sr0rX;Awd#DrK3PO~6) zL4+U;bYoK;hzFwJjVD-s#x^Ab4j619W|NM6^4bDg4(TYsQmrOR_Xnf@54Hg%ACOtn zfTpn_+0n-U)LDfVFU|&tj;sNA-WZgPVJuMI_JMF9dEObu0T&@ArqI#>Vj{c<0oeuN zI2-C&K-Cz6$0?v?2xw#iVxkX39A1uqWI#@U34?l7kV$xm>xW8V0ty3&i$`d9BNeQm zuz+MMXjnivkhBM3L(&x}JHl9?RTa>*2Q3mHGN23%PPC9b4oP|twhttsKsex}2Vp|e z5=bMQ1t|+ai49&FKsaU!5H%2IK@5bjX;dT_nh#i+K)Ce*9@kI+k&vQ52a;)>4RpX6 z8B*j!vO2gxhA<%oGK38+kRcpUQ47`xVOW4#Eg&X5_k){5!@U&&3Qo{q8^qT>ps)mm z#E=S9q}&a!GjX;CK(l^k3Lp}asdZo(8pHtAghRYmH!_8;L>sNvK`jDMVjiv5LF4Jr z1{I|21an~JCzLbvno&p@f3#W$b(nCp^o>mhtV|fK*1_Wh;MKygZkCP$%?AfYtMwsR ztz!&6*+54A@XhWc4J;aiW;l_CoCedtA|y5-jWP%uIz$8Epbyc2x<{B|CZHxdx-fXH zHs%lws0RRT&4D`xkTDtv6V@dFtulvq2|yfB^B=4c!T_x>2M;VldT!uB8j#CCvJiKJ zho2zKp)wX=3>vgD1$8+=J_R*;LF?<m0R!crhcL*?m}0{-GLTvn;I0HHRX|d$F=&ul z0h($d9P~gj#u!#K(zC>#X2F{p(DfVWffn<Dh7}<#GjIe!n6M-ZYR<xwEQkY2iy(ba z8WgV}Cd6WJiZupzVIeLCr&kD*Mk5FVJE#cBiqL@_2nRB-17RZ%+8D$8dC-9!Xh8x| z0}6Tt@W>80XDC2Mb|7r%$PR=99@&8~A!9XQoiHY}1Obiaz{?N_#}qoW192E+Xa~X` zDg_Cs#SL-s2n}zfvH}zqkZc7F3kV02_8@FXx-wRP(2)EIPkG?t03rj*%+Q1f%HObr z2V%n$9*6@?cpxS$wOK;blmTebmIA!j3o3#@s?AMxKxF|a{Xv`rNp%o5jf#VT9Z-ZP zPw-kLP^AYgzabK!^-`c6caW?J9{U1iSn${vc)b*)C<fI5pj@p3$>y-47$giYia{Ju zxeHPUE^i^F$p~yc42M8P%Grcl0R}q8;6Z6nHUp<2NM_c7WMoJZ0_9Rr(tr+G!;%n4 z7@mYc97qxZ<zvv;704iP3WAgt15ld}@L(b&n?j3J2nSN6LfDW36VyC~vA~T|2nUh@ z;d6xG{0yEW1Z7oNsS0AlOH~jDR8B(kIjmGQgjLlL6QRW_q|5**2e%_&Y9J1S6s!>T zXmt)AS2Q&OrD#wP57zKT%Jiev`Jfy~gk&g4cMQTFt<ItIwdAidf&}ES4pgL^J^ZV4 z3I`EQ5C>U+H(d^{K|~7$SVFac4aFGhSzrvifa_l@qGnhZCYqRH8$JXbeF1Lp>lo;P zdToZF`pX#9t1^bL;0-rWrwS}&4r&E}SSF?*b)bPZGtlNIJrK*>2qFt|FL)RR#26}# z1Mr~XXyAhuz$qwTtUfe`rb=Vbb~s3y0Wr~s_l!aN!Z1>$v7RB8RA~s>lZI}9A?O?u z=%BWto&jhLBDiB~08Vb;I5GgIH_-k%umVtj0-_7TGJ>Q_u$_?Z1lUa=Nsx=d=@P`C z(P+Rx4-SG;FsLO8%6qV$1ZX=mWH1nvMIoIBL(tYk_~;C%fPjdDN!Yj`s8j$M1}Y!m zjatx#NboX4P^kbKYJq5hbtWJs14tZf1-$<NvKpcW<TP;kr2}FOl>!3PVg|Vv-d6*c z&nBRPZ+M0;Qkw$gcTlE*`W?iCq%9B&9Q`_wtPf*@GCYJ0&gL+tp%ExYgToA*w?SzO zoQt7}3(N+k7#%PRmRvyEU~F*y2Bj`o4u`NoqgoIpASXdm7l=ipY(CI~e&B2lE*Zh8 z5Hth>N}HgODNsHG(V&(9XssJKYlCWda3>X{5|o>vLp7td{cs9Iq#O(G1>mT)K`R46 z`2|FSGpY_Glj=a~QAqU;&Vb-l0%k$R^T14Ks}RfvRjUwP5EeLhf)@1~f@^6I3uF^W z5|kThUHcCBU>-PMLP|Ao#sn92!?Suo*(E{y-9n%$2vo#Ds~`{)QU!rnu=)jD_JP;> zf!iKKx_N_?nL&OBWgn>DK}?9>K`e;hM^^Pau&ez*DGqBV9aQatlb{YX`RRbBIYDO= zfFlXouNkd=L0kWZVIU&q*x_6KQaJc#YKVG3&)^z-vowW{a~SGbnj(hZEKM=SG{Aig zY@!MnJ1h<K%&?8Vf%axVnp)sO0^HOBvmi|^FcaF;0<%GFDDb2nbn@K{GSC6aN8oV| zh>Jj~z>WtuwZN>Q(!mCg?u^C&WCRXOVhqE9##X=y1$4|2EPaC6=mTkx!-=toVx~_} zO2JH^hM)tHp*0q$djPf;#DFAE5DS_*K}<-pGlC8egG~fa>w_97;M56m4@eo<xgZrf zU>1!!=mR|t2T8|}o&cmM0e1x~LE|5gp*YYv&){YOcoYoYR5b%dD@X+-uY<Baq!j_? zLzvLf5|A9|<T}unUlY*KJ7_2btPH+N3S3BlgrUU*lnIU}2-^~*5!ApOQe_3)!O$i# z*zu4yF_;MtSn!|+C^$g@Fw_GXseu6s0C4_+1^}212>>t?5&)1~2WNvSH%M3*gKIYk z8<cB7NeMg(08Tz&7BrE8ayN8D&Ip>UAVmYXzJVOa1zj)#&Fr9b1+f^S1neHzh@6Qj z=+rFGS$wui%2eI!KhQ&RkQ@&lPJ(23&`=vBF@kb9C?SGq1@HnYP%hU2hc&c_1w{aC z0Y9je2N#fFL1-xpW`oL4h%N{VoV_6<(BM)Q9N^&g0oY=&Az;=pX#;>dSm1JV2!<q5 z<^}f-K(P$2RKfWJy37O2293*s=Vn0{CV<ilC>}w*NJz$mG#Wwq609A>7#el*fRD~W zvgl}~jC#Wd)%NUx>LhS!1Fe(5Y)G91W<u&ANEroZ!|Eh(F9{+FDd9i`9;CSg=0lj! zN(m%4SXw?v`5F`e;2aDM05BU80AMD>dyu*j&V~g5G?PO|FNaB`JkSGmkQ_f+DWe?6 zM#e#1;QR|4^BhLa8>GxTj4Ndd$L!2tH3W1C=3pALgP-{XIjaw`(GwzpJ^%tb>Izc~ zd|(8+Fl1Na=y84qXxDv#N2Z_z+5i<K%pt`Dgbi)hLOAFlJdz><y`TY|e+LOD$Z1#5 zfP!$)0}6Cb7p53!02yPj8M4+HBh^B7kU)B*pdBR8o&$&p>pOth(7q;Q=Le{Z3DO6p zVf$|32Y7)d_d&;ZfobrF61WHj`D|DY>Om4Qv}p(7K-zW?Hl#rZO4BeFxLAR3poIyH z0~!nf9RvtDrVG}-1%({EfeYe*$6X+5z^!J;DPS-rXg3vf<OOoH6-c=`>_{)rC=A45 zkf9d{d#H>9fLhWJ7mv{JMk+5rVF4)@pkV>wK++zB4M|s^Vgkkj7Y+~(v`Bz+Ad5R8 zc^s1TAZ%#TgK$7;33~J=B)vgO0#K@gm<LUH@X`Pz19AXFHN;tvlm}tcs7M&tQ9pPR z#oqcD4oB3`d7011I7|sCcf;#UoUH-SaNy{1e$W;toI*XVdi0cDT<0Z&0t}=72NDEf z)Ig-qB0hMT2^xoma3EC~gbk^thHEnlDdUe;>!Zi{flqY@^{+-x=^YMjC8XRvGOBfq ziiL>d{0!j-b()(&nb2`XTP0;THzzj(1IT3ngohcC!W*;(2GnH+bxU*%4fMd<4?x$) z8yY~j6oRT7$fb^u2~<n)u0#kM(#Hntg)mWW_QG@37UspHu=_YoK)V+~*RLy>fbR8B zKw?6yFw%ova0+4>f^WzL-`oK)6Y~xYo1)a@67W?}L8-|liFxTcsk)#LP*SL{RWb$L zP^P2+zR=nXbkivGmMlX(3nhh&)XemZ5?dw6WpE%%Kt_>hgSnoiDNQXfG|)4nu?@zc zMQyb8gsGk-Z7r|>T_-_PD~t?5TV`o%g|VImZR6U=OwR<A4``Spj4UCyxY5uGV{rbZ zr3K*9iKcOFYz``cX=?@O+E<#|U}B_aOylHaLfZ^sVy<US(;zZ6pm`l+YDDWw$kde9 zm5`|g%_|`@0~%LCX5e98nx-Z*@MXfZwZekdm5{k1%_|{u@U68p4JUImP$QCtm5{k5 zsEJHdKUf&iyb`i7(W7w<VPQ`5O32cHrqN(&MB_@xlJ*@TORDsQ3LxD)aDNVR@1+8) z>u6|T2)^bK++{R00CkHX-A5=J(tk8G05?e>cU~*Nc!osuBSD=;$Q_IZprf21-DU$* z9dM7>+0eiQRA}jdnp6sg2F7}prl1bB5twZRItmihyY>OefOrtc_!z>CBHVQ*XVkzL zx@}NL!OWamqXwYM1avGxeI3vR^M;@RfE`v~4!#u;G%{xj3JlO%Q_wO8(5h_Exg$E@ znN0<-0T8CMIb>5SX#1}vXx+BCse+{rRI{ZH#5}MXh=pLS5N4EuFX*xi9U}u!cS6Aj zGGc+wHPtf(jcI^KGjvS!j1(;O%yf(uEcDDlR|_gQo9kJCw{4i|nL%#=1X}@#9%myx zQ&?2P2G}iNTamyfL$}5lT7s?(RPaG|5a9>~PbI)pm60XrNO*{=j4VMZ8SF44bI|>$ zP`5#PXHbr_k+Gh+Im~@VhI(c?MtT;e3Sbt*bzmkefQ-TG;NbxT<$@JD8-te7g2Trc zG^VNpIae0RNubaMcMV}NZ)Bne+6M!P3nL>v(6~G#x}Y3rBtm(R)w@tlkhq6>2EuVR zvH+zWXbLd~pQs8=4^R%&JSY!pm4zNG`9V#CxQEoRH#LT(2U8<xf-nVzCnOn|8t8$~ zC<WzsXA^TonlLd1hXFX$p=@w)`an6bkT*5eGcbh*JcI{U=xk~Vs$anYZ)yULK+s{q zaOXrR_(Cj)c+1(u0(Ac_gkxf+X9~?AU?wztz-&lpLsUb;7h(*A?QCj<$aSVB&|o$- zf#o|>6R5cmbr9<y20+-P2Cq3d%s`V<&gN!%W}uxnMhfPph^0KB))*{RgBpKOwi(zu zNUDai!NKMO<-o$%+(OS19=u=<SeY}3X>JM*U2_YNZIEP*a88thFW73ZJqpg|M$pu4 zZU71(NE(B%p`i=mK!VrY2%1{KMnHqs+)NKHY_4YkEB(yDY?vWn4%BpzdWiL4V<1dY z1K1K?o>{^QG)qK@W{F&+St6BbmPmyflno9zA1DVFzLubEq3{3(Rj1$~VrZcU<Ab$2 z!+7Ab7F5_m!W{0xC<R}Ldmuh_wgguU5RN6N=759?m<bIpFdGu)5Y>>dh8P23J6nP) z2?)m$UXviI5?EaVQ3tgS94-(x;Sk5He&I#8rJjL-nTdgkv5tj-o`JEsfsv)Tg0rQb zv5Bd<nW2dpvaqF|simQzk%6%ZNYv2W%-qt#Lcvnc+{DPl!otV`Bx+)6W^7_;1Tw<H z)Y8n{%-9?xY-Vm`Vqj*jV5w(mXklb#X$rQ_(#*od$ix^$)KJgZ#KgqF2<!@kVnaQ1 z0|N^aOOSmQW~PQ_mL?WD7KVD3mZoMVV1vy~EiBE<&CPWzjP#6*EG!I+3_-3iGcYwY zwJ<RR37eW38=0G#Dp=|nn;M&0ni*JtM9qy2ObrbU6+l5@Vrp(|WP&W}Y@ugnVQFS; zU}T0Y49b(HMyBRqK~qa(b4z1$1q(f6149!N3y2BEMh3>FCYB1$7J7!}#zyAG5Vsjv z8W~s^f$DKX14~2DA}R|*J#!0FGYbm~1q(eSK@$T*Lo-toumK3Ah6cvQhDIhJr6%TP z#+D#=8R%J<n46lLn<-f685x<FniyM}f`i@I*wPfV^V34l*v!Jz!rTlT?ncID1_od! zm>F3bfdUAm7#91WaKK0sptP@NU|?i!Vq|Cu3J4Qp10zEVa6}uL8=ILJg5twS4<>A> zXKY|;Zen3-1X65lYGP_^3W{hGLqh{Ib7OG88yOfInwgt`V#(Cd$k@Wn$P}d5z|_#( z($Yl1QqR=P*uccZ(g+mM=4O@_hT!N&7Bx0CH!?B+M>MjqfvKgjnK>v*O^wV<j7&gI zHqf&$G%+?b1{rK(YHVm>Xa-KlW=5b804FzNb4yEOO9M+#XqXsTnp-MZ>KPfEn;Th} zg2jxDjm^vqK<UT8$jsCPRnXZ&&%)RUWHLC6VQMY(%q$H|P0TF}A*PyG8kid?Sm>D< z7+4sYnt?NonSr^9fw2)NqCqLqz}OU=@60VMEi5fTDaFLh%*e#p&<qq12BsF~re>h{ zM;0|PG`6%bvH%%@ENo_B2=b|dg`SC}iKUUH3CIKsOEW`LOHgt(H8nCeFfuoW1iOW) zp@|{L1Tzx@LrX{;85@`x8-miMxut=zv4uG};t-LHEk!`fBj}u-t&*~dAt-TzCZRyZ z4(cQn(t2`3Jqrs115-;29a9TEOG{%53j;$1A4AZ9ilMo&iJ6Y6xt@iAsi~1EXcMfV zo`JEsxj9G}RW%kvq7-}$4fTvH42=y;EJ4PY7?>HGnwo=6H?uT0vNSS66*kf{GqW@@ zF)`KwZH2Hj16`8sV`!vjWNu(!ZeoHW3Mz!mjZDmqbxbYwj4TaI4Gk>8ZF);%V-o`t zQ*>c76C)!tGYb?m4D^i5EX+YMjBFoPH$#Kh5i(^;bnsf5=^2?Cg0h8<k+Gg7C?^}3 zDL7l2>6sXqnwyvzA`4rZfu@{{LHX3kSkJ=3(AeC<Q~^{k8-mI%6OdX9V+%7=V^F>^ z(=#_QH8cRNhy*q34NVPA%t4AR42_IH1(A`lo|&nEnVFd}ny87nnV|uwgtRo%LsD#P zU|?)yWC2oaZen0zWC^m)(8AEt&=hR0silR10mQ+EMg|rZ2F752m>Qa!7+V^F6dPEW znHw0GfJ`v9G`BE>IL*M!(#+5RY=n`qrJ<pvF<32B)W_0P&(y-wz|sV4A51ZtFf8DF zu!kq8m^9Nf28E}&iH?z}o}r0}p`|G#l)&ybH$oP+G}ALTH8(aeHwK9sm|L1yS{j0! zZDDF;YGh=tV`QRdX=-3-U~CEYqotvdu`$SG6Fmzv3u8kwupcc=jKFEt$VAWF%+kaJ z;&UWXGgD&|b4Vy5iJF*N7@As|L98>eGy{3u1T>;=XaK5|&GgJH3``6_>oZOCj7&|8 z4U9nrt(hLE9x<{s1G&w}(9FaPRCk)`nV6Yani?2^L=7#?O`(o3HZ(Fe0|mc{9!wM^ zL~#fs0uB_=Si%z&(58AupgI;5jYfLrW~OG~ENy9~XKZ0^Vr*ie1M0v*g+U43+yGRV zn<EQbn(0{@nHig#n1Vz>Efy0CO9e}FJp)rq6JtXQZ~_5Uvlbw)o9h`Go12<~q7c;d zvoJR@G6N|#G&eJYrY0i`GYd;oBQ#MHV<T`#gW7sXip>lREsQN7ij6ExK!InhXKrF( zX=w&=gt4KenHk6p7NF>XqySJpFasx1O9OKQaD8T`XK7$*VQB_V`<AAbrl6Pt=P6T5 z14D2`85o!wg3>-H94t+ZEldo-Y0JRW(#*gR>;eN*GfPVYLvZ{VT38r>@-TQF&)CG$ z0xW7_Vr~RVMCN)%CLp^^K+PRXaMQ_L&)5J|M}ec?#LU>t)W{qZ21uf2W|o$qHR_-+ zKoYhvF*dR^2D`urR2zYko2j0Gfq@}36itlH%nYD;$-vau7*c3if(mmpP^K|9H88O> z1*c+jBV$7&OG}WbiK(dxXh6nH&)Ce;(8vUw>!5<51PD(#pspNPDT*i}Jwc0GClZTW zBTy6C($v_@98~RF7#Nutf=;wX6*e`o1dSd!8(D(#l&Lwm&1Pz3W@>C`s$c{fjx#p3 z0Jl6$EWmXgND$Q0voHoX5KN4XO-zjyK>96B3{A}~j6jwdn_C)!3@|p(GcW|V(m|p| zrUu~R8YBwJ_a<O-4NNQy49ygLj1BZa?F2JugCC2ik)D~UrJ;fkXkf+6%*?>Z5Y%YE z6f@An;aQk4G(ZhW3{X>JJwpR?3(&xg1=KChATc8Y0~3&|K}}C%BQpyN1(2wjnK>wk zjP#6*&CHF>%|L=iCZK=;w?_@kEKNc61IPqpBTEBI17lFb$kM>b$jsOXq}as5+yoRK z;KR#|EX=`z=0?T_=AgEup`Mwcv8kE4g@TW%iJpPEiJ7qpxM^i#Xkct)V6Nb7Y62>p z3=KeSL_<*6nuCU5OilERO^i&<Ex?LFT_O`>V+B(aJre^n15;3^$PhFlXlVkfF-$=h z9Ge-Mg1TFVU`ve5EI^7)P0fr948bi&OH&IoGeaXZQ41pr18~9s8G%r2W^QU?YGw{r zY-nI&WC}LI6k4)_Tw!QoVQvIYu_k7q+5zkjP}ju}(w{H}wdg@XY@%mmU}|J)0B%7W z8(CUfT9|;$H83?YGcyF6022j;v4xSDg|PuRdBcQFL7PMjOf5j^$Ux7;(A2~P<U3<M zQwvbt3^u~l!pzvj%uoSjgsHK)sS&7;0UFpc2e*q&jrB|o4K2Wt2TFD(7N&-VpvW^d z05{V>$==e;+{nPxRKW+7D$ET*Z8~IOkjaMTrluBVV8@voTUZ(!fs>Gtp*g4t0a9#g zYGiJ1ZVEEl$kM{d%p9D}Objf{jg2k9jx#YaG_W)P3mcl6SQwcZgA|)t8XKBHy2S=Y z<`(8A&>#YJX~01b69uIfV^ALfVlqq^6no|-Mh0f!PzKpxY5+FE+|bC})C`<~jm!;A zKt(mk2n$m~V*_)rViRLyb5l!DjDY%g7NDMkfu5P6iHVURIK3f>S{ND|gX$ZQ32<T1 zbc8Xe@BtZNVPa-(WC`wW8yOf`fHDqf#Lv>w0MyY14Zj+igZk?rK|^CxQ2W@zP|w8J z!r0OrY@3N0xUCM#Vx}OMLDHa+v89QTB{<`mfq;bxIF>9eEKJQo5p4)+?OPaGn1X{C zRIi#qa)^bwp*b|Mn46nenu3y$p`IlusTi4n0^Z!f%+wO%HcLwr6C-nI60$HcH8L~> zm0N}e24+SUmLSEZ2Igjl=HNc9k)ef&ktsN$P0UR#%t49XNYB{B+ya!RL0R3>z}(yn zG+2UD7*ZmFQX5)n1ugfCNG$h2BYp;k76y<K%E-*Z#L~n<!5J)U0IC=*3_*PdLo)?) zb3GGFOA`Y~AQ_pNTNs&JLPRZ$z#}{$mF6a(tm*^Sk6|omP!TlQf*}F2&&=2YT<REt z>v}_DLy+0#CMKZ1Jt%68%`J@#&5c2#7Dk4~7N+1r&cwpZ*Z_2X0B9W1(!$aJR16sE zftpt)Mn)jTmd560rl4dC8Uiyju|OBJurM+QWlE46;A)NZ42_K}%^`{{OihiTgE_{= zW)`3}g1I@U-)#cQ)<&SdFKCPh5^6@KW@eyN2dYF2&CSig0cT`sXlVc*I)aS`nVacZ zT38yI8-nXOm?(G<*xb_45Hv_&qz4l=H`6mQH8Hfb01pS5nSknjO9gW?J!4Ro1NqGe zG^u1@Zm9q=0hD}A&A>I0v4M%XrGX(xt)YR5xjCrpG}1G$1dZlcpokjkS(qA|7@Jxu z_<*c40kzdE5P~3c!3{49Z~`|lGBz|cF$I}mVrgn@2`WR3^bAeRKx2I%QBxC8rvcoZ zH!?CdHh{Ry%*fIV)EKrf(la(QG%~RSyUg6e#K00%?|~{=$gq#OxgMw|3@%v^qM#@; zv@ozR0%bmgu(`ROv7x1<1tctuEsQOU4IwGh$i&hNlzol#j4TZeOrZ(e$P(1}2Io`I zpoR%JrI}h7nHYmgQzJbCa|<)j5C|v{!$d&^fRUlOp)n+u5yIxChNcE);AClPWNv5) zN)m>8W=5ulW+oP(^k-sdW)60+p`NL!v7rgX1Y-j;BNI@A%23b5!qCvj5bOv;QzKAi z4@&MPCZ^yPH7KE&ni&~_ykV#Z69q+wrLl>TF(|1agh7f84MF1xP$NtXO~DDp!ot$n z9F%-OYRwElH3-NE3o|owOH)&bVly*iP-->PvoJBX1nukwm9i%0rlv;VSOOJNhM<8? zkP#N<=0=c|f+TEcYHnt1Y6MP$7N#Z^md2JKlMT%bjX)(eXw`>>v8e^9A~V!8Gz0bj z%|U6!(!k6d+@1o7npm1znt+Y4G_tfbGdF}7VP*&#t^xVa6x4?W7wd)~*Bh9Cjj%AZ zFacFrAS2AoEe$|MnClrDn1V_Qs1aacb8|gVm1hcRIT@Om8-eTtiCVy&W?*4xX=V<N zX%lb~0#{B3#+DYw=HMu`G%+<X0@ufupgayM2jQaTpv($tWPuA!xUiX_p|P1IBx#yh z7=qnkpl50b>f3-tjZICBL5adZ&&1f$!psoj1|u_2@dF;<Gd8m{Ff#y`DTbydrl28T z13lPSASlxq8ybO2MuaFho(&C6(G`QHn=DN&KqZ0!sDWr{U<3+DQ*%>eQ%EDt)D$!% zX9$iAQzHvYGf0ch%osH43r<$121e#apt8z9&)meq%+dlZYGMg$q=6d>7MA8_My4j< zGR4r`05sGMYVyE@L2g452KAr~L0Q*K&j?gTK^mc^#%AEbQqTmFg}H?}C`lOT8CzPK zf<}!%Mwl2G8JdEIf<dPcn3@=yfs>V)DJZppn=uBUATl=t`OgwG5CN*gK=TpC#%AVb z;CMDNGqx}`0C#)fip}**%ncyp>IQlSmPVlQZBX=^8JZgz8G#Kp0yPjpW9a7QdZ5V& z(2zeU=nX6lO~A2aVQgk;0vZ=J&@%-YY!0q|kVMUmEDg;pAjuU;7}V?pMTohcxuvn0 zA*eeAYBU*Gf-|(ap1A>NBnF&w4UG&9z$2@mO3BpN$Qa~1Lp?(aV<R(2$~3hw2DKYN z*#OirwKM@c!o(6>kAg+b%uOso=f{DHJj~_*sNS{!x!=Up7(DuHW(gX)0YxilI^NvS z7+fhBS(=!GM$3K7E%iWSeny~1g@GQjVoPICngS<fWMM-~Q&Z45JgCwH^#aW;^ejNL zG>{e&$n6R~<`#N}Mh50)kbp<%#_BL=Ysk2a#O4ra*v;J17*wp9Tk2U@TACX`hcQi! zjSP&;40Vu%!J}&irbd?LAW=)uYy@bu#SGL|1WmYrQo4bOnIWi&X$dNJj0`~|!4?L3 zhM)=tG*e`*XKZF_Ze{}RkC+%6nHqz}Ak9Im*G$3fLjyf?3ll>HAJCYQnF**!0GSFF z1C4YT7#Ua^f~tB0a2Maq6g;d6Dml%eW}29QiW1NuoVg`vZVjBoLA?P(bI7ovnW>3^ zr3pB<8kw0`TAG4KVnJPWP`?+n+`zyPRH}o6#=sENw?qhn#(NBm3=K^|^$<eX(o_#L zDrx|kXfQT3HZ`<Rur$>(GchzWgp6638W<Q^fUbJ81kGg{SQ>%G{tfiZEX+auDN9p5 zV+&A67VKP0(9i;CEDTB1P|w)d)Ce>P<BY5rbWXmhfw{3U$T|~KQ%iGDbJ|eP($Lh{ z0yK<cs%L5m8l4BX$PEq63@yQfPNsV1;I2G)a?aS$%+k^lWP+ucDY(CBq-SDiZem~n z4qhV*V*>+2uu7OHC>%_UOf8Kdb4)N{Pzo_JH!wB?Pk|VlfaYo}L2+SWVP<R$sveC% zJzYyf&@7d?o&jij6VjA2Ff*|<0uNgm8kvKJSwPtoR6c-W7&K65U~X<{4iYp4%}|*t zfCe&+EI`e7aG`)*)W{Ij=me)G6EjOlhu2UKn<y+Ng3_(AsUc{L4mK_VN{f(s6Vk*q zG&V2>jY)u#sFAUy8E9O?NY4b69YE7;W_p%}Cgz5w;O4KX3259IJep=<2p%K>HN!wd zil7ERC=|_1EkQF-AYn65ixd=RW_qB2F@d!DV2xr>dIVJxka7bi3Q7zXmWGC=pq2`v z1r17jhUU;_wV9E*u^DIr0F<1}%?v@Q)JV_7$k4#d2s93E3L1w6%~gXOVQ6M#1R6!N zG}SXOG%^C0<)E&kIcQ!Jlthq3!PU1VXebv+v4NhYfr+Jwxd}+Ip)qLK7d#kXYGP() zZej)!H8!^}0r#~G^o%SFOhH4Crg~<eQF&8vQE6agW@c&xHo(%*z|6uFy%;jWEVDo( z*cN&Q#>OTVmS*7c$;{Ho!oXa?$I?R2#LU<nG&O8)sb>inw$uYPtc?x8JrY9`3nNfj z<YS2tMpg}8%mC^wTB4YZB#cNdmU`x928QM);N$`+%q=bSj4cd78NdM4{<SnW1G@_< z22Xql4<JlKh#|QLGzDj1sAp~t8nXmN8?0CD3|jjLZf=14PB3ARsHLTaC8%&P0+l2N z2F51fHID}77Dk{!Q6ta{v$2_lnSwKDDI_?LfIVPjW@v6^U<p<X8pD7jY(sN!Q4AI} zF*1YnW(<r?%nd<JQIHAX>J~iLY-wa>U}g?l{|H)fVqjniZsVF;m{}TFn1W3(wJ-$D zOId&h0?mz#EG;39FoP63hI*!kprsOErDg_}MxbgEbjpgMrJ=b6nkc-K1i1mB*ucOL zGzSV+3>u*WP11rIaiHNvNI;l?vIDsIH8r(>%z}Z8Ffz9Q4`+ZD$e5U#8biEc0IHk7 zO#>qfBV$WL1yBH+n}fUws;{7eJ|Iy;&{Q)HL8M_1kW$R(1jjRI9iD}OC3?y;gsxIR zPLR;J15F?z3xhmjYG7gvD#Q)+3=IrGgZ$vIFgLI;gbb5`TAik#<pUta;DH73pqi<r zC1|h?Bxnh81h^S!X<%$<Xl4#J0VWDsQ)pyqX$Va~2w~80AZW}OY=n_HIJFt-Sr~#Q z(;-HHRw96ENh3W26LZk$AT;`o4a^{^&BWBy$i&19Y@e|KsNW7s^Wdxn3O7&(4&*gh zJ_6-Rb5oFO;mUlF#E|om5_tWvyPpej4X1R7@}m6G0wsl#qQt!7w0zXVV2#Z{vn>V& z2098xpiaGkfq?<?_FNNJ9NTjhic5;}vs1x)c)^NLXZ95o6ckWTn=pmA9lG`zqFWcb zYt<CTnR7Pjn5KeE24Te70ZTng@G)4R6^K3-;H9OIwOh`R)ny=Y3s9e52fW}B#ssAk z9|#9}To;UEZVFy!3mR(%v*2r0eIQmrB%BQmK&vAm9OxomP}*03vmqyTL6-0uf!qa3 zDByLIV241}LEH*48Nw!TY8R^Sjm$wSnxP9{eT>Y&3veOkI2)OQR&zr*My8;pzK|e* zv%z5i<v{}h&NDYvfar(#5Na}n;{&x7!gDq<*E5DLeFQPV;RVtT-oKy&F&Lx;G=BpP z2&g)6K)~6cn1Y%NaWqLG0UC?e0j+2T9kB~K1J+Uxd?_1fummiOex{zGr5>p5fJGQ| znIeX;xt=+edo#>IDGPe4yCG=3DCAgo2orkP9#|N5*dCYzS}<q`(F$dP)}w%~Rkj3O z)CxJ>9pXH&Jjg2u|B)0d#-^a<oZtZPF*eZytzre4<_tQk7qq+|!~wBEK?e#B7#kD@ z5H{H3Fs7N2sRD=%(hBwp)J!nj2WlCZ<7{jSUKtJv3S%=JsD~jea|Is|1L9o>3v9a? z$Q>36P=i2@BgwbWd}N_#qyQ@mKx{}+0AfKhxe=(l3d-D|WoJefdZ6i9sEnB&WEqr^ zsSYH~g9`(2RsgX;MGYuhDL@MYhy=7SfN)?L8=Mzm#eosXT=-&tu#F&1parQ=$H26K zT#4ijlDuzd0a}a=GQr2tT+c+u2*h+YGzTs0fN;PksDYT^TUO0ME5xDxhsuE53DSY^ zKTJE=+Yn>HOdp7CV74=e4G$Yb3q24U8UQd3Xh9c*4fQ^Z19l3GW268w3gki~1=9U) zYz97L1>$=s2jm-LBU2qH7vfJ4M*+?RtxW*w0jV+pE$CMOX@c@V%E0=;o2NlM6CGm+ z8xjOi4lE3yTu2~*@(RdD=B6M$rr={W!Co~6FSAkrX#&Za>6yWlLA(GC1&}MvL3e22 zJd^@d8-OsPK7^H^ps0se2p|ruJ^-<y#XL0WA$XvS0ONsE0)hiN-x8d_K}#$wO%))y z1Ihsv@1X8ASb+khMu4zkr8^`sAb6nV1ds{>lK#MYK&b|jHDL<Dj)m57AT~)!0+Nj& zWgnzv0A_<r127Ac=b;q=oC7NQpd4`72WNu{KTx9rQlvpm1Q&MD(f}d>%Gd^`pz_WX z)MEfw`Ov}-n#m18=E6z?Lr5VAlY$oekah#ul}O$o$@}0W1U3PbwoM=<D=1-uQZrZ_ zk^!LphjT#whjKvf1nDpWdk5ryXlVfPDY!I%Fd<n1!UiR3&`1M>2gwMq001X`sQ)2s zsP|zUP&EM60xJFyo*>EZ&|CoaB`g<!InZ1HW<wJ<)c*(`C;(tQa0nncpdbJzY-sdC za{<Jsuv`G)fm1Y086>Gg0|A=2A)x@{K!O3m1BC;EX8~%UgK`+y;UonGq~Tx)ssmt6 zBM1k23b7%Chtc3M)HA|z6CQYx3g)$9knIQ<ClP};8A49ovD7mFAA}3uc?V)bT1OCJ zXzK{V0X2ER8X*kOE<Nz|VxS$8pd-IQ!k{(1pu4P0b)e2i_9aQd18r(R0s+=Ug7Dyt zBnTH&mV>N=Hi1A)@Y-OoI5YsDY(sb}3F0M4D+$7ewvr$mSSty_Gd6>4%LLP4e}kGv zkRW%4FhQ1^fvh$Lu^^2*i1SGDHMC5D=!7<vpdkq<9w9Q&q7R%D;B2s`Av~zBVH`tH zo61}V;u%Q!2w_9ZM+gU6K0-LqVh<AEkU|e)D7<)tdLOC~8u1X7P#2?khNNJClr9jz zLJLU<2UO^Ri%AF<S{#DI0nP@81B3^0GDwpVXlI|HDX5tM(hv0{s4)g%Ldr=98&*z2 zc#uL55)k0R5Mn4u1E{qP3kI+hG!$TLP+CCt3Q1uAD=HyAg%_3(F08nO@L=U2I2;fh za6mx05J!WwfyOYwzJZjN5KltOO9%&6UP5?~@)E*^7JLxxkg^kEFh~oi9|<c9pb8=3 zf#84w1l3;zf&^om6u42Pk7Wb`dgvL}kqkpUoMRcF?GNB>*pS2u>EJ>$9)ttVcMv8d zKY@G4FebRK4&gw0)S%5t;QgJ0e7pj)WeVyRD!|ei#KWNUVhK9T96Sav496-Ep#Z6< zKusGT(2O{=RR*ae!Ie8kMGR>XVi5+lQ!s?V4Hhh-pq2~N7I2dlVmX)zsfnSj7SLEV zxU~mryn==#Xf;lO2oh)&3=R`WO$iPNc=ZdC09UNgmKux=@;`(P_B4zM@+pW7DmB6W zgPI9uLu+5CXX!IWf$%9b^MiUau)GgqL$W@I1<B#iei@tt>Xtz{;9eP=4eFGEdL-Z? zb})`lAiNH)pTGkWkct+}1l5?JY7)$WRHabA!#N<oLpfl-!`UFeLwh3-?}K|I5GJV7 z1n&?4tv&?V4C+~eM=Bt-ETkHO_PC*AGvLY;+8Kqag7ih<91_MR(EJVU$U}S%<-q(7 z<wE=g;(*!?ps@$Y2mweBh&S}cB@kf%t%||13@`XW$sJbigV@jp1T_8;JWv9F@xUnn z!2u-!aD+pLAt2ET<$#(BpdJ%g!2pg)Ac6ss`@v-!H1~tq;M@;pLGm@Ul!J3X#T=9a zF6ZEEP(cUE{gA>8(%y!!q3vx52io3-aA3`7XsHfuM}y3TH@G1^QJ6wV?StTfc432N zT)++{)T)BFdO&#)Qq_Ud^Kc)FKtwq-<%0tYmh!<IXvzn(p$Qrq?+6|!;$b{c41x53 zTGg;&1W<tn8(;vBuR%Gmln;q<NV^)shP99(v5(-HD}eNX8`hB6he<(VAHgGO90Cyx zkVX%r69H}ZKsY0H3<41}(8doWIEL}~1H#A9Vi4+MXt4$1L5e~M8(PeP`<iezxT^`_ zK{|xcZV<Sq2r3I9{YQwQ5H_?dgm9o`A%p`h)WCY-Z1AuPln3i&BDh9~5nYHYQ9MIp zaR@O1S|CC=utouNWCPMDfb?$RY;YJrc+fC_aR&Lg10o5)ibaU0;RPdv3o7P7$B;pI zumTXA4iFr0AV9g$P=ND5J1D_rBP5!ktpW%KRL+4~1rQ#jY=p3(g&a6Fz}eu`0Oi3_ n1A=R03L2IL7n@MWLZ&L9v4<x)V2n4Q2*5dDhK+u4S-Kqn4lHbS literal 0 HcmV?d00001 diff --git a/src/lib/libraries/extensions/device-connection/microbit/microbit-menu-icon.svg b/src/lib/libraries/extensions/device-connection/microbit/microbit-menu-icon.svg new file mode 100644 index 0000000000000000000000000000000000000000..af97b7948e8930b49c230a7386517aef091e0a51 GIT binary patch literal 18696 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 K3>(nlLv{e4XCWH^ literal 0 HcmV?d00001 diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx index 71404f8fb..a9d1018ce 100644 --- a/src/lib/libraries/extensions/index.jsx +++ b/src/lib/libraries/extensions/index.jsx @@ -11,6 +11,12 @@ import ev3Image from './ev3.png'; import boostImage from './boost.png'; import translateImage from './translate.png'; +import ev3DeviceImage from './device-connection/ev3/ev3-hub-illustration.svg'; +import ev3MenuImage from './device-connection/ev3/ev3-menu-icon.svg'; + +import microbitDeviceImage from './device-connection/microbit/microbit-illustration.svg'; +import microbitMenuImage from './device-connection/microbit/microbit-menu-icon.svg'; + export default [ { name: ( @@ -121,6 +127,9 @@ export default [ ), featured: true, disabled: true + launchDeviceConnectionFlow: true, + deviceImage: microbitDeviceImage, + smallDeviceImage: microbitMenuImage }, { name: 'LEGO WeDo 2.0', @@ -149,6 +158,9 @@ export default [ ), featured: true, disabled: true + launchDeviceConnectionFlow: true, + deviceImage: ev3DeviceImage, + smallDeviceImage: ev3MenuImage }, { name: 'LEGO Boost', -- GitLab