pxt-core 7.4.21 → 7.4.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- .share-disclaimer{box-shadow:inset 0 0 0 1px #a9d5de,0 0 0 0 transparent;background-color:#f8ffff;color:#276f86;padding:1rem;border-radius:.25rem;margin:1rem 0 1.5rem}.share-loader{display:flex;justify-content:center;align-items:center;margin-bottom:1.5rem}.share-loader .common-spinner{margin-right:.5rem}.share-loader span{height:20px}.share-input{margin:1rem 0}.delete .checkbox{padding-top:1rem}.sign-in .container{display:flex;align-items:center}.sign-in .container a{padding-left:.5rem}.sign-in .remember{-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin-top:.5rem;display:flex;justify-content:center}.sign-in .modal-actions{grid-template-columns:1fr;margin-top:.5rem}.common-modal .icon.cloud-user{width:7rem;margin-right:2rem}.profiledialog .ui.card{margin:0 14px 14px 0;border-radius:0;color:#000;border:1px solid #000!important;background-color:#fff}.profiledialog button{margin:0}.profiledialog label.title{font-weight:700}.profiledialog p.value{white-space:nowrap}.profiledialog p.description,.profiledialog p.value{text-overflow:ellipsis;overflow:hidden}.profiledialog div.header-text{font-size:20px;white-space:nowrap;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:2;justify-self:start}.profiledialog div.profile-pic{grid-row-start:1;grid-row-end:1;grid-column-start:2;grid-column-end:2;justify-self:end}.profiledialog .ui.card.panel{width:-webkit-fit-content;width:fit-content;min-width:350px;max-width:500px;padding:14px;display:inline-grid;grid-row-gap:20px;row-gap:20px;grid-template-rows:auto;grid-template-columns:auto}.profiledialog .ui.card.panel div.row{grid-column-end:2}.profiledialog .ui.card.panel div.row,.profiledialog .ui.card.panel div.row-span-two{grid-row-start:auto;grid-row-end:auto;grid-column-start:1;justify-self:start;max-width:100%}.profiledialog .ui.card.panel div.row-span-two{grid-column-end:3}.certificate-reward{display:flex;flex-direction:column;align-items:center;margin-top:1rem}.certificate-reward img{max-width:50%}.badge-modal-image{margin-top:1rem}.completion-reward{margin:1rem 0;width:100%}.confetti-container{position:absolute;width:100%;height:100%;overflow:hidden;z-index:100}.confetti{width:10px;height:10px;background-color:#249ca3;position:absolute;left:50%;top:-15px;-webkit-animation:confetti 2.5s linear -2s infinite;animation:confetti 2.5s linear -2s infinite;-webkit-transform-origin:left top;transform-origin:left top;z-index:110}.confetti.reverse{-webkit-animation:confetti-reverse 2.5s linear -2s infinite;animation:confetti-reverse 2.5s linear -2s infinite}.color-0{background-color:#ff2121}.color-1{background-color:#ff93c4}.color-2{background-color:#ff8135}.color-3{background-color:#fff609}.color-4{background-color:#249ca3}.color-5{background-color:#78dc52}.color-6{background-color:#003fad}.color-7{background-color:#87f2ff}.color-8{background-color:#8e2ec4}.high-contrast .confetti{display:none}.high-contrast .common-modal-container.sign-in .icon.cloud-user{-webkit-filter:invert();filter:invert()}@-webkit-keyframes confetti{0%{-webkit-transform:rotate(15deg) rotateY(0deg) translate(0);transform:rotate(15deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh);transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh)}50%{-webkit-transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh);transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh)}75%{-webkit-transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh);transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh)}to{-webkit-transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh);transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh)}}@keyframes confetti{0%{-webkit-transform:rotate(15deg) rotateY(0deg) translate(0);transform:rotate(15deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh);transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh)}50%{-webkit-transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh);transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh)}75%{-webkit-transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh);transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh)}to{-webkit-transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh);transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh)}}@-webkit-keyframes confetti-reverse{0%{-webkit-transform:rotate(5deg) rotateY(0deg) translate(0);transform:rotate(5deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh);transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh)}50%{-webkit-transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh);transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh)}75%{-webkit-transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh);transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh)}to{-webkit-transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh);transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh)}}@keyframes confetti-reverse{0%{-webkit-transform:rotate(5deg) rotateY(0deg) translate(0);transform:rotate(5deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh);transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh)}50%{-webkit-transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh);transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh)}75%{-webkit-transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh);transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh)}to{-webkit-transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh);transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh)}}.makecode-frame,.makecode-frame-outer{width:100%;height:100%}.makecode-frame-outer{overflow:hidden;position:relative}.makecode-frame-loader{position:absolute;width:100%;height:100%;background-color:var(--body-background-color);z-index:var(--frame-loader-zindex);text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center}.makecode-frame-loader.hidden{display:none}.makecode-frame-loader img{max-width:200px;vertical-align:middle;-webkit-animation:loader-pxt 2s linear infinite;animation:loader-pxt 2s linear infinite}.makecode-frame-loader-bar{border:1px solid var(--black);width:10rem;height:1.5rem;margin-bottom:1rem}.makecode-frame-loader-fill{background-color:var(--primary-color);height:100%;width:1rem;transition:width .5s ease-out}.high-contrast .makecode-frame-loader,.high-contrast .makecode-frame-loader-bar{background-color:var(--high-contrast-background);border-color:var(--high-contrast-text)}.high-contrast .makecode-frame-loader img{-webkit-filter:grayscale(100%) brightness(60%) contrast(400%);filter:grayscale(100%) brightness(60%) contrast(400%);animation:none;-webkit-animation:none}.high-contrast .makecode-frame-loader-fill{background-color:var(--high-contrast-text)}@-webkit-keyframes loader-pxt{0%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}15%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(-5deg);transform:perspective(160px) rotateX(0deg) rotateY(-5deg)}50%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(5deg);transform:perspective(160px) rotateX(0deg) rotateY(5deg)}to{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}}@keyframes loader-pxt{0%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}15%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(-5deg);transform:perspective(160px) rotateX(0deg) rotateY(-5deg)}50%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(5deg);transform:perspective(160px) rotateX(0deg) rotateY(5deg)}to{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}}.selected .highlight{stroke-width:4px;fill:transparent}.graph-icon{font-family:"Font Awesome 5 Free"}.graph-icon,.graph-icon-x{font-size:1.75rem;opacity:.8}.graph-icon-x{font-family:xicon}.graph-activity.hover .graph-icon,.graph-activity.hover .graph-icon-x{opacity:1}.graph-status-icon{font-family:"Font Awesome 5 Free";font-size:1rem}.graph-activity{cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none}.graph-activity:focus-within .focus-outline{stroke-width:4px;fill:transparent;stroke:#00f}.common-button.graph-node-button{height:100%;width:100%;margin:0;padding:0;opacity:0}.high-contrast .graph-activity.hover{outline:var(--high-contrast-focus-outline)}.high-contrast .graph-activity:focus-within .focus-outline{stroke-width:4px;fill:transparent;stroke:#fff}.skill-graph-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1}.skill-graph-content{position:relative;display:flex;flex-direction:column;width:90%;z-index:var(--above-graph-zindex)}.skill-graph-activities{z-index:var(--graph-backround-zindex);-webkit-user-select:none;-ms-user-select:none;user-select:none}.has-background .skill-graph-activities{position:absolute;width:100%;height:100%}.skill-graph-content:not(.has-background) .skill-graph-background{position:absolute}.skill-graph-activities svg,.skill-graph-background img{object-fit:contain;width:100%;max-height:100%}.high-contrast .skill-graph-background{visibility:hidden}.high-contrast .skill-map-container{background-color:var(--high-contrast-background)!important}.high-contrast .graph-activity circle,.high-contrast .graph-activity path,.high-contrast .graph-activity rect{fill:var(--high-contrast-background);stroke:var(--high-contrast-text);opacity:1}.high-contrast .graph-activity text{fill:var(--high-contrast-text);opacity:1}.high-contrast .graph-activity .highlight{stroke:var(--high-contrast-highlight)}.high-contrast .skill-graph>g{opacity:1}.high-contrast .skill-graph-path-border{stroke:var(--high-contrast-text)}.high-contrast .skill-graph-path{stroke:var(--high-contrast-background)}.info-panel{display:flex;flex-direction:column;align-items:stretch;width:20rem;margin:1rem;z-index:var(--above-graph-zindex);background-color:var(--body-background-color)}.info-panel>.info-panel-image{width:100%;height:12rem;display:flex;justify-content:center;align-items:center;overflow:hidden;text-align:center;background-color:var(--primary-color);border:1px solid #000}.info-panel-image img{width:100%}.info-panel-image i{color:var(--white);font-size:5rem;line-height:5rem;vertical-align:top}.info-panel-content{padding:1rem;flex-grow:100;border:1px solid #000;overflow-y:auto}.info-panel-content>div{flex-shrink:0;margin-bottom:.5rem}.info-panel-content>.info-panel-tags,.info-panel-content>.tablet-spacer{margin:0}.info-panel-content>.info-panel-label,.info-panel-content>.info-panel-link,.info-panel-content>.info-panel-title{margin-bottom:1rem}.info-panel-title{font-size:1.2rem;font-weight:700;text-align:center;overflow:hidden;text-overflow:ellipsis}.info-panel-subtitle{font-size:.8rem}.info-panel-label,.info-panel-subtitle{text-align:center;text-transform:uppercase}.info-panel-label{padding:.5rem;background-color:var(--inactive-color)}.info-panel-link{display:block;width:100%;text-align:center}.info-panel-detail{display:flex;font-size:.8rem;text-transform:uppercase;justify-content:space-between}.info-panel-tags{display:flex;flex-wrap:wrap}.info-panel-tags>div{color:var(--active-color);border:1px solid var(--active-color);padding:.2rem .5rem;font-size:.8rem;margin:0 .5rem .5rem 0;white-space:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none}.info-panel .actions{display:flex;flex-direction:column}.info-panel .actions .common-button{margin-bottom:.5rem;background-color:var(--body-background-color)}.locked.action-button,.locked.action-button:hover{color:var(--inactive-color);background-color:transparent;border-color:var(--inactive-color);cursor:default}.cloud-action{margin-top:1rem;display:flex;flex-direction:column}.sign-in-button{color:#fff;background-color:#2ea9b0;border-radius:.4rem;padding:.5rem;text-align:center;cursor:pointer}.cloud-indicator{display:flex;color:#2ea9b0}.cloud-indicator>.xicon{margin-right:.5rem}.high-contrast .info-panel-content,.high-contrast .info-panel-image,.high-contrast .info-panel-label,.high-contrast .info-panel-tags>div{color:var(--high-contrast-text);border:1px solid var(--high-contrast-text);background-color:var(--high-contrast-background)}.high-contrast .cloud-indicator{color:var(--high-contrast-text)}.high-contrast .info-panel .actions .common-button{background-color:var(--high-contrast-background)}@media only screen and (max-width:991px){.info-panel{flex-direction:row;width:unset;height:18rem}.info-panel>.info-panel-image{height:100%;width:16rem;flex-direction:column}.info-panel-image img{height:100%;width:unset}.info-panel-content{position:relative;display:flex;flex-direction:column;flex:1 1}.info-panel-content>.info-panel-title{margin-bottom:.5rem}.info-panel-content>.info-panel-subtitle{margin:0}.info-panel-content>.info-panel-label{margin:1rem}.info-panel-subtitle,.info-panel-title{text-align:left}.info-panel-label{position:absolute;right:0;top:0;width:12rem;padding:.5rem 1rem}.info-panel-link{text-align:left}.info-panel .actions{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:0}.info-panel .actions.grid{display:grid;grid-template-columns:1fr 1fr;grid-row-gap:.5rem;row-gap:.5rem}.info-panel .common-button{flex:0.5 1;margin-right:1rem;margin-bottom:0}.info-panel .common-button:last-child,.info-panel .grid .common-button:nth-child(2){margin-right:0}.sign-in-button{display:none}}@media only screen and (max-width:762px){.info-panel>.info-panel-image{display:none}.info-panel-label{width:unset}}:root{--black:#000;--white:#fff;--primary-color:#aa278f;--secondary-color:#eac6eb;--tertiary-color:#850a6b;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:var(--secondary-color);--inactive-hover-color:#6e6e6e;--invert-active-color:#fff;--invert-hover-text-color:#850a6b;--body-background-color:#f9f9f9;--default-card-color:#ccc;--card-hover-color:#bfbfbf;--card-border-color:#e9eef2;--dropdown-hover-color:#ccc;--modal-overlay-color:rgba(0,0,0,0.5);--inverted-text-color:var(--white);--subtitle-text-color:#6e6e6e;--header-height:4rem;--header-padding-top:1rem;--body-font-family:"Share Tech Mono",Monaco,Menlo,"Ubuntu Mono",Consolas,source-code-pro,monospace;--feature-text-font:Segoe UI,Tahoma,Geneva,Verdana;--frame-loader-zindex:30;--above-frame-zindex:50;--modal-dimmer-zindex:100;--fullscreen-modal-zindex:90;--graph-backround-zindex:10;--above-graph-zindex:20;--high-contrast-text:var(--white);--high-contrast-background:var(--black);--high-contrast-highlight:#ff0;--high-contrast-focus-outline:2px solid var(--high-contrast-highlight);--high-contrast-hyperlink:#807fff}body{position:relative;margin:0;font-family:"Share Tech Mono",Monaco,Menlo,"Ubuntu Mono",Consolas,source-code-pro,monospace;font-family:var(--body-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9f9f9;background-color:var(--body-background-color);overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}#root{width:100%}#root,#root.editor{height:100%}#root>div{width:100%;height:100%}.app-container{display:flex;flex-direction:column;height:100%;width:100%}.noclick{pointer-events:none;cursor:default}.header{background-color:#850a6b;background-color:var(--tertiary-color);height:4rem;height:var(--header-height);max-height:4rem;max-height:var(--header-height);display:flex;align-items:center;color:#fff;color:var(--inverted-text-color);flex-grow:0;flex-shrink:0;z-index:50;z-index:var(--above-frame-zindex)}.header-left,.header-right{display:flex;align-items:center;height:100%}.header-logo{display:flex}.header .brand{font-size:1.5rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex}.header .brand:before{position:relative;height:1.5rem;border-left:2px solid #fff;content:" "}.ui.item.logo .name{margin-left:1rem;margin-bottom:1px}.header-logo img{height:1.4rem;margin:0 1rem}.user-menu{height:100%}.user-menu .header-button.sign-in{border-radius:6px;background-color:#f9f9f9;background-color:var(--body-background-color);color:#393939;height:80%;margin:.5rem 1rem .5rem .5rem;padding:.6rem;font-family:Segoe UI,Tahoma,Geneva,Verdana;font-family:var(--feature-text-font);font-weight:500;flex-direction:row-reverse;align-items:center}.user-menu .header-dropdown{height:inherit;cursor:pointer;width:3.5rem}.user-menu .avatar,.user-menu .header-dropdown{display:flex;align-items:center;justify-content:center}.user-menu .avatar{height:100%}.user-menu .avatar img{border:2px solid #fff;border-radius:100%;width:2.5rem;height:2.5rem}.header-org-logo{height:2rem;margin-left:1rem}.header-org-logo img{height:100%}.header-org-logo .header-org-logo-small{display:none}.header i{line-height:2rem;cursor:pointer}.header-dropdown i,.header-dropdown img,.header-dropdown span{display:flex;justify-content:center;align-items:center;height:4rem;height:var(--header-height);width:3.5rem;margin:0;font-size:1.6rem}.header-button{color:#fff;color:var(--invert-active-color);height:100%;padding:1rem .5rem;padding:var(--header-padding-top) .5rem;font-size:1.2rem;text-align:center;cursor:pointer;flex:1 1;-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;font-size:1.6rem}.header-button.with-label{flex-grow:3;display:flex}.header-button.icon-only{font-size:unset;padding:1rem .5rem;padding:var(--header-padding-top) .5rem}.header-button .header-button-label{line-height:2rem;white-space:nowrap;font-size:1rem;margin-right:.4rem}.header-button:hover,.header-dropdown:hover{background-color:rgba(0,0,0,.1)}.header-button:hover>i,.header-dropdown:hover>i{-webkit-transform:scale(1.2);transform:scale(1.2)}.header-button.sign-in:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.header-button.sign-in:hover>i,.header-button.sign-in:hover>span{-webkit-transform:none;transform:none}.header-activity-display-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:10;font-size:1.2rem;font-weight:700}.avatar-initials{height:2.5rem;width:2.5rem;border-radius:100%;border:2px solid #fff;background-color:#028b9b;display:flex;align-items:center;justify-content:center;font-size:16px}.header-dropdown.user-dropdown .dropdown-menu{top:4rem;top:var(--header-height)}.banner{background-color:#eac6eb;background-color:var(--secondary-color);display:flex;align-items:center;height:12rem;margin-bottom:.5rem}.banner-card{background-color:#aa278f;background-color:var(--primary-color);min-width:24rem;width:60%;display:flex;color:#fff;color:var(--inverted-text-color)}.banner-card>i{font-size:5rem;line-height:5rem;margin:2rem 1rem;flex-shrink:0}.banner-text{display:flex;flex-direction:column;justify-content:center;padding-right:1rem}.banner-title{font-size:2rem;margin-bottom:.5rem}.banner-info i,.banner-info i:hover{margin-left:.5rem;color:#fff;color:var(--inverted-text-color);font-size:1.2rem;vertical-align:top;text-decoration:none}.skill-map-container{flex-grow:1;display:flex;flex-direction:row;justify-content:center}.skill-map-error{text-align:center;margin-top:2rem;color:red}.report-abuse-text{width:100%;height:7rem;margin:.5rem 0;padding:.5rem}.report-abuse-text::-webkit-input-placeholder{font-style:italic}.report-abuse-text:-ms-input-placeholder{font-style:italic}.report-abuse-text::placeholder{font-style:italic}.badge-modal-image{display:flex;justify-content:center}.badge-modal-image img{height:15rem}.usabilla_live_button_container{top:unset!important;bottom:9rem!important}#msccBanner{display:none}.high-contrast .header{background-color:#000;background-color:var(--high-contrast-background);border-bottom:2px solid #fff;border-bottom:2px solid var(--high-contrast-text)}.high-contrast .header-dropdown i{height:calc(4rem - 2px);height:calc(var(--header-height) - 2px)}.high-contrast .avatar-initials{background-color:#000;background-color:var(--high-contrast-background)}.high-contrast a{color:#807fff;color:var(--high-contrast-hyperlink);text-decoration:underline}.high-contrast a:hover{outline:2px solid #ff0;outline:var(--high-contrast-focus-outline)}@media only screen and (max-width:991px){.skill-map-container{flex-direction:column}.tablet-spacer{flex-grow:1}.usabilla_live_button_container{bottom:14rem!important}}@media only screen and (max-height:44rem) and (min-width:767px){:root{--header-height:3rem;--header-padding-top:.5rem}.header-button.with-label{flex-grow:1}.user-menu .header-button.sign-in{padding:.2rem .8rem;margin-top:.4rem}}@media only screen and (max-width:767px){.header-org-logo .header-org-logo-large{display:none}.header-org-logo .header-org-logo-small{display:block}.user-menu .header-button.sign-in{padding-left:.6rem}.user-menu .header-button.sign-in .header-button-label{display:none}}body{background:#fdf3e0}.arcade{--primary-color:#e77038;--secondary-color:#ffeb9a;--tertiary-color:#e77038;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:#bfbfbf;--invert-active-color:#fff;--invert-hover-text-color:#e77038;--body-background-color:#fdf3e0;--card-hover-color:var(--default-card-color)}.arcade .banner{background:linear-gradient(90deg,#9feffd,#fd99c2)}.arcade .dropdown-menu,.arcade .modal{background-color:var(--white)}.arcade .carousel-arrow{color:var(--primary-color)}
1
+ .share-disclaimer{box-shadow:inset 0 0 0 1px #a9d5de,0 0 0 0 transparent;background-color:#f8ffff;color:#276f86;padding:1rem;border-radius:.25rem;margin:1rem 0 1.5rem}.share-loader{display:flex;justify-content:center;align-items:center;margin-bottom:1.5rem}.share-loader .common-spinner{margin-right:.5rem}.share-loader span{height:20px}.share-input{margin:1rem 0}.delete .checkbox{padding-top:1rem}.sign-in .container{display:flex;align-items:center}.sign-in .container a{padding-left:.5rem}.sign-in .remember{-webkit-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;margin-top:.5rem;display:flex;justify-content:center}.sign-in .modal-actions{grid-template-columns:1fr;margin-top:.5rem}.common-modal .icon.cloud-user{width:7rem;margin-right:2rem}.profiledialog .ui.card{margin:0 14px 14px 0;border-radius:0;color:#000;border:1px solid #000!important;background-color:#fff}.profiledialog button{margin:0}.profiledialog label.title{font-weight:700}.profiledialog p.value{white-space:nowrap}.profiledialog p.description,.profiledialog p.value{text-overflow:ellipsis;overflow:hidden}.profiledialog div.header-text{font-size:20px;white-space:nowrap;grid-row-start:1;grid-row-end:1;grid-column-start:1;grid-column-end:2;justify-self:start}.profiledialog div.profile-pic{grid-row-start:1;grid-row-end:1;grid-column-start:2;grid-column-end:2;justify-self:end}.profiledialog .ui.card.panel{width:-webkit-fit-content;width:fit-content;min-width:350px;max-width:500px;padding:14px;display:inline-grid;grid-row-gap:20px;row-gap:20px;grid-template-rows:auto;grid-template-columns:auto}.profiledialog .ui.card.panel div.row{grid-column-end:2}.profiledialog .ui.card.panel div.row,.profiledialog .ui.card.panel div.row-span-two{grid-row-start:auto;grid-row-end:auto;grid-column-start:1;justify-self:start;max-width:100%}.profiledialog .ui.card.panel div.row-span-two{grid-column-end:3}.certificate-reward{display:flex;flex-direction:column;align-items:center;margin-top:1rem}.certificate-reward img{max-width:50%}.badge-modal-image{margin-top:1rem}.completion-reward{margin:1rem 0;width:100%}.confetti-container{position:absolute;width:100%;height:100%;overflow:hidden;z-index:100}.confetti{width:10px;height:10px;background-color:#249ca3;position:absolute;left:50%;top:-15px;-webkit-animation:confetti 2.5s linear -2s infinite;animation:confetti 2.5s linear -2s infinite;-webkit-transform-origin:left top;transform-origin:left top;z-index:110}.confetti.reverse{-webkit-animation:confetti-reverse 2.5s linear -2s infinite;animation:confetti-reverse 2.5s linear -2s infinite}.color-0{background-color:#ff2121}.color-1{background-color:#ff93c4}.color-2{background-color:#ff8135}.color-3{background-color:#fff609}.color-4{background-color:#249ca3}.color-5{background-color:#78dc52}.color-6{background-color:#003fad}.color-7{background-color:#87f2ff}.color-8{background-color:#8e2ec4}.high-contrast .confetti{display:none}.high-contrast .common-modal-container.sign-in .icon.cloud-user{-webkit-filter:invert();filter:invert()}@-webkit-keyframes confetti{0%{-webkit-transform:rotate(15deg) rotateY(0deg) translate(0);transform:rotate(15deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh);transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh)}50%{-webkit-transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh);transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh)}75%{-webkit-transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh);transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh)}to{-webkit-transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh);transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh)}}@keyframes confetti{0%{-webkit-transform:rotate(15deg) rotateY(0deg) translate(0);transform:rotate(15deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh);transform:rotate(5deg) rotateY(1turn) translate(-1vw,20vh)}50%{-webkit-transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh);transform:rotate(15deg) rotateY(2turn) translate(1vw,50vh)}75%{-webkit-transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh);transform:rotate(5deg) rotateY(3turn) translate(-1vw,80vh)}to{-webkit-transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh);transform:rotate(15deg) rotateY(4turn) translate(1vw,110vh)}}@-webkit-keyframes confetti-reverse{0%{-webkit-transform:rotate(5deg) rotateY(0deg) translate(0);transform:rotate(5deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh);transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh)}50%{-webkit-transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh);transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh)}75%{-webkit-transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh);transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh)}to{-webkit-transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh);transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh)}}@keyframes confetti-reverse{0%{-webkit-transform:rotate(5deg) rotateY(0deg) translate(0);transform:rotate(5deg) rotateY(0deg) translate(0)}25%{-webkit-transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh);transform:rotate(15deg) rotateY(1turn) translate(1vw,20vh)}50%{-webkit-transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh);transform:rotate(5deg) rotateY(2turn) translate(-1vw,50vh)}75%{-webkit-transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh);transform:rotate(15deg) rotateY(3turn) translate(1vw,80vh)}to{-webkit-transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh);transform:rotate(5deg) rotateY(4turn) translate(-1vw,110vh)}}.makecode-frame,.makecode-frame-outer{width:100%;height:100%}.makecode-frame-outer{overflow:hidden;position:relative}.makecode-frame-loader{position:absolute;width:100%;height:100%;background-color:var(--body-background-color);z-index:var(--frame-loader-zindex);text-align:center;display:flex;align-items:center;flex-direction:column;justify-content:center}.makecode-frame-loader.hidden{display:none}.makecode-frame-loader img{max-width:200px;vertical-align:middle;-webkit-animation:loader-pxt 2s linear infinite;animation:loader-pxt 2s linear infinite}.makecode-frame-loader-bar{border:1px solid var(--black);width:10rem;height:1.5rem;margin-bottom:1rem}.makecode-frame-loader-fill{background-color:var(--primary-color);height:100%;width:1rem;transition:width .5s ease-out}.high-contrast .makecode-frame-loader,.high-contrast .makecode-frame-loader-bar{background-color:var(--high-contrast-background);border-color:var(--high-contrast-text)}.high-contrast .makecode-frame-loader img{-webkit-filter:grayscale(100%) brightness(60%) contrast(400%);filter:grayscale(100%) brightness(60%) contrast(400%);animation:none;-webkit-animation:none}.high-contrast .makecode-frame-loader-fill{background-color:var(--high-contrast-text)}@-webkit-keyframes loader-pxt{0%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}15%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(-5deg);transform:perspective(160px) rotateX(0deg) rotateY(-5deg)}50%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(5deg);transform:perspective(160px) rotateX(0deg) rotateY(5deg)}to{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}}@keyframes loader-pxt{0%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}15%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(-5deg);transform:perspective(160px) rotateX(0deg) rotateY(-5deg)}50%{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(5deg);transform:perspective(160px) rotateX(0deg) rotateY(5deg)}to{-webkit-transform:perspective(160px) rotateX(0deg) rotateY(0deg);transform:perspective(160px) rotateX(0deg) rotateY(0deg)}}.selected .highlight{stroke-width:4px;fill:transparent}.graph-icon{font-family:"Font Awesome 5 Free"}.graph-icon,.graph-icon-x{font-size:1.75rem;opacity:.8}.graph-icon-x{font-family:xicon}.graph-activity.hover .graph-icon,.graph-activity.hover .graph-icon-x{opacity:1}.graph-status-icon{font-family:"Font Awesome 5 Free";font-size:1rem}.graph-activity{cursor:pointer;-webkit-user-select:none;-ms-user-select:none;user-select:none}.graph-activity:focus-within .focus-outline{stroke-width:4px;fill:transparent;stroke:#00f}.common-button.graph-node-button{height:100%;width:100%;margin:0;padding:0;opacity:0}.high-contrast .graph-activity.hover{outline:var(--high-contrast-focus-outline)}.high-contrast .graph-activity:focus-within .focus-outline{stroke-width:4px;fill:transparent;stroke:#fff}.skill-graph-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 1}.skill-graph-content{position:relative;display:flex;flex-direction:column;width:90%;z-index:var(--above-graph-zindex)}.skill-graph-activities{z-index:var(--graph-backround-zindex);-webkit-user-select:none;-ms-user-select:none;user-select:none}.has-background .skill-graph-activities{position:absolute;width:100%;height:100%}.skill-graph-content:not(.has-background) .skill-graph-background{position:absolute}.skill-graph-activities svg,.skill-graph-background img{object-fit:contain;width:100%;max-height:100%}.high-contrast .skill-graph-background{visibility:hidden}.high-contrast .skill-map-container{background-color:var(--high-contrast-background)!important}.high-contrast .graph-activity circle,.high-contrast .graph-activity path,.high-contrast .graph-activity rect{fill:var(--high-contrast-background);stroke:var(--high-contrast-text);opacity:1}.high-contrast .graph-activity text{fill:var(--high-contrast-text);opacity:1}.high-contrast .graph-activity .highlight{stroke:var(--high-contrast-highlight)}.high-contrast .skill-graph>g{opacity:1}.high-contrast .skill-graph-path-border{stroke:var(--high-contrast-text)}.high-contrast .skill-graph-path{stroke:var(--high-contrast-background)}.info-panel{display:flex;flex-direction:column;align-items:stretch;width:20rem;margin:1rem;z-index:var(--above-graph-zindex);background-color:var(--body-background-color)}.info-panel>.info-panel-image{width:100%;height:12rem;display:flex;justify-content:center;align-items:center;overflow:hidden;text-align:center;background-color:var(--primary-color);border:1px solid #000}.info-panel-image img{width:100%}.info-panel-image i{color:var(--white);font-size:5rem;line-height:5rem;vertical-align:top}.info-panel-content{padding:1rem;flex-grow:100;border:1px solid #000;overflow-y:auto}.info-panel-content>div{flex-shrink:0;margin-bottom:.5rem}.info-panel-content>.info-panel-tags,.info-panel-content>.tablet-spacer{margin:0}.info-panel-content>.info-panel-label,.info-panel-content>.info-panel-link,.info-panel-content>.info-panel-title{margin-bottom:1rem}.info-panel-title{font-size:1.2rem;font-weight:700;text-align:center;overflow:hidden;text-overflow:ellipsis}.info-panel-subtitle{font-size:.8rem}.info-panel-label,.info-panel-subtitle{text-align:center;text-transform:uppercase}.info-panel-label{padding:.5rem;background-color:var(--inactive-color)}.info-panel-link{display:block;width:100%;text-align:center}.info-panel-detail{display:flex;font-size:.8rem;text-transform:uppercase;justify-content:space-between}.info-panel-tags{display:flex;flex-wrap:wrap}.info-panel-tags>div{color:var(--active-color);border:1px solid var(--active-color);padding:.2rem .5rem;font-size:.8rem;margin:0 .5rem .5rem 0;white-space:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none}.info-panel .sign-in-button{width:100%}.info-panel .actions{display:flex;flex-direction:column}.info-panel .actions .common-button.inverted{margin-bottom:.5rem;background-color:var(--body-background-color)}.locked.action-button,.locked.action-button:hover{color:var(--inactive-color);background-color:transparent;border-color:var(--inactive-color);cursor:default}.cloud-action{margin-top:1rem;display:flex;flex-direction:column}.cloud-indicator{display:flex;color:#2ea9b0}.cloud-indicator>.xicon{margin-right:.5rem}.high-contrast .info-panel-content,.high-contrast .info-panel-image,.high-contrast .info-panel-label,.high-contrast .info-panel-tags>div{color:var(--high-contrast-text);border:1px solid var(--high-contrast-text);background-color:var(--high-contrast-background)}.high-contrast .cloud-indicator{color:var(--high-contrast-text)}.high-contrast .info-panel .actions .common-button{background-color:var(--high-contrast-background)}@media only screen and (max-width:991px){.info-panel{flex-direction:row;width:unset;height:18rem}.info-panel>.info-panel-image{height:100%;width:16rem;flex-direction:column}.info-panel-image img{height:100%;width:unset}.info-panel-content{position:relative;display:flex;flex-direction:column;flex:1 1}.info-panel-content>.info-panel-title{margin-bottom:.5rem}.info-panel-content>.info-panel-subtitle{margin:0}.info-panel-content>.info-panel-label{margin:1rem}.info-panel-subtitle,.info-panel-title{text-align:left}.info-panel-label{position:absolute;right:0;top:0;width:12rem;padding:.5rem 1rem}.info-panel-link{text-align:left}.info-panel .actions{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:0}.info-panel .actions.grid{display:grid;grid-template-columns:1fr 1fr;grid-row-gap:.5rem;row-gap:.5rem}.info-panel .common-button{flex:0.5 1;margin-right:1rem;margin-bottom:0}.info-panel .common-button:last-child,.info-panel .grid .common-button:nth-child(2){margin-right:0}.info-panel .sign-in-button{min-height:3rem}}@media only screen and (max-width:762px){.info-panel>.info-panel-image{display:none}.info-panel-label{width:unset}}:root{--black:#000;--white:#fff;--primary-color:#aa278f;--secondary-color:#eac6eb;--tertiary-color:#850a6b;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:var(--secondary-color);--inactive-hover-color:#6e6e6e;--invert-active-color:#fff;--invert-hover-text-color:#850a6b;--body-background-color:#f9f9f9;--default-card-color:#ccc;--card-hover-color:#bfbfbf;--card-border-color:#e9eef2;--dropdown-hover-color:#ccc;--modal-overlay-color:rgba(0,0,0,0.5);--inverted-text-color:var(--white);--subtitle-text-color:#6e6e6e;--header-height:4rem;--header-padding-top:1rem;--body-font-family:"Share Tech Mono",Monaco,Menlo,"Ubuntu Mono",Consolas,source-code-pro,monospace;--feature-text-font:Segoe UI,Tahoma,Geneva,Verdana;--frame-loader-zindex:30;--above-frame-zindex:50;--modal-dimmer-zindex:100;--fullscreen-modal-zindex:90;--graph-backround-zindex:10;--above-graph-zindex:20;--high-contrast-text:var(--white);--high-contrast-background:var(--black);--high-contrast-highlight:#ff0;--high-contrast-focus-outline:2px solid var(--high-contrast-highlight);--high-contrast-hyperlink:#807fff}body{position:relative;margin:0;font-family:"Share Tech Mono",Monaco,Menlo,"Ubuntu Mono",Consolas,source-code-pro,monospace;font-family:var(--body-font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f9f9f9;background-color:var(--body-background-color);overflow:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}#root{width:100%}#root,#root.editor{height:100%}#root>div{width:100%;height:100%}.app-container{display:flex;flex-direction:column;height:100%;width:100%}.noclick{pointer-events:none;cursor:default}.header{background-color:#850a6b;background-color:var(--tertiary-color);height:4rem;height:var(--header-height);max-height:4rem;max-height:var(--header-height);display:flex;align-items:center;color:#fff;color:var(--inverted-text-color);flex-grow:0;flex-shrink:0;z-index:50;z-index:var(--above-frame-zindex)}.header-left,.header-right{display:flex;align-items:center;height:100%}.header-logo{display:flex}.header .brand{font-size:1.5rem;-webkit-user-select:none;-ms-user-select:none;user-select:none;display:flex}.header .brand:before{position:relative;height:1.5rem;border-left:2px solid #fff;content:" "}.ui.item.logo .name{margin-left:1rem;margin-bottom:1px}.header-logo img{height:1.4rem;margin:0 1rem}.user-menu{height:100%}.user-menu .header-button.sign-in{border-radius:6px;background-color:#f9f9f9;background-color:var(--body-background-color);color:#393939;height:80%;margin:.5rem 1rem .5rem .5rem;padding:.6rem;font-family:Segoe UI,Tahoma,Geneva,Verdana;font-family:var(--feature-text-font);font-weight:500;flex-direction:row-reverse;align-items:center}.user-menu .header-dropdown{height:inherit;cursor:pointer;width:3.5rem}.user-menu .avatar,.user-menu .header-dropdown{display:flex;align-items:center;justify-content:center}.user-menu .avatar{height:100%}.user-menu .avatar img{border:2px solid #fff;border-radius:100%;width:2.5rem;height:2.5rem}.header-org-logo{height:2rem;margin-left:1rem}.header-org-logo img{height:100%}.header-org-logo .header-org-logo-small{display:none}.header i{line-height:2rem;cursor:pointer}.header-dropdown i,.header-dropdown img,.header-dropdown span{display:flex;justify-content:center;align-items:center;height:4rem;height:var(--header-height);width:3.5rem;margin:0;font-size:1.6rem}.header-button{color:#fff;color:var(--invert-active-color);height:100%;padding:1rem .5rem;padding:var(--header-padding-top) .5rem;font-size:1.2rem;text-align:center;cursor:pointer;flex:1 1;-webkit-user-select:none;-ms-user-select:none;user-select:none;white-space:nowrap;font-size:1.6rem}.header-button.with-label{flex-grow:3;display:flex}.header-button.icon-only{font-size:unset;padding:1rem .5rem;padding:var(--header-padding-top) .5rem}.header-button .header-button-label{line-height:2rem;white-space:nowrap;font-size:1rem;margin-right:.4rem}.header-button:hover,.header-dropdown:hover{background-color:rgba(0,0,0,.1)}.header-button:hover>i,.header-dropdown:hover>i{-webkit-transform:scale(1.2);transform:scale(1.2)}.header-button.sign-in:hover{-webkit-transform:scale(1.1);transform:scale(1.1)}.header-button.sign-in:hover>i,.header-button.sign-in:hover>span{-webkit-transform:none;transform:none}.header-activity-display-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;flex-shrink:10;font-size:1.2rem;font-weight:700}.avatar-initials{height:2.5rem;width:2.5rem;border-radius:100%;border:2px solid #fff;background-color:#028b9b;display:flex;align-items:center;justify-content:center;font-size:16px}.header-dropdown.user-dropdown .dropdown-menu{top:4rem;top:var(--header-height)}.banner{background-color:#eac6eb;background-color:var(--secondary-color);display:flex;align-items:center;height:12rem;margin-bottom:.5rem}.banner-card{background-color:#aa278f;background-color:var(--primary-color);min-width:24rem;width:60%;display:flex;color:#fff;color:var(--inverted-text-color)}.banner-card>i{font-size:5rem;line-height:5rem;margin:2rem 1rem;flex-shrink:0}.banner-text{display:flex;flex-direction:column;justify-content:center;padding-right:1rem}.banner-title{font-size:2rem;margin-bottom:.5rem}.banner-info i,.banner-info i:hover{margin-left:.5rem;color:#fff;color:var(--inverted-text-color);font-size:1.2rem;vertical-align:top;text-decoration:none}.skill-map-container{flex-grow:1;display:flex;flex-direction:row;justify-content:center}.skill-map-error{text-align:center;margin-top:2rem;color:red}.report-abuse-text{width:100%;height:7rem;margin:.5rem 0;padding:.5rem}.report-abuse-text::-webkit-input-placeholder{font-style:italic}.report-abuse-text:-ms-input-placeholder{font-style:italic}.report-abuse-text::placeholder{font-style:italic}.badge-modal-image{display:flex;justify-content:center}.badge-modal-image img{height:15rem}.usabilla_live_button_container{top:unset!important;bottom:9rem!important}#msccBanner{display:none}.high-contrast .header{background-color:#000;background-color:var(--high-contrast-background);border-bottom:2px solid #fff;border-bottom:2px solid var(--high-contrast-text)}.high-contrast .header-dropdown i{height:calc(4rem - 2px);height:calc(var(--header-height) - 2px)}.high-contrast .avatar-initials{background-color:#000;background-color:var(--high-contrast-background)}.high-contrast a{color:#807fff;color:var(--high-contrast-hyperlink);text-decoration:underline}.high-contrast a:hover{outline:2px solid #ff0;outline:var(--high-contrast-focus-outline)}@media only screen and (max-width:991px){.skill-map-container{flex-direction:column}.tablet-spacer{flex-grow:1}.usabilla_live_button_container{bottom:14rem!important}}@media only screen and (max-height:44rem) and (min-width:767px){:root{--header-height:3rem;--header-padding-top:.5rem}.header-button.with-label{flex-grow:1}.user-menu .header-button.sign-in{padding:.2rem .8rem;margin-top:.4rem}}@media only screen and (max-width:767px){.header-org-logo .header-org-logo-large{display:none}.header-org-logo .header-org-logo-small{display:block}.user-menu .header-button.sign-in{padding-left:.6rem}.user-menu .header-button.sign-in .header-button-label{display:none}}body{background:#fdf3e0}.arcade{--primary-color:#e77038;--secondary-color:#ffeb9a;--tertiary-color:#e77038;--hover-color:var(--secondary-color);--active-color:var(--tertiary-color);--inactive-color:#bfbfbf;--invert-active-color:#fff;--invert-hover-text-color:#e77038;--body-background-color:#fdf3e0;--card-hover-color:var(--default-card-color)}.arcade .banner{background:linear-gradient(90deg,#9feffd,#fd99c2)}.arcade .dropdown-menu,.arcade .modal{background-color:var(--white)}.arcade .carousel-arrow{color:var(--primary-color)}
@@ -0,0 +1 @@
1
+ (this.webpackJsonpskillsmap=this.webpackJsonpskillsmap||[]).push([[0],[,,,,,,,,,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var r=a(0),n=a(11);t.Button=function(e){var t=e.id,a=e.className,i=e.ariaLabel,o=e.ariaHidden,c=e.ariaDescribedBy,s=e.ariaControls,l=e.ariaExpanded,u=e.ariaHasPopup,d=e.ariaPosInSet,p=e.ariaSetSize,f=e.role,h=e.onClick,m=e.onKeydown,v=e.buttonRef,g=e.title,y=e.label,b=e.leftIcon,k=e.rightIcon,S=e.disabled,w=e.href,I=e.target,x=e.tabIndex,C=n.classList("common-button",a,S&&"disabled");return r.createElement("button",{id:t,className:C,title:g,ref:v,onClick:S?void 0:function(){h&&h(),w&&window.open(w,I||"_blank","noopener,noreferrer")},onKeyDown:m||n.fireClickOnEnter,role:f||"button",tabIndex:x||(S?-1:0),"aria-label":i,"aria-hidden":o,"aria-controls":s,"aria-expanded":l,"aria-haspopup":u,"aria-posinset":d,"aria-setsize":p,"aria-describedby":c},r.createElement("span",{className:"common-button-flex"},b&&r.createElement("i",{className:b,"aria-hidden":!0}),r.createElement("span",{className:"common-button-label"},y),k&&r.createElement("i",{className:"right "+k,"aria-hidden":!0})))}},function(e,t,a){"use strict";var r=a(30);Object.defineProperty(t,"__esModule",{value:!0}),t.CheckboxStatus=t.nodeListToArray=t.classList=t.fireClickOnEnter=t.jsxLF=void 0;var n=a(0);t.jsxLF=function(e){var t=[];e.replace(/\{\d\}/g,(function(e){return t.push(parseInt(e.substr(1,1))),e}));for(var a,r=[],i=0,o=arguments.length,c=new Array(o>1?o-1:0),s=1;s<o;s++)c[s-1]=arguments[s];for(var l=0,u=t;l<u.length;l++){var d=u[l];a=e.split("{".concat(d,"}")),pxt.U.assert(2===a.length),r.push(n.createElement("span",{key:i++},a[0])),r.push(n.createElement("span",{key:i++},c[d])),e=a[1]}return r.push(n.createElement("span",{key:i++},e)),r},t.fireClickOnEnter=function(e){var t="number"==typeof e.which?e.which:e.keyCode;13!==t&&32!==t||(e.preventDefault(),e.currentTarget.click())},t.classList=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return t.filter((function(e){return"string"==typeof e})).reduce((function(e,t){return e.concat(t.split(" "))}),[]).map((function(e){return e.trim()})).filter((function(e){return!!e})).join(" ")},t.nodeListToArray=function(e){var t,a=[],n=r(e);try{for(n.s();!(t=n.n()).done;){var i=t.value;a.push(i)}}catch(e){n.e(e)}finally{n.f()}return a},function(e){e[e.Selected=0]="Selected",e[e.Unselected=1]="Unselected",e[e.Waiting=2]="Waiting"}(t.CheckboxStatus||(t.CheckboxStatus={}))},,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var r=a(0),n=a(37),i=a(11),o=a(10),c=a(21);t.Modal=function(e){var t=e.children,a=e.id,s=e.className,l=e.ariaLabel,u=e.ariaHidden,d=e.ariaDescribedBy,p=e.role,f=e.title,h=e.actions,m=e.onClose,v=e.parentElement,g=e.fullscreen,y=function(e){m&&m()},b=i.classList("common-modal-container",g&&"fullscreen",s);return n.createPortal(r.createElement(c.FocusTrap,{className:b,onEscape:y},r.createElement("div",{id:a,className:"common-modal",role:p||"dialog","aria-hidden":u,"aria-label":l,"aria-describedby":d,"aria-labelledby":"modal-title"},r.createElement("div",{className:"common-modal-header"},g&&r.createElement("div",{className:"common-modal-back"},r.createElement(o.Button,{className:"menu-button",onClick:y,title:lf("Go Back"),label:lf("Go Back"),leftIcon:"fas fa-arrow-left"})),r.createElement("div",{id:"modal-title",className:"common-modal-title"},f),!g&&r.createElement("div",{className:"common-modal-close"},r.createElement(o.Button,{className:"menu-button inverted",onClick:y,title:lf("Close"),rightIcon:"fas fa-times-circle"}))),r.createElement("div",{className:"common-modal-body"},t),(null==h?void 0:h.length)&&r.createElement("div",{className:"common-modal-footer"},h.map((function(e,t){return r.createElement(o.Button,{key:t,className:"primary inverted",disabled:e.disabled,onClick:e.onClick,href:e.url,label:e.label,title:e.label,rightIcon:(e.xicon?"xicon ":"")+e.icon})}))))),v||document.body)}},,,,,,,,function(e,t,a){"use strict";var r=a(31);Object.defineProperty(t,"__esModule",{value:!0}),t.FocusTrap=void 0;var n=a(0),i=a(11);t.FocusTrap=function(e){var t,a=e.children,o=e.id,c=e.className,s=e.onEscape,l=e.arrowKeyNavigation,u=e.dontStealFocus,d=e.includeOutsideTabOrder,p=n.useState(!1),f=r(p,2),h=f[0],m=f[1],v=function(){return i.nodeListToArray(d?t.querySelectorAll("[tabindex]"):t.querySelectorAll('[tabindex]:not([tabindex="-1"])'))};return n.createElement("div",{id:o,className:i.classList("common-focus-trap",c),ref:function(e){e&&(t=e,u||h||e.contains(document.activeElement)||!v().length||(t.focus(),m(!0)))},onKeyDown:function(e){if(t){var a=function(t,a){var r=v();if(r.length){var n=r.indexOf(e.target);t?a?r[r.length-1].focus():n===r.length-1?r[0].focus():r[n+1].focus():a?r[0].focus():0===n?r[r.length-1].focus():r[Math.max(n-1,0)].focus(),e.preventDefault(),e.stopPropagation()}};"Escape"===e.key?(s(),e.preventDefault(),e.stopPropagation()):"Tab"===e.key?e.shiftKey?a(!1,!1):a(!0,!1):l&&("ArrowDown"===e.key?a(!0,!1):"ArrowUp"===e.key?a(!1,!1):"Home"===e.key?a(!1,!0):"End"===e.key&&a(!0,!0))}},tabIndex:-1},a)}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Badge=void 0;var r=a(0),n=a(11);t.Badge=function(e){var t=e.badge,a=e.disabled,i=e.isNew,o=e.onClick,c=o&&function(){o(t)},s=a&&t.lockedImage||t.image,l=a?pxt.U.lf("Locked '{0}' badge",t.title):t.title;return r.createElement("div",{className:"profile-badge ".concat(o?"clickable":""),role:o?"button":void 0,tabIndex:o?0:void 0,title:lf("{0} Badge",t.title),onClick:c,onKeyDown:n.fireClickOnEnter},i&&r.createElement("div",{className:"profile-badge-notification"},pxt.U.lf("New!")),r.createElement("img",{src:s,alt:l}))}},,function(e,t,a){"use strict";var r=a(30);Object.defineProperty(t,"__esModule",{value:!0}),t.MenuBar=void 0;var n=a(0),i=a(11);t.MenuBar=function(e){var t,a,o=e.id,c=e.className,s=e.role,l=e.ariaHidden,u=e.ariaLabel,d=e.children;return n.createElement("div",{id:o,className:i.classList("common-menubar",c),role:s||"menubar",tabIndex:0,onKeyDown:function(e){if(null==t?void 0:t.length){var r=document.activeElement,n=t.indexOf(r);-1===n&&r!==a||("Enter"===e.key||" "===e.key?(e.preventDefault(),e.stopPropagation(),r.click?r.click():r.dispatchEvent(new Event("click"))):"ArrowRight"===e.key?(n===t.length-1||r===a?t[0].focus():t[n+1].focus(),e.preventDefault(),e.stopPropagation()):"ArrowLeft"===e.key?(0===n||r===a?t[t.length-1].focus():t[Math.max(n-1,0)].focus(),e.preventDefault(),e.stopPropagation()):"Home"===e.key?(t[0].focus(),e.preventDefault(),e.stopPropagation()):"End"===e.key&&(t[t.length-1].focus(),e.preventDefault(),e.stopPropagation()))}},ref:function(e){if(e&&!a){a=e;var n=e.querySelectorAll('[tabindex]:not([tabindex="-1"]),[data-isfocusable]');t=[];var i,o=r(n.values());try{for(o.s();!(i=o.n()).done;){var c=i.value;t.push(c),c.setAttribute("tabindex","-1"),c.setAttribute("data-isfocusable","true")}}catch(e){o.e(e)}finally{o.f()}}},"aria-hidden":l,"aria-label":u},d)}},,,,,function(e,t,a){"use strict";var r=a(31);Object.defineProperty(t,"__esModule",{value:!0}),t.MenuDropdown=void 0;var n=a(0),i=a(11),o=a(10),c=a(21);t.MenuDropdown=function(e){var t,a,s=e.id,l=e.className,u=e.ariaHidden,d=e.ariaLabel,p=e.role,f=e.items,h=e.label,m=e.title,v=e.icon,g=n.useState(!1),y=r(g,2),b=y[0],k=y[1],S=i.classList("common-menu-dropdown",l),w=s+"-menu";return n.createElement("div",{className:S,ref:function(e){e&&(t=e)},onBlur:function(e){t&&b&&!t.contains(e.relatedTarget)&&k(!1)}},n.createElement(o.Button,{id:s,label:h,buttonRef:function(e){e&&(a=e)},title:m,leftIcon:v,role:p||"menuitem",className:i.classList("menu-button",b&&"expanded"),onClick:function(){k(!b)},ariaHasPopup:"true",ariaExpanded:b,ariaControls:b?w:void 0,ariaLabel:d,ariaHidden:u}),b&&n.createElement("div",{role:"menu",className:"common-menu-dropdown-pane",tabIndex:0,id:w,"aria-labelledby":s},n.createElement(c.FocusTrap,{arrowKeyNavigation:!0,onEscape:function(){k(!1),a&&a.focus()}},n.createElement("ul",{role:"presentation"},f.map((function(e,t){return n.createElement("li",{key:t,role:"presentation"},n.createElement(o.Button,Object.assign({},e,{className:i.classList("common-menu-dropdown-item",e.className),onClick:function(){k(!1),e.onClick()},role:"menuitem",ariaPosInSet:t+1,ariaSetSize:f.length})))}))))))}},,,function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var r=a(0),n=a(11);t.Checkbox=function(e){var t=e.id,a=e.className,i=e.ariaHidden,o=e.ariaLabel,c=e.role,s=e.isChecked,l=e.onChange,u=e.label;return r.createElement("div",{className:n.classList("common-checkbox",a)},r.createElement("input",{id:t,tabIndex:0,type:"checkbox",checked:s,onClick:function(){l(!s)},onKeyDown:n.fireClickOnEnter,role:c,"aria-hidden":i,"aria-label":o}),u&&r.createElement("label",{htmlFor:t},u))}},,,,,,,,,,,function(e,t,a){"use strict";var r=a(31);Object.defineProperty(t,"__esModule",{value:!0}),t.Input=void 0;var n=a(0),i=a(11),o=a(10);t.Input=function(e){var t=e.id,a=e.className,c=e.role,s=e.ariaHidden,l=e.ariaLabel,u=e.initialValue,d=e.label,p=e.title,f=e.placeholder,h=e.icon,m=e.iconTitle,v=e.disabled,g=e.type,y=e.readOnly,b=e.autoComplete,k=e.selectOnClick,S=e.onChange,w=e.onEnterKey,I=e.onIconClick,x=n.useState(u||""),C=r(x,2),E=C[0],O=C[1];return n.createElement("div",{className:i.classList("common-input-wrapper",v&&"disabled",a)},d&&n.createElement("label",{className:"common-input-label"},d),n.createElement("div",{className:"common-input-group"},n.createElement("input",{id:t,className:i.classList("common-input",h&&"has-icon"),title:p,role:c||"button",tabIndex:v?0:-1,"aria-label":l,"aria-hidden":s,type:g||"text",placeholder:f,value:E||"",readOnly:!!y,onClick:function(e){k&&e.target.select()},onChange:function(e){var t=e.target.value;y||E===t||O(t),S&&S(t)},onKeyDown:function(e){var t="number"==typeof e.which?e.which:e.keyCode;13!==t&&32!==t||w&&(e.preventDefault(),w(E))},autoComplete:b?"":"off",autoCorrect:b?"":"off",autoCapitalize:b?"":"off",spellCheck:b,disabled:v}),h&&(I?n.createElement(o.Button,{leftIcon:h,title:m,disabled:v,onClick:function(){I&&I(E)}}):n.createElement("i",{className:h,"aria-hidden":!0}))))}},function(e,t,a){"use strict";var r=a(72),n=a(73),i=a(74),o=a(76);Object.defineProperty(t,"__esModule",{value:!0}),t.pushNotificationMessage=t.Notification=void 0;var c=a(0),s=a(37),l=function(e){i(a,e);var t=o(a);function a(e){var n;return r(this,a),(n=t.call(this,e)).state={notifications:{}},n}return n(a,[{key:"push",value:function(e){var t=this,a=this.state.notifications,r=ts.pxtc.Util.guidGen();Object.keys(a).filter((function(t){return a[t].kind==e.kind})).forEach((function(e){return t.remove(e)})),a[r]=e;var n=this;setTimeout((function(){n.remove(r)}),3e3),this.setState({notifications:a})}},{key:"remove",value:function(e){var t=this.state.notifications;t[e]&&(delete t[e],this.setState({notifications:t}))}},{key:"render",value:function(){var e=this.state.notifications;return c.createElement("div",{id:"msg","aria-live":"polite"},Object.keys(e).map((function(t){return function(e,t){var a=t.kind,r=t.text,n=t.hc,i="ignored info message";switch(a){case"err":i="red inverted segment";break;case"warn":i="orange inverted segment";break;case"info":i="teal inverted segment";break;case"compile":i="ignored info message"}return c.createElement("div",{key:"".concat(e),id:"".concat(a,"msg"),className:"ui ".concat(n," ").concat(i)},r)}(t,e[t])})))}}]),a}(c.Component);t.Notification=l;var u,d=!1;t.pushNotificationMessage=function(e){if(d)u&&u.push(e);else{d=!0;var t=document.body.appendChild(document.createElement("div"));(u=s.render(c.createElement(l,e),t)).push(e)}}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Profile=void 0;var r=a(0),n=a(82),i=a(83),o=a(85);t.Profile=function(e){var t,a=e.user,c=e.signOut,s=e.deleteProfile,l=e.onClickedEmail,u=e.notification,d=e.checkedEmail,p=e.showModalAsync,f=(null==a?void 0:a.profile)||{idp:{}},h=(null===(t=null==a?void 0:a.preferences)||void 0===t?void 0:t.badges)||{badges:[]};return r.createElement("div",{className:"user-profile"},r.createElement(i.UserPane,{profile:f,onSignOutClick:c,onDeleteProfileClick:s,notification:u,emailChecked:d,onEmailCheckClick:l}),r.createElement(n.BadgeList,{availableBadges:pxt.appTarget.defaultBadges||[],userState:h,onBadgeClick:function(e){p({header:lf("{0} Badge",e.title),size:"tiny",hasCloseIcon:!0,onClose:function(){var e=document.body.querySelector(".common-modal-container.fullscreen [tabindex]");e&&e.focus()},jsx:r.createElement(o.BadgeInfo,{badge:e})})}}))}},,,,,,,,,,,,,,,,,,,function(e,t,a){},function(e,t,a){},,,,function(e,t,a){},function(e,t,a){},function(e,t,a){},,,,,,,,,,,function(e,t,a){"use strict";var r=a(30);Object.defineProperty(t,"__esModule",{value:!0}),t.BadgeList=void 0;var n=a(0),i=a(22);t.BadgeList=function(e){var t,a=e.onBadgeClick,o=e.availableBadges,c=e.userState,s=o.slice(),l={},u=r(c.badges);try{var d=function(){var e=t.value;l[e.id]=!0;var a=s.findIndex((function(t){return t.id===e.id}));a>-1?s[a]=Object.assign(Object.assign({},s[a]),{timestamp:s[a].timestamp||e.timestamp}):s.push(e)};for(u.s();!(t=u.n()).done;)d()}catch(e){u.e(e)}finally{u.f()}for(var p=[],f=0;f<Math.max(s.length+10,20);f++)p.push(n.createElement("div",{key:f,className:"placeholder-badge"}));return n.createElement("div",{className:"profile-badge-list"},n.createElement("div",{className:"profile-badge-header",id:"profile-badge-header"},n.createElement("span",{className:"profile-badge-title"},lf("Badges")),n.createElement("span",{className:"profile-badge-subtitle"},lf("Click each badge to see details"))),n.createElement("div",{className:"profile-badges-scroller"},n.createElement("div",{className:"profile-badges",role:"list","aria-labelledby":"profile-badge-header"},n.createElement("div",{className:"profile-badges-background-container","aria-hidden":"true"},n.createElement("div",{className:"profile-badges-background"},p)),s.map((function(e){return n.createElement("div",{className:"profile-badge-and-title",key:e.id,role:"listitem"},n.createElement(i.Badge,{onClick:a,badge:e,disabled:!l[e.id]}),n.createElement("div",{className:"profile-badge-name"},e.title))})))))}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserPane=void 0;var r=a(0),n=a(11),i=a(84),o=a(32),c=a(10);t.UserPane=function(e){var t=e.profile,a=e.onSignOutClick,s=e.onDeleteProfileClick,l=e.onEmailCheckClick,u=e.notification,d=e.emailChecked,p=t.idp,f=p.username,h=p.displayName,m=p.picture,v=r.createElement(r.Fragment,null,d===n.CheckboxStatus.Waiting?r.createElement("div",{className:"common-spinner"}):void 0,lf("I would like to receive the MakeCode newsletter. "),r.createElement("a",{href:"https://makecode.com/privacy",target:"_blank",rel:"noopener noreferrer",tabIndex:0},lf("View Privacy Statement")));return r.createElement("div",{className:"profile-user-pane"},r.createElement("div",{className:"profile-portrait"},(null==m?void 0:m.dataUrl)?r.createElement("img",{src:null==m?void 0:m.dataUrl,alt:pxt.U.lf("Profile Picture")}):r.createElement("div",{className:"profile-initials-portrait"},pxt.auth.userInitials(t))),r.createElement("div",{className:"profile-user-details"},r.createElement("div",{className:"profile-display-name"},h),f&&r.createElement("div",{className:"profile-username"},f)),u&&r.createElement(i.UserNotification,{notification:u}),r.createElement("div",{className:"profile-spacer"}),r.createElement("div",{className:"profile-email"},r.createElement(o.Checkbox,{id:"profile-email-checkbox",className:d===n.CheckboxStatus.Waiting?"loading":"",isChecked:d===n.CheckboxStatus.Selected,onChange:l,label:v})),r.createElement("div",{className:"profile-actions"},r.createElement("a",{role:"button",tabIndex:0,onKeyPress:n.fireClickOnEnter,onClick:s},lf("Delete Profile")),r.createElement(c.Button,{className:"sign-out",leftIcon:"fas fa-sign-out-alt",title:lf("Sign Out"),label:lf("Sign Out"),onClick:a})))}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.UserNotification=void 0;var r=a(0);t.UserNotification=function(e){var t=e.notification,a=t.message,n=t.icon,i=t.actionText,o=t.link,c=t.xicon,s=t.title;return r.createElement("div",{className:"profile-notification"},r.createElement("div",{className:"profile-notification-icon"},r.createElement("i",{className:"".concat(c?"xicon":"ui large circular icon "," ").concat(n)})),r.createElement("div",{className:"profile-notification-title"},s),r.createElement("div",{className:"profile-notification-message"},a),r.createElement("button",{className:"ui icon button profile-notification-button",onClick:function(){window.open(o,"_blank")},role:"link"},r.createElement("i",{className:"icon external alternate"}),i))}},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.badgeDescription=t.BadgeInfo=void 0;var r=a(0),n=a(11),i=a(22);function o(e){var t;if(-1!==e.indexOf("/api/md/")){var a=e.split("/api/md/")[1].split("/").slice(1).join("/");return(null===(t=pxt.webConfig)||void 0===t?void 0:t.skillmapUrl)+"#docs:"+a}var r=e.split("#");return 2==r.length?pxt.webConfig.skillmapUrl+"#github:https://github.com/"+r[0]+"/"+r[1]:pxt.BrowserUtils.isLocalHostDev()?"http://localhost:3000#local:"+e:e}t.BadgeInfo=function(e){var a=e.badge,n=new Date(a.timestamp);return r.createElement("div",{className:"profile-badge-info"},r.createElement("div",{className:"profile-badge-info-image"},r.createElement(i.Badge,{badge:a,disabled:!a.timestamp})),r.createElement("div",{className:"profile-badge-info-item",id:"profile-badge-info-"+a.id},r.createElement("div",{className:"profile-badge-info-header"},lf("Awarded For:")),r.createElement("div",{className:"profile-badge-info-text"},t.badgeDescription(a))),a.timestamp?r.createElement("div",{className:"profile-badge-info-item"},r.createElement("div",{className:"profile-badge-info-header"},lf("Awarded On:")),r.createElement("div",{className:"profile-badge-info-text"},n.toLocaleDateString(pxt.U.userLanguage()))):void 0)},t.badgeDescription=function(e){switch(e.type){case"skillmap-completion":return r.createElement("span",null,n.jsxLF(lf("Completing {0}"),r.createElement("a",{tabIndex:0,"aria-labelledby":"profile-badge-info-"+e.id,target:"_blank",rel:"noopener noreferrer",href:o(e.sourceURL)},pxt.U.rlf(e.title))))}}},function(e,t,a){},function(e,t,a){},function(e,t,a){"use strict";a.r(t);var r,n,i=a(0),o=a.n(i),c=a(38),s=a.n(c),l=a(9),u=a(27),d=a(8),p=a(12),f=a(1),h="ADD_SKILL_MAP",m="CLEAR_SKILL_MAPS",v="CLEAR_METADATA",g="CHANGE_SELECTED_ITEM",y="SET_SKILL_MAP_COMPLETED",b="SET_HEADERID_FOR_ACTIVITY",k="OPEN_ACTIVITY",S="CLOSE_ACTIVITY",w="SAVE_AND_CLOSE_ACTIVITY",I="RESTART_ACTIVITY",x="SET_USER",C="UPDATE_USER_COMPLETED_TAGS",E="RESET_USER",O="SET_PAGE_TITLE",j="SET_PAGE_DESCRIPTION",N="SET_PAGE_INFO_URL",A="SET_PAGE_BACKGROUND_IMAGE_URL",U="SET_PAGE_BANNER_IMAGE_URL",P="SET_PAGE_THEME",M="SET_PAGE_SOURCE_URL",L="SET_PAGE_ALTERNATE_URLS",T="ENQUEUE_MODALS",R="SET_MODAL",B="NEXT_MODAL",_="HIDE_MODAL",D="SHOW_COMPLETION_MODAL",H="GRANT_SKILLMAP_BADGE",F="SET_USER_PROFILE",V="SET_USER_PREFERENCES",W="USER_LOG_OUT",z="SHOW_USER_PROFILE",G="HIDE_USER_PROFILE",q="SET_SHARE_STATUS",K="SET_CLOUD_STATUS",Q="SET_READY_RESOURCES",Y=a(2),$=a.n(Y),J=a(3),X="-SHOWN-LOGIN-PROMPT";function Z(e){var t={cmd:"",arg:""},a=/^(\w+)(:([:./\-+=\w]+))?/.exec((e||window.location.hash).replace(/^#/,""));return a&&(t={cmd:a[1],arg:a[3]||""}),t}function ee(){var e={},t=window.location.search;return t&&new URLSearchParams(t).forEach((function(t,a){"true"!==t.toLowerCase()&&"1"!==t||(t="true"),e[a]=t})),e}function te(e,t){return ae.apply(this,arguments)}function ae(){return(ae=Object(J.a)($.a.mark((function e(t,a){var r,n,i;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t&&a){e.next=2;break}return e.abrupt("return",void 0);case 2:n="unknown",e.t0=t,e.next="docs"===e.t0?6:"github"===e.t0?7:"local"===e.t0?10:13;break;case 6:return e.abrupt("return",re(a));case 7:return e.next=9,ie(a);case 9:return e.abrupt("return",e.sent);case 10:return e.next=12,ce(a);case 12:return e.abrupt("return",e.sent);case 13:return r=a,e.abrupt("break",15);case 15:if(!pxt.BrowserUtils.isSafari()){e.next=29;break}return e.prev=16,e.next=19,fe(r);case 19:i=e.sent,e.next=27;break;case 22:return e.prev=22,e.t1=e.catch(16),e.next=26,fe(r);case 26:i=e.sent;case 27:e.next=32;break;case 29:return e.next=31,fe(r);case 31:i=e.sent;case 32:return e.abrupt("return",{text:i,identifier:r,status:n});case 33:case"end":return e.stop()}}),e,null,[[16,22]])})))).apply(this,arguments)}function re(e){return ne.apply(this,arguments)}function ne(){return(ne=Object(J.a)($.a.mark((function e(t){var a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pxt.Cloud.markdownAsync(le(t));case 2:if(!(a=e.sent)){e.next=5;break}return e.abrupt("return",{text:a,identifier:ue(t),status:"approved"});case 5:return e.abrupt("return",void 0);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ie(e){return oe.apply(this,arguments)}function oe(){return(oe=Object(J.a)($.a.mark((function e(t){var a,r,n,i,o,c,s,l,u,d,p;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=pxt.github.parseRepoId(t),e.next=3,pxt.packagesConfigAsync();case 3:if(e.t0=e.sent,e.t0){e.next=6;break}e.t0={};case 6:r=e.t0,n=pxt.github.parseRepoId(a.slug),i=pxt.github.repoStatus(n,r),o="unknown",e.t1=i,e.next=e.t1===pxt.github.GitRepoStatus.Banned?13:e.t1===pxt.github.GitRepoStatus.Approved?16:19;break;case 13:return o="banned",c="https://github.com/"+a.fullName,e.abrupt("break",21);case 16:return o="approved",c=void 0,e.abrupt("break",21);case 19:return c="https://github.com/"+a.fullName,e.abrupt("break",21);case 21:if(e.t2=a.tag,e.t2){e.next=26;break}return e.next=25,pxt.github.latestVersionAsync(a.slug,r,!0);case 25:e.t2=e.sent;case 26:if(s=e.t2){e.next=30;break}return pxt.log("skillmap github tag not found at ".concat(a.fullName)),e.abrupt("return",void 0);case 30:return a.tag=s,e.next=33,pxt.github.downloadPackageAsync("".concat(a.slug,"#").concat(a.tag),r);case 33:if(!(l=e.sent)){e.next=37;break}return u=de(a),d=u.identifier,p=u.fileName,e.abrupt("return",{text:pxt.tutorial.resolveLocalizedMarkdown(a,l.files,p),identifier:d,reportId:c,status:o});case 37:return e.abrupt("return",void 0);case 38:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ce(e){return se.apply(this,arguments)}function se(){return(se=Object(J.a)($.a.mark((function e(t){var a,r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!ve()){e.next=9;break}return t=t.replace(/^\//,"").replace(/\.md$/,""),e.next=4,fetch("docs/"+t+".md");case 4:return a=e.sent,e.next=7,a.text();case 7:return r=e.sent,e.abrupt("return",{text:r,identifier:t,status:"approved"});case 9:return e.abrupt("return",void 0);case 10:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function le(e){return e.trim().replace(/^[\\/]/i,"").replace(/\.md$/i,"")}function ue(e){var t;e=le(e);var a=(null===(t=window.pxtTargetBundle)||void 0===t?void 0:t.name)||"arcade";return"".concat("https://www.makecode.com/api","/md/").concat(a,"/").concat(e)}function de(e){var t=function(e){return(e=(e=e.replace(/^\/?blob\/main\//,"")).replace(/^\/?blob\/master\//,"")).replace(/\.md$/,"")}(e.fileName||"skillmap");return{identifier:e.fullName+"#"+t,fileName:t}}function pe(){return(pe=Object(J.a)($.a.mark((function e(t,a){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t){e.next=3;break}return e.next=3,he("/api/".concat(encodeURIComponent(t),"/abusereports"),a);case 3:return e.abrupt("return");case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function fe(e){return new Promise((function(t,a){var r=new XMLHttpRequest;r.addEventListener("error",(function(e){a(e)})),r.addEventListener("load",(function(){try{t(r.responseText)}catch(e){a(e)}})),r.open("GET",e),r.send()}))}function he(e,t){return new Promise((function(a,r){var n=new XMLHttpRequest;n.addEventListener("error",(function(e){r(e)})),n.addEventListener("load",(function(){try{a(n.responseText)}catch(e){r(e)}})),n.open("POST",e,!0),n.setRequestHeader("Content-type","application/json"),n.send(JSON.stringify(t))}))}function me(){function e(){return(65536|function(){var e=new Uint8Array(4);return function(e){if(window.crypto)window.crypto.getRandomValues(e);else for(var t=0;t<e.length;++t)e[t]=Math.floor(255*Math.random())}(e),new Uint32Array(e.buffer)[0]}()).toString(16).slice(-4)}return e()+e()+"-"+e()+"-4"+e().slice(-3)+"-"+e()+"-"+e()+e()+e()}function ve(){return"localhost"===window.location.hostname}function ge(e){return"".concat(ve()?"":"/static/skillmap","/").concat(e.replace(/^\//,""))}function ye(e){n=e}function be(e,t){var a,i;(t=t||{}).page=n,t.pageTitle=r,null===(a=(i=window).pxtTickEvent)||void 0===a||a.call(i,e,t)}function ke(e,t,a,r){return!Object.keys(null==a?void 0:a.activities).some((function(n){var i,o;return!(null===(i=Ce(e,t,a.mapId))||void 0===i||null===(o=i.activityState[n])||void 0===o?void 0:o.isCompleted)&&n!==r}))}function Se(e,t,a,r){var n;return!!(null===(n=Ee(e,t,a,r))||void 0===n?void 0:n.isCompleted)}function we(e,t,a,r){var n,i,o,c=e&&a&&xe(e,t,a,r)?"notstarted":"locked";if(e)if(a&&t&&!function(e,t,a){var r,n=Object(d.a)(t.prerequisites);try{for(n.s();!(r=n.n()).done;){var i=r.value;if("tag"===i.type){if(!e.completedTags[a])return!1;var o=e.completedTags[a][i.tag];if(void 0===o||o<i.numberCompleted)return!1}else if("map"===i.type&&!ke(e,a,t))return!1}}catch(e){n.e(e)}finally{n.f()}return!0}(e,a,t))c="locked";else{var s=Ee(e,t,a.mapId,r);s&&(s.isCompleted?(c=s.currentStep&&s.maxSteps&&s.currentStep<s.maxSteps?"restarted":"completed",o=s.headerId):s.headerId&&(c="inprogress"),n=null==s?void 0:s.currentStep,i=null==s?void 0:s.maxSteps)}return{status:c,currentStep:n,maxSteps:i,completedHeadedId:o}}function Ie(e,t,a){var r,n={},i=Object(d.a)(a);try{for(i.s();!(r=i.n()).done;)for(var o=r.value,c=0,s=Object.keys(o.activities);c<s.length;c++){var l=s[c],u=o.activities[l];if(Se(e,t,o.mapId,u.activityId)&&"activity"===u.kind){var p,f=Object(d.a)(u.tags);try{for(f.s();!(p=f.n()).done;){var h=p.value;n[h]||(n[h]=0),n[h]++}}catch(e){f.e(e)}finally{f.f()}}}}catch(e){i.e(e)}finally{i.f()}return n}function xe(e,t,a,r){return a.root.activityId===r||function n(i){if(Se(e,t,a.mapId,i.activityId)){if(i.next.some((function(e){return e.activityId===r})))return!0;var o,c=Object(d.a)(i.next);try{for(c.s();!(o=c.n()).done;){if(n(o.value))return!0}}catch(e){c.e(e)}finally{c.f()}}return!1}(a.root)}function Ce(e,t,a){return e.mapProgress[t]?e.mapProgress[t][a]:void 0}function Ee(e,t,a,r){var n;return null===(n=Ce(e,t,a))||void 0===n?void 0:n.activityState[r]}function Oe(e,t){return!!(e.mapProgress&&e.mapProgress[t]&&0!=Object.keys(e.mapProgress[t]).length&&Object.keys(e.mapProgress[t]).some((function(a){return 0!=Object.keys(e.mapProgress[t][a].activityState).length})))}function je(e,t){return Object.keys(e.activities).filter((function(t){return!Me(e.activities[t])})).filter((function(a){return Pe(e.activities[a],Me(e.activities[t])).map((function(e){return e.activityId})).some((function(e){return e===t}))})).map((function(t){return e.activities[t]}))}function Ne(e,t,a,r){return je(a,r).map((function(r){return Ee(e,t,a.mapId,r.activityId)})).filter((function(e){return!!e}))}function Ae(e,t,a,r){var n=Ne(e,t,a,r).filter((function(e){return(null==e?void 0:e.isCompleted)&&e.maxSteps===e.currentStep})).sort((function(e,t){return(t.completedTime||0)-(e.completedTime||0)}));return null==n?void 0:n[0]}function Ue(e,t,a,r){if(!e||!a||!r||"activity"!==r.kind)return!1;var n=Ne(e,t,a,r.activityId),i=null==n?void 0:n.some((function(e){return(null==e?void 0:e.isCompleted)&&e.maxSteps===e.currentStep}));return r.allowCodeCarryover&&n.length>0&&i&&xe(e,t,a,r.activityId)}function Pe(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=[];return e.next.forEach((function(e){t||!Me(e)?a.push(e):a=a.concat(Pe(e))})),a}function Me(e){return"reward"===e.kind||"completion"===e.kind}function Le(e,t,a){for(var r=[],n=0,i=Object.keys(a.activities);n<i.length;n++){var o=i[n];if(Me(a.activities[o])&&xe(e,t,a,o)){var c,s=a.activities[o],l=Object(d.a)(s.rewards);try{for(l.s();!(c=l.n()).done;)"completion-badge"===c.value.type&&r.push(Te(t,a,s))}catch(e){l.e(e)}finally{l.f()}}}return r}function Te(e,t,a){var r=a.rewards.filter((function(e){return"completion-badge"===e.type}))[0];return{id:"skillmap-completion-".concat(t.mapId),image:null==r?void 0:r.imageUrl,sourceURL:e,type:"skillmap-completion",title:(null==r?void 0:r.displayName)||t.displayName}}function Re(e,t,a){var r;return Object.values(null!==(r=e.mapProgress[t])&&void 0!==r?r:[]).filter((function(e){var r;return!a||!(null===(r=a.mapProgress[t])||void 0===r?void 0:r[e.mapId])||0===Object.keys(a.mapProgress[t][e.mapId].activityState).length})).map((function(e){return Object.values(e.activityState)})).reduce((function(e,t){return e.concat(t,[])}),[]).map((function(e){return e.headerId})).filter((function(e){return!!e}))}function Be(e,t,a,r){var n=pxt.semver.parse(e.version||"0.0.0"),i=pxt.semver.parse(t),o=e;if(0===pxt.semver.cmp(n,i))return o;if(0===pxt.semver.cmp(n,pxt.semver.parse("0.0.0"))){var c=(null==e?void 0:e.mapProgress)&&Object.keys(null==e?void 0:e.mapProgress);if((null==c?void 0:c.length)>0&&e.mapProgress[c[0]].activityState){var s=e,l={};Object.keys(r).forEach((function(e){s.mapProgress[e]&&(l[e]=s.mapProgress[e])})),o=Object(f.a)(Object(f.a)({},s),{},{mapProgress:Object(p.a)({},a,l)})}}return o}function _e(e,t,a){if(0===a.length)return e;var r=e.mapProgress[t]||{};return a.forEach((function(t){var a=Z(t),n=a.cmd,i=a.arg,o=i;switch(n){case"github":var c=pxt.github.parseRepoId(i),s=c&&de(c);o=(null==s?void 0:s.identifier)||i;break;case"docs":o=ue(i)}var l=e.mapProgress[o];l&&Object.keys(l).forEach((function(e){if(r[e]){var t=l[e].activityState;Object.keys(t).forEach((function(a){r[e].activityState[a]||(r[e].activityState[a]=t[a])}))}else r[e]=l[e]}))})),Object(f.a)(Object(f.a)({},e),{},{mapProgress:Object(f.a)(Object(f.a)({},e.mapProgress),{},Object(p.a)({},t,r))})}var De={title:lf("Game Maker Guide"),description:lf("Level up your game making skills by completing the tutorials in this guide."),pageSourceStatus:"unknown",pageSourceUrl:"default",user:{version:pxt.skillmap.USER_VERSION,isDebug:!0,id:me(),mapProgress:{},completedTags:{}},theme:{backgroundColor:"var(--body-background-color)",pathColor:"#BFBFBF",strokeColor:"#000000",rewardNodeColor:"var(--primary-color)",rewardNodeForeground:"#000000",unlockedNodeColor:"var(--secondary-color)",unlockedNodeForeground:"#000000",lockedNodeColor:"#BFBFBF",lockedNodeForeground:"#000000",completedNodeColor:"var(--secondary-color)",completedNodeForeground:"#000000",selectedStrokeColor:"var(--hover-color)",pathOpacity:.5},maps:{},auth:{signedIn:!1},cloudState:{}};function He(e,t,a,r,n,i,o){var c,s,l=arguments.length>7&&void 0!==arguments[7]&&arguments[7],u=a.mapId,d=Ee(e,t,u,r);d||(d={isCompleted:!1,activityId:r,currentStep:i,maxSteps:o,headerId:n});var h=(null===(c=e.mapProgress)||void 0===c?void 0:c[t])||{};return Object(f.a)(Object(f.a)({},e),{},{mapProgress:Object(f.a)(Object(f.a)({},e.mapProgress),{},Object(p.a)({},t,Object(f.a)(Object(f.a)({},h),{},Object(p.a)({},u,Object(f.a)(Object(f.a)({},(null==h?void 0:h[u])||{mapId:u}),{},{activityState:Object(f.a)(Object(f.a)({},(null==h||null===(s=h[u])||void 0===s?void 0:s.activityState)||{}),{},Object(p.a)({},r,Object(f.a)(Object(f.a)({},d),{},{headerId:n,currentStep:i,maxSteps:o,isCompleted:d.isCompleted||l})))})))))})}function Fe(e,t,a,r){var n,i,o,c=a.mapId,s=!1,l={};r.forEach((function(r){var n=Ee(e,t,c,r);s=s||Me(a.activities[r])&&!(null==n?void 0:n.isCompleted),l[r]=n||{isCompleted:!0,activityId:r,headerId:"",currentStep:0},l[r].isCompleted=!0,l[r].completedTime=Date.now()}));var u=(null===(n=e.mapProgress)||void 0===n?void 0:n[t])||{};return Object(f.a)(Object(f.a)({},e),{},{mapProgress:Object(f.a)(Object(f.a)({},e.mapProgress),{},Object(p.a)({},t,Object(f.a)(Object(f.a)({},u),{},Object(p.a)({},c,Object(f.a)(Object(f.a)({},(null==u?void 0:u[c])||{mapId:c}),{},{activityState:Object(f.a)(Object(f.a)({},(null==u||null===(i=u[c])||void 0===i?void 0:i.activityState)||{}),l),completionState:s?"transitioning":null==u||null===(o=u[c])||void 0===o?void 0:o.completionState})))))})}function Ve(e,t){var a=[e.activities[t]],r=e.activities[t].next.filter((function(e){return Me(e)}));return a.concat(r)}function We(e,t){var a=[{type:"completion",currentMapId:e.mapId,currentActivityId:t}],r=e.activities[t];if(1===r.rewards.length&&"certificate"===r.rewards[0].type)return a[0].currentReward=r.rewards[0],a;var n,i=Object(d.a)(r.rewards);try{for(i.s();!(n=i.n()).done;){var o=n.value;a.push({type:"reward",currentMapId:e.mapId,currentActivityId:t,currentReward:o})}}catch(e){i.e(e)}finally{i.f()}return a}var ze,Ge,qe=Object(u.b)((function(){var e,t,a,r,n,i,o,c,s,l,u,d,Y,$=arguments.length>0&&void 0!==arguments[0]?arguments[0]:De,J=arguments.length>1?arguments[1]:void 0;switch(J.type){case h:return Object(f.a)(Object(f.a)({},$),{},{maps:Object(f.a)(Object(f.a)({},$.maps),{},Object(p.a)({},J.map.mapId,J.map))});case m:return Object(f.a)(Object(f.a)({},$),{},{maps:{}});case v:return Object(f.a)(Object(f.a)({},$),{},{title:De.title,description:De.description,infoUrl:De.infoUrl,backgroundImageUrl:void 0,bannerImageUrl:void 0,alternateSourceUrls:void 0,theme:Object(f.a)({},De.theme)});case g:return Object(f.a)(Object(f.a)({},$),{},{selectedItem:{mapId:J.mapId,activityId:J.activityId}});case y:return Object(f.a)(Object(f.a)({},$),{},{user:Object(f.a)(Object(f.a)({},$.user),{},{mapProgress:Object(f.a)(Object(f.a)({},$.user.mapProgress),{},Object(p.a)({},$.pageSourceUrl,Object(f.a)(Object(f.a)({},null===(e=$.user.mapProgress)||void 0===e?void 0:e[$.pageSourceUrl]),{},Object(p.a)({},J.mapId,Object(f.a)(Object(f.a)({},null===(t=$.user.mapProgress)||void 0===t||null===(a=t[$.pageSourceUrl])||void 0===a?void 0:a[J.mapId]),{},{completionState:"completed"})))))})});case k:return Object(f.a)(Object(f.a)({},$),{},{editorView:{currentMapId:J.mapId,currentActivityId:J.activityId,state:"active",allowCodeCarryover:!!J.carryoverCode,previousHeaderId:J.previousHeaderId,currentHeaderId:null===(r=Ee($.user,$.pageSourceUrl,J.mapId,J.activityId))||void 0===r?void 0:r.headerId}});case w:return Object(f.a)(Object(f.a)({},$),{},{editorView:Object(f.a)(Object(f.a)({},$.editorView),{},{state:"saving"})});case S:var Z=$.maps[$.editorView.currentMapId],ee=$.editorView.currentActivityId,te=J.finished?Ve(Z,ee):[],ae=te.find((function(e){return Me(e)})),re=ae&&(null===(n=$.user.mapProgress[$.pageSourceUrl])||void 0===n||null===(i=n[Z.mapId])||void 0===i?void 0:i.activityState[ae.activityId]);return Object(f.a)(Object(f.a)({},$),{},{selectedItem:ae&&!re?{mapId:Z.mapId,activityId:ae.activityId}:$.selectedItem,editorView:void 0,user:J.finished?Fe($.user,$.pageSourceUrl,Z,te.map((function(e){return e.activityId}))):$.user});case I:return Object(f.a)(Object(f.a)({},$),{},{modalQueue:[],editorView:{state:"active",currentMapId:J.mapId,currentActivityId:J.activityId,allowCodeCarryover:!!J.carryoverCode,previousHeaderId:J.previousHeaderId},user:He($.user,$.pageSourceUrl,$.maps[J.mapId],J.activityId)});case b:var ne=(null===(o=$.editorView)||void 0===o?void 0:o.currentActivityId)===J.activityId&&(null===(c=$.editorView)||void 0===c?void 0:c.currentMapId)===J.mapId;return Object(f.a)(Object(f.a)({},$),{},{editorView:ne?Object(f.a)(Object(f.a)({},$.editorView),{},{currentHeaderId:J.id}):$.editorView,user:He($.user,$.pageSourceUrl,$.maps[J.mapId],J.activityId,J.id,J.currentStep,J.maxSteps,J.isCompleted)});case x:var ie=$.pageSourceUrl,oe=Be(J.user,pxt.skillmap.USER_VERSION,ie,$.maps);return $.alternateSourceUrls&&(oe=_e(oe,ie,$.alternateSourceUrls)),oe.mapProgress[ie]||(oe.mapProgress[ie]={}),Object.keys($.maps).forEach((function(e){oe.mapProgress[ie][e]||(oe.mapProgress[ie][e]={completionState:"incomplete",mapId:e,activityState:{}})})),Object(f.a)(Object(f.a)({},$),{},{user:oe});case E:return pxt.storage.removeLocal($.pageSourceUrl+X),Object(f.a)(Object(f.a)({},$),{},{user:Object(f.a)(Object(f.a)({},$.user),{},{completedTags:Object(f.a)(Object(f.a)({},$.user.completedTags),{},Object(p.a)({},$.pageSourceUrl,{})),mapProgress:Object(f.a)(Object(f.a)({},$.user.mapProgress),{},Object(p.a)({},$.pageSourceUrl,{}))})});case C:return $.pageSourceUrl?Object(f.a)(Object(f.a)({},$),{},{user:Object(f.a)(Object(f.a)({},$.user),{},{completedTags:Object(f.a)(Object(f.a)({},$.user.completedTags),{},Object(p.a)({},$.pageSourceUrl,Ie($.user,$.pageSourceUrl,Object.keys($.maps).map((function(e){return $.maps[e]})))))})}):$;case q:return Object(f.a)(Object(f.a)({},$),{},{shareState:J.headerId||J.url?{headerId:J.headerId,url:J.url,rewardsShare:null===(s=$.shareState)||void 0===s?void 0:s.rewardsShare}:void 0});case K:return Object(f.a)(Object(f.a)({},$),{},{cloudState:Object(f.a)(Object(f.a)({},$.cloudState),{},Object(p.a)({},J.headerId,J.status))});case O:return Object(f.a)(Object(f.a)({},$),{},{title:J.title});case j:return Object(f.a)(Object(f.a)({},$),{},{description:J.description});case N:return Object(f.a)(Object(f.a)({},$),{},{infoUrl:J.infoUrl});case A:return Object(f.a)(Object(f.a)({},$),{},{backgroundImageUrl:J.backgroundImageUrl});case U:return Object(f.a)(Object(f.a)({},$),{},{bannerImageUrl:J.bannerImageUrl});case P:return Object(f.a)(Object(f.a)({},$),{},{theme:J.theme});case M:return Object(f.a)(Object(f.a)({},$),{},{pageSourceUrl:J.url,pageSourceStatus:J.status});case L:return Object(f.a)(Object(f.a)({},$),{},{alternateSourceUrls:J.urls});case R:return Object(f.a)(Object(f.a)({},$),{},{shareState:void 0!==J.rewardsShare?{headerId:(null===(l=$.shareState)||void 0===l?void 0:l.headerId)||"",url:null===(u=$.shareState)||void 0===u?void 0:u.url,rewardsShare:J.rewardsShare}:$.shareState,modalQueue:[J.modal]});case T:return Object(f.a)(Object(f.a)({},$),{},{modalQueue:J.modals});case B:return Object(f.a)(Object(f.a)({},$),{},{modalQueue:null===(d=$.modalQueue)||void 0===d?void 0:d.slice(1)});case _:return Object(f.a)(Object(f.a)({},$),{},{modalQueue:[]});case D:return Object(f.a)(Object(f.a)({},$),{},{modalQueue:We($.maps[J.mapId],J.activityId)});case z:return Object(f.a)(Object(f.a)({},$),{},{showProfile:!0});case G:return Object(f.a)(Object(f.a)({},$),{},{showProfile:!1});case F:return Object(f.a)(Object(f.a)({},$),{},{auth:Object(f.a)(Object(f.a)({},$.auth),{},{profile:J.profile,signedIn:!!(null===(Y=J.profile)||void 0===Y?void 0:Y.id)})});case V:return Object(f.a)(Object(f.a)({},$),{},{auth:Object(f.a)(Object(f.a)({},$.auth),{},{preferences:J.preferences})});case W:return Object(f.a)(Object(f.a)({},$),{},{auth:Object(f.a)(Object(f.a)({},$.auth),{},{signedIn:!1})});case Q:return Object(f.a)(Object(f.a)({},$),{},{readyResources:J.resources});case H:return Object(f.a)({},$);default:return $}})),Ke=a(16),Qe=a(4),Ye=a(5),$e=a(7),Je=a(6),Xe=a(46),Ze=a(17),et=function(e,t){return{type:g,mapId:e,activityId:t}},tt=function(e,t,a,r){return{type:k,mapId:e,activityId:t,previousHeaderId:a,carryoverCode:r}},at=function(){return{type:w}},rt=function(e,t,a,r){return{type:I,mapId:e,activityId:t,previousHeaderId:a,carryoverCode:r}},nt=function(e){return{type:V,preferences:e}},it=function(){return{type:z}},ot=function(){return{type:G}},ct=function(e,t){return{type:q,headerId:e,url:t}},st=function(e,t){return{type:D,mapId:e,activityId:t}},lt=function(e,t,a){return dt({type:"share",currentMapId:e,currentActivityId:t},a)},ut=function(){return dt({type:"login"})},dt=function(e,t){return{type:R,modal:e,rewardsShare:t}};function pt(){return Ge||(ze=new pxt.skillmap.IndexedDBWorkspace,Ge=ze.initAsync().then((function(e){return ze}))),Ge}function ft(){return ht.apply(this,arguments)}function ht(){return(ht=Object(J.a)($.a.mark((function e(){var t,a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pt();case 2:return t=e.sent,e.next=5,t.getUserStateAsync();case 5:return(a=e.sent)||(a={id:me(),completedTags:{},mapProgress:{},version:pxt.skillmap.USER_VERSION}),e.abrupt("return",a);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function mt(){return vt.apply(this,arguments)}function vt(){return(vt=Object(J.a)($.a.mark((function e(){var t,a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,ft();case 2:return t=e.sent,e.next=5,Ct();case 5:if(!e.sent){e.next=10;break}return e.next=8,Tt();case 8:a=e.sent,t=Object(f.a)(Object(f.a)({},t),{},{mapProgress:(null==a?void 0:a.mapProgress)||{},completedTags:(null==a?void 0:a.completedTags)||{}});case 10:return e.abrupt("return",t);case 11:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function gt(e){return yt.apply(this,arguments)}function yt(){return(yt=Object(J.a)($.a.mark((function e(t){var a,r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.isDebug){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,pt();case 4:return r=e.sent,e.next=7,null===(a=pxt.auth.client())||void 0===a?void 0:a.loggedInAsync();case 7:if(e.sent){e.next=10;break}return e.next=10,r.saveUserStateAsync(t);case 10:return e.next=12,Ut({mapProgress:t.mapProgress,completedTags:t.completedTags});case 12:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var bt,kt=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){return Object(Qe.a)(this,a),t.apply(this,arguments)}return Object(Ye.a)(a,[{key:"onSignedIn",value:function(){return Promise.resolve()}},{key:"onSignedOut",value:function(){return qe.dispatch({type:W}),Promise.resolve()}},{key:"onSignInFailed",value:function(){return Promise.resolve()}},{key:"onUserProfileChanged",value:function(){var e,t=this.getState();return t.profile&&pxt.auth.generateUserProfilePicDataUrl(t.profile),qe.dispatch((e=t.profile,{type:F,profile:e})),Promise.resolve()}},{key:"onUserPreferencesChanged",value:function(e){return Promise.resolve()}},{key:"onStateCleared",value:function(){return Promise.resolve()}},{key:"onProfileDeleted",value:function(){var e=Object(J.a)($.a.mark((function e(t){var a,r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=qe.getState(),e.next=3,null===(a=r.readyResources)||void 0===a?void 0:a.exportCloudProjectsToLocal(t);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()},{key:"onApiError",value:function(e){return Promise.resolve()}},{key:"logoutAsync",value:function(){var e=Object(J.a)($.a.mark((function e(t){var r,n;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=qe.getState(),n=r.user,e.next=4,gt(n);case 4:Object(Xe.a)(Object(Ze.a)(a.prototype),"logoutAsync",this).call(this,t);case 5:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()}]),a}(pxt.auth.AuthClient);function St(){return wt.apply(this,arguments)}function wt(){return(wt=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(pxt.auth.hasIdentity()){e.next=2;break}return e.abrupt("return",void 0);case 2:if(!bt){e.next=4;break}return e.abrupt("return",bt);case 4:return bt=new Promise(function(){var e=Object(J.a)($.a.mark((function e(t,a){var r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=new kt,e.next=3,r.initAsync();case 3:return e.next=5,r.authCheckAsync();case 5:return e.next=7,r.initialUserPreferencesAsync();case 7:t(r);case 8:case"end":return e.stop()}}),e)})));return function(t,a){return e.apply(this,arguments)}}()),e.abrupt("return",bt);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function It(){return xt.apply(this,arguments)}function xt(){return(xt=Object(J.a)($.a.mark((function e(){var t;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:return t=e.sent,e.next=5,null==t?void 0:t.authCheckAsync();case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ct(){return Et.apply(this,arguments)}function Et(){return(Et=Object(J.a)($.a.mark((function e(){var t;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:return t=e.sent,e.next=5,null==t?void 0:t.loggedInAsync();case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ot(e){return jt.apply(this,arguments)}function jt(){return(jt=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pxt.auth.loginCallbackAsync(t);case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Nt(e){return At.apply(this,arguments)}function At(){return(At=Object(J.a)($.a.mark((function e(t){var a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:return a=e.sent,e.next=5,null==a?void 0:a.logoutAsync(t);case 5:return e.abrupt("return",e.sent);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ut(e){return Pt.apply(this,arguments)}function Pt(){return(Pt=Object(J.a)($.a.mark((function e(t){var a,r,n;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:return a=e.sent,r=qe.getState(),n=r.pageSourceUrl,e.next=7,null==a?void 0:a.patchUserPreferencesAsync({op:"replace",path:["skillmap"],value:t},{filter:function(e){return e.path.includes(n)}});case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Mt(e,t){return Lt.apply(this,arguments)}function Lt(){return(Lt=Object(J.a)($.a.mark((function e(t,a){var r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:return r=e.sent,a=a.filter((function(e){return!t.some((function(t){return pxt.auth.badgeEquals(t,e)}))})),t=t.map((function(e){return Object(f.a)(Object(f.a)({},e),{},{timestamp:Date.now()})})),e.next=7,null==r?void 0:r.patchUserPreferencesAsync({op:"replace",path:["badges"],value:{badges:[].concat(Object(Ke.a)(a),Object(Ke.a)(t))}});case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Tt(){return Rt.apply(this,arguments)}function Rt(){return(Rt=Object(J.a)($.a.mark((function e(){var t,a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:if(!(t=e.sent)){e.next=8;break}return e.next=6,t.userPreferencesAsync();case 6:return a=e.sent,e.abrupt("return",null==a?void 0:a.skillmap);case 8:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Bt(){return _t.apply(this,arguments)}function _t(){return(_t=Object(J.a)($.a.mark((function e(){var t,a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:if(!(t=e.sent)){e.next=9;break}return e.next=6,t.userPreferencesAsync();case 6:if(!(a=e.sent)){e.next=9;break}return e.abrupt("return",a.badges);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Dt(){return Ht.apply(this,arguments)}function Ht(){return(Ht=Object(J.a)($.a.mark((function e(){var t;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,St();case 2:if(!(t=e.sent)){e.next=7;break}return e.next=6,t.userPreferencesAsync();case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Ft(e){return Vt.apply(this,arguments)}function Vt(){return(Vt=Object(J.a)($.a.mark((function e(t){var a,r,n=arguments;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=n.length>1&&void 0!==n[1]?n[1]:{},e.next=3,St();case 3:return r=e.sent,e.next=6,null==r?void 0:r.patchUserPreferencesAsync(t,a);case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function Wt(){return(Wt=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ft({op:"replace",path:["email"],value:t},{immediate:!0});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function zt(){return(zt=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ft({op:"replace",path:["highContrast"],value:t},{immediate:!0});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var Gt=a(10),qt=a(24),Kt=a(29),Qt=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){var e;Object(Qe.a)(this,a);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return(e=t.call.apply(t,[this].concat(n))).reportAbuseUrl="https://github.com/contact/report-content",e.avatarPicUrl=function(){var t,a,r,n,i=e.props.profile;return null!==(t=null==i||null===(a=i.idp)||void 0===a?void 0:a.pictureUrl)&&void 0!==t?t:null==i||null===(r=i.idp)||void 0===r||null===(n=r.picture)||void 0===n?void 0:n.dataUrl},e.onBackClicked=function(){var t=e.props;be("skillmap.activity.back",{path:t.currentMapId||"",activity:t.currentActivityId||""}),e.props.dispatchSaveAndCloseActivity()},e.onHomeClicked=function(){var e;be("skillmap.home");var t,a,r=null===(e=pxt.webConfig)||void 0===e?void 0:e.relprefix.substr(0,pxt.webConfig.relprefix.length-3);pxt.appTarget.appTheme.homeUrl&&r?((null===(t=pxt.appTarget.appTheme.homeUrl)||void 0===t?void 0:t.lastIndexOf("/"))===(null===(a=pxt.appTarget.appTheme.homeUrl)||void 0===a?void 0:a.length)-1&&(r=r.substr(1)),window.open(pxt.appTarget.appTheme.homeUrl+r)):window.open(pxt.appTarget.appTheme.homeUrl)},e.onBugClicked=function(){var e,t;be("skillmap.bugreport"),null===(e=(t=window).usabilla_live)||void 0===e||e.call(t,"click")},e.onLogoutClicked=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return pxt.tickEvent("skillmap.usermenu.signout"),e.next=3,Nt(location.hash);case 3:case"end":return e.stop()}}),e)}))),e.onProfileClicked=function(){pxt.tickEvent("skillmap.profile"),e.props.dispatchShowUserProfile()},e}return Object(Ye.a)(a,[{key:"getSettingItems",value:function(){var e=this,t=[];if(this.props.preferences){var a,r=null===(a=this.props.preferences)||void 0===a?void 0:a.highContrast;t.push({id:"highcontrast",title:r?lf("High Contrast Off"):lf("High Contrast On"),label:r?lf("High Contrast Off"):lf("High Contrast On"),onClick:function(){var t=!e.props.preferences.highContrast;be("skillmap.highcontrast",{on:t?1:0}),function(e){zt.apply(this,arguments)}(t),e.props.dispatchSetUserPreferences(Object(f.a)(Object(f.a)({},e.props.preferences),{},{highContrast:t}))}})}return this.props.showReportAbuse&&t.push({id:"report",title:lf("Report Abuse"),label:lf("Report Abuse"),onClick:function(){be("skillmap.reportabuse"),window.open(e.reportAbuseUrl)}}),this.props.activityOpen||t.push({id:"reset",title:lf("Reset All"),label:lf("Reset All"),onClick:function(){be("skillmap.reset.warning"),e.props.dispatchShowResetUserModal()}}),t}},{key:"getOrganizationLogo",value:function(e){var t=e.organizationWideLogo;return i.createElement("div",{className:"header-logo"},t?i.createElement("img",{src:ve()?"./assets/".concat(t):t,alt:lf("{0} Logo",e.organization)}):i.createElement("span",{className:"name"},e.organization))}},{key:"getTargetLogo",value:function(e){var t=this.props.activityOpen;return i.createElement("div",{className:"ui item logo brand ".concat(t?"":"noclick")},e.useTextLogo?[i.createElement("span",{className:"name",key:"org-name",onClick:this.onBackClicked},e.organizationText),i.createElement("span",{className:"name-short",key:"org-name-short",onClick:this.onBackClicked},e.organizationShortText||e.organizationText)]:e.logo||e.portraitLogo?i.createElement("img",{className:"logo",src:e.logo||e.portraitLogo,alt:lf("{0} Logo",e.boardName)}):i.createElement("span",{className:"name"}," ",e.boardName))}},{key:"getHelpItems",value:function(){var e=[];return this.props.activityOpen&&e.push({id:"feedback",title:lf("Feedback"),label:lf("Feedback"),onClick:this.onBugClicked}),e}},{key:"getUserMenu",value:function(){var e=this,t=this.props,a=t.signedIn,r=t.profile,n=[];a&&(n.push({id:"profile",title:lf("My Profile"),label:lf("My Profile"),onClick:this.onProfileClicked}),n.push({id:"signout",title:lf("Sign Out"),label:lf("Sign Out"),onClick:this.onLogoutClicked}));var o=this.avatarPicUrl()?i.createElement("div",{className:"avatar"},i.createElement("img",{src:this.avatarPicUrl(),"aria-hidden":"true",alt:lf("Profile Image")})):void 0,c=i.createElement("span",null,i.createElement("div",{className:"avatar-initials","aria-hidden":"true"},pxt.auth.userInitials(r)));return i.createElement("div",{className:"user-menu"},a?i.createElement(Kt.MenuDropdown,{id:"profile-dropdown",items:n,label:o||c,title:lf("Profile Settings")}):i.createElement(Gt.Button,{className:"menu-button inverted",rightIcon:"xicon cloud-user",title:lf("Sign In"),label:lf("Sign In"),onClick:function(){pxt.tickEvent("skillmap.usermenu.signin"),e.props.dispatchShowLoginModal()}}))}},{key:"render",value:function(){var e,t=this.props.activityOpen,a=pxt.auth.hasIdentity(),r=null===(e=pxt.appTarget)||void 0===e?void 0:e.appTheme,n=this.getSettingItems(),o=this.getHelpItems();return i.createElement(qt.MenuBar,{className:"header",ariaLabel:lf("Header")},i.createElement("div",{className:"header-left"},this.getOrganizationLogo(r),this.getTargetLogo(r)),i.createElement("div",{className:"spacer"}),i.createElement("div",{className:"header-right"},t&&i.createElement(Gt.Button,{className:"menu-button",leftIcon:"fas fa-arrow-left large",title:lf("Return to activity selection"),onClick:this.onBackClicked}),i.createElement(Gt.Button,{className:"menu-button",leftIcon:"fas fa-home large",title:lf("Return to the editor homepage"),onClick:this.onHomeClicked}),(null==o?void 0:o.length)>0&&i.createElement(Kt.MenuDropdown,{id:"skillmap-help",title:lf("Help menu"),icon:"fas fa-question-circle large",items:o}),(null==n?void 0:n.length)>0&&i.createElement(Kt.MenuDropdown,{id:"settings-help",title:lf("Settings menu"),icon:"fas fa-cog large",items:n}),a&&this.getUserMenu()))}}]),a}(i.Component),Yt={dispatchSaveAndCloseActivity:at,dispatchShowResetUserModal:function(){return dt({type:"reset"})},dispatchShowLoginModal:ut,dispatchShowUserProfile:it,dispatchSetUserPreferences:nt},$t=Object(l.b)((function(e,t){var a,r,n,i;if(!e)return{};(null===(a=e.editorView)||void 0===a?void 0:a.currentHeaderId)&&Se(e.user,e.pageSourceUrl,e.editorView.currentMapId,e.editorView.currentActivityId)&&e.editorView.currentHeaderId;var o,c=!!e.editorView;return(null===(r=e.editorView)||void 0===r?void 0:r.currentActivityId)&&(null===(o=e.maps[e.editorView.currentMapId])||void 0===o||o.activities[e.editorView.currentActivityId]),{activityOpen:c,currentMapId:c&&(null===(n=e.editorView)||void 0===n?void 0:n.currentMapId),currentActivityId:c&&(null===(i=e.editorView)||void 0===i?void 0:i.currentActivityId),showReportAbuse:"unknown"===e.pageSourceStatus,signedIn:e.auth.signedIn,profile:e.auth.profile,preferences:e.auth.preferences}}),Yt)(Qt),Jt=a(47),Xt=(a(64),a(65),ve()?"http://localhost:3232/index.html":function(e){var t,a;if(!pxt.webConfig&&window.pxtConfig&&pxt.setupWebConfig(window.pxtConfig),(null===(t=pxt.webConfig)||void 0===t?void 0:t.targetUrl)&&(null===(a=pxt.webConfig)||void 0===a?void 0:a.relprefix))return pxt.webConfig.targetUrl+pxt.webConfig.relprefix.substr(0,pxt.webConfig.relprefix.length-3);var r=/\/([\da-zA-Z\.]+)(?:--)?/i.exec(window.location.pathname);return"".concat(e.replace(/\/$/,""),"/").concat((null==r?void 0:r[1])||"")}(window.pxtTargetBundle.appTheme.embedUrl)),Zt=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).ref=void 0,r.messageQueue=[],r.finishedActivityState=void 0,r.nextId=0,r.pendingMessages={},r.isNewActivity=!1,r.handleFrameRef=function(e){if(e&&e.contentWindow){window.addEventListener("message",r.onMessageReceived),e.addEventListener("load",r.handleFrameReload),r.ref=e,ea(".usabilla_live_button_container",!1),ea("footer",!1);var t=document.getElementById("root");t&&pxt.BrowserUtils.addClass(t,"editor")}},r.handleFrameReload=function(){r.setState({frameState:"loading"})},r.onMessageReceived=function(e){var t=e.data;if("opening-project"===r.state.frameState&&r.setState({loadPercent:Math.min((r.state.loadPercent||0)+4,95)}),"pxteditor"===t.type&&t.id&&r.pendingMessages[t.id])return r.pendingMessages[t.id].handler(t),void delete r.pendingMessages[t.id];switch(t.action){case"newproject":r.state.workspaceReady||(r.setState({workspaceReady:!0}),r.sendMessageAsync(),r.props.onWorkspaceReady((function(e){return r.sendMessageAsync(e)}))),"loading"===r.state.frameState&&r.setState({frameState:"no-project"});break;case"tutorialevent":r.handleTutorialEvent(t);break;case"projectcloudstatus":var a=t;r.props.dispatchSetCloudStatus(a.headerId,a.status)}},r.state={frameState:"loading",workspaceReady:!1,loadPercent:0,pendingShare:!1},r}return Object(Ye.a)(a,[{key:"UNSAFE_componentWillReceiveProps",value:function(e){this.props.highContrast!=e.highContrast&&this.sendMessageAsync({type:"pxteditor",action:"sethighcontrast",on:e.highContrast})}},{key:"componentDidUpdate",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r,n,i,o=this;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:t=this.props,a=t.shareHeaderId,t.highContrast,r=this.state,n=r.frameState,i=r.pendingShare,"project-open"===n&&this.props.save?this.setState({frameState:"closing-project"},Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.closeActivityAsync();case 2:case"end":return e.stop()}}),e)})))):"no-project"===n&&this.props.activityId&&this.setState({frameState:"opening-project",loadPercent:0},Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.startActivityAsync();case 2:case"end":return e.stop()}}),e)})))),a&&!i&&this.setState({pendingShare:!0},Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,o.shareProjectAsync();case 2:case"end":return e.stop()}}),e)}))));case 4:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"componentWillUnmount",value:function(){window.removeEventListener("message",this.onMessageReceived),ea(".usabilla_live_button_container",!0),ea("footer",!0);var e=document.getElementById("root");e&&pxt.BrowserUtils.removeClass(e,"editor")}},{key:"render",value:function(){var e=this.props,t=e.title,a=e.activityId,r=this.state,n=r.frameState,o=r.loadPercent,c=lf("Loading..."),s="opening-project"===n,l=s||"closing-project"===n,u=Xt;return"/"!==Xt.charAt(Xt.length-1)||ve()||(u=Xt.substr(0,Xt.length-1)),u+="?controller=1&skillsMap=1&noproject=1&nocookiebanner=1&ws=browser",i.createElement("div",{className:"makecode-frame-outer",style:{display:a?"block":"none"}},i.createElement("div",{className:"makecode-frame-loader ".concat(l?"":"hidden")},i.createElement("img",{src:ge("assets/logo.svg"),alt:"MakeCode Logo"}),s&&i.createElement("div",{className:"makecode-frame-loader-bar"},i.createElement("div",{className:"makecode-frame-loader-fill",style:{width:o+"%"}})),i.createElement("div",{className:"makecode-frame-loader-text"},c)),i.createElement("iframe",{className:"makecode-frame",src:u,title:t,ref:this.handleFrameRef}))}},{key:"sendMessageAsync",value:function(e){var t=this;return new Promise((function(a){var r=function(e){e.response=!0,e.id=t.nextId+++"",t.pendingMessages[e.id]={original:e,handler:a},t.ref.contentWindow.postMessage(e,"*")};if(t.ref)if(t.state.workspaceReady){for(;t.messageQueue.length;)r(t.messageQueue.shift());e&&r(e)}else t.messageQueue.push(e)}))}},{key:"startActivityAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.props.activityHeaderId){e.next=5;break}return e.next=3,this.sendMessageAsync({type:"pxteditor",action:"openheader",headerId:this.props.activityHeaderId});case 3:e.next=8;break;case 5:return this.isNewActivity=!0,e.next=8,this.sendMessageAsync({type:"pxteditor",action:"startactivity",path:this.props.tutorialPath,title:this.props.title,activityType:"tutorial",carryoverPreviousCode:this.props.carryoverCode,previousProjectHeaderId:this.props.previousHeaderId});case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"closeActivityAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.sendMessageAsync({type:"pxteditor",action:"saveproject"});case 2:return this.props.dispatchCloseActivity("finished"===this.finishedActivityState),this.props.dispatchUpdateUserCompletedTags(),this.finishedActivityState=void 0,e.next=7,this.sendMessageAsync({type:"pxteditor",action:"unloadproject"});case 7:this.setState({frameState:"no-project"});case 8:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"shareProjectAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r,n;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=this.props,a=t.shareHeaderId,r=t.dispatchSetShareStatus,e.next=3,this.sendMessageAsync({type:"pxteditor",action:"shareproject",headerId:a});case 3:n=e.sent,r(a,n.resp.shortid),this.setState({pendingShare:!1});case 6:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"handleTutorialEvent",value:function(e){var t=this.props,a=t.dispatchSetHeaderIdForActivity,r=t.dispatchSaveAndCloseActivity,n=t.mapId,i=t.activityId,o=t.progress;switch(e.tutorialEvent){case"progress":i&&a(n,i,e.projectHeaderId,e.currentStep+1,e.totalSteps,e.isCompleted||!!(null==o?void 0:o.isCompleted));break;case"loaded":this.onEditorLoaded();break;case"completed":this.onTutorialFinished();break;case"exit":r()}}},{key:"onEditorLoaded",value:function(){var e=this.props,t=e.mapId,a=e.activityId;t&&a&&(be("skillmap.activity.loaded",{path:t,activity:a}),this.setState({frameState:"project-open"}),this.isNewActivity&&(this.isNewActivity=!1))}},{key:"onTutorialFinished",value:function(){var e=this.props,t=e.mapId,a=e.activityId,r=e.signedIn,n=e.pageSourceUrl;be("skillmap.activity.complete",{path:t,activity:a}),this.finishedActivityState="finished",this.props.dispatchSaveAndCloseActivity();var i=pxt.storage.getLocal(n+X);r||i||(this.props.dispatchShowLoginPrompt(),pxt.storage.setLocal(n+X,"true"))}}]),a}(i.Component);function ea(e,t){var a=document.querySelector(e);(null==a?void 0:a.style)&&(a.style.display=t?"":"none")}var ta={dispatchSetHeaderIdForActivity:function(e,t,a,r,n,i){return{type:b,mapId:e,activityId:t,id:a,currentStep:r,maxSteps:n,isCompleted:i}},dispatchCloseActivity:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return{type:S,finished:e}},dispatchSaveAndCloseActivity:at,dispatchUpdateUserCompletedTags:function(){return{type:C}},dispatchSetShareStatus:ct,dispatchShowLoginPrompt:function(){return dt({type:"login-prompt"})},dispatchSetCloudStatus:function(e,t){return{type:K,headerId:e,status:t}}},aa=Object(l.b)((function(e,t){var a,r,n,i=(null===(a=e.shareState)||void 0===a?void 0:a.url)||null===(r=e.shareState)||void 0===r?void 0:r.headerId;if(!e||!e.editorView)return{shareHeaderId:i};var o,c=e.editorView,s=c.currentActivityId,l=c.currentMapId,u=c.currentHeaderId,d=c.state,p=c.allowCodeCarryover,f=c.previousHeaderId,h=e.maps[l],m=null==h?void 0:h.activities[s];o=null==m?void 0:m.displayName;var v=Ee(e.user,e.pageSourceUrl,l,s);return{tutorialPath:m.url,title:o,mapId:l,activityId:s,activityHeaderId:u,activityType:m.type,carryoverCode:p,previousHeaderId:f,progress:v,save:"saving"===d,shareHeaderId:i,signedIn:e.auth.signedIn,highContrast:null===(n=e.auth.preferences)||void 0===n?void 0:n.highContrast,pageSourceUrl:e.pageSourceUrl}}),ta)(Zt),ra=a(13),na=a(11),ia=a(22),oa=a(32),ca=a(43),sa=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).handleOnClose=function(){r.setState({loading:!1,data:void 0,checkboxSelected:!1}),r.props.dispatchHideModal(),r.props.dispatchSetShareStatus()},r.handleRewardShareClick=function(){var e=r.props,t=e.mapId,a=e.userState,n=e.pageSourceUrl,i=e.skillMap,o=e.activity,c=(e.shareState,Ae(a,n,i,o.activityId));c&&r.props.dispatchShowShareModal(t,c.activityId,!0)},r.handleShareCopyClick=function(){var e=r.props;be("skillmap.share.copy",{path:e.mapId,activity:e.activity.activityId});var t=document.querySelector(".share-input input");t&&(t.select(),document.execCommand("copy"))},r.state={},r}return Object(Ye.a)(a,[{key:"render",value:function(){var e=this.props,t=e.activity;switch(e.type){case"completion":return t?this.renderCompletionModal():i.createElement("div",null);case"restart-warning":return t?this.renderRestartWarning():i.createElement("div",null);case"report-abuse":return this.renderReportAbuse();case"reset":return this.renderResetWarning();case"carryover":return this.renderCodeCarryoverModal();case"share":return this.renderShareModal();case"login":return this.renderLoginModal(!1);case"login-prompt":return this.renderLoginModal(!0);case"delete-account":return this.renderDeleteAccountModal();case"reward":return this.renderRewardModal();default:return i.createElement("div",null)}}},{key:"getCompletionActionText",value:function(e){switch(e.kind){case"activity":return lf("Start Activity");case"map":return lf("Start Skill Map");case"editor":return lf("Keep Building");case"tutorial":return lf("Start Tutorial");case"docs":default:return lf("Learn More")}}},{key:"getCompletionActions",value:function(e){var t=this,a=this.props,r=a.userState,n=a.pageSourceUrl,i=a.mapId,o=a.skillMap,c=a.activity,s=a.dispatchOpenActivity,l=a.dispatchShowCarryoverModal,u=c,d=[];return null==e||e.forEach((function(e){var a={label:e.label||t.getCompletionActionText(e),url:e.url};switch(e.kind){case"activity":var p=null==o?void 0:o.activities[e.activityId||""];p&&(a.onClick=function(){be("skillmap.reward.action.activity",{path:i,activity:u.activityId,nextActivityId:p.activityId}),t.handleOnClose(),Ue(r,n,o,p)?l(o.mapId,p.activityId):s(i,p.activityId)},d.push(a));break;case"editor":var f=Ae(r,n,o,c.activityId);(null==f?void 0:f.headerId)&&(a.onClick=function(){be("skillmap.reward.action.editor",{path:i,activity:u.activityId}),window.open("".concat(Xt,"#skillmapimport:").concat(f.headerId))},d.push(a));break;case"tutorial":case"map":case"docs":default:a.onClick=function(){return be("skillmap.reward.action.".concat(e.kind),{path:i,activity:u.activityId,url:a.url||""})},d.push(a)}})),d}},{key:"renderConfetti",value:function(){return Array(100).fill(0).map((function(e,t){var a={animationDelay:"".concat(t%100*.1,"s"),left:"".concat(1*Math.floor(100*Math.random()),"%")};return i.createElement("div",{key:t,style:a,className:"confetti ".concat(Math.random()>.5?"reverse":""," color-").concat(Math.floor(9*Math.random()))})}))}},{key:"renderCompletionModal",value:function(){var e=this.props,t=e.skillMap,a=e.type,r=e.activity,n=e.userState,o=e.pageSourceUrl,c=e.dispatchNextModal,s=e.reward,l=e.mapId;if(!a||!t)return i.createElement("div",null);var u=r,d=lf("You Did It!"),p=lf("Congratulations on completing {0}. Take some time to explore any activities you missed, or reset your progress to try again. But first, be sure to claim your reward using the button below.","{0}").split("{0}"),f=Ae(n,o,t,r.activityId),h=s?function(){be("skillmap.openCertificate",{path:l,activity:r.activityId}),window.open(s.url||t.completionUrl)}:c;return i.createElement("div",{className:"confetti-container"},i.createElement(ra.Modal,{title:d,actions:this.getCompletionActions(u.actions),className:"completion",onClose:this.handleOnClose},p[0],i.createElement("strong",null,t.displayName),p[1],i.createElement(Gt.Button,{className:"primary completion-reward",title:lf("Claim your reward!"),label:lf("Claim your reward!"),leftIcon:"fas fa-gift",onClick:h}),f&&f.headerId&&i.createElement(Gt.Button,{className:"primary completion-reward",title:lf("Share your game!"),label:lf("Share your game!"),leftIcon:"fas fa-share",onClick:this.handleRewardShareClick})),this.renderConfetti())}},{key:"renderRestartWarning",value:function(){var e=this.props,t=e.userState,a=e.pageSourceUrl,r=e.skillMap,n=e.mapId,o=e.activity,c=e.dispatchRestartActivity,s=e.showCodeCarryoverModal,l=(e.dispatchShowCarryoverModal,lf("Restart Activity?")),u=lf("Are you sure you want to restart {0}? You won't lose your path progress but the code you have written for this activity will be deleted.","{0}").split("{0}"),d=[{label:lf("CANCEL"),onClick:this.handleOnClose},{label:lf("RESTART"),onClick:function(){if(be("skillmap.activity.restart",{path:n,activity:o.activityId}),s){var e=Ae(t,a,r,o.activityId);c(n,o.activityId,e.headerId,!!e.headerId)}else c(n,o.activityId)}}];return i.createElement(ra.Modal,{title:l,actions:d,onClose:this.handleOnClose},u[0],i.createElement("strong",null,o.displayName),u[1])}},{key:"renderResetWarning",value:function(){var e=this.props,t=e.dispatchResetUser,a=e.dispatchHideModal,r=lf("Reset All Activities?"),n=lf("Are you sure you want to reset? This will permanently erase all progress and delete the project created for each tutorial. This action cannot be undone."),o=[{label:lf("CANCEL"),onClick:this.handleOnClose},{label:lf("RESET"),onClick:function(){be("skillmap.reset"),t(),a()}}];return i.createElement(ra.Modal,{title:r,actions:o,onClose:this.handleOnClose},n)}},{key:"renderReportAbuse",value:function(){var e=this.props,t=e.pageSourceUrl,a=e.dispatchHideModal,r=[{label:"REPORT",onClick:function(){be("skillmap.reportabuse"),function(e,t){pe.apply(this,arguments)}(t||"",{text:document.querySelector(".report-abuse-text").value}),a()}}];return i.createElement(ra.Modal,{title:"Report Abuse",actions:r,onClose:this.handleOnClose},i.createElement("textarea",{className:"report-abuse-text",placeholder:"Describe the content and explain why you are reporting it for abuse. Provide as much detail as possible!"}))}},{key:"renderCodeCarryoverModal",value:function(){var e=this.props,t=e.skillMap,a=e.activity,r=e.pageSourceUrl,n=e.userState,o=e.dispatchHideModal,c=e.dispatchRestartActivity,s=lf("Keep code from previous activity?"),l=lf("Do you want to start with your code from {0} or start fresh with starter code? Your images, tilemaps, tiles, and animations will stick around either way.").split("{0}"),u=Ae(n,r,t,a.activityId),d=t.activities[null==u?void 0:u.activityId];if(!d)return i.createElement("div",null);var p=[{label:lf("START FRESH"),onClick:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:be("skillmap.startfresh",{path:t.mapId,activity:a.activityId,previousActivity:d.activityId}),c(t.mapId,a.activityId,u.headerId,!1),o();case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},{label:lf("KEEP CODE"),onClick:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:be("skillmap.keepcode",{path:t.mapId,activity:a.activityId,previousActivity:d.activityId}),c(t.mapId,a.activityId,u.headerId,!0),o();case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()}];return i.createElement(ra.Modal,{title:s,actions:p,onClose:this.handleOnClose},l[0],i.createElement("strong",null,d.displayName),l[1])}},{key:"renderShareModal",value:function(){var e=this,t=this.props,a=t.userState,r=t.pageSourceUrl,n=t.mapId,o=t.activity,c=t.shareState,s=t.dispatchSetShareStatus,l=this.state.loading,u=null==c?void 0:c.url,d=u?lf("Share Project"):lf("Publish Project"),p=[];return u||(p.push({label:lf("Cancel"),onClick:this.handleOnClose}),p.push({label:lf("Publish"),onClick:function(){var t=Object(J.a)($.a.mark((function t(){var i;return $.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:be("skillmap.share",{path:n,activity:o.activityId}),e.setState({loading:!0}),i=Ee(a,r,n,o.activityId),s(null==i?void 0:i.headerId);case 4:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()})),i.createElement(ra.Modal,{title:d,actions:p,onClose:this.handleOnClose},u?i.createElement("div",null,lf("Your project is ready! Use the address below to share your projects.")):i.createElement("div",{className:"share-disclaimer"},lf("You need to publish your project to share it or embed it in other web pages. You acknowledge having consent to publish this project.")),l&&!u&&i.createElement("div",{className:"share-loader"},i.createElement("div",{className:"common-spinner"}),i.createElement("span",null,lf("Loading..."))),u&&i.createElement(ca.Input,{type:"text",className:"share-input",ariaLabel:"Generated shareable URL for project",initialValue:"https://makecode.com/".concat(u),icon:"fas fa-copy",iconTitle:"Copy project URL",readOnly:!0,autoComplete:!1,selectOnClick:!0,onIconClick:this.handleShareCopyClick}),u&&(null==c?void 0:c.rewardsShare)&&i.createElement("div",null,this.renderConfetti()))}},{key:"renderLoginModal",value:function(e){var t,a=this,r=null!==(t=this.state.checkboxSelected)&&void 0!==t&&t,n=lf("Sign in icon"),o=pxt.auth.identityProvider("microsoft"),c=[];return c.push({label:lf("Sign In"),onClick:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:pxt.tickEvent("skillmap.signindialog.signin",{provider:o.name?o.name:"",rememberMe:r.toString()}),pxt.auth.client().loginAsync(o.id,r,{hash:location.hash});case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()}),i.createElement(ra.Modal,{title:e?lf("Save your Completed Activity"):lf("Sign into MakeCode Arcade"),onClose:this.handleOnClose,actions:c,className:"sign-in"},i.createElement("div",{className:"description"},i.createElement("p",null,lf("Sign in with your Microsoft Account. We'll save your projects to the cloud, where they're accessible from anywhere.")),i.createElement("div",{className:"container"},e&&i.createElement("img",{src:ge("/assets/cloud-user.svg"),alt:n,className:"icon cloud-user"}),i.createElement("p",null,lf("Don't have a Microsoft Account? Start signing in to create one!"),i.createElement("a",{href:"https://aka.ms/cloudsave",target:"_blank",onClick:function(){be("skillmap.signindialog.learn"),window.open("https://aka.ms/cloudsave","_blank")}},i.createElement("i",{className:"fas fa-external-link-alt","aria-hidden":!0}),lf("Learn more")))),i.createElement("div",{className:"remember"},i.createElement(oa.Checkbox,{id:"sign-in-remember-me",label:lf("Remember me"),onChange:function(e){be("skillmap.signindialog.rememberme",{rememberMe:e.toString()}),a.setState({checkboxSelected:e})},isChecked:r}))))}},{key:"handleSigninClick",value:function(){var e=Object(J.a)($.a.mark((function e(t){var a,r;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=null!==(a=this.state.checkboxSelected)&&void 0!==a&&a,pxt.tickEvent("skillmap.signindialog.signin",{provider:t.id,rememberMe:r.toString()}),e.next=4,pxt.auth.client().loginAsync(t.id,r,{hash:location.hash});case 4:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}()},{key:"handleRememberMeClick",value:function(){var e,t=!(null!==(e=this.state.checkboxSelected)&&void 0!==e&&e);be("skillmap.signindialog.rememberme",{rememberMe:t.toString()}),this.setState({checkboxSelected:t})}},{key:"renderDeleteAccountModal",value:function(){var e=this,t=this.state.checkboxSelected,a=[];return a.push({label:lf("Confirm"),disabled:!t,onClick:function(){var a=Object(J.a)($.a.mark((function a(){return $.a.wrap((function(a){for(;;)switch(a.prev=a.next){case 0:if(!t){a.next=7;break}return be("skillmap.profile.delete"),e.props.dispatchHideModal(),e.props.dispatchCloseUserProfile(),a.next=6,pxt.auth.client().deleteProfileAsync();case 6:location.reload();case 7:case"end":return a.stop()}}),a)})));return function(){return a.apply(this,arguments)}}()}),a.push({label:lf("Back to safety"),onClick:this.props.dispatchHideModal}),i.createElement(ra.Modal,{title:lf("Delete Profile"),className:"delete",actions:a,onClose:this.handleOnClose},i.createElement("div",null," ",lf("Are you sure? This cannot be reversed! Your cloud-saved projects will be converted to local projects on this device.")),i.createElement("div",{className:"confirm-delete checkbox",onClick:function(){e.setState({checkboxSelected:!t})}},i.createElement("i",{className:"far ".concat(t?"fa-check-square":"fa-square")}),lf("I understand this is permanent. No undo.")))}},{key:"renderRewardModal",value:function(){var e,t=this.props.reward;return"certificate"===(null==t?void 0:t.type)?e=this.renderCertificateModal(t):"completion-badge"===(null==t?void 0:t.type)&&(e=this.renderBadgeModal(t)),i.createElement("div",{className:"confetti-container"},e,this.renderConfetti())}},{key:"renderCertificateModal",value:function(e){var t=lf("Rewards"),a=this.props,r=a.mapId,n=a.skillMap,o=a.activity,c=a.hasPendingModals,s=a.dispatchNextModal,l=[];return l.push({label:lf("Open Certificate"),className:"completion-reward inverted",icon:"file outline",onClick:function(){be("skillmap.openCertificate",{path:r,activity:o.activityId}),window.open(e.url||n.completionUrl)}}),c&&l.push({label:lf("Next Reward"),className:"completion-reward",icon:"right circle arrow",onClick:function(){be("skillmap.nextReward",{path:r,activity:o.activityId,currentReward:e.type}),s()}}),i.createElement(ra.Modal,{title:t,onClose:this.handleOnClose,actions:l},lf("Use the button below to get your completion certificate!"),e.previewUrl&&i.createElement("div",{className:"certificate-reward"},i.createElement("img",{src:e.previewUrl,alt:lf("certificate Preview")})))}},{key:"renderBadgeModal",value:function(e){var t,a=lf("Rewards"),r=this.props,n=r.mapId,o=r.skillMap,c=r.activity,s=r.hasPendingModals,l=r.badge,u=r.dispatchNextModal,d=r.dispatchShowUserProfile,p=r.dispatchHideModal,f=r.signedIn,h=r.dispatchShowLoginModal,m=function(){be("skillmap.goToBadges",{path:n,activity:c.activityId}),p(),d()},v=function(){be("skillmap.badgeSignIn",{path:n,activity:c.activityId}),p(),h()},g=[];return f?(t=Object(na.jsxLF)(lf("You’ve received the {0} Badge! Find it in the badges section of your {1}."),i.createElement("span",null,pxt.U.rlf(l.title)),i.createElement("a",{onClick:m},lf("User Profile"))),g.push({label:lf("Go to Badges"),className:"completion-reward inverted",icon:"trophy",onClick:m})):(t=Object(na.jsxLF)(lf("You’ve received the {0} Badge! {1} to save your progress"),i.createElement("span",null,pxt.U.rlf(o.displayName)),i.createElement("a",{onClick:v},lf("Sign In"))),g.push({label:lf("Sign In"),className:"completion-reward inverted",xicon:!0,icon:"cloud-user",onClick:v})),s&&g.push({label:lf("Next Reward"),className:"completion-reward",icon:"right circle arrow",onClick:function(){be("skillmap.nextReward",{path:n,activity:c.activityId,currentReward:e.type}),u()}}),i.createElement(ra.Modal,{title:a,onClose:this.handleOnClose,actions:g},t,i.createElement("div",{className:"badge-modal-image"},i.createElement(ia.Badge,{badge:l})))}}]),a}(i.Component),la={dispatchHideModal:function(){return{type:_}},dispatchRestartActivity:rt,dispatchOpenActivity:tt,dispatchResetUser:function(){return{type:E}},dispatchShowCarryoverModal:function(e,t){return dt({type:"carryover",currentMapId:e,currentActivityId:t})},dispatchCloseUserProfile:ot,dispatchSetShareStatus:ct,dispatchShowShareModal:lt,dispatchNextModal:function(){return{type:B}},dispatchShowUserProfile:it,dispatchShowLoginModal:ut},ua=Object(l.b)((function(e,t){var a,r,n;if(!e)return{};var i,o=e.pageSourceUrl,c=e.shareState,s=e.modalQueue||[],l=Object(Jt.a)(s,1)[0]||{},u=l.currentMapId,d=l.currentActivityId,p=l.type,f=l.currentReward,h=e.editorView?e.maps[e.editorView.currentMapId]:u&&e.maps[u],m=u&&d?null===(a=e.maps[u])||void 0===a?void 0:a.activities[d]:void 0;return h&&m&&Me(m)&&"completion-badge"===(null==f?void 0:f.type)&&(i=Te(o,h,m)),{type:p,pageSourceUrl:o,skillMap:h,userState:e.user,showCodeCarryoverModal:h&&m&&Ue(e.user,e.pageSourceUrl,h,m),mapId:u,activity:u&&d?e.maps[u].activities[d]:void 0,shareState:c,reward:f,hasPendingModals:(null===(r=e.modalQueue)||void 0===r?void 0:r.length)&&(null===(n=e.modalQueue)||void 0===n?void 0:n.length)>1,badge:i,signedIn:e.auth.signedIn}}),la)(sa),da=(a(69),function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).handleClick=function(){r.props.onItemSelect&&r.props.onItemSelect(r.props.node.activityId,r.props.kind)},r.handleDoubleClick=function(){r.props.onItemDoubleClick&&r.props.onItemDoubleClick(r.props.node.activityId,r.props.kind)},r.handleKeyDown=function(e){var t="number"==typeof e.which?e.which:e.keyCode;13!==t&&32!==t||(e.preventDefault(),e.stopPropagation(),r.props.onItemSelect&&r.props.onItemSelect(r.props.node.activityId,r.props.kind))},r.handleRef=function(e){e&&(e.addEventListener("mouseenter",(function(){r.setState({hover:!0})})),e.addEventListener("mouseleave",(function(){r.setState({hover:!1})})))},r.state={hover:!1},r}return Object(Ye.a)(a,[{key:"getIcon",value:function(e,t){switch(t){case"reward":return"";case"completion":return"";default:switch(e){case"locked":return"";case"completed":return"";default:return""}}}},{key:"getIconClass",value:function(e,t){switch(t){case"reward":case"completion":return"fas graph-icon";default:switch(e){case"locked":case"completed":return"fas graph-icon";default:return"graph-icon-x"}}}},{key:"getAccessibilityStatusText",value:function(){switch(this.props.status){case"completed":return lf("Completed activity.");case"inprogress":return lf("Activity in progress.");case"locked":return lf("This activity is locked. Complete the previous activity to unlock it.");case"notstarted":case"restarted":return lf("Unstarted activity.")}}},{key:"getNodeMarker",value:function(e,t,a,r){var n,o,c=t/50,s=t/576;switch(e){case"notstarted":return i.createElement("g",{transform:"translate(".concat(t/2-12*c," ").concat(-t/2-9*c,")")},i.createElement("title",null,lf("Not Started")),i.createElement("g",{transform:"scale(".concat(s/2,")")},(n=a,o=r,i.createElement("path",{fill:n,stroke:o,strokeWidth:"50",d:"M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z"}))));default:return i.createElement("g",null)}}},{key:"render",value:function(){var e=this.state.hover,t=this.props,a=t.width,r=t.position,n=t.selected,o=t.status,c=t.kind,s=t.theme,l=t.node,u=e?s.unlockedNodeColor:s.unlockedNodeForeground,d=e?s.unlockedNodeForeground:s.unlockedNodeColor;"locked"===o?(d=e?s.lockedNodeForeground:s.lockedNodeColor,u=e?s.lockedNodeColor:s.lockedNodeForeground):"activity"!==c?(d=e?s.rewardNodeForeground:s.rewardNodeColor,u=e?s.rewardNodeColor:s.rewardNodeForeground):"completed"===o&&(d=e?s.completedNodeForeground:s.completedNodeColor,u=e?s.completedNodeColor:s.completedNodeForeground);var p,f=a/8,h=a/12.5,m="graph-node-"+l.activityId;switch(l.kind){case"activity":p=l.description||l.displayName;break;case"completion":p=lf("A reward for completing this skillmap.")}return i.createElement("g",{ref:this.handleRef,className:"graph-activity ".concat(n?"selected":""," ").concat(e?"hover":""),transform:"translate(".concat(r.x," ").concat(r.y,")"),onKeyDown:this.handleKeyDown,onClick:this.handleClick,onDoubleClick:this.handleDoubleClick,"data-activity":l.activityId},i.createElement("foreignObject",{width:a,height:a,x:-a/2,y:-a/2},i.createElement(Gt.Button,{className:"graph-node-button",title:l.displayName,onClick:this.handleClick,onKeydown:this.handleKeyDown,role:"menuitem",ariaHasPopup:"locked"!==o?"true":"false",ariaExpanded:n,ariaControls:n?"info-panel-actions":void 0,ariaDescribedBy:m}),i.createElement("div",{id:m,style:{display:"none"}},i.createElement("p",null,this.getAccessibilityStatusText()),p&&i.createElement("p",null,p))),n&&("activity"!==c?i.createElement("circle",{className:"highlight",cx:0,cy:0,r:a/2+f,stroke:s.selectedStrokeColor}):i.createElement("rect",{className:"highlight",x:-a/2-f,y:-a/2-f,width:a+2*f,height:a+2*f,rx:a/6,stroke:s.selectedStrokeColor})),"activity"!==c?i.createElement("circle",{className:"focus-outline",cx:0,cy:0,r:a/2+2*f,stroke:"none",fill:"none"}):i.createElement("rect",{className:"focus-outline",x:-a/2-2*f,y:-a/2-2*f,width:a+4*f,height:a+4*f,rx:a/6,stroke:"none",fill:"none"}),"activity"!==c?i.createElement("circle",{cx:0,cy:0,r:a/2,fill:d,stroke:u,strokeWidth:"2"}):i.createElement("rect",{x:-a/2,y:-a/2,width:a,height:a,rx:a/10,fill:d,stroke:u,strokeWidth:"2"}),"activity"===c&&this.getNodeMarker(o,a,s.selectedStrokeColor,s.strokeColor),i.createElement("text",{dy:h,textAnchor:"middle",alignmentBaseline:"middle",dominantBaseline:"middle",fill:u,className:this.getIconClass(o,c)},this.getIcon(o,c)))}}]),a}(i.Component)),pa=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){return Object(Qe.a)(this,a),t.apply(this,arguments)}return Object(Ye.a)(a,[{key:"render",value:function(){var e,t,a=this.props,r=a.className,n=a.points,o=a.strokeWidth,c=a.color,s="M 0 0",l="";return n.forEach((function(a){var r,n,i,o;e=a,t&&(s+=" l ".concat(((null===(r=e)||void 0===r?void 0:r.x)||0)-t.x," ").concat(((null===(n=e)||void 0===n?void 0:n.y)||0)-t.y),l=" l ".concat(t.x-((null===(i=e)||void 0===i?void 0:i.x)||0)," ").concat(t.y-((null===(o=e)||void 0===o?void 0:o.y)||0)," ").concat(l)),t=e})),i.createElement("g",{transform:"translate(".concat(n[0].x||0," ").concat(n[0].y||0,")")},i.createElement("path",{className:r,stroke:c,strokeWidth:o,d:"".concat(s," ").concat(l)}))}}]),a}(i.Component),fa=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).onItemSelect=function(e,t){var a=r.props,n=a.user,i=a.pageSourceUrl,o=a.map,c=(a.completionState,a.selectedActivityId),s=a.dispatchChangeSelectedItem,l=a.dispatchShowCompletionModal,u=we(n,i,o,e).status;"completion"===t&&"completed"===u?(be("skillmap.graph.reward.select",{path:o.mapId,activity:e}),s(o.mapId,e),l(o.mapId,e)):e!==c?(be("skillmap.graph.item.select",{path:o.mapId,activity:e}),s(o.mapId,e)):(be("skillmap.graph.item.deselect",{path:o.mapId,activity:e}),s(void 0))},r.onItemDoubleClick=function(e,t){var a=r.props,n=a.user,i=a.pageSourceUrl,o=a.map,c=a.dispatchOpenActivity,s=a.dispatchRestartActivity,l=we(n,i,o,e).status,u=o.activities[e];be("skillmap.activity.open.doubleclick",{path:o.mapId,activity:e,status:l||""});var d=Ee(n,i,o.mapId,u.activityId),p=Ae(n,i,o,u.activityId);Ue(n,i,o,u)&&!(null==d?void 0:d.headerId)?s(o.mapId,e,p.headerId,!!p.headerId):"activity"==t&&"locked"!==l&&c(o.mapId,e)},r}return Object(Ye.a)(a,[{key:"componentDidUpdate",value:function(e){"transitioning"===e.completionState&&setTimeout((function(){be("skillmap.graph.reward.auto",{path:e.map.mapId,activity:e.selectedActivityId||""}),e.dispatchSetSkillMapCompleted(e.map.mapId),e.dispatchShowCompletionModal(e.map.mapId,e.selectedActivityId)}),400)}},{key:"render",value:function(){var e=this,t=this.props,a=t.unit,r=t.items,n=t.paths,o=t.map,c=t.user,s=t.selectedActivityId,l=t.pageSourceUrl,u=t.theme;return i.createElement("g",{className:"skill-graph"},i.createElement("g",{opacity:u.pathOpacity},n.map((function(e,t){return i.createElement(pa,{className:"skill-graph-path-border",key:"graph-activity-".concat(t),strokeWidth:3*a,color:u.strokeColor,points:e.points})})),n.map((function(e,t){return i.createElement(pa,{className:"skill-graph-path",key:"graph-activity-".concat(t),strokeWidth:3*a-4,color:u.pathColor,points:e.points})}))),r.map((function(t,r){return i.createElement(da,{key:"graph-activity-".concat(r),node:t.activity,theme:u,kind:t.activity.kind,position:t.position,width:5*a,selected:t.activity.activityId===s,onItemSelect:e.onItemSelect,onItemDoubleClick:e.onItemDoubleClick,status:we(c,l,o,t.activity.activityId).status})})))}}]),a}(i.Component),ha={dispatchChangeSelectedItem:et,dispatchShowCompletionModal:st,dispatchSetSkillMapCompleted:function(e){return{type:y,mapId:e}},dispatchOpenActivity:tt,dispatchRestartActivity:rt},ma=Object(l.b)((function(e,t){var a,r,n,i;if(!e)return{};var o=null===(a=e.user)||void 0===a||null===(r=a.mapProgress)||void 0===r?void 0:r[e.pageSourceUrl];return{user:e.user,pageSourceUrl:e.pageSourceUrl,theme:e.theme,selectedActivityId:e.selectedItem&&(null===(n=t.map)||void 0===n?void 0:n.mapId)==e.selectedItem.mapId?e.selectedItem.activityId:void 0,completionState:null==o||null===(i=o[t.map.mapId])||void 0===i?void 0:i.completionState}}),ha)(fa);function va(e,t){return{x:ga(e),y:ya(t)}}function ga(e){return 10*(12*e+4)}function ya(e){return 10*(9*e+4)}function ba(e){for(var t=[],a=[e],r={};a.length>0;){var n=a.shift();n&&!r[n.activityId]&&(r[n.activityId]=!0,t.push(n),a=n.next.concat(a))}return t}function ka(e){var t=function(e){for(var t=[],a=[e],r={};a.length>0;){var n=a.shift();n&&!r[n.activityId]&&(r[n.activityId]=!0,t.push(n),a=a.concat(n.next))}return t}(e),a={};return t.forEach((function(e){var t=e.next.slice();e.next.length=0,a[e.activityId]=JSON.parse(JSON.stringify(e)),e.next=t})),Object.keys(a).forEach((function(e){return a[e].next=a[e].nextIds.map((function(e){return a[e]}))})),a[e.activityId]}a(70);var Sa=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).onImageLoad=function(e){r.setState({backgroundSize:{width:e.target.naturalWidth,height:e.target.naturalHeight}})},r.state={backgroundSize:{width:0,height:0}},r}return Object(Ye.a)(a,[{key:"render",value:function(){var e=this.props,t=e.graphs,a=e.graphSize,r=e.backgroundImageUrl,n=this.state.backgroundSize,o=0,c=a.width/a.height,s=n.width/n.height,l=r&&n.width>0&&n.height>0,u=Math.max(400,a.height),d=Math.max(600,a.width);l&&(c-s>.05?u=d*(1/s):c-s<-.05&&(d=u*s));var p=Math.max(u-a.height,0)/2,f=Math.max(d-a.width,0)/2;return i.createElement("div",{className:"skill-graph-wrapper"},i.createElement("div",{className:"skill-graph-content ".concat(l?"has-background":"")},i.createElement(qt.MenuBar,{className:"skill-graph-activities",ariaLabel:lf("Skill Map")},i.createElement("svg",{viewBox:"-".concat(f+40," -").concat(p+40," ").concat(d+80," ").concat(u+80),preserveAspectRatio:"xMidYMid meet"},t.map((function(e,t){return o+=e.height,i.createElement("g",{key:t,transform:"translate(0, ".concat(o-e.height,")")},i.createElement(ma,Object.assign({unit:10},e)))})))),r&&i.createElement("div",{className:"skill-graph-background"},i.createElement("img",{src:r,alt:lf("Background Image"),onLoad:this.onImageLoad}))))}}]),a}(i.Component),wa=Object(l.b)((function(e,t){if(!e)return{};var a=t.maps.map((function(e){return function(e){var t=[];switch(e.layout){case"manual":t=t.concat(function(e){var t=[],a=ba(ka(e)).filter((function(e){return"layout"!==e.kind}));return a.forEach((function(e){if(t.indexOf(e.activityId)<0){var a,r;t.push(e.activityId),e.depth=(null===(a=e.position)||void 0===a?void 0:a.depth)||0,e.offset=(null===(r=e.position)||void 0===r?void 0:r.offset)||0;var n=[];e.next.forEach((function(t,a){var r,i,o,c=(null===(r=t.position)||void 0===r?void 0:r.depth)||0,s=(null===(i=t.position)||void 0===i?void 0:i.offset)||0,l=[{depth:e.depth,offset:e.offset}];(null===(o=e.edges)||void 0===o?void 0:o[a])&&e.edges[a].forEach((function(e){var t=l[l.length-1];e.depth!==t.depth&&e.offset!==t.offset&&l.push({depth:t.depth,offset:e.offset}),l.push(e)}));var u=l[l.length-1];c!==u.depth&&s!==u.offset&&l.push({depth:u.depth,offset:s}),l.push({depth:c,offset:s}),n.push(l)})),e.edges=n}})),a}(e.root));break;case"ortho":default:t=t.concat(function(e){for(var t=ka(e),a=[t],r={},n={},i=0,o=function(){var e=a.shift();if(e&&!n[e.activityId]){var t;n[e.activityId]=!0;var o=null===(t=e.parents)||void 0===t?void 0:t[0];if(o){var c=r[o.activityId]||{depth:0,offset:0};0==c.depth?(c.depth=1,e.offset=o.offset+c.offset):(i+=1,c.offset=i,e.offset=i),e.depth=o.depth+c.depth,r[o.activityId]=c}else e.depth=0,e.offset=0;var s=e.next.map((function(t){var a=t;return a.parents?a.parents.push(e):a.parents=[e],a}));s.filter((function(e){return n[e.activityId]})).forEach((function(t){(function(e,t){return!(!e.parents||!t.parents||(e.parents.forEach((function(e){t.parents.indexOf(e)>=0&&(a=e)})),!a||1!=Math.abs(a.nextIds.indexOf(e.activityId)-a.nextIds.indexOf(t.activityId))||e.depth!=t.depth));var a})(t,e)||(t.offset+=1,i=Math.max(i,t.offset),t.depth=Math.max(t.depth,e.depth+1))})),a=s.concat(a)}};a.length>0;)o();var c=ba(t).filter((function(e){return"layout"!==e.kind})),s={};return c.forEach((function(e){null==s[e.depth]&&(s[e.depth]=[]),s[e.depth].push(e.offset)})),c.forEach((function(e){var t;if((!e.next||0==e.next.length)&&1==(null===(t=e.parents)||void 0===t?void 0:t.length)){var a=e.parents[0],r=s[e.depth],n=r[r.indexOf(e.offset)-1];(n?e.offset-n:Math.abs(e.depth-a.depth)+Math.abs(e.offset-a.offset))>2&&(e.depth=a.depth,e.offset=(n||a.offset)+1)}})),c.forEach((function(e){if(e.parents){e.edges=[];var t=e.parents.some((function(t){return t.offset==e.offset}))||e.parents.length>2;e.parents.forEach((function(a){var r,n=[{depth:a.depth,offset:a.offset}];if(t){var i=s[e.depth],o=i.indexOf(e.offset),c=e.offset>a.offset&&!(i[o+1]-i[o]<e.offset-a.offset),l=e.offset<a.offset&&!(i[o]-i[o-1]<a.offset-e.offset);c||l?n.push({depth:e.depth,offset:a.offset}):n.push({depth:a.depth,offset:e.offset})}else n.push({depth:a.depth,offset:e.offset});n.push({depth:e.depth,offset:e.offset}),null===(r=e.edges)||void 0===r||r.push(n)}))}})),c}(e.root))}var a,r=0,n=0,i=[],o=[],c=Object(d.a)(t);try{for(c.s();!(a=c.n()).done;){var s=a.value,l=s.depth,u=s.offset;i.push({activity:s,position:va(l,u)}),s.edges&&s.edges.forEach((function(e){var t=[];e.forEach((function(e){return t.push(va(e.depth,e.offset))})),o.push({points:t})})),r=Math.max(r,s.depth),n=Math.max(n,s.offset)}}catch(e){c.e(e)}finally{c.f()}var p=ga(r)+40,f=ya(n)+40;return{map:e,items:i,paths:o,width:p,height:f}}(e)})),r=(null==a?void 0:a.length)?a.map((function(e){return e.width})).reduce((function(e,t){return Math.max(e,t)})):0,n=(null==a?void 0:a.length)?a.map((function(e){return e.height})).reduce((function(e,t){return e+t})):0;return{graphs:a,graphSize:{width:r,height:n}}}))(Sa),Ia=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){var e;Object(Qe.a)(this,a);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return(e=t.call.apply(t,[this].concat(n))).handleActionButtonClick=function(){var t=e.props,a=t.status,r=t.mapId,n=t.activityId,i=t.previousHeaderId,o=t.dispatchOpenActivity,c=t.dispatchRestartActivity,s=t.showCodeCarryoverModal;if("locked"!==a)switch(be("skillmap.activity.open",{path:r,activity:n,status:a||""}),a){case"notstarted":s?c(r,n,i,!!i):o(r,n);break;case"completed":case"inprogress":case"restarted":default:o(r,n)}},e.handleRestartButtonClick=function(){var t=e.props,a=t.mapId,r=t.activityId,n=t.status,i=t.dispatchShowRestartActivityWarning;be("skillmap.sidebar.restart",{path:a,activity:r,status:n||""}),i(a,r)},e.handleShareButtonClick=function(){var t=e.props,a=t.mapId,r=t.activityId,n=t.status,i=t.dispatchShowShareModal;be("skillmap.sidebar.share",{path:a,activity:r,status:n||""}),i(a,r)},e.handleSaveToProjectsClick=function(){var t=e.props,a=t.completedHeaderId;be("skillmap.export",{path:t.mapId||"",activity:t.activityId||""}),window.open("".concat(Xt,"#skillmapimport:").concat(a))},e}return Object(Ye.a)(a,[{key:"getActivityActionText",value:function(){switch(this.props.status){case"locked":return lf("Locked");case"completed":return lf("View Code");case"inprogress":case"restarted":return lf("Continue");case"notstarted":default:return lf("Start")}}},{key:"isCompleted",value:function(e){return"completed"===e||"restarted"===e}},{key:"render",value:function(){var e=this.props,t=e.status,a=e.completedHeaderId,r=e.signedIn,n=e.dispatchShowLoginModal,o=t&&"notstarted"!==t&&"locked"!==t;if("locked"===t)return i.createElement("div",null);var c=pxt.auth.hasIdentity()&&!r,s=1;return o&&(s+=2),a&&(s+=1),c&&(s+=1),i.createElement("div",{className:"actions ".concat(a?"grid":"")},i.createElement(Gt.Button,{className:"primary inverted",tabIndex:-1,ariaPosInSet:1,ariaSetSize:s,title:this.getActivityActionText(),label:this.getActivityActionText(),onClick:this.handleActionButtonClick}),o&&i.createElement(i.Fragment,null,i.createElement(Gt.Button,{className:"primary inverted",tabIndex:-1,ariaPosInSet:2,ariaSetSize:s,title:lf("Restart"),label:lf("Restart"),onClick:this.handleRestartButtonClick}),i.createElement(Gt.Button,{className:"primary inverted",tabIndex:-1,ariaPosInSet:3,ariaSetSize:s,title:lf("Share"),label:lf("Share"),onClick:this.handleShareButtonClick})),a&&i.createElement(Gt.Button,{tabIndex:-1,ariaPosInSet:o?4:2,ariaSetSize:s,className:"primary inverted",title:lf("Save to My Projects"),label:lf("Save to My Projects"),onClick:this.handleSaveToProjectsClick}),c&&i.createElement(Gt.Button,{tabIndex:-1,ariaPosInSet:s,ariaSetSize:s,className:"teal",onClick:n,label:lf("Sign in to Save"),title:lf("Sign in to Save")}))}}]),a}(i.Component),xa={dispatchOpenActivity:tt,dispatchShowRestartActivityWarning:function(e,t){return dt({type:"restart-warning",currentMapId:e,currentActivityId:t})},dispatchShowShareModal:lt,dispatchRestartActivity:rt,dispatchShowLoginModal:ut},Ca=Object(l.b)((function(e,t){if(!e)return{};var a=t,r=e.maps[a.mapId],n=r.activities[a.activityId],i=Ae(e.user,e.pageSourceUrl,r,a.activityId);return{previousHeaderId:null==i?void 0:i.headerId,showCodeCarryoverModal:Ue(e.user,e.pageSourceUrl,r,n),signedIn:e.auth.signedIn}}),xa)(Ia),Ea=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){var e;Object(Qe.a)(this,a);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return(e=t.call.apply(t,[this].concat(n))).handleActionButtonClick=function(){var t=e.props,a=t.status,r=t.mapId,n=t.activityId,i=t.dispatchShowCompletionModal;switch(a){case"locked":break;default:return be("skillmap.sidebar.reward",{path:r,activity:n}),i(r,n)}},e}return Object(Ye.a)(a,[{key:"render",value:function(){var e=this.props,t=e.status,a=e.signedIn,r=e.dispatchShowLoginModal;if("locked"===t)return i.createElement("div",null);var n=pxt.auth.hasIdentity()&&!a;return i.createElement("div",{className:"actions"},i.createElement(Gt.Button,{tabIndex:-1,ariaPosInSet:1,ariaSetSize:n?2:1,className:"primary inverted",title:lf("Claim Reward"),label:lf("Claim Reward"),onClick:this.handleActionButtonClick}),n&&i.createElement(Gt.Button,{tabIndex:-1,ariaPosInSet:2,ariaSetSize:2,className:"teal",onClick:r,label:lf("Sign in to Save"),title:lf("Sign in to Save")}))}}]),a}(i.Component),Oa={dispatchOpenActivity:tt,dispatchShowCompletionModal:st,dispatchShowLoginModal:ut},ja=Object(l.b)((function(e,t){return e?{signedIn:e.auth.signedIn}:{}}),Oa)(Ea),Na=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){return Object(Qe.a)(this,a),t.apply(this,arguments)}return Object(Ye.a)(a,[{key:"render",value:function(){var e=this.props,t=e.cloudStatus,a=e.signedIn,r=pxt.cloud.cloudStatus[t];return i.createElement("div",{className:"cloud-action"},a?i.createElement("div",{className:"cloud-indicator"},i.createElement("div",{className:"ui tiny cloudicon xicon ".concat(r.icon),title:r.tooltip}),r.longStatus):i.createElement("div",null))}}]),a}(i.Component),Aa=Object(l.b)((function(e,t){var a=e.user,r=e.pageSourceUrl,n=e.selectedItem,i="none";if(null==n?void 0:n.activityId){var o,c=null===(o=Ee(a,r,n.mapId,n.activityId))||void 0===o?void 0:o.headerId;c&&(i=e.cloudState&&e.cloudState[c]||i)}else i="synced";return{signedIn:e.auth.signedIn,cloudStatus:i}}),{})(Na),Ua=a(21),Pa=(a(71),function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(){var e;Object(Qe.a)(this,a);for(var r=arguments.length,n=new Array(r),i=0;i<r;i++)n[i]=arguments[i];return(e=t.call.apply(t,[this].concat(n))).container=void 0,e.handleRef=function(t){t&&(e.container=t)},e}return Object(Ye.a)(a,[{key:"getStatusLabel",value:function(e){switch(e){case"locked":return lf("Locked");case"completed":return lf("Completed");default:return null}}},{key:"getStatusIcon",value:function(e){switch(e){case"locked":return"fas fa-lock";case"completed":return"fas fa-check-circle";default:return""}}},{key:"componentDidUpdate",value:function(e){var t,a,r;if(this.container&&(null===(t=this.props.node)||void 0===t?void 0:t.activityId)&&(null===(a=e.node)||void 0===a?void 0:a.activityId)!==(null===(r=this.props.node)||void 0===r?void 0:r.activityId)&&!this.container.contains(document.activeElement)){var n=this.container.querySelectorAll("button[tabindex]");n.length&&n.item(0).focus()}}},{key:"render",value:function(){var e=this.props,t=e.mapId,a=e.title,r=e.subtitle,n=e.description,o=e.infoUrl,c=e.imageUrl,s=e.details,l=e.node,u=e.status,d=e.completedHeaderId,p=e.onFocusEscape,f=e.dispatchShowLoginModal,h=e.signedIn,m=this.getStatusLabel(u),v=!l,g=l&&!Me(l),y=g&&l.tags||void 0,b=pxt.auth.hasIdentity();return i.createElement("div",{className:"info-panel",ref:this.handleRef},i.createElement("div",{className:"info-panel-image"},c?i.createElement("img",{src:c,alt:lf("Preview of activity content")}):i.createElement("i",{className:"fas fa-image"})),i.createElement("div",{className:"info-panel-content"},r&&i.createElement("div",{className:"info-panel-subtitle"},r),i.createElement("div",{className:"info-panel-title"},a),m&&i.createElement("div",{className:"info-panel-label"},i.createElement("i",{className:this.getStatusIcon(u)}),i.createElement("span",null,m)),i.createElement("div",{className:"info-panel-description"},n),v&&o&&i.createElement("a",{className:"info-panel-link",href:o,target:"_blank",rel:"noopener noreferrer"},lf("Learning Outcomes")),y&&y.length>0&&i.createElement("div",{className:"info-panel-tags"},y.map((function(e,t){return i.createElement("div",{key:t},e)}))),i.createElement("div",{className:"info-panel-detail"},null==s?void 0:s.map((function(e,t){return i.createElement("div",{key:"detail_".concat(t)},e)}))),i.createElement("div",{className:"tablet-spacer"}),i.createElement(Ua.FocusTrap,{id:"info-panel-actions",onEscape:p,dontStealFocus:!0,arrowKeyNavigation:!0,includeOutsideTabOrder:!0},!v&&(g?i.createElement(Ca,{mapId:t,activityId:l.activityId,status:u,completedHeaderId:d}):i.createElement(ja,{mapId:t,activityId:l.activityId,status:u})),b&&i.createElement(Aa,null)),b&&v&&!h&&i.createElement(Gt.Button,{className:"teal sign-in-button",onClick:f,label:lf("Sign in to Save"),title:lf("Sign in to Save")})))}}]),a}(i.Component)),Ma={dispatchShowLoginModal:ut},La=Object(l.b)((function(e,t){var a,r,n,i,o=e.user,c=e.pageSourceUrl,s=e.maps,l=e.selectedItem,u=e.infoUrl,d=l&&(null===(a=e.maps[l.mapId])||void 0===a?void 0:a.activities[l.activityId]),p="activity"===(null==d?void 0:d.kind),f=[];if(s)if((null==l?void 0:l.activityId)&&s[l.mapId]){var h=s[l.mapId],m=we(e.user,e.pageSourceUrl,h,l.activityId),v=m.status,g=m.currentStep,y=m.maxSteps;r=v,i=m.completedHeadedId,p&&(f.push(y?"".concat(g,"/").concat(y," ").concat(lf("Steps")):lf("Not Started")),f.push(p?d.type:"")),h&&(n=h.displayName)}else if(o){var b=Object.keys(s),k=0,S=0,w=0,I=0;b.forEach((function(e){var t=s[e].activities;Object.keys(t).filter((function(e){return"activity"==t[e].kind})).forEach((function(t){return++S&&Se(o,c,e,t)&&++k})),Object.keys(t).filter((function(e){return Me(t[e])})).forEach((function(t){return++I&&Se(o,c,e,t)&&++w}))})),f.push("".concat(k,"/").concat(S," ").concat(lf("Complete"))),f.push(I?"".concat(w,"/").concat(I," ").concat(lf("Reward(s)")):"")}return{mapId:null==l?void 0:l.mapId,title:(null==d?void 0:d.displayName)||e.title,subtitle:n,description:p?d.description:e.description,infoUrl:u,imageUrl:d?null==d?void 0:d.imageUrl:e.bannerImageUrl,node:d,status:r,details:f,completedHeaderId:i,signedIn:e.auth.signedIn}}),Ma)(Pa),Ta=a(20);function Ra(e){var t=function(e){var t,a=e.split("\n"),r=[],n=null,i=null,o=null,c=[],s=0,l=Object(d.a)(a);try{for(l.s();!(t=l.n()).done;){var u=t.value;if(u.trim()){if(u.startsWith("#")){var p=/^(#+)\s*(.+)$/.exec(u);if(p){y(),n={headerKind:1===p[1].length?"single":2===p[1].length?"double":"triple",header:p[2],attributes:{}},i=null,o=null,s=0;continue}}if(n){var f=Ka(u),h=u.trim(),m=/^[*-]\s+(?:([^:]+):)?(.*)$/.exec(h);if(!m)continue;if(Math.abs(f-s)>1&&i){if(f>s){var v={key:i,items:[]};c.length?c[c.length-1].items.push(v):(n.listAttributes||(n.listAttributes={}),n.listAttributes[i]=v),i=null,c.push(v)}else{var g=c.pop();i&&o&&(null==g||g.items.push((i+":"+o).trim()),o=null)}s=f}m&&(m[1]?(i&&o&&(c.length?c[c.length-1].items.push((i+":"+o).trim()):n.attributes[i]=o.trim()),i=m[1].toLowerCase(),o=m[2]):i&&(o+=m[2]))}}else o&&(o+="\n")}}catch(e){l.e(e)}finally{l.f()}return y(),r;function y(){n&&(i&&o&&(c.length?c[c.length-1].items.push((i+":"+o).trim()):n.attributes[i]=o.trim()),r.push(n)),c=[]}}(e);(null==t?void 0:t.length)||qa("Cannot parse content: ".concat(e));for(var a,r=[],n=-1,i=0;i<t.length;i++)"single"===t[i].headerKind?a=Ha(t[i]):"double"===t[i].headerKind&&(n>=0&&r.push(Ba(t[n],t.slice(n+1,i))),n=i);return(n>0||0===r.length)&&r.push(Ba(t[n],t.slice(n+1,t.length))),{maps:r,metadata:a}}function Ba(e,t){var a=function(e){var t={mapId:e.header.toLowerCase(),displayName:e.attributes.name||e.header,description:e.attributes.description,completionUrl:e.attributes.completionurl,prerequisites:[],activities:{},allowCodeCarryover:!e.attributes.allowcodecarryover||!Da(e.attributes.allowcodecarryover)};if("manual"===e.attributes.layout&&(t.layout="manual"),e.attributes.required){var a,r=e.attributes.required.split(","),n=Object(d.a)(r);try{for(n.s();!(a=n.n()).done;){var i=a.value,o=/^\s*(?:(\d+) +)?(.+)$/.exec(i);o[1]?t.prerequisites.push({type:"tag",tag:o[2].trim(),numberCompleted:parseInt(o[1])}):t.prerequisites.push({type:"map",mapId:o[2].trim()})}}catch(e){n.e(e)}finally{n.f()}}return t}(e),r=t.map(_a),n=r.filter((function(e){return"activity"===e.kind}));a.allowCodeCarryover&&n.forEach((function(e){void 0===e.allowCodeCarryover&&(e.allowCodeCarryover=!0)})),a.root=r[0];var i,o=Object(d.a)(r);try{for(o.s();!(i=o.n()).done;){var c=i.value;a.activities[c.activityId]&&qa("Duplicate activity id '".concat(c.activityId,"' in map '").concat(a.mapId,"'")),a.activities[c.activityId]=c}}catch(e){o.e(e)}finally{o.f()}var s,l=Object(d.a)(r);try{for(l.s();!(s=l.n()).done;){var u,p=s.value,h=Object(d.a)(p.nextIds);try{for(h.s();!(u=h.n()).done;){var m=u.value;a.activities[m]||qa("Unknown activity id '".concat(m,"' in map '").concat(a.mapId,"'")),p.next.push(a.activities[m])}}catch(e){h.e(e)}finally{h.f()}}}catch(e){l.e(e)}finally{l.f()}var v={};!function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(r[t.activityId])console.warn("Loop in map '".concat(a.mapId,"' detected"));else{r[t.activityId]=!0,v[t.activityId]=!0;var n,i=Object(d.a)(t.next);try{for(i.s();!(n=i.n()).done;){var o=n.value;e(o,Object(f.a)({},r))}}catch(e){i.e(e)}finally{i.f()}}}(a.root);var g,y=Object(d.a)(r);try{for(y.s();!(g=y.n()).done;){var b=g.value;v[b.activityId]||console.warn("Unreachable activity detected '".concat(b.activityId,"' in map '").concat(a.mapId,"'"))}}catch(e){y.e(e)}finally{y.f()}return a}function _a(e){var t={activityId:e.header.toLowerCase(),imageUrl:e.attributes.imageurl,next:[],displayName:e.attributes.name||e.header,nextIds:Ga(e.attributes.next)};if(e.attributes.position){var a=e.attributes.position.split(" ");t.position={depth:parseInt(a[0])||0,offset:parseInt(a[1])||0}}if(e.attributes.edges){var r;t.edges=[];var n=Ga(e.attributes.edges,!1,";");null===(r=t.nextIds)||void 0===r||r.forEach((function(e,a){var r,i=Ga(n[a])||[];null===(r=t.edges)||void 0===r||r.push(i.map((function(e){var t=e.split(" ");return{depth:parseInt(t[0])||0,offset:parseInt(t[1])||0}})))}))}return"reward"===e.attributes.kind||"completion"===e.attributes.kind?function(e,t){var a,r,n,i=Object(f.a)(Object(f.a)({},t),{},{kind:e.attributes.kind||"reward"});if(e.attributes.type)switch(e.attributes.type.toLowerCase()){case"certificate":i.rewards||(i.rewards=[]),null===(a=i.rewards)||void 0===a||a.push({type:"certificate",url:e.attributes.url})}if(null===(r=e.listAttributes)||void 0===r?void 0:r.actions){var o,c=[],s=e.listAttributes.actions.items.filter((function(e){return"string"==typeof e})),l=Object(d.a)(s);try{for(l.s();!(o=l.n()).done;){var u=o.value.split(":"),p=Object(Ta.a)(u),h=p[0],m=p.slice(1),v=/\s*\[\s*(.*)\s*\](?:\(([^\s]+)\))?/gi.exec(m.join(":")),g=null==v?void 0:v[1],y=null==v?void 0:v[2];switch(h){case"activity":c.push({kind:"activity",label:g,activityId:y});break;case"map":if(y){var b=Va(y)?"github":Wa(y)?"docs":void 0;b||qa("URL: ".concat(y," must be to Github or MakeCode documentation")),c.push({kind:"map",label:g,url:"#".concat(b,":").concat(y)})}break;case"tutorial":y&&(Va(y)||Wa(y)||qa("URL: ".concat(y," must be to Github or MakeCode documentation")),c.push({kind:"tutorial",label:g,url:"/#tutorial:".concat(y)}));break;case"docs":if(y){var k=(y.startsWith("/")?"":"/")+y;Wa(k)||qa("URL: ".concat(k," must be to MakeCode documentation")),c.push({kind:"docs",label:g,url:k})}break;case"editor":c.push({kind:"editor",label:g})}}}catch(e){l.e(e)}finally{l.f()}c.length&&(i.actions=c)}if(null===(n=e.listAttributes)||void 0===n?void 0:n.rewards){var S,w=[],I=e.listAttributes.rewards,x=Object(d.a)(I.items);try{for(x.s();!(S=x.n()).done;){var C=S.value;if("string"==typeof C){var E=C.split(":"),O=Object(Ta.a)(E),j=O[0],N=O.slice(1);switch(j){case"certificate":w.push({type:"certificate",url:N.join(":").trim()});break;case"completion-badge":w.push({type:"completion-badge",imageUrl:N.join(":").trim()})}}else if("certificate"===C.key){var A,U=C.items.filter((function(e){return"string"==typeof e})),P={type:"certificate"},M=Object(d.a)(U);try{for(M.s();!(A=M.n()).done;){var L=A.value.split(":"),T=Object(Ta.a)(L),R=T[0],B=T.slice(1);"url"===R&&(P.url=B.join(":").trim()),"previewurl"!==R&&"preview"!==R||(P.previewUrl=B.join(":").trim())}}catch(e){M.e(e)}finally{M.f()}P.url||qa("Certificate in activity ".concat(e.header," is missing url attribute")),w.push(P)}else if("completion-badge"===C.key){var _,D=C.items.filter((function(e){return"string"==typeof e})),H={type:"completion-badge"},F=Object(d.a)(D);try{for(F.s();!(_=F.n()).done;){var V=_.value.split(":"),W=Object(Ta.a)(V),z=W[0],G=W.slice(1);"imageurl"!==z&&"image"!==z||(H.imageUrl=G.join(":").trim()),"displayname"!==z&&"name"!==z||(H.displayName=G.join(":").trim())}}catch(e){F.e(e)}finally{F.f()}H.imageUrl||qa("completion-badge in activity ".concat(e.header," is missing imageurl attribute")),w.push(H)}}}catch(e){x.e(e)}finally{x.f()}var q=["completion-badge","certificate"];w.sort((function(e,t){return q.indexOf(e.type)-q.indexOf(t.type)})),w.length&&(i.rewards=w)}return i}(e,t):"layout"===e.attributes.kind?function(e,t){return Object(f.a)(Object(f.a)({},t),{},{kind:"layout",next:[]})}(0,t):function(e,t){var a=Object(f.a)(Object(f.a)({},t),{},{kind:"activity",description:e.attributes.description,url:e.attributes.url,tags:Ga(e.attributes.tags),allowCodeCarryover:!e.attributes.allowcodecarryover||!Da(e.attributes.allowcodecarryover)});if(e.attributes.type){var r=e.attributes.type.toLowerCase();switch(r){case"tutorial":a.type=r}}if(e.attributes.editor){var n=e.attributes.editor.toLowerCase();switch(n){case"py":case"blocks":case"js":a.editor=n;break;default:a.editor="blocks"}}return a.url||qa("Activity '".concat(a.activityId,"' is missing attribute 'url'")),a.type||qa("Activity '".concat(a.activityId,"' is missing attribute 'type'")),a}(e,t)}function Da(e){if(!e)return!1;switch(e.toLowerCase().trim()){case"0":case"no":case"n":case"off":case"false":return!0;default:return!1}}function Ha(e){var t=e.attributes.primarycolor,a=e.attributes.secondarycolor,r=e.attributes.tertiarycolor,n=e.attributes.highlightcolor,i=e.attributes.unlockednodecolor,o=e.attributes.lockednodecolor,c=e.attributes.completednodecolor;return{title:e.attributes.name||e.header,description:e.attributes.description,infoUrl:za(e.attributes.infourl),backgroundImageUrl:e.attributes.backgroundurl,bannerImageUrl:e.attributes.bannerurl,alternateSources:Ga(e.attributes.alternatesources),theme:{backgroundColor:r||"var(--body-background-color)",pathColor:t||"#BFBFBF",strokeColor:"#000000",rewardNodeColor:n||"var(--primary-color)",rewardNodeForeground:n?Fa(n):"#000000",unlockedNodeColor:i||a||"var(--secondary-color)",unlockedNodeForeground:i||a?Fa(i||a):"#000000",lockedNodeColor:o||t||"#BFBFBF",lockedNodeForeground:o||t?Fa(o||t):"#000000",completedNodeColor:c||a||"var(--secondary-color)",completedNodeForeground:c||a?Fa(c||a):"#000000",selectedStrokeColor:n||"var(--primary-color)",pathOpacity:.5}}}function Fa(e){return e=e.replace("#",""),Number.parseInt(e.slice(0,2),16)+Number.parseInt(e.slice(2,4),16)+Number.parseInt(e.slice(4),16)>382.5?"#000000":"#ffffff"}function Va(e){return e.match(/^(https?:\/\/)?(www\.)?github\.com\//gi)}function Wa(e){return e.indexOf(".")<0}function za(e){if(e)return Va(e)?e.replace(/\?[\s\S]+$/gi,""):Wa(e)?"".concat(e.startsWith("/")?"":"/").concat(e):void qa("URL: ".concat(e," must be to Github or MakeCode documentation"))}function Ga(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:",";if(!e)return[];var r=e.split(a).map((function(e){return e.trim().toLowerCase()})).filter((function(e){return!!e}));if(!t){var n={};return r.forEach((function(e){return n[e]=e})),Object.keys(n)}return r}function qa(e){throw e}function Ka(e){for(var t=0,a=0;a<e.length;a++)if(" "===e.charAt(a))t++;else{if("\t"!==e.charAt(a))return t;t+=4}return 0}var Qa=a(44);function Ya(e,t){Object(Qa.pushNotificationMessage)({kind:e,text:t,hc:!1})}var $a=a(45),Ja=function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).renderUserProfile=function(){var e=r.props,t=e.profile,a=e.preferences,n=r.state,o=n.notification,c=n.modal,s=n.emailSelected;return i.createElement(ra.Modal,{title:lf("My Profile"),fullscreen:!0,onClose:r.handleOnClose,parentElement:document.querySelector(".app-container")||void 0},i.createElement($a.Profile,{user:{profile:t,preferences:a},signOut:r.handleSignout,deleteProfile:r.handleDeleteAccountClick,notification:o,showModalAsync:r.showModalAsync,checkedEmail:s,onClickedEmail:r.handleEmailClick}),c&&i.createElement(ra.Modal,{title:c.header,onClose:r.closeModal,className:c.className},c.jsx))},r.avatarPicUrl=function(){var e,t,a,n,i=r.props.profile;return null!==(e=null==i||null===(t=i.idp)||void 0===t?void 0:t.pictureUrl)&&void 0!==e?e:null==i||null===(a=i.idp)||void 0===a||null===(n=a.picture)||void 0===n?void 0:n.dataUrl},r.getAccountPanel=function(){var e,t,a,n,o,c,s=r.props.profile,l=(null==s||null===(e=s.idp)||void 0===e?void 0:e.provider)&&pxt.auth.identityProvider(null==s||null===(t=s.idp)||void 0===t?void 0:t.provider),u=i.createElement("div",{className:"profile-pic avatar"},i.createElement("img",{src:r.avatarPicUrl(),alt:lf("User")})),d=i.createElement("div",{className:"profile-pic avatar"},i.createElement("span",null,pxt.auth.userInitials(s)));return i.createElement("div",{className:"account panel ui card"},i.createElement("div",{className:"header-text"},i.createElement("label",null,lf("Profile"))),r.avatarPicUrl()?u:d,i.createElement("div",{className:"row-span-two"},i.createElement("label",{className:"title"},lf("Name")),i.createElement("p",{className:"value"},(null==s||null===(a=s.idp)||void 0===a?void 0:a.displayName)||(null==s||null===(n=s.idp)||void 0===n?void 0:n.username))),i.createElement("div",{className:"row-span-two"},i.createElement("label",{className:"title"},lf("Username")),i.createElement("p",{className:"value"},null==s||null===(o=s.idp)||void 0===o?void 0:o.username)),i.createElement("div",{className:"row-span-two"},i.createElement("label",{className:"title"},lf("Provider")),i.createElement("p",{className:"value"},null==l?void 0:l.name)),i.createElement("div",{className:"row-span-two",onClick:r.handleSignout},i.createElement("div",{className:"ui icon button"},i.createElement("span",{className:"xicon ".concat(null==s||null===(c=s.idp)||void 0===c?void 0:c.provider)}),i.createElement("span",null," ",lf("Sign out")," "))),i.createElement("div",{className:"row-span-two"},i.createElement("a",{className:"ui",title:lf("delete profile"),onClick:r.handleDeleteAccountClick},lf("I want to delete my profile")," ")))},r.handleOnClose=function(){r.props.dispatchCloseUserProfile()},r.getFeedbackPanel=function(){return i.createElement("div",{className:"feedback panel ui card"},i.createElement("div",{className:"header-text"},i.createElement("label",null,lf("Feedback"))),i.createElement("div",{className:"row-span-two"},lf("What do you think about the Sign In & Cloud Save feature? Is there something you'd like to change? Did you encounter issues? Please let us know!")),i.createElement("div",{className:"row-span-two"},i.createElement("a",{className:"ui",title:lf("Provide feedback in a from"),href:"https://aka.ms/AAcnpaj",target:"_blank"},i.createElement("i",{className:"fas fa-external-link-alt"}),lf("Take the Survey"))))},r.handleSignout=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:pxt.tickEvent("skillmap.userprofile.signout"),Nt(location.hash);case 2:case"end":return e.stop()}}),e)}))),r.handleDeleteAccountClick=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.props.dispatchShowDeleteAccountModal();case 1:case"end":return e.stop()}}),e)}))),r.handleEmailClick=function(e){r.setState({emailSelected:na.CheckboxStatus.Waiting}),function(e){return Wt.apply(this,arguments)}(e).then((function(t){var a,n;(null==t?void 0:t.success)?(n=lf("Settings saved"),pxt.debug(n),Ya("info",n),r.setState({emailSelected:(null===(a=t.res)||void 0===a?void 0:a.email)?na.CheckboxStatus.Selected:na.CheckboxStatus.Unselected})):(function(e){pxt.tickEvent("notification.error",{message:e}),Ya("err",e)}(lf("Oops, something went wrong")),r.setState({emailSelected:e?na.CheckboxStatus.Unselected:na.CheckboxStatus.Selected}))}))},r.showModalAsync=function(){var e=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.setState({modal:t});case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.closeModal=function(){var e,t=null===(e=r.state.modal)||void 0===e?void 0:e.onClose;r.setState({modal:void 0}),t&&t()},Dt().then((function(e){return r.setState({emailSelected:(null==e?void 0:e.email)?na.CheckboxStatus.Selected:na.CheckboxStatus.Unselected})})),pxt.targetConfigAsync().then((function(e){return r.setState({notification:e.profileNotification})})),r}return Object(Ye.a)(a,[{key:"render",value:function(){return this.props.showProfile?this.renderUserProfile():i.createElement("div",null)}}]),a}(i.Component),Xa={dispatchCloseUserProfile:ot,dispatchShowDeleteAccountModal:function(){return dt({type:"delete-account"})}},Za=Object(l.b)((function(e,t){return e?{signedIn:e.auth.signedIn,profile:e.auth.profile,showProfile:e.showProfile,preferences:e.auth.preferences}:{}}),Xa)(Ja),er=function(){function e(){Object(Qe.a)(this,e),this.sendMessageAsync=void 0}return Object(Ye.a)(e,[{key:"exportCloudProjectsToLocal",value:function(e){return this.sendMessageAsync({type:"pxteditor",action:"convertcloudprojectstolocal",userId:e})}}]),e}(),tr=function(){function e(){var t=this;Object(Qe.a)(this,e),this.promise_=void 0,this.resources=void 0,this.appMounted=void 0,this.resolve=void 0,this.promise=function(){return t.promise_},this.resources=new er,this.promise_=new Promise((function(e){t.resolve=e,t.checkComplete()}))}return Object(Ye.a)(e,[{key:"setSendMessageAsync",value:function(e){this.resources.sendMessageAsync=e,this.checkComplete()}},{key:"setAppMounted",value:function(){this.appMounted=!0,this.checkComplete()}},{key:"checkComplete",value:function(){var e;this.resolve&&this.appMounted&&this.resources.sendMessageAsync&&(qe.dispatch((e=this.resources,{type:Q,resources:e})),this.resolve(this.resources))}}]),e}(),ar=(a(86),a(87),function(e){Object($e.a)(a,e);var t=Object(Je.a)(a);function a(e){var r;return Object(Qe.a)(this,a),(r=t.call(this,e)).queryFlags={},r.unsubscribeChangeListener=void 0,r.loadedUser=void 0,r.readyPromise=void 0,r.ready=function(){return r.readyPromise.promise()},r.handleHashChange=function(){var e=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,r.parseHashAsync();case 2:t.stopPropagation(),t.preventDefault();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.handleError=function(e){var t=e||lf("Oops! Couldn't load content, please check the URL and markdown file.");console.error(t),r.setState({error:t})},r.onMakeCodeFrameLoaded=function(){var e=Object(J.a)($.a.mark((function e(t){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r.readyPromise.setSendMessageAsync(t);case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),r.focusCurrentActivity=function(){document.querySelector("[data-activity="+r.props.activityId+"] button").focus(),r.props.dispatchChangeSelectedItem(void 0)},r.onStoreChange=Object(J.a)($.a.mark((function e(){var t,a;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=qe.getState(),(a=t.user)===r.loadedUser||r.loadedUser&&a.id!==r.loadedUser.id){e.next=6;break}if(!(!r.props.signedIn||r.props.signedIn&&r.state.cloudSyncCheckHasFinished)){e.next=6;break}return e.next=5,gt(a);case 5:r.loadedUser=a;case 6:return e.next=8,r.syncBadgesAsync();case 8:case"end":return e.stop()}}),e)}))),r.state={cloudSyncCheckHasFinished:!1,badgeSyncLock:!1},r.readyPromise=new tr,window.addEventListener("hashchange",r.handleHashChange),r.cloudSyncCheckAsync(),r}return Object(Ye.a)(a,[{key:"parseHashAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r,n,i,o;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,pxt.targetConfigAsync();case 2:return r=e.sent,i=window.location.hash.replace("#",""),n=i&&(null===(t=r.skillMap)||void 0===t||null===(a=t.pathAliases)||void 0===a?void 0:a[i])?Z(r.skillMap.pathAliases[i]):Z(window.location.hash||(null===(o=r.skillMap)||void 0===o?void 0:o.defaultPath)),e.next=7,this.fetchAndParseSkillMaps(n.cmd,n.arg);case 7:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"initLocalizationAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r,n,i,o,c,s,l,u,d,p;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=pxt.appTarget.appTheme,r=window.location.href,n=!1,i=void 0,/[&?]translate=1/.test(r)&&!pxt.BrowserUtils.isIE()?i=ts.pxtc.Util.TRANSLATION_LOCALE:((o=/(live)?(force)?lang=([a-z]{2,}(-[A-Z]+)?)/i.exec(window.location.href))&&window.location.hash.indexOf(o[0])>=0&&pxt.BrowserUtils.changeHash(window.location.hash.replace(o[0],"")),i=o?o[3]:pxt.BrowserUtils.getCookieLang()||a.defaultLocale||navigator.userLanguage||navigator.language,n=!!o&&!!o[2]),c=pxt.appTarget.appTheme.defaultLocale,n||pxt.Util.isLocaleEnabled(i)||(i=c),s=pxt.appTarget.id,l=pxt.appTarget.versions.pxtCrowdinBranch,u=pxt.appTarget.versions.targetCrowdinBranch,d=null===(t=i)||void 0===t?void 0:t.toLocaleLowerCase(),p=pxt.BrowserUtils.isLocalHostDev()&&(!d||(c?c.toLocaleLowerCase()===d:"en"===d||"en-us"===d)),pxt.BrowserUtils.isPxtElectron()||p||pxt.Util.enableLiveLocalizationUpdates(),e.next=17,rr({targetId:s,baseUrl:"",code:i,pxtBranch:l,targetBranch:u,force:n});case 17:pxt.Util.isLocaleEnabled(i)&&(pxt.BrowserUtils.setCookieLang(i),pxt.Util.setUserLanguage(i));case 18:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}()},{key:"fetchAndParseSkillMaps",value:function(){var e=Object(J.a)($.a.mark((function e(t,a){var n,i,o,c,s,l,u,d,p,f,h,m,v,g,y,b,k,S=this;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,te(t,a);case 2:if(n=e.sent,i=null==n?void 0:n.text,o=null==n?void 0:n.identifier,c=null==n?void 0:n.status,i&&o&&c)try{"banned"===c?this.handleError(lf("This GitHub repository has been banned.")):(ye(o),this.props.dispatchSetPageSourceUrl(o,c),this.props.dispatchClearMetadata()),l=Ra(i),u=l.maps,d=l.metadata,(null==u?void 0:u.length)>0&&(s=u,this.props.dispatchClearSkillMaps(),u.forEach((function(e){S.props.dispatchAddSkillMap(e)}))),d&&(p=d.title,f=d.description,h=d.infoUrl,m=d.backgroundImageUrl,v=d.bannerImageUrl,g=d.theme,y=d.alternateSources,r=p,this.props.dispatchSetPageTitle(p),f&&this.props.dispatchSetPageDescription(f),h&&this.props.dispatchSetPageInfoUrl(h),m&&this.props.dispatchSetPageBackgroundImageUrl(m),v&&this.props.dispatchSetPageBannerImageUrl(v),y&&this.props.dispatchSetPageAlternateUrls(y),g&&this.props.dispatchSetPageTheme(g)),this.setState({error:void 0})}catch(e){this.handleError(e)}else this.setState({error:lf("No content loaded.")});return e.next=9,mt();case 9:return b=e.sent,o&&!b.completedTags[o]&&(b.completedTags[o]={}),this.applyQueryFlags(b,s,o),this.loadedUser=b,this.props.dispatchSetUser(b),e.next=16,Dt();case 16:(k=e.sent)&&this.props.dispatchSetUserPreferences(k);case 18:case"end":return e.stop()}}),e,this)})));return function(t,a){return e.apply(this,arguments)}}()},{key:"cloudSyncCheckAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r=this;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.ready();case 2:return t=e.sent,e.next=5,Ct();case 5:if(e.sent){e.next=9;break}this.setState({cloudSyncCheckHasFinished:!0}),e.next=13;break;case 9:return a=function(){var e=Object(J.a)($.a.mark((function e(){var a,n,i,o,c,s,l,u,d,p,h,m,v,g,y,b,k,S,w,I,x,C,E,O,j;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=qe.getState(),e.next=3,ft();case 3:return n=e.sent,e.next=6,mt();case 6:return i=e.sent,o=Re(n,a.pageSourceUrl,i),e.next=10,t.sendMessageAsync({type:"pxteditor",action:"savelocalprojectstocloud",headerIds:o});case 10:if(!(c=e.sent.resp.headerIdMap)){e.next=27;break}for(s=Object(f.a)(Object(f.a)({},i),{},{mapProgress:{}}),l=Object.keys(n.mapProgress),u=0,d=l;u<d.length;u++)for(p=d[u],s.mapProgress[p]=Object(f.a)({},n.mapProgress[p]),h=Object.keys(n.mapProgress[p]),m=0,v=h;m<v.length;m++)if(g=v[m],!Oe(i,p))for(s.mapProgress[p][g]=Object(f.a)({},n.mapProgress[p][g]),s.completedTags[p]=n.completedTags[p],y={},s.mapProgress[p][g].activityState=y,b=n.mapProgress[p][g].activityState,k=0,S=Object.keys(b);k<S.length;k++)w=S[k],(I=b[w]).headerId?y[w]=Object(f.a)(Object(f.a)({},I),{},{headerId:c[I.headerId]||I.headerId}):Me(a.maps[g].activities[w])&&(y[w]=Object(f.a)({},I));for(x=Object.keys(i.mapProgress),C=0,E=x;C<E.length;C++)O=E[C],Oe(i,O)&&(s.mapProgress[O]=Object(f.a)({},i.mapProgress[O]),s.completedTags[O]=i.completedTags[O]);return r.props.dispatchSetUser(s),e.next=20,gt(s);case 20:return i=s,e.next=23,Dt();case 23:return(j=e.sent)&&r.props.dispatchSetUserPreferences(j),e.next=27,r.syncBadgesAsync();case 27:return e.next=29,t.sendMessageAsync({type:"pxteditor",action:"requestprojectcloudstatus",headerIds:Re(i,a.pageSourceUrl)});case 29:r.setState({cloudSyncCheckHasFinished:!0,showingSyncLoader:!1});case 30:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),e.next=13,Promise.race([pxt.U.delay(1e4).then((function(){r.state.cloudSyncCheckHasFinished||r.setState({cloudSyncCheckHasFinished:!0,showingSyncLoader:!1})})),a()]);case 13:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"componentDidMount",value:function(){var e=Object(J.a)($.a.mark((function e(){return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this.unsubscribeChangeListener=qe.subscribe(this.onStoreChange),this.queryFlags=ee(),!this.queryFlags.authcallback){e.next=5;break}return e.next=5,Ot(this.queryFlags);case 5:return e.next=7,It();case 7:return e.next=9,this.initLocalizationAsync();case 9:return e.next=11,this.parseHashAsync();case 11:return this.readyPromise.setAppMounted(),e.next=14,Ct();case 14:if(e.t0=e.sent,!e.t0){e.next=17;break}e.t0=!this.state.cloudSyncCheckHasFinished;case 17:if(!e.t0){e.next=19;break}this.setState({showingSyncLoader:!0});case 19:case"end":return e.stop()}}),e,this)})));return function(){return e.apply(this,arguments)}}()},{key:"componentDidUpdate",value:function(){var e=this.props.highContrast,t=document.body.classList.contains("high-contrast");e?t||document.body.classList.add("high-contrast"):t&&document.body.classList.remove("high-contrast")}},{key:"componentWillUnmount",value:function(){window.removeEventListener("hashchange",this.handleHashChange),this.unsubscribeChangeListener&&this.unsubscribeChangeListener()}},{key:"render",value:function(){var e=this.props,t=e.skillMaps,a=e.activityOpen,r=e.backgroundImageUrl,n=e.theme,i=this.state,c=i.error,s=i.showingSyncLoader,l=Object.keys(t).map((function(e){return t[e]}));return o.a.createElement("div",{className:"app-container ".concat(pxt.appTarget.id)},o.a.createElement($t,null),s&&o.a.createElement("div",{className:"makecode-frame-loader"},o.a.createElement("img",{src:ge("assets/logo.svg"),alt:lf("MakeCode Logo")}),o.a.createElement("div",{className:"makecode-frame-loader-text"},lf("Saving to cloud..."))),o.a.createElement("div",{className:"skill-map-container ".concat(a?"hidden":""),style:{backgroundColor:n.backgroundColor}},c?o.a.createElement("div",{className:"skill-map-error"},c):o.a.createElement(wa,{maps:l,backgroundImageUrl:r}),!c&&o.a.createElement(La,{onFocusEscape:this.focusCurrentActivity})),o.a.createElement(aa,{onWorkspaceReady:this.onMakeCodeFrameLoaded}),o.a.createElement(ua,null),o.a.createElement(Za,null))}},{key:"applyQueryFlags",value:function(e,t,a){var r=a||"default";if("true"===this.queryFlags.debugNewUser&&(e.isDebug=!0,e.mapProgress=Object(p.a)({},r,{}),e.completedTags={}),"true"===this.queryFlags.debugCompleted&&(e.isDebug=!0,e.mapProgress=Object(p.a)({},r,{}),t)){var n,i=Object(d.a)(t);try{for(i.s();!(n=i.n()).done;){var o=n.value;e.mapProgress[r][o.mapId]={completionState:"completed",mapId:o.mapId,activityState:{}};for(var c=0,s=Object.keys(o.activities);c<s.length;c++){var l,u=s[c],f=o.activities[u];if(e.mapProgress[r][o.mapId].activityState[f.activityId]?e.mapProgress[r][o.mapId].activityState[f.activityId].isCompleted=!0:e.mapProgress[r][o.mapId].activityState[f.activityId]={activityId:f.activityId,isCompleted:!0},"activity"===f.kind&&(null===(l=f.tags)||void 0===l?void 0:l.length)&&a){var h,m=Object(d.a)(f.tags);try{for(m.s();!(h=m.n()).done;){var v=h.value;e.completedTags[a][v]||(e.completedTags[a][v]=0),e.completedTags[a][v]++}}catch(e){m.e(e)}finally{m.f()}}}}}catch(e){i.e(e)}finally{i.f()}}}},{key:"syncBadgesAsync",value:function(){var e=Object(J.a)($.a.mark((function e(){var t,a,r,n,i,o,c,s,l,u,d,p;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=qe.getState(),a=t.user,r=t.maps,n=t.pageSourceUrl,i=t.pageSourceStatus,!this.props.signedIn||!this.state.cloudSyncCheckHasFinished||"approved"!==i){e.next=24;break}for(o=[],c=0,s=Object.keys(r);c<s.length;c++)u=s[c],(l=o).push.apply(l,Object(Ke.a)(Le(a,n,r[u])));if(!o.length){e.next=24;break}return e.next=7,Bt();case 7:if(e.t0=e.sent,e.t0){e.next=10;break}e.t0={badges:[]};case 10:if(d=e.t0,!(o=o.filter((function(e){return!pxt.auth.hasBadge(d,e)}))).length||this.state.badgeSyncLock){e.next=24;break}return this.setState({badgeSyncLock:!0}),e.prev=14,e.next=17,Mt(o,d.badges);case 17:return e.next=19,Dt();case 19:(p=e.sent)&&this.props.dispatchSetUserPreferences(p);case 21:return e.prev=21,this.setState({badgeSyncLock:!1}),e.finish(21);case 24:case"end":return e.stop()}}),e,this,[[14,,21,24]])})));return function(){return e.apply(this,arguments)}}()}]),a}(o.a.Component));function rr(e){return nr.apply(this,arguments)}function nr(){return(nr=Object(J.a)($.a.mark((function e(t){var a,r,n,i,o,c;return $.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return a=t.targetId,r=t.baseUrl,n=t.pxtBranch,i=t.targetBranch,t.force,o=t.code,e.next=4,pxt.Util.downloadTranslationsAsync(a,r,o,n,i,pxt.Util.liveLocalizationEnabled(),ts.pxtc.Util.TranslationsKind.SkillMap);case 4:(c=e.sent)&&pxt.Util.setLocalizedStrings(c);case 6:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var ir={dispatchAddSkillMap:function(e){return{type:h,map:e}},dispatchClearSkillMaps:function(){return{type:m}},dispatchClearMetadata:function(){return{type:v}},dispatchSetPageTitle:function(e){return{type:O,title:e}},dispatchSetPageDescription:function(e){return{type:j,description:e}},dispatchSetPageInfoUrl:function(e){return{type:N,infoUrl:e}},dispatchSetUser:function(e){return{type:x,user:e}},dispatchSetPageSourceUrl:function(e,t){return{type:M,url:e,status:t}},dispatchSetPageAlternateUrls:function(e){return{type:L,urls:e}},dispatchSetPageBackgroundImageUrl:function(e){return{type:A,backgroundImageUrl:e}},dispatchSetPageBannerImageUrl:function(e){return{type:U,bannerImageUrl:e}},dispatchSetPageTheme:function(e){return{type:P,theme:e}},dispatchSetUserPreferences:nt,dispatchChangeSelectedItem:et},or=Object(l.b)((function(e,t){var a,r;return e?{skillMaps:e.maps,activityOpen:!!e.editorView,backgroundImageUrl:e.backgroundImageUrl,theme:e.theme,signedIn:e.auth.signedIn,activityId:null===(a=e.selectedItem)||void 0===a?void 0:a.activityId,highContrast:null===(r=e.auth.preferences)||void 0===r?void 0:r.highContrast}:{}}),ir)(ar),cr=window.pxtTargetBundle;cr.bundledpkgs={},pxt.setAppTarget(cr),pxt.Cloud.apiRoot="https://www.makecode.com/api/",ve()||pxt.setupWebConfig(window.pxtConfig),s.a.render(o.a.createElement(l.a,{store:qe},o.a.createElement(or,null)),document.getElementById("root"))}],[[88,1,2]]]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pxt-core",
3
- "version": "7.4.21",
3
+ "version": "7.4.22",
4
4
  "description": "Microsoft MakeCode provides Blocks / JavaScript / Python tools and editors",
5
5
  "keywords": [
6
6
  "TypeScript",
@@ -129,7 +129,7 @@
129
129
  "monaco-editor": "0.24.0",
130
130
  "pouchdb": "7.2.1",
131
131
  "pouchdb-adapter-memory": "7.2.1",
132
- "pxt-blockly": "4.0.7",
132
+ "pxt-blockly": "4.0.8",
133
133
  "react": "16.8.3",
134
134
  "react-dom": "16.11.0",
135
135
  "react-modal": "3.3.2",
@@ -79,7 +79,7 @@ export const Modal = (props: ModalProps) => {
79
79
  {!fullscreen &&
80
80
  <div className="common-modal-close">
81
81
  <Button
82
- className="menu-button"
82
+ className="menu-button inverted"
83
83
  onClick={closeClickHandler}
84
84
  title={lf("Close")}
85
85
  rightIcon="fas fa-times-circle"
@@ -2,6 +2,7 @@ import * as React from "react";
2
2
  import { fireClickOnEnter, CheckboxStatus } from "../util";
3
3
  import { UserNotification } from "./UserNotification";
4
4
  import { Checkbox } from "../controls/Checkbox";
5
+ import { Button } from "../controls/Button";
5
6
 
6
7
  export interface UserPaneProps {
7
8
  profile: pxt.auth.UserProfile;
@@ -59,10 +60,13 @@ export const UserPane = (props: UserPaneProps) => {
59
60
  onClick={onDeleteProfileClick}>
60
61
  {lf("Delete Profile")}
61
62
  </a>
62
- <button onClick={onSignOutClick} className="ui icon button sign-out">
63
- <i className="icon sign-out"></i>
64
- {lf("Sign Out")}
65
- </button>
63
+ <Button
64
+ className="sign-out"
65
+ leftIcon="fas fa-sign-out-alt"
66
+ title={lf("Sign Out")}
67
+ label={lf("Sign Out")}
68
+ onClick={onSignOutClick}
69
+ />
66
70
  </div>
67
71
  </div>
68
72
  }
@@ -32,22 +32,6 @@
32
32
  margin-left: 0.5rem;
33
33
  }
34
34
 
35
- .common-button:focus::after {
36
- content: "";
37
- position: absolute;
38
- inset: 4px;
39
- border: 1px solid transparent;
40
- outline: @buttonFocusOutline;
41
- z-index: 1;
42
- border-radius: 0.2em;
43
- }
44
-
45
- .common-button.inverted:focus::after,
46
- .common-button.menu-button:focus::after {
47
- outline: @buttonFocusOutlineInverted;
48
- }
49
-
50
-
51
35
  /****************************************************
52
36
  * Color Variants *
53
37
  ****************************************************/
@@ -142,6 +126,34 @@
142
126
  border: @buttonBackgroundColorDisabled;
143
127
  }
144
128
 
129
+ /****************************************************
130
+ * Focus *
131
+ ****************************************************/
132
+
133
+ .common-button:focus::after {
134
+ content: "";
135
+ position: absolute;
136
+ inset: 4px;
137
+ border: 1px solid transparent;
138
+ outline: @buttonFocusOutlineLightBackground;
139
+ z-index: 1;
140
+ border-radius: 0.2em;
141
+ }
142
+
143
+ .common-button.menu-button:focus::after,
144
+ .common-button.primary:focus::after,
145
+ .common-button.secondary:focus::after,
146
+ .common-button.teal:focus::after,
147
+ .common-button.orange:focus::after,
148
+ .common-button.red:focus::after,
149
+ .common-button.green:focus::after {
150
+ outline: @buttonFocusOutlineDarkBackground;
151
+ }
152
+
153
+ .common-button.inverted:focus::after {
154
+ outline: @buttonFocusOutlineLightBackground;
155
+ }
156
+
145
157
 
146
158
  /****************************************************
147
159
  * Menu Buttons *
@@ -33,7 +33,7 @@
33
33
  }
34
34
 
35
35
  .common-menu-dropdown-item.common-button:focus::after {
36
- outline: @buttonFocusOutlineInverted;
36
+ outline: @buttonFocusOutlineLightBackground;
37
37
  }
38
38
 
39
39
  /****************************************************
@@ -14,8 +14,8 @@
14
14
  @buttonMenuTextColor: #ffffff;
15
15
  @buttonMenuTextColorInverted: @primaryColor;
16
16
  @buttonMenuBackgroundColorInverted: @buttonMenuTextColor;
17
- @buttonFocusOutline: @buttonTextColorInverted solid 1px;;
18
- @buttonFocusOutlineInverted: @commonBorderColor solid 1px;
17
+ @buttonFocusOutlineDarkBackground: @buttonTextColorInverted solid 1px;;
18
+ @buttonFocusOutlineLightBackground: @commonBorderColor solid 1px;
19
19
  @buttonMenuBackgroundHoverColor: rgba(0,0,0,.1);
20
20
  @buttonMenuBackgroundActiveColor: rgba(0,0,0,.15);
21
21