From 214131503f5abbcae117a48ede089e1d7b6258d3 Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Sun, 14 Jan 2018 10:55:57 +0530 Subject: [PATCH] build --- app/script.js | 2 +- app/service-worker.js | 2 +- app/style.css | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/script.js b/app/script.js index 0469bf8..46962a2 100644 --- a/app/script.js +++ b/app/script.js @@ -1 +1 @@ -'serviceWorker'in navigator&&window.addEventListener('load',function(){navigator.serviceWorker.register('service-worker.js').then(function(e){e.onupdatefound=function(){var t=e.installing;t.onstatechange=function(){switch(t.state){case'installed':navigator.serviceWorker.controller?console.log('New or updated content is available.'):console.log('Content is now available offline!');break;case'redundant':console.error('The installing service worker became redundant.');}}}}).catch(function(t){console.error('Error during service worker registration:',t)})}),function(){window.DEBUG=-1[...document.querySelectorAll(e)];var e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';Node.prototype.nextUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s+1]},Node.prototype.previousUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s-1]},window.utils={semverCompare:function(e,t){for(var s=e.split('.'),o=t.split('.'),a=0;3>a;a++){var i=+s[a],n=+o[a];if(i>n)return 1;if(n>i)return-1;if(!isNaN(i)&&isNaN(n))return 1;if(isNaN(i)&&!isNaN(n))return-1}return 0},generateRandomId:function(t){for(var s='',o=t||10;o--;)s+=e[~~(Math.random()*e.length)];return s},onButtonClick:function(e,t){e.addEventListener('click',function(s){return t(s),!1})},addInfiniteLoopProtection:function(e){var t=1,s=[],i='_wmloopvar';return esprima.parse(e,{tolerant:!0,range:!0,jsx:!0},function(e){switch(e.type){case'DoWhileStatement':case'ForStatement':case'ForInStatement':case'ForOfStatement':case'WhileStatement':var o=1+e.body.range[0],a=e.body.range[1],n='\nif (Date.now() - %d > 1000) { window.top.previewException(new Error("Infinite loop")); break;}\n'.replace('%d',i+t),l='';'BlockStatement'!==e.body.type&&(n='{'+n,l='}',--o),s.push({pos:o,str:n}),s.push({pos:a,str:l}),s.push({pos:e.range[0],str:'var %d = Date.now();\n'.replace('%d',i+t)}),++t;break;default:}}),s.sort(function(e,t){return t.pos-e.pos}).forEach(function(t){e=e.slice(0,t.pos)+t.str+e.slice(t.pos)}),e},getHumanDate:function(e){var t=new Date(e),s=t.getDate()+' '+['January','February','March','April','May','June','July','August','September','October','November','December'][t.getMonth()]+' '+t.getFullYear();return s},log:function(){window.DEBUG&&console.log(...arguments)},once:function(e,t,s){e.addEventListener(t,function(i){return i.target.removeEventListener(t,arguments.callee),s(i)})},downloadFile:function(e,t){function s(){var s=document.createElement('a');s.href=window.URL.createObjectURL(t),s.download=e,s.style.display='none',document.body.appendChild(s),s.click(),s.remove()}window.IS_EXTENSION?chrome.downloads.download({url:window.URL.createObjectURL(t),filename:e,saveAs:!0},()=>{chrome.runtime.lastError&&s()}):s()}},window.chrome=window.chrome||{},window.chrome.i18n={getMessage:()=>{}},window.IS_EXTENSION=!!window.chrome.extension,window.IS_EXTENSION?document.body.classList.add('is-extension'):document.body.classList.add('is-app')}(),(()=>{async function e(){return i?i:(utils.log('Initializing firestore'),i=new Promise((e,t)=>s?e(s):firebase.firestore().enablePersistence().then(function(){s=firebase.firestore(),utils.log('firebase db ready',s),e(s)}).catch(function(e){t(e.code),'failed-precondition'!==e.code&&'unimplemented'!==e.code})),i)}const t=1;var s,i,o={get:(e,s)=>{const i={};'string'==typeof e?(i[e]=JSON.parse(window.localStorage.getItem(e)),setTimeout(()=>s(i),t)):(Object.keys(e).forEach((t)=>{const s=window.localStorage.getItem(t);i[t]=s===void 0||null===s?e[t]:JSON.parse(s)}),setTimeout(()=>s(i),t))},set:(e,s)=>{Object.keys(e).forEach((t)=>{window.localStorage.setItem(t,JSON.stringify(e[t]))}),setTimeout(()=>{if(s)return s()},t)}};const a=chrome&&chrome.storage?chrome.storage.local:o,n=chrome&&chrome.storage?chrome.storage.sync:o;window.db={getDb:e,getUser:async function(t){const s=await e();return s.doc(`users/${t}`).get().then((e)=>{if(!e.exists)return s.doc(`users/${t}`).set({},{merge:!0});const i=e.data();return Object.assign(window.user,i),i})},getUserLastSeenVersion:async function(){const e=deferred();return n.get({lastSeenVersion:''},(t)=>{e.resolve(t.lastSeenVersion)}),e.promise},setUserLastSeenVersion:async function(t){if(window.IS_EXTENSION)return void chrome.storage.sync.set({lastSeenVersion:t},function(){});if(o.set({lastSeenVersion:t}),window.user){const s=await e();s.doc(`users/${window.user.uid}`).update({lastSeenVersion:t})}},getSettings:function(e){const t=deferred();return n.get(e,(e)=>{t.resolve(e)}),t.promise},local:a,sync:n}})(),window.logout=function(){firebase.auth().signOut()};function login(e){var t;return'facebook'===e?t=new firebase.auth.FacebookAuthProvider:'twitter'===e?t=new firebase.auth.TwitterAuthProvider:'google'===e?(t=new firebase.auth.GoogleAuthProvider,t.addScope('https://www.googleapis.com/auth/userinfo.profile')):t=new firebase.auth.GithubAuthProvider,firebase.auth().signInWithPopup(t).then(function(){}).catch(function(e){alert('You have already signed up with the same email using different social login'),utils.log(e)})}window.login=login,window.trackEvent=function(e,t,s,i){return window.DEBUG?void utils.log('trackevent',e,t,s,i):void(window.ga&&ga('send','event',e,t,s,i))},navigator.onLine&&!window.DEBUG&&setTimeout(function(){(function(e,t,s,i,o,n,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,n=t.createElement(s),a=t.getElementsByTagName(s)[0],n.async=1,n.src=i,a.parentNode.insertBefore(n,a)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'),ga('create','UA-87786708-1',{cookieDomain:'none'}),ga('set','checkProtocolTask',function(){}),ga('send','pageview')},100),function(){window.deferred=function(){var e={},t=new Promise(function(t,s){e.resolve=t,e.reject=s});return e.promise=t,Object.assign(e,t)}}(),function(e){window.loadJS=function(t){var s=deferred(),i=e.document.getElementsByTagName('script')[0],o=e.document.createElement('script');return o.src=t,o.async=!0,i.parentNode.insertBefore(o,i),o.onload=function(){s.resolve()},s.promise}}(window),function(){const e=$('#js-alerts-container');var t;window.alertsService={add:function(s){e.textContent=s,e.classList.add('is-active'),clearTimeout(t),t=setTimeout(function(){e.classList.remove('is-active')},2e3)}}}(),window.jsLibs=[{url:'https://code.jquery.com/jquery-3.2.1.min.js',label:'jQuery',type:'js'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js',label:'Bootstrap 3',type:'js'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js',label:'Bootstrap 4\u03B2',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/js/foundation.min.js',label:'Foundation',type:'js'},{url:'https://semantic-ui.com/dist/semantic.min.js',label:'Semantic UI',type:'js'},{url:'https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js',label:'Angular',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react/16.2.0/cjs/react.production.min.js',label:'React',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react-dom.min.js',label:'React DOM',type:'js'},{url:'https://unpkg.com/vue@2.5.0/dist/vue.min.js',label:'Vue.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/three.js/85/three.min.js',label:'Three.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/d3/4.10.2/d3.min.js',label:'D3',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js',label:'Underscore',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js',label:'Greensock TweenMax',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.4/js/uikit.min.js',label:'UIkit 2',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.31/js/uikit.min.js',label:'UIkit 3',type:'js'}],window.cssLibs=[{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',label:'Bootstrap 3',type:'css'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css',label:'Bootstrap 4\u03B2',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/css/foundation.min.css',label:'Foundation',type:'css'},{url:'https://semantic-ui.com/dist/semantic.min.css',label:'Semantic UI',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.0/css/bulma.min.css',label:'Bulma',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/hint.css/2.5.0/hint.min.css',label:'Hint.css',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.4/css/uikit.min.css',label:'UIkit 2',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.31/css/uikit.min.css',label:'UIkit 3',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css',label:'Animate.css',type:'css'},{url:'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',label:'FontAwesome',type:'css'}],function(){class e{constructor(e,t){this.t=e,this.filter=t.filter,this.selectedCallback=t.selectedCallback;var s=document.createElement('div');s.classList.add('btn-group'),e.parentElement.insertBefore(s,e),s.insertBefore(e,null),this.list=document.createElement('ul'),this.list.classList.add('dropdown__menu'),this.list.classList.add('autocomplete-dropdown'),s.insertBefore(this.list,null),this.loader=document.createElement('div'),this.loader.classList.add('loader'),this.loader.classList.add('autocomplete__loader'),this.loader.style.display='none',s.insertBefore(this.loader,null),setTimeout(()=>{requestIdleCallback(()=>{document.body.appendChild(this.list),this.list.style.position='fixed'})},100),this.t.addEventListener('input',(t)=>this.onInput(t)),this.t.addEventListener('keydown',(t)=>this.onKeyDown(t)),this.t.addEventListener('blur',(t)=>this.closeSuggestions(t)),this.list.addEventListener('mousedown',(t)=>this.onListMouseDown(t))}get currentLineNumber(){return this.t.value.substr(0,this.t.selectionStart).split('\n').length}get currentLine(){var e=this.currentLineNumber;return this.t.value.split('\n')[e-1]}closeSuggestions(){this.list.classList.remove('is-open'),this.isShowingSuggestions=!1}getList(e){return fetch('https://api.cdnjs.com/libraries?search='+e).then((e)=>e.json().then((e)=>e.results))}replaceCurrentLine(e){var t=this.t.value.split('\n');t.splice(this.currentLineNumber-1,1,e),this.t.value=t.join('\n')}onInput(){var e=this.currentLine;if(e){if(-1!==e.indexOf('/')||e.match(/https*:\/\//))return;clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.loader.style.display='block',this.getList(e).then((e)=>{if(this.loader.style.display='none',!e.length)return void this.closeSuggestions();this.list.innerHTML='',this.filter&&(e=e.filter(this.filter));for(var t=0;t${e[t].name}`;this.isShowingSuggestions=!0,this.textareaBounds||(this.textareaBounds=this.t.getBoundingClientRect(),this.list.style.top=this.textareaBounds.bottom+'px',this.list.style.left=this.textareaBounds.left+'px',this.list.style.width=this.textareaBounds.width+'px'),this.list.classList.add('is-open')})},500)}}onKeyDown(e){var t;this.isShowingSuggestions&&(27===e.keyCode&&(this.closeSuggestions(),e.stopPropagation()),40===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.nextElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):38===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.previousElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):13===e.keyCode&&this.isShowingSuggestions&&(t=this.list.querySelector('.selected'),this.selectSuggestion(t.dataset.url),this.closeSuggestions()))}onListMouseDown(e){var t=e.target;t.parentElement.dataset.url&&this.selectSuggestion(t.parentElement.dataset.url)}selectSuggestion(e){this.selectedCallback?this.selectedCallback.call(null,e):this.replaceCurrentLine(e),this.closeSuggestions()}}window.TextareaAutoComplete=e}(),(()=>{window.itemService={async getItem(e){var t=await window.db.getDb();return t.doc(`items/${e}`).get().then((e)=>e.data())},async getUserItemIds(){if(window.user)return new Promise((e)=>{e(window.user.items||{})});var e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).get().then((e)=>e.exists?e.data().items:{})},async getAllItems(){var e=deferred();let t=await this.getUserItemIds();t=Object.getOwnPropertyNames(t||{}),utils.log('itemids',t),t.length||e.resolve([]);const s=[];for(let o=0;o{s.push(i),t.length===s.length&&e.resolve(s)})}return e.promise},async setUser(){const e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).set({items:{}})},async setItem(e,t){if(!window.user)return new Promise((e)=>e());var s=await window.db.getDb();return utils.log(`Starting to save item ${e}`),t.createdBy=window.user.uid,s.collection('items').doc(e).set(t,{merge:!0}).then((e)=>{utils.log('Document written',e)}).catch((e)=>utils.log(e))},saveItems(e){var t=deferred();return window.IS_EXTENSION?(window.db.local.set(e,t.resolve),window.db.local.get({items:{}},function(t){for(var s in e)t.items[s]=!0;window.db.local.set({items:t.items})})):window.db.getDb().then((s)=>{const i=s.batch();for(var o in e)e[o].createdBy=window.user.uid,i.set(s.doc(`items/${o}`),e[o]),i.update(s.doc(`users/${window.user.uid}`),{[`items.${o}`]:!0}),window.user.items[o]=!0;i.commit().then(t.resolve)}),t.promise},async removeItem(e){if(window.IS_EXTENSION){var t=deferred();return db.local.remove(e,t.resolve),t.promise}const s=await window.db.getDb();return utils.log(`Starting to save item ${e}`),s.collection('items').doc(e).delete().then((e)=>{utils.log('Document removed',e)}).catch((e)=>utils.log(e))},async setItemForUser(e){if(window.IS_EXTENSION||!window.user)return window.db.local.get({items:{}},function(t){t.items[e]=!0,window.db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:!0}).then((t)=>{utils.log(`Item ${e} set for user`,t),window.user.items=window.user.items||{},window.user.items[e]=!0}).catch((e)=>utils.log(e))},async unsetItemForUser(e){if(window.IS_EXTENSION)return window.db.local.get({items:{}},function(t){delete t.items[e],db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:firebase.firestore.FieldValue.delete()}).then((t)=>{utils.log(`Item ${e} unset for user`,t)}).catch((e)=>utils.log(e))}}})(),function(e,t){function s(){clearTimeout(s.timeout),s.timeout=setTimeout(function(){const e=2===oe?'width':'height';[we,Ee,Ae].forEach(function(t){const s=t.getBoundingClientRect(),i=s[e];100>i?t.classList.add('is-minimized'):t.classList.remove('is-minimized'),-1===t.style[e].indexOf(`100% - ${2*fe}px`)?t.classList.remove('is-maximized'):t.classList.add('is-maximized')})},50)}function i(e){if(e.classList.contains('is-minimized')||e.classList.contains('is-maximized'))e.classList.remove('is-minimized'),e.classList.remove('is-maximized'),ce.setSizes([33.3,33.3,33.3]);else{const s=parseInt(e.dataset.codeWrapId,10);var t=[`${fe}px`,`${fe}px`,`${fe}px`];t[s]=`calc(100% - ${2*fe}px)`,ce.setSizes(t),e.classList.add('is-maximized')}}function o(){var e;return e=ne&&ne.mainSizes?3===oe?[ne.mainSizes[1],ne.mainSizes[0]]:ne.mainSizes:[50,50],e}function a(){ce&&ce.destroy(),re&&re.destroy();var e={direction:2===oe?'horizontal':'vertical',minSize:fe,gutterSize:6,onDragStart:function(){document.body.classList.add('is-dragging')},onDragEnd:function(){s(),document.body.classList.remove('is-dragging')}};e.sizes=ne&&ne.sizes?ne.sizes:[33.33,33.33,33.33],ce=Split(['#js-html-code','#js-css-code','#js-js-code'],e),re=Split(['#js-code-side','#js-demo-side'],{direction:2===oe?'vertical':'horizontal',minSize:150,gutterSize:6,sizes:o(),onDragEnd:function(){ye.refreshOnResize&&setTimeout(function(){H.setPreviewContent(!0)},1)}})}function n(e){return oe===e?(re.setSizes(o()),ce.setSizes(ne.sizes||[33.33,33.33,33.33]),void(oe=e)):void(oe=e,layoutBtn1.classList.remove('selected'),layoutBtn2.classList.remove('selected'),layoutBtn3.classList.remove('selected'),layoutBtn4.classList.remove('selected'),$('#layoutBtn'+e).classList.add('selected'),document.body.classList.remove('layout-1'),document.body.classList.remove('layout-2'),document.body.classList.remove('layout-3'),document.body.classList.remove('layout-4'),document.body.classList.add('layout-'+e),a(),H.setPreviewContent(!0))}function l(){utils.log('onExternalLibChange'),d(),H.setPreviewContent(!0),e.add('Libraries updated.')}function d(){var e=0;e+=Be.value.split('\n').filter((e)=>!!e).length,e+=Ne.value.split('\n').filter((e)=>!!e).length,e?($('#js-external-lib-count').textContent=e,$('#js-external-lib-count').style.display='inline'):$('#js-external-lib-count').style.display='none'}function r(e,t){const s=deferred();return db.local.set({[e]:t},s.resolve),s.promise}function c(){var s=!ne.id;ne.id=ne.id||'item-'+utils.generateRandomId(),g().then(()=>{!ue&&ye.autoSave&&(ue=!0,e.add('Auto-save enabled.'))}),s&&t.setItemForUser(ne.id)}function m(){ue&&le&&c()}function u(){var e,t=2===oe?'width':'height';try{e=[we.style[t],Ee.style[t],Ae.style[t]]}catch(t){e=[33.33,33.33,33.33]}finally{return e}}function p(){var e,t=2===oe?'height':'width';try{e=[+$('#js-code-side').style[t].match(/([\d.]+)%/)[1],+$('#js-demo-side').style[t].match(/([\d.]+)%/)[1]]}catch(t){e=[50,50]}finally{return e}}function g(s){return ne.title=Fe.value,ne.html=H.cm.html.getValue(),ne.css=H.cm.css.getValue(),ne.js=H.cm.js.getValue(),ne.htmlMode=ve,ne.cssMode=Se,ne.jsMode=be,ee[Se].hasSettings&&(ne.cssSettings={acssConfig:H.acssSettingsCm.getValue()}),ne.updatedOn=Date.now(),ne.layoutMode=oe,ne.externalLibs={js:Be.value,css:Ne.value},ne.sizes=u(),ne.mainSizes=p(),utils.log('saving key',s||ne.id,ne),r(s||ne.id,ne),'code'!==s&&t.setItem(s||ne.id,ne).then(()=>{e.add('Item saved.'),le=0,saveBtn.classList.remove('is-marked')})}function h(e){var t='';e.length?(e.sort(function(e,t){return t.updatedOn-e.updatedOn}),e.forEach(function(e){t+='

'+e.title+'

Last updated: '+utils.getHumanDate(e.updatedOn)+'
'}),savedItemCountEl.textContent='('+e.length+')',savedItemCountEl.style.display='inline'):(t+='

Nothing saved here.

',savedItemCountEl.style.display='none'),Me.querySelector('#js-saved-items-wrap').innerHTML=t,v()}function v(e){!1===e?Me.classList.remove('is-open'):Me.classList.toggle('is-open'),Le=Me.classList.contains('is-open'),Le?searchInput.focus():(searchInput.value='',me&&me.focus()),document.body.classList[Le?'add':'remove']('overlay-visible')}async function b(e){var s=deferred();de=de||{};var o=[];return!window.IS_EXTENSION&&window.user?(o=await t.getAllItems(),e&&o.forEach((e)=>{de[e.id]=e}),s.resolve(o),s.promise):(db.local.get('items',function(t){var a=Object.getOwnPropertyNames(t.items||{});a.length||s.resolve([]),trackEvent('fn','fetchItems',a.length);for(let n=0;n{e.add('Item removed.'),ne.id===s&&C()}),delete de[s],trackEvent('fn','itemRemoved'))}function j(){Fe.value=ne.title||'Untitled',Be.value=ne.externalLibs&&ne.externalLibs.js||'',Ne.value=ne.externalLibs&&ne.externalLibs.css||'',utils.log('refresh editor'),ve=ne.htmlMode||ye.htmlMode||X.HTML,Se=ne.cssMode||ye.cssMode||Z.CSS,be=ne.jsMode||ye.jsMode||Q.JS,H.cm.html.setValue(ne.html),H.cm.css.setValue(ne.css),H.cm.js.setValue(ne.js),H.cm.html.refresh(),H.cm.css.refresh(),H.cm.js.refresh(),H.acssSettingsCm.setValue(ne.cssSettings?ne.cssSettings.acssConfig:''),H.acssSettingsCm.refresh(),H.clearConsole(),d(),Promise.all([A(ve),x(Se),M(be)]).then(()=>H.setPreviewContent(!0)),n(ne.layoutMode||ye.layoutMode)}function w(){helpModal.classList.remove('is-modal-visible'),notificationsModal.classList.remove('is-modal-visible'),addLibraryModal.classList.remove('is-modal-visible'),onboardModal.classList.remove('is-modal-visible'),settingsModal.classList.remove('is-modal-visible'),cssSettingsModal.classList.remove('is-modal-visible'),keyboardShortcutsModal.classList.remove('is-modal-visible'),loginModal.classList.remove('is-modal-visible'),v(!1),document.dispatchEvent(new Event('overlaysClosed'))}function E(e){function t(){ee[e].hasLoaded=!0,i.resolve()}const s='lib/transpilers';var i=deferred();return ee[e].hasLoaded?(i.resolve(),i.promise):(e===X.JADE?loadJS(`${s}/jade.js`).then(t):e===X.MARKDOWN?loadJS(`${s}/marked.js`).then(t):e===Z.LESS?loadJS(`${s}/less.min.js`).then(t):e===Z.SCSS||e===Z.SASS?loadJS(`${s}/sass.js`).then(function(){ae=new Sass(`${s}/sass.worker.js`),t()}):e===Z.STYLUS?loadJS(`${s}/stylus.min.js`).then(t):e===Z.ACSS?loadJS(`${s}/atomizer.browser.js`).then(t):e===Q.COFFEESCRIPT?loadJS(`${s}/coffee-script.js`).then(t):e===Q.ES6?loadJS(`${s}/babel.min.js`).then(t):e===Q.TS?loadJS(`${s}/typescript.js`).then(t):i.resolve(),i.promise)}function A(e){return ve=e,Ie.textContent=ee[e].label,Ie.parentElement.querySelector('select').value=e,H.cm.html.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.html,ee[e].cmPath||ee[e].cmMode),E(e)}function x(e){return Se=e,Oe.textContent=ee[e].label,Oe.parentElement.querySelector('select').value=e,H.cm.css.setOption('mode',ee[e].cmMode),H.cm.css.setOption('readOnly',ee[e].cmDisable),cssSettingsBtn.classList[ee[e].hasSettings?'remove':'add']('hide'),CodeMirror.autoLoadMode(H.cm.css,ee[e].cmPath||ee[e].cmMode),E(e)}function M(e){return be=e,De.textContent=ee[e].label,De.parentElement.querySelector('select').value=e,H.cm.js.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.js,ee[e].cmPath||ee[e].cmMode),E(e)}function T(){var e=deferred(),t=H.cm.html.getValue();return ve===X.HTML?e.resolve(t):ve===X.MARKDOWN?e.resolve(marked?marked(t):t):ve===X.JADE&&e.resolve(window.jade?jade.render(t):t),e.promise}function I(){var e=deferred(),t=H.cm.css.getValue();if(D('css'),Se===Z.CSS)e.resolve(t);else if(Se===Z.SCSS||Se===Z.SASS)ae&&t?ae.compile(t,{indentedSyntax:Se===Z.SASS},function(t){t.line&&t.message&&F('css',[{lineNumber:t.line-1,message:t.message}]),e.resolve(t.text)}):e.resolve(t);else if(Se===Z.LESS)less.render(t).then(function(t){e.resolve(t.css)},function(e){F('css',[{lineNumber:e.line,message:e.message}])});else if(Se===Z.STYLUS)stylus(t).render(function(t,s){if(t){window.err=t;var i=t.message.split('\n');i.pop(),F('css',[{lineNumber:+t.message.match(/stylus:(\d+):/)[1]-298,message:i.pop()}])}e.resolve(s)});else if(Se===Z.ACSS)if(!window.atomizer)e.resolve('');else{const t=H.cm.html.getValue(),i=atomizer.findClassNames(t);var s;try{s=atomizer.getConfig(i,JSON.parse(H.acssSettingsCm.getValue()))}catch(t){s=atomizer.getConfig(i,{})}const o=atomizer.getCss(s);H.cm.css.setValue(o),e.resolve(o)}return e.promise}function O(e){var t=deferred(),s=H.cm.js.getValue();if(D('js'),!s)return t.resolve(''),t.promise;if(be===Q.JS)try{esprima.parse(s,{tolerant:!0})}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(s)),t.resolve(s)}else if(be===Q.COFFEESCRIPT){var i;if(!window.CoffeeScript)return t.resolve(''),t.promise;try{i=CoffeeScript.compile(s,{bare:!0})}catch(t){F('js',[{lineNumber:t.location.first_line,message:t.message}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(i)),t.resolve(s)}}else if(be===Q.ES6){if(!window.Babel)return t.resolve(''),t.promise;try{esprima.parse(s,{tolerant:!0,jsx:!0})}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{s=Babel.transform(s,{presets:['latest','stage-2','react']}).code,!1!==e&&(s=utils.addInfiniteLoopProtection(s)),t.resolve(s)}}else if(be===Q.TS)try{if(!window.ts)return t.resolve(''),t.promise;if(s=ts.transpileModule(s,{reportDiagnostics:!0,compilerOptions:{noEmitOnError:!0,diagnostics:!0,module:ts.ModuleKind.ES2015}}),s.diagnostics.length)throw{description:s.diagnostics[0].messageText,lineNumber:ts.getLineOfLocalPosition(s.diagnostics[0].file,s.diagnostics[0].start)};!1!==e&&(s=utils.addInfiniteLoopProtection(s.outputText)),t.resolve(s)}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}return t.promise}function D(e){H.cm[e].clearGutter('error-gutter')}function F(e,t){var s=H.cm[e];t.forEach(function(t){s.operation(function(){var e=document.createElement('div');e.setAttribute('data-title',t.message),e.classList.add('gutter-error-marker'),s.setGutterMarker(t.lineNumber,'error-gutter',e)})})}function z(e,t,s,i){var o=Be.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),a=Ne.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),n='\n\n\n\n'+a+'\n\n\n\n'+e+'\n'+o+'\n';if(i||(n+=''),be===Q.ES6&&(n+=''),'string'==typeof s)n+='\n\n',n}function B(e,t,s){function i(e){return function(){utils.log(arguments),trackEvent('fn','error',e),B.errorCount=(B.errorCount||0)+1,4===B.errorCount&&setTimeout(function(){alert('Oops! Seems like your preview isn\'t updating. Please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don\'t forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp.'),trackEvent('ui','writeFileMessageSeen')},1e3)}}var o=!1;window.webkitRequestFileSystem(window.TEMPORARY,5242880,function(a){a.root.getFile(e,{create:!0},function(e){e.createWriter((e)=>{e.onwriteend=function(){return o?s():(o=!0,e.seek(0),e.write(t),!1)},e.truncate(0)},i('createWriterFail'))},i('getFileFail'))},i('webkitRequestFileSystemFail'))}function N(e,t,s){const i=!window.webkitRequestFileSystem||!window.IS_EXTENSION;var o=z(e,t,i?s:null),a=new Blob([o],{type:'text/plain;charset=UTF-8'}),n=new Blob([s],{type:'text/plain;charset=UTF-8'});!trackEvent.hasTrackedCode&&(e||t||s)&&(trackEvent('fn','hasCode'),trackEvent.hasTrackedCode=!0),i?(je.src=je.src,setTimeout(()=>{je.contentDocument.open(),je.contentDocument.write(o),je.contentDocument.close()},10)):B('script.js',n,function(){B('preview.html',a,function(){var e=chrome.i18n.getMessage()?`chrome-extension://${chrome.i18n.getMessage('@@extension_id')}`:`${location.origin}`,t=`filesystem:${e}/temporary/preview.html`;H.detachedWindow?H.detachedWindow.postMessage(t,'*'):je.src=t})})}function P(){var e=T(),t=I(),s=O(!1);Promise.all([e,t,s]).then(function(e){var t=e[0],s=e[1],i=e[2],o=z(t,s,i,!0),a=new Date,n=['web-maker',a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds()].join('-');n+='.html',ne.title&&(n=ne.title);var l=new Blob([o],{type:'text/html;charset=UTF-8'});utils.downloadFile(n,l),trackEvent('fn','saveFileComplete')})}function U(e,t){var s=CodeMirror(e,{mode:t.mode,lineNumbers:!0,lineWrapping:!0,autofocus:t.autofocus||!1,autoCloseBrackets:!0,autoCloseTags:!0,matchBrackets:!0,matchTags:t.matchTags||!1,tabMode:'indent',keyMap:'sublime',theme:'monokai',lint:!!t.lint,tabSize:2,foldGutter:!0,styleActiveLine:!0,gutters:t.gutters||[],profile:t.profile||'',extraKeys:{Up:function(e){Le||CodeMirror.commands.goLineUp(e)},Down:function(e){Le||CodeMirror.commands.goLineDown(e)},"Shift-Tab":function(e){CodeMirror.commands.indentAuto(e)},Tab:function(e){if(t.emmet){const t=e.execCommand('emmetExpandAbbreviation');if(!0===t)return}const s=$('[data-setting=indentWith]:checked');e.somethingSelected()||s&&'spaces'!==s.value?CodeMirror.commands.defaultTab(e):CodeMirror.commands.insertSoftTab(e)},Enter:'emmetInsertLineBreak'}});return s.on('focus',(e)=>{me=e}),s.on('change',function(e,t){clearTimeout(se),se=setTimeout(function(){'setValue'!==t.origin&&(!1!==ye.autoPreview&&H.setPreviewContent(),saveBtn.classList.add('is-marked'),le+=1,0==le%ge&&le>=ge&&(saveBtn.classList.add('animated'),saveBtn.classList.add('wobble'),saveBtn.addEventListener('animationend',()=>{saveBtn.classList.remove('animated'),saveBtn.classList.remove('wobble')})),trackEvent.previewCount=(trackEvent.previewCount||0)+1,4===trackEvent.previewCount&&trackEvent('fn','usingPreview'))},pe)}),s.addKeyMap({"Ctrl-Space":'autocomplete'}),t.noAutocomplete||s.on('inputRead',function(e,t){ye.autoComplete&&'+input'===t.origin&&';'!==t.text[0]&&' '!==t.text[0]&&CodeMirror.commands.autocomplete(s,null,{completeSingle:!1})}),s}function V(){H.toggleModal(settingsModal)}function R(s){var i=[],o={};s.forEach((e)=>{de[e.id]?i.push(e.id):(utils.log('merging',e.id),o[e.id]=e)});var a=s.length-i.length;if(i.length){var n=confirm(i.length+' creations already exist. Do you want to replace them?');n&&(utils.log('shouldreplace',n),s.forEach((e)=>{o[e.id]=e}),a=s.length)}a&&t.saveItems(o).then(()=>{e.add(a+' creations imported successfully.'),trackEvent('fn','itemsImported',a)}),v(!1)}function _(t){var e=t.target.files[0],s=new FileReader;s.onload=function(e){var t;try{t=JSON.parse(e.target.result),utils.log(t),R(t)}catch(e){utils.log(e),alert('Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.')}},s.readAsText(e,'utf-8')}function W(e){function t(){var e='filesystem:chrome-extension://'+chrome.i18n.getMessage('@@extension_id')+'/temporary/'+d;chrome.downloads.download({url:e},function(){chrome.runtime.lastError&&window.open(e)})}function s(t){utils.log(t)}for(var o=atob(e.split(',')[1]),a=e.split(',')[0].split(':')[1].split(';')[0],n=new ArrayBuffer(o.length),l=new Uint8Array(n),r=0;r{e.root.getFile(d,{create:!0},(e)=>{e.createWriter((e)=>{e.onwriteend=t,e.write(i)},s)},s)},s)}function q(){var e=deferred();return window.IS_EXTENSION?(chrome.permissions.contains({permissions:['downloads']},function(t){t?e.resolve():chrome.permissions.request({permissions:['downloads']},function(t){t?(trackEvent('fn','downloadsPermGiven'),e.resolve()):e.reject()})}),e.promise):(e.resolve(),e.promise)}function K(){$('[data-setting=preserveLastCode]').checked=ye.preserveLastCode,$('[data-setting=replaceNewTab]').checked=ye.replaceNewTab,$('[data-setting=htmlMode]').value=ye.htmlMode,$('[data-setting=cssMode]').value=ye.cssMode,$('[data-setting=jsMode]').value=ye.jsMode,$('[data-setting=indentSize]').value=ye.indentSize,indentationSizeValueEl.textContent=ye.indentSize,$('[data-setting=indentWith][value='+(ye.indentWith||'spaces')+']').checked=!0,$('[data-setting=isCodeBlastOn]').checked=ye.isCodeBlastOn,$('[data-setting=editorTheme]').value=ye.editorTheme,$('[data-setting=keymap][value='+(ye.keymap||'sublime')+']').checked=!0,$('[data-setting=fontSize]').value=ye.fontSize||16,$('[data-setting=refreshOnResize]').checked=ye.refreshOnResize,$('[data-setting=autoPreview]').checked=ye.autoPreview,$('[data-setting=editorFont]').value=ye.editorFont,$('[data-setting=editorCustomFont]').value=ye.editorCustomFont,$('[data-setting=autoSave]').checked=ye.autoSave,$('[data-setting=autoComplete]').checked=ye.autoComplete,$('[data-setting=preserveConsoleLogs]').checked=ye.preserveConsoleLogs,$('[data-setting=lightVersion]').checked=ye.lightVersion,$('[data-setting=lineWrap]').checked=ye.lineWrap}function Y(e){function t(t){const e=s(`[d-${t}]`);e.forEach(function(s){s.addEventListener(t,function(i){H[s.getAttribute(`d-${t}`)].call(window,i)})})}e instanceof Node||(e=document);const s=(t)=>[...e.querySelectorAll(t)];t('click'),t('change'),t('input'),t('keyup');const i=s(`[d-open-modal]`);i.forEach(function(e){utils.onButtonClick(e,function(){H.toggleModal(window[e.getAttribute('d-open-modal')]),trackEvent(e.getAttribute('data-event-category'),e.getAttribute('data-event-action'))})});const o=s(`[d-html]`);o.forEach(function(e){fetch(e.getAttribute('d-html')).then((t)=>{e.removeAttribute('d-html'),t.text().then((t)=>{requestIdleCallback(()=>{e.innerHTML=t,Y(e)})})})})}var H=H||{},J='2.9.6';window.DEBUG&&(window.scope=H);const G={preserveLastCode:!0,replaceNewTab:!1,htmlMode:'html',jsMode:'js',cssMode:'css',isCodeBlastOn:!1,indentWith:'spaces',indentSize:2,editorTheme:'monokai',keymap:'sublime',fontSize:16,refreshOnResize:!1,autoPreview:!0,editorFont:'FiraCode',editorCustomFont:'',autoSave:!0,autoComplete:!0,preserveConsoleLogs:!0,lightVersion:!1,lineWrap:!0};var X={HTML:'html',MARKDOWN:'markdown',JADE:'jade'},Z={CSS:'css',SCSS:'scss',SASS:'sass',LESS:'less',STYLUS:'stylus',ACSS:'acss'},Q={JS:'js',ES6:'es6',COFFEESCRIPT:'coffee',TS:'typescript'},ee={};ee[X.HTML]={label:'HTML',cmMode:'htmlmixed',codepenVal:'none'},ee[X.MARKDOWN]={label:'Markdown',cmMode:'markdown',codepenVal:'markdown'},ee[X.JADE]={label:'Pug',cmMode:'pug',codepenVal:'pug'},ee[Q.JS]={label:'JS',cmMode:'javascript',codepenVal:'none'},ee[Q.COFFEESCRIPT]={label:'CoffeeScript',cmMode:'coffeescript',codepenVal:'coffeescript'},ee[Q.ES6]={label:'ES6 (Babel)',cmMode:'jsx',codepenVal:'babel'},ee[Q.TS]={label:'TypeScript',cmPath:'jsx',cmMode:'text/typescript-jsx',codepenVal:'typescript'},ee[Z.CSS]={label:'CSS',cmPath:'css',cmMode:'css',codepenVal:'none'},ee[Z.SCSS]={label:'SCSS',cmPath:'css',cmMode:'text/x-scss',codepenVal:'scss'},ee[Z.SASS]={label:'SASS',cmMode:'sass',codepenVal:'sass'},ee[Z.LESS]={label:'LESS',cmPath:'css',cmMode:'text/x-less',codepenVal:'less'},ee[Z.STYLUS]={label:'Stylus',cmMode:'stylus',codepenVal:'stylus'},ee[Z.ACSS]={label:'Atomic CSS',cmPath:'css',cmMode:'css',codepenVal:'notsupported',cmDisable:!0,hasSettings:!0};const te=chrome.extension?'/':'/app';var se,ie,oe,ae,ne,le,de,re,ce,me,ue,pe=500,ge=15,he=!0,ve=X.HTML,be=Q.JS,Se=Z.CSS,fe=33,ye={},Ce={html:null,css:null,js:null},Le=!1,ke=0,je=$('#demo-frame'),we=$('#js-html-code'),Ee=$('#js-css-code'),Ae=$('#js-js-code'),xe=$('#js-codepen-form'),Me=$('#js-saved-items-pane'),Te=$('#js-saved-items-pane-close-btn'),Ie=$('#js-html-mode-label'),Oe=$('#js-css-mode-label'),De=$('#js-js-mode-label'),Fe=$('#js-title-input'),ze=$('#js-add-library-select'),Be=$('#js-external-js'),Ne=$('#js-external-css');H.cm={},H.frame=je,H.demoFrameDocument=je.contentDocument||je.contentWindow.document,window.previewException=function(e){console.error('Possible infinite loop detected.',e.stack),window.onMessageFromConsole('Possible infinite loop detected.',e.stack)},window.onunload=function(){g('code'),H.detachedWindow&&H.detachedWindow.close()},H.setPreviewContent=function(e){ye.preserveConsoleLogs||H.clearConsole();var t={html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue()};utils.log('\uD83D\uDD0E setPreviewContent',e);const s=H.detachedWindow?H.detachedWindow.document.querySelector('iframe'):je;if(!e&&t.html===Ce.html&&t.js===Ce.js)I().then(function(e){s.contentDocument.querySelector('#webmakerstyle')&&(s.contentDocument.querySelector('#webmakerstyle').textContent=e)});else{var i=T(),o=I(),a=O();Promise.all([i,o,a]).then(function(e){N(e[0],e[1],e[2])})}Ce.html=t.html,Ce.css=t.css,Ce.js=t.js},H.cm.html=U(we,{mode:'htmlmixed',profile:'xhtml',gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],noAutocomplete:!0,matchTags:{bothTags:!0},emmet:!0}),H.cm.css=U(Ee,{mode:'css',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter'],emmet:!0}),Inlet(H.cm.css),H.cm.js=U(Ae,{mode:'javascript',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter']}),Inlet(H.cm.js),H.consoleCm=CodeMirror(consoleLogEl,{mode:'javascript',lineWrapping:!0,theme:'monokai',foldGutter:!0,readOnly:!0,gutters:['CodeMirror-foldgutter']}),H.onModalSettingsLinkClick=function(){V(),trackEvent('ui','onboardSettingsBtnClick')},H.onShowInTabClicked=function(){onboardDontShowInTabOptionBtn.classList.remove('selected'),onboardShowInTabOptionBtn.classList.add('selected'),trackEvent('ui','onboardShowInTabClick')},H.onDontShowInTabClicked=function(){onboardDontShowInTabOptionBtn.classList.add('selected'),onboardShowInTabOptionBtn.classList.remove('selected'),trackEvent('ui','onboardDontShowInTabClick')},H.exportItems=function(t){q().then(()=>{b().then(function(e){var t=new Date,s=['web-maker-export',t.getFullYear(),t.getMonth()+1,t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()].join('-');s+='.json';var i=new Blob([JSON.stringify(e,!1,2)],{type:'application/json;charset=UTF-8'});utils.downloadFile(s,i),trackEvent('ui','exportBtnClicked')})}),t.preventDefault()},H.onImportBtnClicked=function(t){var e=document.createElement('input');e.type='file',e.style.display='none',e.accept='accept="application/json',document.body.appendChild(e),e.addEventListener('change',_),e.click(),trackEvent('ui','importBtnClicked'),t.preventDefault()},H.takeScreenshot=function(t){q().then(()=>{function e(t){var s=document.createElement('canvas'),i=je.getBoundingClientRect();s.width=i.width,s.height=i.height;var o=s.getContext('2d'),a=window.devicePixelRatio||1;o.drawImage(t,i.left*a,i.top*a,i.width*a,i.height*a,0,0,i.width,i.height),t.removeEventListener('load',e),W(s.toDataURL())}var t=document.createElement('style');t.textContent='[class*="hint"]:after, [class*="hint"]:before { display: none!important; }',document.body.appendChild(t),setTimeout(()=>{chrome.tabs.captureVisibleTab(null,{format:'png',quality:100},function(s){if(t.remove(),s){var i=new Image;i.src=s,i.addEventListener('load',()=>e(i,s))}})},50),trackEvent('ui','takeScreenshotBtnClick')}),t.preventDefault()},H.updateSetting=function(t){if(t){var s=t.target.dataset.setting,i={},o=t.target;utils.log(s,'checkbox'===o.type?o.checked:o.value),ye[s]='checkbox'===o.type?o.checked:o.value,i[s]=ye[s],db.sync.set(i,function(){e.add('Setting saved')}),window.IS_EXTENSION||window.db.getDb().then((e)=>{e.collection('users').doc(window.user.uid).update({[`settings.${s}`]:ye[s]}).then((e)=>{utils.log(`Setting "${s}" for user`,e)}).catch((e)=>utils.log(e))}),trackEvent('ui','updatePref-'+s,ye[s])}runBtn.classList[ye.autoPreview?'add':'remove']('hide'),we.querySelector('.CodeMirror').style.fontSize=ye.fontSize,Ee.querySelector('.CodeMirror').style.fontSize=ye.fontSize,Ae.querySelector('.CodeMirror').style.fontSize=ye.fontSize,consoleEl.querySelector('.CodeMirror').style.fontSize=ye.fontSize,indentationSizeValueEl.textContent=$('[data-setting=indentSize]').value,editorThemeLinkTag.href=`lib/codemirror/theme/${ye.editorTheme}.css`,fontStyleTag.textContent=fontStyleTemplate.textContent.replace(/fontname/g,('other'===ye.editorFont?ye.editorCustomFont:ye.editorFont)||'FiraCode'),customEditorFontInput.classList['other'===ye.editorFont?'remove':'add']('hide'),['html','js','css'].forEach((e)=>{H.cm[e].setOption('indentWithTabs','spaces'!==$('[data-setting=indentWith]:checked').value),H.cm[e].setOption('blastCode',!!$('[data-setting=isCodeBlastOn]').checked&&{effect:2,shake:!1}),H.cm[e].setOption('indentUnit',+$('[data-setting=indentSize]').value),H.cm[e].setOption('tabSize',+$('[data-setting=indentSize]').value),H.cm[e].setOption('theme',$('[data-setting=editorTheme]').value),H.cm[e].setOption('keyMap',$('[data-setting=keymap]:checked').value),H.cm[e].setOption('lineWrapping',$('[data-setting=lineWrap]').checked),H.cm[e].refresh()}),H.consoleCm.setOption('theme',$('[data-setting=editorTheme]').value),H.acssSettingsCm.setOption('theme',$('[data-setting=editorTheme]').value),ye.autoSave?!ie&&(ie=setInterval(m,15000)):(clearInterval(ie),ie=null),document.body.classList[ye.lightVersion?'add':'remove']('light-version')},H.onNewBtnClick=function(){if(trackEvent('ui','newBtnClick'),le){var e=confirm('You have unsaved changes. Do you still want to create something new?');e&&C()}else C()},H.onOpenBtnClick=function(){trackEvent('ui','openBtnClick'),S()},H.onSaveBtnClick=function(){trackEvent('ui','saveBtnClick',ne.id?'saved':'new'),c()},H.toggleModal=function(e){e.classList.toggle('is-modal-visible'),document.body.classList[e.classList.contains('is-modal-visible')?'add':'remove']('overlay-visible')},H.onSearchInputChange=function(t){const e=t.target.value;let s;for(const[i,o]of Object.entries(de))s=$(`#js-saved-items-pane [data-item-id=${i}]`),-1===o.title.toLowerCase().indexOf(e)?s.classList.add('hide'):s.classList.remove('hide');trackEvent('ui','searchInputType')},H.toggleConsole=function(){consoleEl.classList.toggle('is-minimized'),trackEvent('ui','consoleToggle')},H.clearConsole=window.clearConsole=function(){H.consoleCm.setValue(''),ke=0,logCountEl.textContent=ke},H.onClearConsoleBtnClick=function(){H.clearConsole(),trackEvent('ui','consoleClearBtnClick')},H.evalConsoleExpr=function(t){(76===t.which||12===t.which)&&t.ctrlKey?(H.clearConsole(),trackEvent('ui','consoleClearKeyboardShortcut')):13===t.which&&(window.onMessageFromConsole('> '+t.target.value),je.contentWindow._wmEvaluate(t.target.value),t.target.value='',trackEvent('fn','evalConsoleExpr'))},window.onMessageFromConsole=function(){[...arguments].forEach(function(e){e&&e.indexOf&&-1!==e.indexOf('filesystem:chrome-extension')&&(e=e.replace(/filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g,'script $1:$2'));try{H.consoleCm.replaceRange(e+' '+((e+'').match(/\[object \w+]/)?JSON.stringify(e):'')+'\n',{line:Infinity})}catch(t){H.consoleCm.replaceRange('\uD83C\uDF00\n',{line:Infinity})}H.consoleCm.scrollTo(0,Infinity),ke++}),logCountEl.textContent=ke},H.openDetachedPreview=function(){if(trackEvent('ui','detachPreviewBtnClick'),H.detachedWindow)return void H.detachedWindow.focus();var e=je.getBoundingClientRect();const t=e.width,s=e.height;document.body.classList.add('is-detached-mode'),globalConsoleContainerEl.insertBefore(consoleEl,null),H.detachedWindow=window.open('./preview.html','Web Maker',`width=${t},height=${s},resizable,scrollbars=yes,status=1`),setTimeout(()=>{H.detachedWindow.postMessage(je.src,'*')},1e3);var i=window.setInterval(function(){H.detachedWindow&&H.detachedWindow.closed&&(clearInterval(i),document.body.classList.remove('is-detached-mode'),$('#js-demo-side').insertBefore(consoleEl,null),H.detachedWindow=null,H.setPreviewContent(!0))},500)},H.openCssSettingsModal=function(){H.toggleModal(cssSettingsModal),setTimeout(()=>{H.acssSettingsCm.refresh(),H.acssSettingsCm.focus()},500),trackEvent('ui','cssSettingsBtnClick')},H.onModalCloseBtnClick=function(t){w(),t.preventDefault()},H.updateProfileUi=()=>{window.user?(document.body.classList.add('is-logged-in'),headerAvatarImg.src=window.user.photoURL||'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAXtJREFUSMfVlT1KQ0EUhc+NiTaxSaUiBBG0133kV+x0CbEza/BnE4JYJxvQFcRaibESXYAKSVQ+i0zkMZn3E7DJgYHHzLnnzj0z74606LCkRWBZUl1SVdKepE239CKpJ6krqWNm47kzA01gQDqegPo8wkvAZQZhH2dALkuCkPgIOAU23Gi7uZkkWWwJoR3gtmO49TjxZednCOsB/loM9xlYmfKintUlbccUF7ptcX5vSaqESNUE944Cc8cJ/Fkt4DHhhoyc52mHPMXDTOnAu6Si/gcfZrbqW0SGwE830vCnFU3wFiAOJV1JakgqmVnRzIqSSpKabm0YiHsNncGN52MPKKduFcrAvRd7HSIeeqSdrIYDu17sQYhUAPoRUmuOBCeRuAGTLhwkNiLEb6AFWIKwOfGfSFzS/yQBF165t0AFyEc4eTd353GTm50LzgHngZ9n7MofuG8f2dp1JFHNO5M49JNsSXsyC5JqmvSWfc0+mR1JXTP7yrzzhcMvKuvFJdN+wSwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDEtMTNUMDU6NDg6MDYrMDA6MDBnRzN5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTAxLTEzVDA1OjQ4OjA2KzAwOjAwFhqLxQAAACh0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vdG1wL21hZ2ljay1MLWhFV0FISOqcDjwAAAAASUVORK5CYII='):(document.body.classList.remove('is-logged-in'),headerAvatarImg.src='')},H.login=(t)=>{const e=t.target.dataset.authProvider;window.login(e),t&&t.preventDefault()},H.logout=window.logout,H.closeAllOverlays=w,function(){function t(e){return function(){return r('layoutMode',e),trackEvent('ui','toggleLayoutClick',e),n(e),!1}}function o(t){consoleEl.style.height=p+u-t.pageY+'px'}firebase.initializeApp({apiKey:'AIzaSyBl8Dz7ZOE7aP75mipYl2zKdLSRzBU2fFc',authDomain:'web-maker-app.firebaseapp.com',databaseURL:'https://web-maker-app.firebaseio.com',projectId:'web-maker-app',storageBucket:'web-maker-app.appspot.com',messagingSenderId:'560473480645'}),firebase.auth().onAuthStateChanged(function(t){H.closeAllOverlays(),t?(utils.log('You are -> ',t),e.add('You are now logged in!'),H.user=window.user=t,window.db.getUser(t.uid).then((e)=>{e&&(Object.assign(ye,t.settings),K(),H.updateSetting())})):delete window.user,H.updateProfileUi()});var a;CodeMirror.modeURL=`lib/codemirror/mode/%N/%N.js`,layoutBtn1.addEventListener('click',t(1)),layoutBtn2.addEventListener('click',t(2)),layoutBtn3.addEventListener('click',t(3)),layoutBtn4.addEventListener('click',t(4)),notificationsBtn.addEventListener('click',function(){return H.toggleModal(notificationsModal),notificationsModal.classList.contains('is-modal-visible')&&!he&&(he=!0,notificationsBtn.classList.remove('has-new'),window.db.setUserLastSeenVersion(J)),trackEvent('ui','notificationButtonClick',J),!1}),codepenBtn.addEventListener('click',function(t){if(Se===Z.ACSS)return alert('Oops! CodePen doesn\'t supports Atomic CSS currently.'),void t.preventDefault();var e={title:'A Web Maker experiment',html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue(),html_pre_processor:ee[ve].codepenVal,css_pre_processor:ee[Se].codepenVal,js_pre_processor:ee[be].codepenVal,css_external:Ne.value.split('\n').join(';'),js_external:Be.value.split('\n').join(';')};ne.title.match(/Untitled\s\d\d*-\d/)||(e.title=ne.title),e=JSON.stringify(e),xe.querySelector('input').value=e,xe.submit(),trackEvent('ui','openInCodepen'),t.preventDefault()}),utils.onButtonClick(saveHtmlBtn,function(){P(),trackEvent('ui','saveHtmlClick')}),utils.onButtonClick(Te,v),utils.onButtonClick(Me,function(t){t.target.classList.contains('js-saved-item-tile')&&(setTimeout(function(){L(t.target.dataset.itemId)},350),v()),t.target.classList.contains('js-saved-item-tile__remove-btn')?k(t.target.parentElement.parentElement.dataset.itemId):t.target.classList.contains('js-saved-item-tile__fork-btn')&&(v(),setTimeout(function(){y(de[t.target.parentElement.parentElement.dataset.itemId])},350))}),Fe.addEventListener('blur',function(){ne.id&&(c(),trackEvent('ui','titleChanged'))}),$all('.js-mode-select').forEach((e)=>{e.addEventListener('change',function(t){var e=t.target.value,s=t.target.dataset.type,i='html'===s?ve:'css'===s?Se:be;i!==e&&('html'===s?A(e).then(()=>H.setPreviewContent(!0)):'js'===s?M(e).then(()=>H.setPreviewContent(!0)):'css'===s&&x(e).then(()=>H.setPreviewContent(!0)),trackEvent('ui','updateCodeMode',e))})});var d=$all('.js-code-collapse-btn');d.forEach(function(e){e.addEventListener('click',function(t){var e=t.currentTarget.parentElement.parentElement.parentElement;return i(e),trackEvent('ui','paneCollapseBtnClick',e.dataset.type),!1})}),[we,Ee,Ae].forEach(function(e){e.addEventListener('transitionend',function(){s()})}),window.addEventListener('keydown',function(e){var t;if((e.ctrlKey||e.metaKey)&&83===e.keyCode&&(e.preventDefault(),c(),trackEvent('ui','saveItemKeyboardShortcut')),(e.ctrlKey||e.metaKey)&&e.shiftKey&&53===e.keyCode?(e.preventDefault(),H.setPreviewContent(!0),trackEvent('ui','previewKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&79===e.keyCode?(e.preventDefault(),S(),trackEvent('ui','openCreationKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&e.shiftKey&&191===e.keyCode?(e.preventDefault(),H.toggleModal(keyboardShortcutsModal),trackEvent('ui','showKeyboardShortcutsShortcut')):27===e.keyCode&&w(),40===e.keyCode&&Le){if(!$all('.js-saved-item-tile').length)return;t=$('.js-saved-item-tile.selected'),t?(t.classList.remove('selected'),t.nextUntil('.js-saved-item-tile:not(.hide)').classList.add('selected')):$('.js-saved-item-tile:not(.hide)').classList.add('selected'),$('.js-saved-item-tile.selected').scrollIntoView(!1)}else if(38===e.keyCode&&Le){if(!$all('.js-saved-item-tile').length)return;t=$('.js-saved-item-tile.selected'),t?(t.classList.remove('selected'),t.previousUntil('.js-saved-item-tile:not(.hide)').classList.add('selected')):$('.js-saved-item-tile:not(.hide)').classList.add('selected'),$('.js-saved-item-tile.selected').scrollIntoView(!1)}else if(13===e.keyCode&&Le){if(t=$('.js-saved-item-tile.selected'),!t)return;setTimeout(function(){L(t.dataset.itemId)},350),v()}Le&&(e.ctrlKey||e.metaKey)&&70===e.keyCode&&(e.preventDefault(),t=$('.js-saved-item-tile.selected'),setTimeout(function(){y(de[t.dataset.itemId])},350),v(),trackEvent('ui','forkKeyboardShortcut'))}),window.addEventListener('click',function(t){'string'!=typeof t.target.className||-1!==t.target.className.indexOf('modal-overlay')&&w()}),window.addEventListener('dblclick',function(t){var e=t.target;if(e.classList.contains('js-console__header')&&(H.toggleConsole(),trackEvent('ui','consoleToggleDblClick')),e.classList.contains('js-code-wrap__header')){var s=e.parentElement;i(s),trackEvent('ui','paneHeaderDblClick',s.dataset.type)}});var m=window.jsLibs.reduce((e,t)=>e+``,'');ze.children[1].innerHTML=m,m=window.cssLibs.reduce((e,t)=>e+``,''),ze.children[2].innerHTML=m,ze.addEventListener('change',function(t){var e=t.target;e.value&&($('#js-external-'+e.selectedOptions[0].dataset.type).value+='\n'+e.value,trackEvent('ui','addLibrarySelect',e.selectedOptions[0].label),l(),e.value='')}),Be.addEventListener('blur',l),Ne.addEventListener('blur',l),new TextareaAutoComplete(Be,{filter:(e)=>e.latest.match(/\.js$/)}),new TextareaAutoComplete(Ne,{filter:(e)=>e.latest.match(/\.css$/)}),new TextareaAutoComplete(externalLibrarySearchInput,{selectedCallback:(e)=>{const t=e.match(/\.js$/)?Be:Ne;t.value=`${t.value}\n${e}`,externalLibrarySearchInput.value=''}});var u,p;$('.js-console__header').addEventListener('mousedown',(t)=>{u=t.pageY,p=consoleEl.getBoundingClientRect().height,$('#demo-frame').classList.add('pointer-none'),window.addEventListener('mousemove',o)}),$('.js-console__header').addEventListener('mouseup',()=>{window.removeEventListener('mousemove',o),$('#demo-frame').classList.remove('pointer-none')}),db.local.get({layoutMode:1,code:''},function(e){n(e.layoutMode),ye.layoutMode=e.layoutMode,e.code&&(a=e.code)}),db.getSettings(G).then((e)=>{e.preserveLastCode&&a?(le=0,a.id?db.local.get(a.id,function(e){e[a.id]&&(utils.log('Load item ',a.id),ne=e[a.id],j())}):(utils.log('Load last unsaved item',a),ne=a,j())):C(),Object.assign(ye,e),K(),H.updateSetting()}),db.getUserLastSeenVersion().then((e)=>{e||(onboardModal.classList.add('is-modal-visible'),-1===document.cookie.indexOf('onboarded')&&(trackEvent('ui','onboardModalSeen',J),document.cookie='onboarded=1'),window.db.setUserLastSeenVersion(J)),e&&-1!==utils.semverCompare(e,J)||(notificationsBtn.classList.add('has-new'),he=!1)}),H.acssSettingsCm=CodeMirror.fromTextArea(acssSettingsTextarea,{mode:'application/ld+json'}),H.acssSettingsCm.on('blur',()=>{H.setPreviewContent(!0)});var g='';['3024-day','3024-night','abcdef','ambiance','base2tone-meadow-dark','base16-dark','base16-light','bespin','blackboard','cobalt','colorforth','dracula','duotone-dark','duotone-light','eclipse','elegant','erlang-dark','hopscotch','icecoder','isotope','lesser-dark','liquibyte','material','mbo','mdn-like','midnight','monokai','neat','neo','night','panda-syntax','paraiso-dark','paraiso-light','pastel-on-dark','railscasts','rubyblue','seti','solarized dark','solarized light','the-matrix','tomorrow-night-bright','tomorrow-night-eighties','ttcn','twilight','vibrant-ink','xq-dark','xq-light','yeti','zenburn'].forEach((e)=>{g+=''}),document.querySelector('[data-setting="editorTheme"]').innerHTML=g,requestAnimationFrame(Y)}()}(window.alertsService,window.itemService),function(e){function t(e){s&&(!e||e!==s)&&(s.classList.remove('open'),s=null)}var s;(function(){var i=e('[dropdown]');i.forEach(function(e){e.addEventListener('click',function(i){t(i.currentTarget),i.currentTarget.classList.toggle('open'),s=i.currentTarget,i.stopPropagation()})}),document.addEventListener('click',function(){t()})})()}($all); +'serviceWorker'in navigator&&window.addEventListener('load',function(){navigator.serviceWorker.register('service-worker.js').then(function(e){e.onupdatefound=function(){var t=e.installing;t.onstatechange=function(){switch(t.state){case'installed':navigator.serviceWorker.controller?console.log('New or updated content is available.'):console.log('Content is now available offline!');break;case'redundant':console.error('The installing service worker became redundant.');}}}}).catch(function(t){console.error('Error during service worker registration:',t)})}),function(){window.DEBUG=-1[...document.querySelectorAll(e)];var e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';Node.prototype.nextUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s+1]},Node.prototype.previousUntil=function(e){const t=[...this.parentNode.querySelectorAll(e)],s=t.indexOf(this);return t[s-1]},window.utils={semverCompare:function(e,t){for(var s=e.split('.'),o=t.split('.'),a=0;3>a;a++){var i=+s[a],n=+o[a];if(i>n)return 1;if(n>i)return-1;if(!isNaN(i)&&isNaN(n))return 1;if(isNaN(i)&&!isNaN(n))return-1}return 0},generateRandomId:function(t){for(var s='',o=t||10;o--;)s+=e[~~(Math.random()*e.length)];return s},onButtonClick:function(e,t){e.addEventListener('click',function(s){return t(s),!1})},addInfiniteLoopProtection:function(e){var t=1,s=[],i='_wmloopvar';return esprima.parse(e,{tolerant:!0,range:!0,jsx:!0},function(e){switch(e.type){case'DoWhileStatement':case'ForStatement':case'ForInStatement':case'ForOfStatement':case'WhileStatement':var o=1+e.body.range[0],a=e.body.range[1],n='\nif (Date.now() - %d > 1000) { window.top.previewException(new Error("Infinite loop")); break;}\n'.replace('%d',i+t),l='';'BlockStatement'!==e.body.type&&(n='{'+n,l='}',--o),s.push({pos:o,str:n}),s.push({pos:a,str:l}),s.push({pos:e.range[0],str:'var %d = Date.now();\n'.replace('%d',i+t)}),++t;break;default:}}),s.sort(function(e,t){return t.pos-e.pos}).forEach(function(t){e=e.slice(0,t.pos)+t.str+e.slice(t.pos)}),e},getHumanDate:function(e){var t=new Date(e),s=t.getDate()+' '+['January','February','March','April','May','June','July','August','September','October','November','December'][t.getMonth()]+' '+t.getFullYear();return s},log:function(){window.DEBUG&&console.log(...arguments)},once:function(e,t,s){e.addEventListener(t,function(i){return i.target.removeEventListener(t,arguments.callee),s(i)})},downloadFile:function(e,t){function s(){var s=document.createElement('a');s.href=window.URL.createObjectURL(t),s.download=e,s.style.display='none',document.body.appendChild(s),s.click(),s.remove()}window.IS_EXTENSION?chrome.downloads.download({url:window.URL.createObjectURL(t),filename:e,saveAs:!0},()=>{chrome.runtime.lastError&&s()}):s()}},window.chrome=window.chrome||{},window.chrome.i18n={getMessage:()=>{}},window.IS_EXTENSION=!!window.chrome.extension,window.IS_EXTENSION?document.body.classList.add('is-extension'):document.body.classList.add('is-app')}(),(()=>{async function e(){return i?i:(utils.log('Initializing firestore'),i=new Promise((e,t)=>s?e(s):firebase.firestore().enablePersistence().then(function(){s=firebase.firestore(),utils.log('firebase db ready',s),e(s)}).catch(function(e){t(e.code),'failed-precondition'!==e.code&&'unimplemented'!==e.code})),i)}const t=1;var s,i,o={get:(e,s)=>{const i={};'string'==typeof e?(i[e]=JSON.parse(window.localStorage.getItem(e)),setTimeout(()=>s(i),t)):(Object.keys(e).forEach((t)=>{const s=window.localStorage.getItem(t);i[t]=s===void 0||null===s?e[t]:JSON.parse(s)}),setTimeout(()=>s(i),t))},set:(e,s)=>{Object.keys(e).forEach((t)=>{window.localStorage.setItem(t,JSON.stringify(e[t]))}),setTimeout(()=>{if(s)return s()},t)}};const a=chrome&&chrome.storage?chrome.storage.local:o,n=chrome&&chrome.storage?chrome.storage.sync:o;window.db={getDb:e,getUser:async function(t){const s=await e();return s.doc(`users/${t}`).get().then((e)=>{if(!e.exists)return s.doc(`users/${t}`).set({},{merge:!0});const i=e.data();return Object.assign(window.user,i),i})},getUserLastSeenVersion:async function(){const e=deferred();return n.get({lastSeenVersion:''},(t)=>{e.resolve(t.lastSeenVersion)}),e.promise},setUserLastSeenVersion:async function(t){if(window.IS_EXTENSION)return void chrome.storage.sync.set({lastSeenVersion:t},function(){});if(o.set({lastSeenVersion:t}),window.user){const s=await e();s.doc(`users/${window.user.uid}`).update({lastSeenVersion:t})}},getSettings:function(e){const t=deferred();return n.get(e,(e)=>{t.resolve(e)}),t.promise},local:a,sync:n}})(),window.logout=function(){firebase.auth().signOut()};function login(e){var t;return'facebook'===e?t=new firebase.auth.FacebookAuthProvider:'twitter'===e?t=new firebase.auth.TwitterAuthProvider:'google'===e?(t=new firebase.auth.GoogleAuthProvider,t.addScope('https://www.googleapis.com/auth/userinfo.profile')):t=new firebase.auth.GithubAuthProvider,firebase.auth().signInWithPopup(t).then(function(){}).catch(function(e){alert('You have already signed up with the same email using different social login'),utils.log(e)})}window.login=login,window.trackEvent=function(e,t,s,i){return window.DEBUG?void utils.log('trackevent',e,t,s,i):void(window.ga&&ga('send','event',e,t,s,i))},navigator.onLine&&!window.DEBUG&&setTimeout(function(){(function(e,t,s,i,o,n,a){e.GoogleAnalyticsObject=o,e[o]=e[o]||function(){(e[o].q=e[o].q||[]).push(arguments)},e[o].l=1*new Date,n=t.createElement(s),a=t.getElementsByTagName(s)[0],n.async=1,n.src=i,a.parentNode.insertBefore(n,a)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga'),ga('create','UA-87786708-1',{cookieDomain:'none'}),ga('set','checkProtocolTask',function(){}),ga('send','pageview')},100),function(){window.deferred=function(){var e={},t=new Promise(function(t,s){e.resolve=t,e.reject=s});return e.promise=t,Object.assign(e,t)}}(),function(e){window.loadJS=function(t){var s=deferred(),i=e.document.getElementsByTagName('script')[0],o=e.document.createElement('script');return o.src=t,o.async=!0,i.parentNode.insertBefore(o,i),o.onload=function(){s.resolve()},s.promise}}(window),function(){const e=$('#js-alerts-container');var t;window.alertsService={add:function(s){e.textContent=s,e.classList.add('is-active'),clearTimeout(t),t=setTimeout(function(){e.classList.remove('is-active')},2e3)}}}(),window.jsLibs=[{url:'https://code.jquery.com/jquery-3.2.1.min.js',label:'jQuery',type:'js'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js',label:'Bootstrap 3',type:'js'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/js/bootstrap.min.js',label:'Bootstrap 4\u03B2',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/js/foundation.min.js',label:'Foundation',type:'js'},{url:'https://semantic-ui.com/dist/semantic.min.js',label:'Semantic UI',type:'js'},{url:'https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js',label:'Angular',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react/16.2.0/cjs/react.production.min.js',label:'React',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/react/15.6.1/react-dom.min.js',label:'React DOM',type:'js'},{url:'https://unpkg.com/vue@2.5.0/dist/vue.min.js',label:'Vue.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/three.js/85/three.min.js',label:'Three.js',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/d3/4.10.2/d3.min.js',label:'D3',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js',label:'Underscore',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/gsap/1.20.3/TweenMax.min.js',label:'Greensock TweenMax',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.4/js/uikit.min.js',label:'UIkit 2',type:'js'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.31/js/uikit.min.js',label:'UIkit 3',type:'js'}],window.cssLibs=[{url:'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',label:'Bootstrap 3',type:'css'},{url:'https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css',label:'Bootstrap 4\u03B2',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/foundation/6.4.3/css/foundation.min.css',label:'Foundation',type:'css'},{url:'https://semantic-ui.com/dist/semantic.min.css',label:'Semantic UI',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.6.0/css/bulma.min.css',label:'Bulma',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/hint.css/2.5.0/hint.min.css',label:'Hint.css',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/2.27.4/css/uikit.min.css',label:'UIkit 2',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-beta.31/css/uikit.min.css',label:'UIkit 3',type:'css'},{url:'https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css',label:'Animate.css',type:'css'},{url:'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',label:'FontAwesome',type:'css'}],function(){class e{constructor(e,t){this.t=e,this.filter=t.filter,this.selectedCallback=t.selectedCallback;var s=document.createElement('div');s.classList.add('btn-group'),e.parentElement.insertBefore(s,e),s.insertBefore(e,null),this.list=document.createElement('ul'),this.list.classList.add('dropdown__menu'),this.list.classList.add('autocomplete-dropdown'),s.insertBefore(this.list,null),this.loader=document.createElement('div'),this.loader.classList.add('loader'),this.loader.classList.add('autocomplete__loader'),this.loader.style.display='none',s.insertBefore(this.loader,null),setTimeout(()=>{requestIdleCallback(()=>{document.body.appendChild(this.list),this.list.style.position='fixed'})},100),this.t.addEventListener('input',(t)=>this.onInput(t)),this.t.addEventListener('keydown',(t)=>this.onKeyDown(t)),this.t.addEventListener('blur',(t)=>this.closeSuggestions(t)),this.list.addEventListener('mousedown',(t)=>this.onListMouseDown(t))}get currentLineNumber(){return this.t.value.substr(0,this.t.selectionStart).split('\n').length}get currentLine(){var e=this.currentLineNumber;return this.t.value.split('\n')[e-1]}closeSuggestions(){this.list.classList.remove('is-open'),this.isShowingSuggestions=!1}getList(e){return fetch('https://api.cdnjs.com/libraries?search='+e).then((e)=>e.json().then((e)=>e.results))}replaceCurrentLine(e){var t=this.t.value.split('\n');t.splice(this.currentLineNumber-1,1,e),this.t.value=t.join('\n')}onInput(){var e=this.currentLine;if(e){if(-1!==e.indexOf('/')||e.match(/https*:\/\//))return;clearTimeout(this.timeout),this.timeout=setTimeout(()=>{this.loader.style.display='block',this.getList(e).then((e)=>{if(this.loader.style.display='none',!e.length)return void this.closeSuggestions();this.list.innerHTML='',this.filter&&(e=e.filter(this.filter));for(var t=0;t${e[t].name}`;this.isShowingSuggestions=!0,this.textareaBounds||(this.textareaBounds=this.t.getBoundingClientRect(),this.list.style.top=this.textareaBounds.bottom+'px',this.list.style.left=this.textareaBounds.left+'px',this.list.style.width=this.textareaBounds.width+'px'),this.list.classList.add('is-open')})},500)}}onKeyDown(e){var t;this.isShowingSuggestions&&(27===e.keyCode&&(this.closeSuggestions(),e.stopPropagation()),40===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.nextElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):38===e.keyCode&&this.isShowingSuggestions?(t=this.list.querySelector('.selected'),t?(t.classList.remove('selected'),t.previousElementSibling.classList.add('selected')):this.list.querySelector('li:first-child').classList.add('selected'),this.list.querySelector('.selected').scrollIntoView(!1),e.preventDefault()):13===e.keyCode&&this.isShowingSuggestions&&(t=this.list.querySelector('.selected'),this.selectSuggestion(t.dataset.url),this.closeSuggestions()))}onListMouseDown(e){var t=e.target;t.parentElement.dataset.url&&this.selectSuggestion(t.parentElement.dataset.url)}selectSuggestion(e){this.selectedCallback?this.selectedCallback.call(null,e):this.replaceCurrentLine(e),this.closeSuggestions()}}window.TextareaAutoComplete=e}(),(()=>{window.itemService={async getItem(e){var t=await window.db.getDb();return t.doc(`items/${e}`).get().then((e)=>e.data())},async getUserItemIds(){if(window.user)return new Promise((e)=>{e(window.user.items||{})});var e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).get().then((e)=>e.exists?e.data().items:{})},async getAllItems(){var e=deferred();let t=await this.getUserItemIds();t=Object.getOwnPropertyNames(t||{}),utils.log('itemids',t),t.length||e.resolve([]);const s=[];for(let o=0;o{s.push(i),t.length===s.length&&e.resolve(s)})}return e.promise},async setUser(){const e=await window.db.getDb();return e.doc(`users/${window.user.uid}`).set({items:{}})},async setItem(e,t){if(!window.user)return new Promise((e)=>e());var s=await window.db.getDb();return utils.log(`Starting to save item ${e}`),t.createdBy=window.user.uid,s.collection('items').doc(e).set(t,{merge:!0}).then((e)=>{utils.log('Document written',e)}).catch((e)=>utils.log(e))},saveItems(e){var t=deferred();return window.IS_EXTENSION?(window.db.local.set(e,t.resolve),window.db.local.get({items:{}},function(t){for(var s in e)t.items[s]=!0;window.db.local.set({items:t.items})})):window.db.getDb().then((s)=>{const i=s.batch();for(var o in e)e[o].createdBy=window.user.uid,i.set(s.doc(`items/${o}`),e[o]),i.update(s.doc(`users/${window.user.uid}`),{[`items.${o}`]:!0}),window.user.items[o]=!0;i.commit().then(t.resolve)}),t.promise},async removeItem(e){if(window.IS_EXTENSION){var t=deferred();return db.local.remove(e,t.resolve),t.promise}const s=await window.db.getDb();return utils.log(`Starting to save item ${e}`),s.collection('items').doc(e).delete().then((e)=>{utils.log('Document removed',e)}).catch((e)=>utils.log(e))},async setItemForUser(e){if(window.IS_EXTENSION||!window.user)return window.db.local.get({items:{}},function(t){t.items[e]=!0,window.db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:!0}).then((t)=>{utils.log(`Item ${e} set for user`,t),window.user.items=window.user.items||{},window.user.items[e]=!0}).catch((e)=>utils.log(e))},async unsetItemForUser(e){if(window.IS_EXTENSION)return window.db.local.get({items:{}},function(t){delete t.items[e],db.local.set({items:t.items})});const t=await window.db.getDb();return t.collection('users').doc(window.user.uid).update({[`items.${e}`]:firebase.firestore.FieldValue.delete()}).then((t)=>{utils.log(`Item ${e} unset for user`,t)}).catch((e)=>utils.log(e))}}})(),function(e,t){function s(){clearTimeout(s.timeout),s.timeout=setTimeout(function(){const e=2===oe?'width':'height';[we,Ee,Ae].forEach(function(t){const s=t.getBoundingClientRect(),i=s[e];100>i?t.classList.add('is-minimized'):t.classList.remove('is-minimized'),-1===t.style[e].indexOf(`100% - ${2*fe}px`)?t.classList.remove('is-maximized'):t.classList.add('is-maximized')})},50)}function i(e){if(e.classList.contains('is-minimized')||e.classList.contains('is-maximized'))e.classList.remove('is-minimized'),e.classList.remove('is-maximized'),ce.setSizes([33.3,33.3,33.3]);else{const s=parseInt(e.dataset.codeWrapId,10);var t=[`${fe}px`,`${fe}px`,`${fe}px`];t[s]=`calc(100% - ${2*fe}px)`,ce.setSizes(t),e.classList.add('is-maximized')}}function o(){var e;return e=ne&&ne.mainSizes?3===oe?[ne.mainSizes[1],ne.mainSizes[0]]:ne.mainSizes:[50,50],e}function a(){ce&&ce.destroy(),re&&re.destroy();var e={direction:2===oe?'horizontal':'vertical',minSize:fe,gutterSize:6,onDragStart:function(){document.body.classList.add('is-dragging')},onDragEnd:function(){s(),document.body.classList.remove('is-dragging')}};e.sizes=ne&&ne.sizes?ne.sizes:[33.33,33.33,33.33],ce=Split(['#js-html-code','#js-css-code','#js-js-code'],e),re=Split(['#js-code-side','#js-demo-side'],{direction:2===oe?'vertical':'horizontal',minSize:150,gutterSize:6,sizes:o(),onDragEnd:function(){ye.refreshOnResize&&setTimeout(function(){H.setPreviewContent(!0)},1)}})}function n(e){return oe===e?(re.setSizes(o()),ce.setSizes(ne.sizes||[33.33,33.33,33.33]),void(oe=e)):void(oe=e,layoutBtn1.classList.remove('selected'),layoutBtn2.classList.remove('selected'),layoutBtn3.classList.remove('selected'),layoutBtn4.classList.remove('selected'),$('#layoutBtn'+e).classList.add('selected'),document.body.classList.remove('layout-1'),document.body.classList.remove('layout-2'),document.body.classList.remove('layout-3'),document.body.classList.remove('layout-4'),document.body.classList.add('layout-'+e),a(),H.setPreviewContent(!0))}function l(){utils.log('onExternalLibChange'),d(),H.setPreviewContent(!0),e.add('Libraries updated.')}function d(){var e=0;e+=Be.value.split('\n').filter((e)=>!!e).length,e+=Ne.value.split('\n').filter((e)=>!!e).length,e?($('#js-external-lib-count').textContent=e,$('#js-external-lib-count').style.display='inline'):$('#js-external-lib-count').style.display='none'}function r(e,t){const s=deferred();return db.local.set({[e]:t},s.resolve),s.promise}function c(){var s=!ne.id;ne.id=ne.id||'item-'+utils.generateRandomId(),g().then(()=>{!ue&&ye.autoSave&&(ue=!0,e.add('Auto-save enabled.'))}),s&&t.setItemForUser(ne.id)}function m(){ue&&le&&c()}function u(){var e,t=2===oe?'width':'height';try{e=[we.style[t],Ee.style[t],Ae.style[t]]}catch(t){e=[33.33,33.33,33.33]}finally{return e}}function p(){var e,t=2===oe?'height':'width';try{e=[+$('#js-code-side').style[t].match(/([\d.]+)%/)[1],+$('#js-demo-side').style[t].match(/([\d.]+)%/)[1]]}catch(t){e=[50,50]}finally{return e}}function g(s){return ne.title=Fe.value,ne.html=H.cm.html.getValue(),ne.css=H.cm.css.getValue(),ne.js=H.cm.js.getValue(),ne.htmlMode=ve,ne.cssMode=Se,ne.jsMode=be,ee[Se].hasSettings&&(ne.cssSettings={acssConfig:H.acssSettingsCm.getValue()}),ne.updatedOn=Date.now(),ne.layoutMode=oe,ne.externalLibs={js:Be.value,css:Ne.value},ne.sizes=u(),ne.mainSizes=p(),utils.log('saving key',s||ne.id,ne),r(s||ne.id,ne),'code'!==s&&t.setItem(s||ne.id,ne).then(()=>{e.add('Item saved.'),le=0,saveBtn.classList.remove('is-marked')})}function h(e){var t='';e.length?(e.sort(function(e,t){return t.updatedOn-e.updatedOn}),e.forEach(function(e){t+='

'+e.title+'

Last updated: '+utils.getHumanDate(e.updatedOn)+'
'}),savedItemCountEl.textContent='('+e.length+')',savedItemCountEl.style.display='inline'):(t+='

Nothing saved here.

',savedItemCountEl.style.display='none'),Me.querySelector('#js-saved-items-wrap').innerHTML=t,v()}function v(e){!1===e?Me.classList.remove('is-open'):Me.classList.toggle('is-open'),Le=Me.classList.contains('is-open'),Le?searchInput.focus():(searchInput.value='',me&&me.focus()),document.body.classList[Le?'add':'remove']('overlay-visible')}async function b(e){var s=deferred();de=de||{};var o=[];return!window.IS_EXTENSION&&window.user?(o=await t.getAllItems(),e&&o.forEach((e)=>{de[e.id]=e}),s.resolve(o),s.promise):(db.local.get('items',function(t){var a=Object.getOwnPropertyNames(t.items||{});a.length||s.resolve([]),trackEvent('fn','fetchItems',a.length);for(let n=0;n{e.add('Item removed.'),ne.id===s&&C()}),delete de[s],trackEvent('fn','itemRemoved'))}function j(){Fe.value=ne.title||'Untitled',Be.value=ne.externalLibs&&ne.externalLibs.js||'',Ne.value=ne.externalLibs&&ne.externalLibs.css||'',utils.log('refresh editor'),ve=ne.htmlMode||ye.htmlMode||X.HTML,Se=ne.cssMode||ye.cssMode||Z.CSS,be=ne.jsMode||ye.jsMode||Q.JS,H.cm.html.setValue(ne.html),H.cm.css.setValue(ne.css),H.cm.js.setValue(ne.js),H.cm.html.refresh(),H.cm.css.refresh(),H.cm.js.refresh(),H.acssSettingsCm.setValue(ne.cssSettings?ne.cssSettings.acssConfig:''),H.acssSettingsCm.refresh(),H.clearConsole(),d(),Promise.all([A(ve),x(Se),M(be)]).then(()=>H.setPreviewContent(!0)),n(ne.layoutMode||ye.layoutMode)}function w(){helpModal.classList.remove('is-modal-visible'),notificationsModal.classList.remove('is-modal-visible'),addLibraryModal.classList.remove('is-modal-visible'),onboardModal.classList.remove('is-modal-visible'),settingsModal.classList.remove('is-modal-visible'),cssSettingsModal.classList.remove('is-modal-visible'),keyboardShortcutsModal.classList.remove('is-modal-visible'),loginModal.classList.remove('is-modal-visible'),v(!1),document.dispatchEvent(new Event('overlaysClosed'))}function E(e){function t(){ee[e].hasLoaded=!0,i.resolve()}const s='lib/transpilers';var i=deferred();return ee[e].hasLoaded?(i.resolve(),i.promise):(e===X.JADE?loadJS(`${s}/jade.js`).then(t):e===X.MARKDOWN?loadJS(`${s}/marked.js`).then(t):e===Z.LESS?loadJS(`${s}/less.min.js`).then(t):e===Z.SCSS||e===Z.SASS?loadJS(`${s}/sass.js`).then(function(){ae=new Sass(`${s}/sass.worker.js`),t()}):e===Z.STYLUS?loadJS(`${s}/stylus.min.js`).then(t):e===Z.ACSS?loadJS(`${s}/atomizer.browser.js`).then(t):e===Q.COFFEESCRIPT?loadJS(`${s}/coffee-script.js`).then(t):e===Q.ES6?loadJS(`${s}/babel.min.js`).then(t):e===Q.TS?loadJS(`${s}/typescript.js`).then(t):i.resolve(),i.promise)}function A(e){return ve=e,Ie.textContent=ee[e].label,Ie.parentElement.querySelector('select').value=e,H.cm.html.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.html,ee[e].cmPath||ee[e].cmMode),E(e)}function x(e){return Se=e,Oe.textContent=ee[e].label,Oe.parentElement.querySelector('select').value=e,H.cm.css.setOption('mode',ee[e].cmMode),H.cm.css.setOption('readOnly',ee[e].cmDisable),cssSettingsBtn.classList[ee[e].hasSettings?'remove':'add']('hide'),CodeMirror.autoLoadMode(H.cm.css,ee[e].cmPath||ee[e].cmMode),E(e)}function M(e){return be=e,De.textContent=ee[e].label,De.parentElement.querySelector('select').value=e,H.cm.js.setOption('mode',ee[e].cmMode),CodeMirror.autoLoadMode(H.cm.js,ee[e].cmPath||ee[e].cmMode),E(e)}function T(){var e=deferred(),t=H.cm.html.getValue();return ve===X.HTML?e.resolve(t):ve===X.MARKDOWN?e.resolve(marked?marked(t):t):ve===X.JADE&&e.resolve(window.jade?jade.render(t):t),e.promise}function I(){var e=deferred(),t=H.cm.css.getValue();if(D('css'),Se===Z.CSS)e.resolve(t);else if(Se===Z.SCSS||Se===Z.SASS)ae&&t?ae.compile(t,{indentedSyntax:Se===Z.SASS},function(t){t.line&&t.message&&F('css',[{lineNumber:t.line-1,message:t.message}]),e.resolve(t.text)}):e.resolve(t);else if(Se===Z.LESS)less.render(t).then(function(t){e.resolve(t.css)},function(e){F('css',[{lineNumber:e.line,message:e.message}])});else if(Se===Z.STYLUS)stylus(t).render(function(t,s){if(t){window.err=t;var i=t.message.split('\n');i.pop(),F('css',[{lineNumber:+t.message.match(/stylus:(\d+):/)[1]-298,message:i.pop()}])}e.resolve(s)});else if(Se===Z.ACSS)if(!window.atomizer)e.resolve('');else{const t=H.cm.html.getValue(),i=atomizer.findClassNames(t);var s;try{s=atomizer.getConfig(i,JSON.parse(H.acssSettingsCm.getValue()))}catch(t){s=atomizer.getConfig(i,{})}const o=atomizer.getCss(s);H.cm.css.setValue(o),e.resolve(o)}return e.promise}function O(e){var t=deferred(),s=H.cm.js.getValue();if(D('js'),!s)return t.resolve(''),t.promise;if(be===Q.JS)try{esprima.parse(s,{tolerant:!0})}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(s)),t.resolve(s)}else if(be===Q.COFFEESCRIPT){var i;if(!window.CoffeeScript)return t.resolve(''),t.promise;try{i=CoffeeScript.compile(s,{bare:!0})}catch(t){F('js',[{lineNumber:t.location.first_line,message:t.message}])}finally{!1!==e&&(s=utils.addInfiniteLoopProtection(i)),t.resolve(s)}}else if(be===Q.ES6){if(!window.Babel)return t.resolve(''),t.promise;try{esprima.parse(s,{tolerant:!0,jsx:!0})}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}finally{s=Babel.transform(s,{presets:['latest','stage-2','react']}).code,!1!==e&&(s=utils.addInfiniteLoopProtection(s)),t.resolve(s)}}else if(be===Q.TS)try{if(!window.ts)return t.resolve(''),t.promise;if(s=ts.transpileModule(s,{reportDiagnostics:!0,compilerOptions:{noEmitOnError:!0,diagnostics:!0,module:ts.ModuleKind.ES2015}}),s.diagnostics.length)throw{description:s.diagnostics[0].messageText,lineNumber:ts.getLineOfLocalPosition(s.diagnostics[0].file,s.diagnostics[0].start)};!1!==e&&(s=utils.addInfiniteLoopProtection(s.outputText)),t.resolve(s)}catch(t){F('js',[{lineNumber:t.lineNumber-1,message:t.description}])}return t.promise}function D(e){H.cm[e].clearGutter('error-gutter')}function F(e,t){var s=H.cm[e];t.forEach(function(t){s.operation(function(){var e=document.createElement('div');e.setAttribute('data-title',t.message),e.classList.add('gutter-error-marker'),s.setGutterMarker(t.lineNumber,'error-gutter',e)})})}function z(e,t,s,i){var o=Be.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),a=Ne.value.split('\n').reduce(function(e,t){return e+(t?'\n':'')},''),n='\n\n\n\n'+a+'\n\n\n\n'+e+'\n'+o+'\n';if(i||(n+=''),be===Q.ES6&&(n+=''),'string'==typeof s)n+='\n\n',n}function B(e,t,s){function i(e){return function(){utils.log(arguments),trackEvent('fn','error',e),B.errorCount=(B.errorCount||0)+1,4===B.errorCount&&setTimeout(function(){alert('Oops! Seems like your preview isn\'t updating. Please try the following steps until it fixes:\n - Refresh Web Maker\n - Restart browser\n - Update browser\n - Reinstall Web Maker (don\'t forget to export all your creations from saved items pane (click the OPEN button) before reinstalling)\n\nIf nothing works, please tweet out to @webmakerApp.'),trackEvent('ui','writeFileMessageSeen')},1e3)}}var o=!1;window.webkitRequestFileSystem(window.TEMPORARY,5242880,function(a){a.root.getFile(e,{create:!0},function(e){e.createWriter((e)=>{e.onwriteend=function(){return o?s():(o=!0,e.seek(0),e.write(t),!1)},e.truncate(0)},i('createWriterFail'))},i('getFileFail'))},i('webkitRequestFileSystemFail'))}function N(e,t,s){const i=!window.webkitRequestFileSystem||!window.IS_EXTENSION;var o=z(e,t,i?s:null),a=new Blob([o],{type:'text/plain;charset=UTF-8'}),n=new Blob([s],{type:'text/plain;charset=UTF-8'});!trackEvent.hasTrackedCode&&(e||t||s)&&(trackEvent('fn','hasCode'),trackEvent.hasTrackedCode=!0),i?(je.src=je.src,setTimeout(()=>{je.contentDocument.open(),je.contentDocument.write(o),je.contentDocument.close()},10)):B('script.js',n,function(){B('preview.html',a,function(){var e=chrome.i18n.getMessage()?`chrome-extension://${chrome.i18n.getMessage('@@extension_id')}`:`${location.origin}`,t=`filesystem:${e}/temporary/preview.html`;H.detachedWindow?H.detachedWindow.postMessage(t,'*'):je.src=t})})}function P(){var e=T(),t=I(),s=O(!1);Promise.all([e,t,s]).then(function(e){var t=e[0],s=e[1],i=e[2],o=z(t,s,i,!0),a=new Date,n=['web-maker',a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds()].join('-');n+='.html',ne.title&&(n=ne.title);var l=new Blob([o],{type:'text/html;charset=UTF-8'});utils.downloadFile(n,l),trackEvent('fn','saveFileComplete')})}function U(e,t){var s=CodeMirror(e,{mode:t.mode,lineNumbers:!0,lineWrapping:!0,autofocus:t.autofocus||!1,autoCloseBrackets:!0,autoCloseTags:!0,matchBrackets:!0,matchTags:t.matchTags||!1,tabMode:'indent',keyMap:'sublime',theme:'monokai',lint:!!t.lint,tabSize:2,foldGutter:!0,styleActiveLine:!0,gutters:t.gutters||[],profile:t.profile||'',extraKeys:{Up:function(e){Le||CodeMirror.commands.goLineUp(e)},Down:function(e){Le||CodeMirror.commands.goLineDown(e)},"Shift-Tab":function(e){CodeMirror.commands.indentAuto(e)},Tab:function(e){if(t.emmet){const t=e.execCommand('emmetExpandAbbreviation');if(!0===t)return}const s=$('[data-setting=indentWith]:checked');e.somethingSelected()||s&&'spaces'!==s.value?CodeMirror.commands.defaultTab(e):CodeMirror.commands.insertSoftTab(e)},Enter:'emmetInsertLineBreak'}});return s.on('focus',(e)=>{me=e}),s.on('change',function(e,t){clearTimeout(se),se=setTimeout(function(){'setValue'!==t.origin&&(!1!==ye.autoPreview&&H.setPreviewContent(),saveBtn.classList.add('is-marked'),le+=1,0==le%ge&&le>=ge&&(saveBtn.classList.add('animated'),saveBtn.classList.add('wobble'),saveBtn.addEventListener('animationend',()=>{saveBtn.classList.remove('animated'),saveBtn.classList.remove('wobble')})),trackEvent.previewCount=(trackEvent.previewCount||0)+1,4===trackEvent.previewCount&&trackEvent('fn','usingPreview'))},pe)}),s.addKeyMap({"Ctrl-Space":'autocomplete'}),t.noAutocomplete||s.on('inputRead',function(e,t){ye.autoComplete&&'+input'===t.origin&&';'!==t.text[0]&&' '!==t.text[0]&&CodeMirror.commands.autocomplete(s,null,{completeSingle:!1})}),s}function V(){H.toggleModal(settingsModal)}function R(s){var i=[],o={};s.forEach((e)=>{de[e.id]?i.push(e.id):(utils.log('merging',e.id),o[e.id]=e)});var a=s.length-i.length;if(i.length){var n=confirm(i.length+' creations already exist. Do you want to replace them?');n&&(utils.log('shouldreplace',n),s.forEach((e)=>{o[e.id]=e}),a=s.length)}a&&t.saveItems(o).then(()=>{e.add(a+' creations imported successfully.'),trackEvent('fn','itemsImported',a)}),v(!1)}function _(t){var e=t.target.files[0],s=new FileReader;s.onload=function(e){var t;try{t=JSON.parse(e.target.result),utils.log(t),R(t)}catch(e){utils.log(e),alert('Oops! Selected file is corrupted. Please select a file that was generated by clicking the "Export" button.')}},s.readAsText(e,'utf-8')}function W(e){function t(){var e='filesystem:chrome-extension://'+chrome.i18n.getMessage('@@extension_id')+'/temporary/'+d;chrome.downloads.download({url:e},function(){chrome.runtime.lastError&&window.open(e)})}function s(t){utils.log(t)}for(var o=atob(e.split(',')[1]),a=e.split(',')[0].split(':')[1].split(';')[0],n=new ArrayBuffer(o.length),l=new Uint8Array(n),r=0;r{e.root.getFile(d,{create:!0},(e)=>{e.createWriter((e)=>{e.onwriteend=t,e.write(i)},s)},s)},s)}function q(){var e=deferred();return window.IS_EXTENSION?(chrome.permissions.contains({permissions:['downloads']},function(t){t?e.resolve():chrome.permissions.request({permissions:['downloads']},function(t){t?(trackEvent('fn','downloadsPermGiven'),e.resolve()):e.reject()})}),e.promise):(e.resolve(),e.promise)}function K(){$('[data-setting=preserveLastCode]').checked=ye.preserveLastCode,$('[data-setting=replaceNewTab]').checked=ye.replaceNewTab,$('[data-setting=htmlMode]').value=ye.htmlMode,$('[data-setting=cssMode]').value=ye.cssMode,$('[data-setting=jsMode]').value=ye.jsMode,$('[data-setting=indentSize]').value=ye.indentSize,indentationSizeValueEl.textContent=ye.indentSize,$('[data-setting=indentWith][value='+(ye.indentWith||'spaces')+']').checked=!0,$('[data-setting=isCodeBlastOn]').checked=ye.isCodeBlastOn,$('[data-setting=editorTheme]').value=ye.editorTheme,$('[data-setting=keymap][value='+(ye.keymap||'sublime')+']').checked=!0,$('[data-setting=fontSize]').value=ye.fontSize||16,$('[data-setting=refreshOnResize]').checked=ye.refreshOnResize,$('[data-setting=autoPreview]').checked=ye.autoPreview,$('[data-setting=editorFont]').value=ye.editorFont,$('[data-setting=editorCustomFont]').value=ye.editorCustomFont,$('[data-setting=autoSave]').checked=ye.autoSave,$('[data-setting=autoComplete]').checked=ye.autoComplete,$('[data-setting=preserveConsoleLogs]').checked=ye.preserveConsoleLogs,$('[data-setting=lightVersion]').checked=ye.lightVersion,$('[data-setting=lineWrap]').checked=ye.lineWrap}function Y(e){function t(t){const e=s(`[d-${t}]`);e.forEach(function(s){s.addEventListener(t,function(i){H[s.getAttribute(`d-${t}`)].call(window,i)})})}e instanceof Node||(e=document);const s=(t)=>[...e.querySelectorAll(t)];t('click'),t('change'),t('input'),t('keyup');const i=s(`[d-open-modal]`);i.forEach(function(e){utils.onButtonClick(e,function(){H.toggleModal(window[e.getAttribute('d-open-modal')]),trackEvent(e.getAttribute('data-event-category'),e.getAttribute('data-event-action'))})});const o=s(`[d-html]`);o.forEach(function(e){fetch(e.getAttribute('d-html')).then((t)=>{e.removeAttribute('d-html'),t.text().then((t)=>{requestIdleCallback(()=>{e.innerHTML=t,Y(e)})})})})}var H=H||{},J='2.9.6';window.DEBUG&&(window.scope=H);const G={preserveLastCode:!0,replaceNewTab:!1,htmlMode:'html',jsMode:'js',cssMode:'css',isCodeBlastOn:!1,indentWith:'spaces',indentSize:2,editorTheme:'monokai',keymap:'sublime',fontSize:16,refreshOnResize:!1,autoPreview:!0,editorFont:'FiraCode',editorCustomFont:'',autoSave:!0,autoComplete:!0,preserveConsoleLogs:!0,lightVersion:!1,lineWrap:!0};var X={HTML:'html',MARKDOWN:'markdown',JADE:'jade'},Z={CSS:'css',SCSS:'scss',SASS:'sass',LESS:'less',STYLUS:'stylus',ACSS:'acss'},Q={JS:'js',ES6:'es6',COFFEESCRIPT:'coffee',TS:'typescript'},ee={};ee[X.HTML]={label:'HTML',cmMode:'htmlmixed',codepenVal:'none'},ee[X.MARKDOWN]={label:'Markdown',cmMode:'markdown',codepenVal:'markdown'},ee[X.JADE]={label:'Pug',cmMode:'pug',codepenVal:'pug'},ee[Q.JS]={label:'JS',cmMode:'javascript',codepenVal:'none'},ee[Q.COFFEESCRIPT]={label:'CoffeeScript',cmMode:'coffeescript',codepenVal:'coffeescript'},ee[Q.ES6]={label:'ES6 (Babel)',cmMode:'jsx',codepenVal:'babel'},ee[Q.TS]={label:'TypeScript',cmPath:'jsx',cmMode:'text/typescript-jsx',codepenVal:'typescript'},ee[Z.CSS]={label:'CSS',cmPath:'css',cmMode:'css',codepenVal:'none'},ee[Z.SCSS]={label:'SCSS',cmPath:'css',cmMode:'text/x-scss',codepenVal:'scss'},ee[Z.SASS]={label:'SASS',cmMode:'sass',codepenVal:'sass'},ee[Z.LESS]={label:'LESS',cmPath:'css',cmMode:'text/x-less',codepenVal:'less'},ee[Z.STYLUS]={label:'Stylus',cmMode:'stylus',codepenVal:'stylus'},ee[Z.ACSS]={label:'Atomic CSS',cmPath:'css',cmMode:'css',codepenVal:'notsupported',cmDisable:!0,hasSettings:!0};const te=chrome.extension?'/':'/app';var se,ie,oe,ae,ne,le,de,re,ce,me,ue,pe=500,ge=15,he=!0,ve=X.HTML,be=Q.JS,Se=Z.CSS,fe=33,ye={},Ce={html:null,css:null,js:null},Le=!1,ke=0,je=$('#demo-frame'),we=$('#js-html-code'),Ee=$('#js-css-code'),Ae=$('#js-js-code'),xe=$('#js-codepen-form'),Me=$('#js-saved-items-pane'),Te=$('#js-saved-items-pane-close-btn'),Ie=$('#js-html-mode-label'),Oe=$('#js-css-mode-label'),De=$('#js-js-mode-label'),Fe=$('#js-title-input'),ze=$('#js-add-library-select'),Be=$('#js-external-js'),Ne=$('#js-external-css');H.cm={},H.frame=je,H.demoFrameDocument=je.contentDocument||je.contentWindow.document,window.previewException=function(e){console.error('Possible infinite loop detected.',e.stack),window.onMessageFromConsole('Possible infinite loop detected.',e.stack)},window.onunload=function(){g('code'),H.detachedWindow&&H.detachedWindow.close()},H.setPreviewContent=function(e){ye.preserveConsoleLogs||H.clearConsole();var t={html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue()};utils.log('\uD83D\uDD0E setPreviewContent',e);const s=H.detachedWindow?H.detachedWindow.document.querySelector('iframe'):je;if(!e&&t.html===Ce.html&&t.js===Ce.js)I().then(function(e){s.contentDocument.querySelector('#webmakerstyle')&&(s.contentDocument.querySelector('#webmakerstyle').textContent=e)});else{var i=T(),o=I(),a=O();Promise.all([i,o,a]).then(function(e){N(e[0],e[1],e[2])})}Ce.html=t.html,Ce.css=t.css,Ce.js=t.js},H.cm.html=U(we,{mode:'htmlmixed',profile:'xhtml',gutters:['CodeMirror-linenumbers','CodeMirror-foldgutter'],noAutocomplete:!0,matchTags:{bothTags:!0},emmet:!0}),H.cm.css=U(Ee,{mode:'css',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter'],emmet:!0}),Inlet(H.cm.css),H.cm.js=U(Ae,{mode:'javascript',gutters:['error-gutter','CodeMirror-linenumbers','CodeMirror-foldgutter']}),Inlet(H.cm.js),H.consoleCm=CodeMirror(consoleLogEl,{mode:'javascript',lineWrapping:!0,theme:'monokai',foldGutter:!0,readOnly:!0,gutters:['CodeMirror-foldgutter']}),H.onModalSettingsLinkClick=function(){V(),trackEvent('ui','onboardSettingsBtnClick')},H.onShowInTabClicked=function(){onboardDontShowInTabOptionBtn.classList.remove('selected'),onboardShowInTabOptionBtn.classList.add('selected'),trackEvent('ui','onboardShowInTabClick')},H.onDontShowInTabClicked=function(){onboardDontShowInTabOptionBtn.classList.add('selected'),onboardShowInTabOptionBtn.classList.remove('selected'),trackEvent('ui','onboardDontShowInTabClick')},H.exportItems=function(t){q().then(()=>{b().then(function(e){var t=new Date,s=['web-maker-export',t.getFullYear(),t.getMonth()+1,t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds()].join('-');s+='.json';var i=new Blob([JSON.stringify(e,!1,2)],{type:'application/json;charset=UTF-8'});utils.downloadFile(s,i),trackEvent('ui','exportBtnClicked')})}),t.preventDefault()},H.onImportBtnClicked=function(t){var e=document.createElement('input');e.type='file',e.style.display='none',e.accept='accept="application/json',document.body.appendChild(e),e.addEventListener('change',_),e.click(),trackEvent('ui','importBtnClicked'),t.preventDefault()},H.takeScreenshot=function(t){q().then(()=>{function e(t){var s=document.createElement('canvas'),i=je.getBoundingClientRect();s.width=i.width,s.height=i.height;var o=s.getContext('2d'),a=window.devicePixelRatio||1;o.drawImage(t,i.left*a,i.top*a,i.width*a,i.height*a,0,0,i.width,i.height),t.removeEventListener('load',e),W(s.toDataURL())}var t=document.createElement('style');t.textContent='[class*="hint"]:after, [class*="hint"]:before { display: none!important; }',document.body.appendChild(t),setTimeout(()=>{chrome.tabs.captureVisibleTab(null,{format:'png',quality:100},function(s){if(t.remove(),s){var i=new Image;i.src=s,i.addEventListener('load',()=>e(i,s))}})},50),trackEvent('ui','takeScreenshotBtnClick')}),t.preventDefault()},H.updateSetting=function(t){if(t){var s=t.target.dataset.setting,i={},o=t.target;utils.log(s,'checkbox'===o.type?o.checked:o.value),ye[s]='checkbox'===o.type?o.checked:o.value,i[s]=ye[s],db.sync.set(i,function(){e.add('Setting saved')}),window.IS_EXTENSION||window.db.getDb().then((e)=>{e.collection('users').doc(window.user.uid).update({[`settings.${s}`]:ye[s]}).then((e)=>{utils.log(`Setting "${s}" for user`,e)}).catch((e)=>utils.log(e))}),trackEvent('ui','updatePref-'+s,ye[s])}runBtn.classList[ye.autoPreview?'add':'remove']('hide'),we.querySelector('.CodeMirror').style.fontSize=ye.fontSize,Ee.querySelector('.CodeMirror').style.fontSize=ye.fontSize,Ae.querySelector('.CodeMirror').style.fontSize=ye.fontSize,consoleEl.querySelector('.CodeMirror').style.fontSize=ye.fontSize,indentationSizeValueEl.textContent=$('[data-setting=indentSize]').value,editorThemeLinkTag.href=`lib/codemirror/theme/${ye.editorTheme}.css`,fontStyleTag.textContent=fontStyleTemplate.textContent.replace(/fontname/g,('other'===ye.editorFont?ye.editorCustomFont:ye.editorFont)||'FiraCode'),customEditorFontInput.classList['other'===ye.editorFont?'remove':'add']('hide'),['html','js','css'].forEach((e)=>{H.cm[e].setOption('indentWithTabs','spaces'!==$('[data-setting=indentWith]:checked').value),H.cm[e].setOption('blastCode',!!$('[data-setting=isCodeBlastOn]').checked&&{effect:2,shake:!1}),H.cm[e].setOption('indentUnit',+$('[data-setting=indentSize]').value),H.cm[e].setOption('tabSize',+$('[data-setting=indentSize]').value),H.cm[e].setOption('theme',$('[data-setting=editorTheme]').value),H.cm[e].setOption('keyMap',$('[data-setting=keymap]:checked').value),H.cm[e].setOption('lineWrapping',$('[data-setting=lineWrap]').checked),H.cm[e].refresh()}),H.consoleCm.setOption('theme',$('[data-setting=editorTheme]').value),H.acssSettingsCm.setOption('theme',$('[data-setting=editorTheme]').value),ye.autoSave?!ie&&(ie=setInterval(m,15000)):(clearInterval(ie),ie=null),document.body.classList[ye.lightVersion?'add':'remove']('light-version')},H.onNewBtnClick=function(){if(trackEvent('ui','newBtnClick'),le){var e=confirm('You have unsaved changes. Do you still want to create something new?');e&&C()}else C()},H.onOpenBtnClick=function(){trackEvent('ui','openBtnClick'),S()},H.onSaveBtnClick=function(){trackEvent('ui','saveBtnClick',ne.id?'saved':'new'),c()},H.toggleModal=function(e){e.classList.toggle('is-modal-visible'),document.body.classList[e.classList.contains('is-modal-visible')?'add':'remove']('overlay-visible')},H.onSearchInputChange=function(t){const e=t.target.value;let s;for(const[i,o]of Object.entries(de))s=$(`#js-saved-items-pane [data-item-id=${i}]`),-1===o.title.toLowerCase().indexOf(e)?s.classList.add('hide'):s.classList.remove('hide');trackEvent('ui','searchInputType')},H.toggleConsole=function(){consoleEl.classList.toggle('is-minimized'),trackEvent('ui','consoleToggle')},H.clearConsole=window.clearConsole=function(){H.consoleCm.setValue(''),ke=0,logCountEl.textContent=ke},H.onClearConsoleBtnClick=function(){H.clearConsole(),trackEvent('ui','consoleClearBtnClick')},H.evalConsoleExpr=function(t){(76===t.which||12===t.which)&&t.ctrlKey?(H.clearConsole(),trackEvent('ui','consoleClearKeyboardShortcut')):13===t.which&&(window.onMessageFromConsole('> '+t.target.value),je.contentWindow._wmEvaluate(t.target.value),t.target.value='',trackEvent('fn','evalConsoleExpr'))},window.onMessageFromConsole=function(){[...arguments].forEach(function(e){e&&e.indexOf&&-1!==e.indexOf('filesystem:chrome-extension')&&(e=e.replace(/filesystem:chrome-extension.*\.js:(\d+):*(\d*)/g,'script $1:$2'));try{H.consoleCm.replaceRange(e+' '+((e+'').match(/\[object \w+]/)?JSON.stringify(e):'')+'\n',{line:Infinity})}catch(t){H.consoleCm.replaceRange('\uD83C\uDF00\n',{line:Infinity})}H.consoleCm.scrollTo(0,Infinity),ke++}),logCountEl.textContent=ke},H.openDetachedPreview=function(){if(trackEvent('ui','detachPreviewBtnClick'),H.detachedWindow)return void H.detachedWindow.focus();var e=je.getBoundingClientRect();const t=e.width,s=e.height;document.body.classList.add('is-detached-mode'),globalConsoleContainerEl.insertBefore(consoleEl,null),H.detachedWindow=window.open('./preview.html','Web Maker',`width=${t},height=${s},resizable,scrollbars=yes,status=1`),setTimeout(()=>{H.detachedWindow.postMessage(je.src,'*')},1e3);var i=window.setInterval(function(){H.detachedWindow&&H.detachedWindow.closed&&(clearInterval(i),document.body.classList.remove('is-detached-mode'),$('#js-demo-side').insertBefore(consoleEl,null),H.detachedWindow=null,H.setPreviewContent(!0))},500)},H.openCssSettingsModal=function(){H.toggleModal(cssSettingsModal),setTimeout(()=>{H.acssSettingsCm.refresh(),H.acssSettingsCm.focus()},500),trackEvent('ui','cssSettingsBtnClick')},H.onModalCloseBtnClick=function(t){w(),t.preventDefault()},H.updateProfileUi=()=>{window.user?(document.body.classList.add('is-logged-in'),headerAvatarImg.src=window.user.photoURL||'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAXtJREFUSMfVlT1KQ0EUhc+NiTaxSaUiBBG0133kV+x0CbEza/BnE4JYJxvQFcRaibESXYAKSVQ+i0zkMZn3E7DJgYHHzLnnzj0z74606LCkRWBZUl1SVdKepE239CKpJ6krqWNm47kzA01gQDqegPo8wkvAZQZhH2dALkuCkPgIOAU23Gi7uZkkWWwJoR3gtmO49TjxZednCOsB/loM9xlYmfKintUlbccUF7ptcX5vSaqESNUE944Cc8cJ/Fkt4DHhhoyc52mHPMXDTOnAu6Si/gcfZrbqW0SGwE830vCnFU3wFiAOJV1JakgqmVnRzIqSSpKabm0YiHsNncGN52MPKKduFcrAvRd7HSIeeqSdrIYDu17sQYhUAPoRUmuOBCeRuAGTLhwkNiLEb6AFWIKwOfGfSFzS/yQBF165t0AFyEc4eTd353GTm50LzgHngZ9n7MofuG8f2dp1JFHNO5M49JNsSXsyC5JqmvSWfc0+mR1JXTP7yrzzhcMvKuvFJdN+wSwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDEtMTNUMDU6NDg6MDYrMDA6MDBnRzN5AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTAxLTEzVDA1OjQ4OjA2KzAwOjAwFhqLxQAAACh0RVh0c3ZnOmJhc2UtdXJpAGZpbGU6Ly8vdG1wL21hZ2ljay1MLWhFV0FISOqcDjwAAAAASUVORK5CYII='):(document.body.classList.remove('is-logged-in'),headerAvatarImg.src='')},H.login=(t)=>{const e=t.target.dataset.authProvider;window.login(e),t&&t.preventDefault()},H.logout=window.logout,H.closeAllOverlays=w,function(){function t(e){return function(){return r('layoutMode',e),trackEvent('ui','toggleLayoutClick',e),n(e),!1}}function o(t){consoleEl.style.height=p+u-t.pageY+'px'}firebase.initializeApp({apiKey:'AIzaSyBl8Dz7ZOE7aP75mipYl2zKdLSRzBU2fFc',authDomain:'web-maker-app.firebaseapp.com',databaseURL:'https://web-maker-app.firebaseio.com',projectId:'web-maker-app',storageBucket:'web-maker-app.appspot.com',messagingSenderId:'560473480645'}),firebase.auth().onAuthStateChanged(function(t){H.closeAllOverlays(),t?(utils.log('You are -> ',t),e.add('You are now logged in!'),H.user=window.user=t,window.db.getUser(t.uid).then((e)=>{e&&(Object.assign(ye,t.settings),K(),H.updateSetting())})):delete window.user,H.updateProfileUi()});var a;CodeMirror.modeURL=`lib/codemirror/mode/%N/%N.js`,layoutBtn1.addEventListener('click',t(1)),layoutBtn2.addEventListener('click',t(2)),layoutBtn3.addEventListener('click',t(3)),layoutBtn4.addEventListener('click',t(4)),notificationsBtn.addEventListener('click',function(){return H.toggleModal(notificationsModal),notificationsModal.classList.contains('is-modal-visible')&&!he&&(he=!0,notificationsBtn.classList.remove('has-new'),window.db.setUserLastSeenVersion(J)),trackEvent('ui','notificationButtonClick',J),!1}),codepenBtn.addEventListener('click',function(t){if(Se===Z.ACSS)return alert('Oops! CodePen doesn\'t supports Atomic CSS currently.'),void t.preventDefault();var e={title:'A Web Maker experiment',html:H.cm.html.getValue(),css:H.cm.css.getValue(),js:H.cm.js.getValue(),html_pre_processor:ee[ve].codepenVal,css_pre_processor:ee[Se].codepenVal,js_pre_processor:ee[be].codepenVal,css_external:Ne.value.split('\n').join(';'),js_external:Be.value.split('\n').join(';')};ne.title.match(/Untitled\s\d\d*-\d/)||(e.title=ne.title),e=JSON.stringify(e),xe.querySelector('input').value=e,xe.submit(),trackEvent('ui','openInCodepen'),t.preventDefault()}),utils.onButtonClick(saveHtmlBtn,function(){P(),trackEvent('ui','saveHtmlClick')}),utils.onButtonClick(Te,v),utils.onButtonClick(Me,function(t){t.target.classList.contains('js-saved-item-tile')&&(setTimeout(function(){L(t.target.dataset.itemId)},350),v()),t.target.classList.contains('js-saved-item-tile__remove-btn')?k(t.target.parentElement.parentElement.dataset.itemId):t.target.classList.contains('js-saved-item-tile__fork-btn')&&(v(),setTimeout(function(){y(de[t.target.parentElement.parentElement.dataset.itemId])},350))}),Fe.addEventListener('blur',function(){ne.id&&(c(),trackEvent('ui','titleChanged'))}),$all('.js-mode-select').forEach((e)=>{e.addEventListener('change',function(t){var e=t.target.value,s=t.target.dataset.type,i='html'===s?ve:'css'===s?Se:be;i!==e&&('html'===s?A(e).then(()=>H.setPreviewContent(!0)):'js'===s?M(e).then(()=>H.setPreviewContent(!0)):'css'===s&&x(e).then(()=>H.setPreviewContent(!0)),trackEvent('ui','updateCodeMode',e))})});var d=$all('.js-code-collapse-btn');d.forEach(function(e){e.addEventListener('click',function(t){var e=t.currentTarget.parentElement.parentElement.parentElement;return i(e),trackEvent('ui','paneCollapseBtnClick',e.dataset.type),!1})}),[we,Ee,Ae].forEach(function(e){e.addEventListener('transitionend',function(){s()})}),window.addEventListener('keydown',function(e){var t;if((e.ctrlKey||e.metaKey)&&83===e.keyCode&&(e.preventDefault(),c(),trackEvent('ui','saveItemKeyboardShortcut')),(e.ctrlKey||e.metaKey)&&e.shiftKey&&53===e.keyCode?(e.preventDefault(),H.setPreviewContent(!0),trackEvent('ui','previewKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&79===e.keyCode?(e.preventDefault(),S(),trackEvent('ui','openCreationKeyboardShortcut')):(e.ctrlKey||e.metaKey)&&e.shiftKey&&191===e.keyCode?(e.preventDefault(),H.toggleModal(keyboardShortcutsModal),trackEvent('ui','showKeyboardShortcutsShortcut')):27===e.keyCode&&w(),40===e.keyCode&&Le){if(!$all('.js-saved-item-tile').length)return;t=$('.js-saved-item-tile.selected'),t?(t.classList.remove('selected'),t.nextUntil('.js-saved-item-tile:not(.hide)').classList.add('selected')):$('.js-saved-item-tile:not(.hide)').classList.add('selected'),$('.js-saved-item-tile.selected').scrollIntoView(!1)}else if(38===e.keyCode&&Le){if(!$all('.js-saved-item-tile').length)return;t=$('.js-saved-item-tile.selected'),t?(t.classList.remove('selected'),t.previousUntil('.js-saved-item-tile:not(.hide)').classList.add('selected')):$('.js-saved-item-tile:not(.hide)').classList.add('selected'),$('.js-saved-item-tile.selected').scrollIntoView(!1)}else if(13===e.keyCode&&Le){if(t=$('.js-saved-item-tile.selected'),!t)return;setTimeout(function(){L(t.dataset.itemId)},350),v()}Le&&(e.ctrlKey||e.metaKey)&&70===e.keyCode&&(e.preventDefault(),t=$('.js-saved-item-tile.selected'),setTimeout(function(){y(de[t.dataset.itemId])},350),v(),trackEvent('ui','forkKeyboardShortcut'))}),window.addEventListener('click',function(t){'string'!=typeof t.target.className||-1!==t.target.className.indexOf('modal-overlay')&&w()}),window.addEventListener('dblclick',function(t){var e=t.target;if(e.classList.contains('js-console__header')&&(H.toggleConsole(),trackEvent('ui','consoleToggleDblClick')),e.classList.contains('js-code-wrap__header')){var s=e.parentElement;i(s),trackEvent('ui','paneHeaderDblClick',s.dataset.type)}});var m=window.jsLibs.reduce((e,t)=>e+``,'');ze.children[1].innerHTML=m,m=window.cssLibs.reduce((e,t)=>e+``,''),ze.children[2].innerHTML=m,ze.addEventListener('change',function(t){var e=t.target;e.value&&($('#js-external-'+e.selectedOptions[0].dataset.type).value+='\n'+e.value,trackEvent('ui','addLibrarySelect',e.selectedOptions[0].label),l(),e.value='')}),Be.addEventListener('blur',l),Ne.addEventListener('blur',l),new TextareaAutoComplete(Be,{filter:(e)=>e.latest.match(/\.js$/)}),new TextareaAutoComplete(Ne,{filter:(e)=>e.latest.match(/\.css$/)}),new TextareaAutoComplete(externalLibrarySearchInput,{selectedCallback:(e)=>{const t=e.match(/\.js$/)?Be:Ne;t.value=`${t.value}\n${e}`,externalLibrarySearchInput.value=''}});var u,p;$('.js-console__header').addEventListener('mousedown',(t)=>{u=t.pageY,p=consoleEl.getBoundingClientRect().height,$('#demo-frame').classList.add('pointer-none'),window.addEventListener('mousemove',o)}),$('.js-console__header').addEventListener('mouseup',()=>{window.removeEventListener('mousemove',o),$('#demo-frame').classList.remove('pointer-none')}),db.local.get({layoutMode:1,code:''},function(e){n(e.layoutMode),ye.layoutMode=e.layoutMode,e.code&&(a=e.code)}),db.getSettings(G).then((e)=>{e.preserveLastCode&&a?(le=0,a.id?db.local.get(a.id,function(e){e[a.id]&&(utils.log('Load item ',a.id),ne=e[a.id],j())}):(utils.log('Load last unsaved item',a),ne=a,j())):C(),Object.assign(ye,e),K(),H.updateSetting()}),db.getUserLastSeenVersion().then((e)=>{e||(onboardModal.classList.add('is-modal-visible'),-1===document.cookie.indexOf('onboarded')&&(trackEvent('ui','onboardModalSeen',J),document.cookie='onboarded=1'),window.db.setUserLastSeenVersion(J)),e&&-1!==utils.semverCompare(e,J)||(notificationsBtn.classList.add('has-new'),he=!1)}),H.acssSettingsCm=CodeMirror.fromTextArea(acssSettingsTextarea,{mode:'application/ld+json'}),H.acssSettingsCm.on('blur',()=>{H.setPreviewContent(!0)});var g='';['3024-day','3024-night','abcdef','ambiance','base2tone-meadow-dark','base16-dark','base16-light','bespin','blackboard','cobalt','colorforth','dracula','duotone-dark','duotone-light','eclipse','elegant','erlang-dark','hopscotch','icecoder','isotope','lesser-dark','liquibyte','material','mbo','mdn-like','midnight','monokai','neat','neo','night','panda-syntax','paraiso-dark','paraiso-light','pastel-on-dark','railscasts','rubyblue','seti','solarized dark','solarized light','the-matrix','tomorrow-night-bright','tomorrow-night-eighties','ttcn','twilight','vibrant-ink','xq-dark','xq-light','yeti','zenburn'].forEach((e)=>{g+=''}),document.querySelector('[data-setting="editorTheme"]').innerHTML=g,requestAnimationFrame(Y)}()}(window.alertsService,window.itemService),function(e){function t(e){s&&(!e||e!==s)&&(s.classList.remove('open'),s=null)}var s;(function(){var i=e('[dropdown]');i.forEach(function(e){e.addEventListener('click',function(i){t(i.currentTarget),i.currentTarget.classList.toggle('open'),s=i.currentTarget,i.stopPropagation()})}),document.addEventListener('click',function(){t()})})()}($all); \ No newline at end of file diff --git a/app/service-worker.js b/app/service-worker.js index 0551606..3217f4c 100644 --- a/app/service-worker.js +++ b/app/service-worker.js @@ -37,7 +37,7 @@ /* eslint-disable indent, no-unused-vars, no-multiple-empty-lines, max-nested-callbacks, space-before-function-paren, quotes, comma-spacing */ 'use strict'; -var precacheConfig = [["FiraCode.ttf","fa1f8c8961adca519738d9518139579c"],["Fixedsys.ttf","43cc87e8f9adba81b9d63b6e2d15db57"],["Inconsolata.ttf","b0639eb725c0df94f68b779889679457"],["Monoid.ttf","9b27db986ad2a74c522e9d3b6f7e2a63"],["icon-48.png","ca68956f464ed4fd2e09c66d5edaed5f"],["index.html","fe1c9cb80382c6a14d9a795075db3d10"],["lib/codemirror/mode/coffeescript/coffeescript.js","dea87b9f4c669789c4760605d947f1a9"],["lib/codemirror/mode/css/css.js","6c9ca32a78c120340e588ed3df734138"],["lib/codemirror/mode/css/gss.html","9afa6e2f3a7daa6127a3f26e2e68005c"],["lib/codemirror/mode/css/gss_test.js","e40c6fd9abdc6edc2b29e521bda726e1"],["lib/codemirror/mode/css/less.html","a35ff50857d48bb2f4df8ac737f35d64"],["lib/codemirror/mode/css/scss.html","8c96251f27727a9b23b45c41511e23a0"],["lib/codemirror/mode/haml/haml.js","9abc1679e0f54dcdd62d2326ed6133f5"],["lib/codemirror/mode/htmlembedded/htmlembedded.js","67f745ab3879bf7bc3029ac75ea3e181"],["lib/codemirror/mode/htmlmixed/htmlmixed.js","2d6915b576f267e93f0e1cf72f31af37"],["lib/codemirror/mode/javascript/javascript.js","3b2f1591e3175a24846cb182943f2a40"],["lib/codemirror/mode/javascript/json-ld.html","a2a5069194b78b6b5523cace263cab06"],["lib/codemirror/mode/javascript/typescript.html","76c2ffb883a133aa0fc5cc75ec0c56f5"],["lib/codemirror/mode/jsx/jsx.js","7bee6944931c2cc6ccd99b50fca637db"],["lib/codemirror/mode/markdown/markdown.js","30dd4984e2e929429d70cf5174b35c5d"],["lib/codemirror/mode/meta.js","6e456ea5fd8920c85d5281bd1efecb4c"],["lib/codemirror/mode/pug/pug.js","e988fd72c82f3b11836f6a06f7452436"],["lib/codemirror/mode/sass/sass.js","bd31ac70e9a457abc2789c2b83a21984"],["lib/codemirror/mode/stylus/stylus.js","81e2d281ecbb1dcf5c86857097ae60a7"],["lib/codemirror/mode/xml/xml.js","80f64aaafa6af7844d14f32f3219bb26"],["lib/codemirror/theme/3024-day.css","73c8f41583b4b71dbe1e5eac5c96f1a9"],["lib/codemirror/theme/3024-night.css","745180be9a932f24c6c0dd4ebdf5a0ed"],["lib/codemirror/theme/abcdef.css","8004cb71fd65e58bdfa64fdd55241315"],["lib/codemirror/theme/ambiance-mobile.css","256f2dd130b80c6afaa40fddf700d12a"],["lib/codemirror/theme/ambiance.css","6a200e1f3976929816cf3ac4675c810a"],["lib/codemirror/theme/base16-dark.css","84b6347918411d58d7f9b65a7ee87f65"],["lib/codemirror/theme/base16-light.css","037c7f3d16fe6d5ae2baa532e334172b"],["lib/codemirror/theme/base2tone-meadow-dark.css","f9dd12e2e51fc1575c57f3e5edc2232f"],["lib/codemirror/theme/bespin.css","cc414e4ec18bc89b3c79935b0e27fc20"],["lib/codemirror/theme/blackboard.css","cf9366960ff65c8101793bc64fe13e88"],["lib/codemirror/theme/cobalt.css","3488b576456693fd7ced2da0e10c8a16"],["lib/codemirror/theme/colorforth.css","b2ee8d2296277fc2811a7473ee4e9977"],["lib/codemirror/theme/dracula.css","e514d652ae86bfeaed34237b7d3afe44"],["lib/codemirror/theme/duotone-dark.css","02ec891b23125aaf625d978a39fd24ca"],["lib/codemirror/theme/duotone-light.css","608d11459665117d708651ce7f803fde"],["lib/codemirror/theme/eclipse.css","194369eec66630cfaf662ce5f0a193be"],["lib/codemirror/theme/elegant.css","0a4227e805a9d5f73a55dd248c1b052d"],["lib/codemirror/theme/erlang-dark.css","b5543f5273c968449760ab0d6a2af6dc"],["lib/codemirror/theme/hopscotch.css","b924ed31af30b1c68e5a01fc3c9b0553"],["lib/codemirror/theme/icecoder.css","576d776abdf7e28ea9f84e2eb161a20d"],["lib/codemirror/theme/isotope.css","7bb44bff5190c427de5ae750d6369633"],["lib/codemirror/theme/lesser-dark.css","da2c896bff035cec86fa98b6dc13f7cc"],["lib/codemirror/theme/liquibyte.css","9f37e7a4f3c02bec9bb735b78ed082d6"],["lib/codemirror/theme/material.css","11e812a3688805b5c187a6e6852bafe1"],["lib/codemirror/theme/mbo.css","55ff4bdd8a92c3dcbfd5421c532b3059"],["lib/codemirror/theme/mdn-like.css","79f8dabc5593d01d27bc824b801f9f05"],["lib/codemirror/theme/midnight.css","950e76dca6461ee1a2eac39f2d886613"],["lib/codemirror/theme/monokai.css","31c75ebee6311d49c046ffbbb91028f4"],["lib/codemirror/theme/neat.css","6b19894b9787c6791c250a95d0d4f8d6"],["lib/codemirror/theme/neo.css","2886072b53043c167e6f8765606c705c"],["lib/codemirror/theme/night.css","fe3ce7650a77e7e3887816dd7b6d880d"],["lib/codemirror/theme/panda-syntax.css","acbf94261e43c1f29c2252eb445de032"],["lib/codemirror/theme/paraiso-dark.css","3c24cee0dfac767713840b24e8359c99"],["lib/codemirror/theme/paraiso-light.css","e245bbfd22b4f61efe526ff13903f19e"],["lib/codemirror/theme/pastel-on-dark.css","48aae1a42733db57bd0a260ce0d83975"],["lib/codemirror/theme/railscasts.css","a5e7682d89da46244e5464d9572e24d8"],["lib/codemirror/theme/rubyblue.css","52bb601017a90bca522d66f6e82e73aa"],["lib/codemirror/theme/seti.css","f71668880eb1625f420ceaad670436f0"],["lib/codemirror/theme/solarized dark.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/solarized light.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/the-matrix.css","33c49ceeedafd0a08e712e465e3ad3ce"],["lib/codemirror/theme/tomorrow-night-bright.css","777d36e1c5bbfeb3bf2ca8dd607eee93"],["lib/codemirror/theme/tomorrow-night-eighties.css","5ceb5531fbe074d5190b55e8c725051e"],["lib/codemirror/theme/ttcn.css","d2cb74dfae563a10e9c286357429ea8b"],["lib/codemirror/theme/twilight.css","684040adf66ef89355cb7ebc6b54b00b"],["lib/codemirror/theme/vibrant-ink.css","f10004836fb29cc9a08c987d3e18938a"],["lib/codemirror/theme/xq-dark.css","60f162f0c4240e7352364d436b5598fa"],["lib/codemirror/theme/xq-light.css","447e80da7fe8c5c2bcf39127200cead2"],["lib/codemirror/theme/yeti.css","623dc805bc84dd6d25deef376593354e"],["lib/codemirror/theme/zenburn.css","94ad50bf3d048ed92cc513cd901dc685"],["lib/screenlog.js","dde029b72748bbc12532b309a717c2ca"],["lib/transpilers/atomizer.browser.js","c2925b84a627b017797664530f284618"],["lib/transpilers/babel-polyfill.min.js","6fef55c62df380d41c8f42f8b0c1f4da"],["lib/transpilers/babel.min.js","77a1a84bbc2661db874c738f9b3ba375"],["lib/transpilers/coffee-script.js","a43664b71b7b96e90046a605f6fa51a1"],["lib/transpilers/jade.js","529e365c68f8d5efc4cea18be310bd76"],["lib/transpilers/less.min.js","6fd457ee80aaf9aa8758fe8a2345c970"],["lib/transpilers/marked.js","9f948a81f35613d44efa9322cbaf450d"],["lib/transpilers/sass.js","1263518af3f8b2090c9b08d195bd20d9"],["lib/transpilers/sass.worker.js","0d6c944b36008580fbedc09642f7f656"],["lib/transpilers/stylus.min.js","58f6030903ab52f596fb407dcd3df34f"],["lib/transpilers/typescript.js","cc0882a3185037052e21fa06a38ef077"],["partials/changelog.html","ff90524091c37e22edb0c74e5c380bd4"],["partials/help-modal.html","e3c8168ba7942a056a8798aa7d4aa7d0"],["partials/keyboard-shortcuts.html","d7c4124380a4eeb18968d55276d19591"],["partials/login-modal.html","663426a789a6a1f15dab008762018b18"],["partials/onboard-modal.html","ea2a2d5af4f2a3898551477e758fdada"],["script.js","972018f033196a1e186446ea42a3b9f4"],["style.css","07d7779ddfcf670b745fd20d0e7c2897"],["vendor.css","6ed94306315b8aaf789c53091c23bb4b"],["vendor.js","4ef4adfb271eb1a554b06f70165fa6f0"]]; +var precacheConfig = [["FiraCode.ttf","fa1f8c8961adca519738d9518139579c"],["Fixedsys.ttf","43cc87e8f9adba81b9d63b6e2d15db57"],["Inconsolata.ttf","b0639eb725c0df94f68b779889679457"],["Monoid.ttf","9b27db986ad2a74c522e9d3b6f7e2a63"],["icon-48.png","ca68956f464ed4fd2e09c66d5edaed5f"],["index.html","fe1c9cb80382c6a14d9a795075db3d10"],["lib/codemirror/mode/coffeescript/coffeescript.js","dea87b9f4c669789c4760605d947f1a9"],["lib/codemirror/mode/css/css.js","6c9ca32a78c120340e588ed3df734138"],["lib/codemirror/mode/css/gss.html","9afa6e2f3a7daa6127a3f26e2e68005c"],["lib/codemirror/mode/css/gss_test.js","e40c6fd9abdc6edc2b29e521bda726e1"],["lib/codemirror/mode/css/less.html","a35ff50857d48bb2f4df8ac737f35d64"],["lib/codemirror/mode/css/scss.html","8c96251f27727a9b23b45c41511e23a0"],["lib/codemirror/mode/haml/haml.js","9abc1679e0f54dcdd62d2326ed6133f5"],["lib/codemirror/mode/htmlembedded/htmlembedded.js","67f745ab3879bf7bc3029ac75ea3e181"],["lib/codemirror/mode/htmlmixed/htmlmixed.js","2d6915b576f267e93f0e1cf72f31af37"],["lib/codemirror/mode/javascript/javascript.js","3b2f1591e3175a24846cb182943f2a40"],["lib/codemirror/mode/javascript/json-ld.html","a2a5069194b78b6b5523cace263cab06"],["lib/codemirror/mode/javascript/typescript.html","76c2ffb883a133aa0fc5cc75ec0c56f5"],["lib/codemirror/mode/jsx/jsx.js","7bee6944931c2cc6ccd99b50fca637db"],["lib/codemirror/mode/markdown/markdown.js","30dd4984e2e929429d70cf5174b35c5d"],["lib/codemirror/mode/meta.js","6e456ea5fd8920c85d5281bd1efecb4c"],["lib/codemirror/mode/pug/pug.js","e988fd72c82f3b11836f6a06f7452436"],["lib/codemirror/mode/sass/sass.js","bd31ac70e9a457abc2789c2b83a21984"],["lib/codemirror/mode/stylus/stylus.js","81e2d281ecbb1dcf5c86857097ae60a7"],["lib/codemirror/mode/xml/xml.js","80f64aaafa6af7844d14f32f3219bb26"],["lib/codemirror/theme/3024-day.css","73c8f41583b4b71dbe1e5eac5c96f1a9"],["lib/codemirror/theme/3024-night.css","745180be9a932f24c6c0dd4ebdf5a0ed"],["lib/codemirror/theme/abcdef.css","8004cb71fd65e58bdfa64fdd55241315"],["lib/codemirror/theme/ambiance-mobile.css","256f2dd130b80c6afaa40fddf700d12a"],["lib/codemirror/theme/ambiance.css","6a200e1f3976929816cf3ac4675c810a"],["lib/codemirror/theme/base16-dark.css","84b6347918411d58d7f9b65a7ee87f65"],["lib/codemirror/theme/base16-light.css","037c7f3d16fe6d5ae2baa532e334172b"],["lib/codemirror/theme/base2tone-meadow-dark.css","f9dd12e2e51fc1575c57f3e5edc2232f"],["lib/codemirror/theme/bespin.css","cc414e4ec18bc89b3c79935b0e27fc20"],["lib/codemirror/theme/blackboard.css","cf9366960ff65c8101793bc64fe13e88"],["lib/codemirror/theme/cobalt.css","3488b576456693fd7ced2da0e10c8a16"],["lib/codemirror/theme/colorforth.css","b2ee8d2296277fc2811a7473ee4e9977"],["lib/codemirror/theme/dracula.css","e514d652ae86bfeaed34237b7d3afe44"],["lib/codemirror/theme/duotone-dark.css","02ec891b23125aaf625d978a39fd24ca"],["lib/codemirror/theme/duotone-light.css","608d11459665117d708651ce7f803fde"],["lib/codemirror/theme/eclipse.css","194369eec66630cfaf662ce5f0a193be"],["lib/codemirror/theme/elegant.css","0a4227e805a9d5f73a55dd248c1b052d"],["lib/codemirror/theme/erlang-dark.css","b5543f5273c968449760ab0d6a2af6dc"],["lib/codemirror/theme/hopscotch.css","b924ed31af30b1c68e5a01fc3c9b0553"],["lib/codemirror/theme/icecoder.css","576d776abdf7e28ea9f84e2eb161a20d"],["lib/codemirror/theme/isotope.css","7bb44bff5190c427de5ae750d6369633"],["lib/codemirror/theme/lesser-dark.css","da2c896bff035cec86fa98b6dc13f7cc"],["lib/codemirror/theme/liquibyte.css","9f37e7a4f3c02bec9bb735b78ed082d6"],["lib/codemirror/theme/material.css","11e812a3688805b5c187a6e6852bafe1"],["lib/codemirror/theme/mbo.css","55ff4bdd8a92c3dcbfd5421c532b3059"],["lib/codemirror/theme/mdn-like.css","79f8dabc5593d01d27bc824b801f9f05"],["lib/codemirror/theme/midnight.css","950e76dca6461ee1a2eac39f2d886613"],["lib/codemirror/theme/monokai.css","31c75ebee6311d49c046ffbbb91028f4"],["lib/codemirror/theme/neat.css","6b19894b9787c6791c250a95d0d4f8d6"],["lib/codemirror/theme/neo.css","2886072b53043c167e6f8765606c705c"],["lib/codemirror/theme/night.css","fe3ce7650a77e7e3887816dd7b6d880d"],["lib/codemirror/theme/panda-syntax.css","acbf94261e43c1f29c2252eb445de032"],["lib/codemirror/theme/paraiso-dark.css","3c24cee0dfac767713840b24e8359c99"],["lib/codemirror/theme/paraiso-light.css","e245bbfd22b4f61efe526ff13903f19e"],["lib/codemirror/theme/pastel-on-dark.css","48aae1a42733db57bd0a260ce0d83975"],["lib/codemirror/theme/railscasts.css","a5e7682d89da46244e5464d9572e24d8"],["lib/codemirror/theme/rubyblue.css","52bb601017a90bca522d66f6e82e73aa"],["lib/codemirror/theme/seti.css","f71668880eb1625f420ceaad670436f0"],["lib/codemirror/theme/solarized dark.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/solarized light.css","4d05a166d713bb1ac24833061c1522d7"],["lib/codemirror/theme/the-matrix.css","33c49ceeedafd0a08e712e465e3ad3ce"],["lib/codemirror/theme/tomorrow-night-bright.css","777d36e1c5bbfeb3bf2ca8dd607eee93"],["lib/codemirror/theme/tomorrow-night-eighties.css","5ceb5531fbe074d5190b55e8c725051e"],["lib/codemirror/theme/ttcn.css","d2cb74dfae563a10e9c286357429ea8b"],["lib/codemirror/theme/twilight.css","684040adf66ef89355cb7ebc6b54b00b"],["lib/codemirror/theme/vibrant-ink.css","f10004836fb29cc9a08c987d3e18938a"],["lib/codemirror/theme/xq-dark.css","60f162f0c4240e7352364d436b5598fa"],["lib/codemirror/theme/xq-light.css","447e80da7fe8c5c2bcf39127200cead2"],["lib/codemirror/theme/yeti.css","623dc805bc84dd6d25deef376593354e"],["lib/codemirror/theme/zenburn.css","94ad50bf3d048ed92cc513cd901dc685"],["lib/screenlog.js","dde029b72748bbc12532b309a717c2ca"],["lib/transpilers/atomizer.browser.js","c2925b84a627b017797664530f284618"],["lib/transpilers/babel-polyfill.min.js","6fef55c62df380d41c8f42f8b0c1f4da"],["lib/transpilers/babel.min.js","77a1a84bbc2661db874c738f9b3ba375"],["lib/transpilers/coffee-script.js","a43664b71b7b96e90046a605f6fa51a1"],["lib/transpilers/jade.js","529e365c68f8d5efc4cea18be310bd76"],["lib/transpilers/less.min.js","6fd457ee80aaf9aa8758fe8a2345c970"],["lib/transpilers/marked.js","9f948a81f35613d44efa9322cbaf450d"],["lib/transpilers/sass.js","1263518af3f8b2090c9b08d195bd20d9"],["lib/transpilers/sass.worker.js","0d6c944b36008580fbedc09642f7f656"],["lib/transpilers/stylus.min.js","58f6030903ab52f596fb407dcd3df34f"],["lib/transpilers/typescript.js","cc0882a3185037052e21fa06a38ef077"],["partials/changelog.html","ff90524091c37e22edb0c74e5c380bd4"],["partials/help-modal.html","e3c8168ba7942a056a8798aa7d4aa7d0"],["partials/keyboard-shortcuts.html","d7c4124380a4eeb18968d55276d19591"],["partials/login-modal.html","663426a789a6a1f15dab008762018b18"],["partials/onboard-modal.html","ea2a2d5af4f2a3898551477e758fdada"],["script.js","972018f033196a1e186446ea42a3b9f4"],["style.css","cefdd661eecb2ba1d4ac85b5b6fe56c0"],["vendor.css","6ed94306315b8aaf789c53091c23bb4b"],["vendor.js","4ef4adfb271eb1a554b06f70165fa6f0"]]; var cacheName = 'sw-precache-v3--' + (self.registration ? self.registration.scope : ''); diff --git a/app/style.css b/app/style.css index a883291..d1f6e33 100644 --- a/app/style.css +++ b/app/style.css @@ -1 +1 @@ -:root{--color-bg:#252637;--color-sidebar:#3a2b63;--code-font-size:16px}body{margin:0;padding:0;background:rgba(0,0,0,.5);background:var(--color-bg);color:rgba(255,255,255,.9);min-height:100vh;font-size:87.5%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Segoe UI Emoji','Segoe UI Symbol'}h1{margin-top:0}a{text-decoration:none;color:#dc143c;cursor:pointer}.hide{display:none!important}.flex{display:flex}.flex-grow{flex-grow:1}.flex-v-center{align-items:center}.fr{float:right}.relative{position:relative}.tac{text-align:center}.tar{text-align:right}.va-m{vertical-align:middle}.full-width{width:100%}.opacity--30{opacity:.3}.opacity--70{opacity:.7}.pointer-none{pointer-events:none}.ml-1{margin-left:1rem}.ml-2{margin-left:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}hr{background:0;border:0;border-bottom:1px solid #dedede}label{cursor:pointer}[class*=hint--]:after{text-transform:none;font-weight:400;letter-spacing:.5px}.line{display:block;margin-bottom:1em}.caret{display:inline-block;width:0;height:0;border:6px solid transparent;border-top-color:currentColor;position:relative;top:5px;margin-left:8px}a>svg{fill:rgba(255,255,255,.2)}input[type=number],input[type=text],select,textarea{padding:3px 5px;font-size:inherit}.hidden-select{opacity:0;position:absolute;left:0;right:0;top:0;bottom:0}.btn{display:inline-block;border:0;background:#0074d9;color:#fff;font-size:inherit;border-radius:3px;padding:7px 15px;cursor:pointer;transition:box-shadow .2s ease}.btn--big{padding:15px 30px;border-radius:3px}.btn-icon{display:inline-flex;align-items:center}.btn:hover{text-decoration:none;box-shadow:0 3px 5px 0 rgba(0,0,0,.15)}.btn:focus{outline-width:4px;outline-color:#b76b29;outline-style:solid;outline-offset:1px}.btn-icon>svg{width:20px;height:20px;fill:currentColor;vertical-align:middle;margin-right:8px}.btn--big>svg{width:25px;height:25px;margin-right:12px}.star:after{content:'★';color:#eee333}.show-when-selected{display:none}.selected .show-when-selected{display:inline-block}.main-container{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;will-change:-webkit-filter;transition:.1s ease .2s}body:not(.light-version).overlay-visible .main-container{transition-duration:.5s;transition-delay:.4s;-webkit-filter:blur(3px);filter:blur(3px)}.code-side,.demo-side{flex-basis:inherit;position:relative;width:50%}.layout-3 .content-wrap{flex-direction:row-reverse}.code-side{display:flex;flex-direction:column}.layout-2 .content-wrap{flex-direction:column}.layout-2 .code-side{flex-direction:row;width:auto}.layout-2 .demo-side{width:auto}.layout-4 .code-side{display:none}.layout-4 .code-side+.gutter{display:none}.layout-4 .demo-side{width:100%!important}.is-detached-mode .demo-side{display:none}.is-detached-mode .code-side{width:100%!important}.is-detached-mode.layout-2 .code-side{height:auto!important}.code-wrap{display:flex;flex-direction:column;flex-basis:inherit;height:33%;overflow:hidden;position:relative;background:var(--color-bg);transition:height .3s ease,width .3s ease;will-change:height}.layout-2 .code-wrap.is-minimized{flex-direction:row}.is-dragging .code-wrap{transition:none}.layout-2 .code-wrap{height:auto;width:33%}.code-wrap:nth-of-type(3){animation-delay:.3s}.code-wrap:nth-of-type(5){animation-delay:.4s}.code-wrap__header{display:flex;flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 10px;background:rgba(0,0,0,.2);color:#888;border-bottom:1px solid rgba(0,0,0,.3);font-weight:700;user-select:none}.code-wrap__header-label{display:inline-block;font-size:1.1em;opacity:.5}.layout-2 .code-side .is-minimized .code-wrap__header{writing-mode:vertical-lr;padding:10px 5px}.code-wrap__header .caret{transition:.2s ease}.is-minimized .code-wrap__header .caret{opacity:0}.code-wrap__header-btn{display:inline-block;vertical-align:top;margin-left:8px}.code-wrap__header-btn,.code-wrap__header-btn>svg{width:18px;height:18px}.code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}.is-maximized .code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}@keyframes pop-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.Codemirror{width:100%;height:calc(100% - 25px);font-size:var(--code-font-size)}.layout-2 .is-minimized .Codemirror{height:calc(100%)}.Codemirror pre{font-variant-ligatures:contextual}.cm-s-monokai .CodeMirror-linenumber{color:rgba(255,255,255,.2)}.cm-s-monokai .CodeMirror-gutters,.cm-s-monokai.CodeMirror{background:var(--color-bg)}.cm-s-monokai .CodeMirror-guttermarker-subtle{opacity:.4}.cm-s-monokai .CodeMirror-activeline-background,.cm-s-monokai .CodeMirror-activeline-gutter{background:rgba(0,0,0,.1)!important}.CodeMirror-hints{font-size:var(--code-font-size);border:0;background:#1e1e2c}.CodeMirror-hint{color:#bbb;padding:2px 4px}li.CodeMirror-hint-active{background:#5b429d}#demo-frame{border:0;width:100%;height:calc(100% - 29px);position:absolute;z-index:1;background:#fff}body>#demo-frame{height:100%}.footer,.main-header{padding:5px 10px;background-color:#12131b;color:rgba(255,255,255,.45);border-top:1px solid rgba(255,255,255,.14)}.footer{z-index:6}// Because .console is 6 .main-header{display:flex;flex-wrap:nowrap;border:0;border-bottom:1px solid rgba(255,255,255,.14)}.main-header__btn-wrap>a{font-size:.8em;font-weight:700;line-height:20px;height:20px;letter-spacing:.6px;color:#9297b3;border-radius:3px;margin-left:10px;padding:0 8px;border:1px solid rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(255,255,255,.1) 100%);box-shadow:0 -1px 0 0 rgba(255,255,255,.15);text-transform:uppercase}.main-header__btn-wrap>a>svg{fill:#9297b3;margin-right:4px}.main-header__btn-wrap>a.is-marked>svg{fill:#dc143c}.main-header__btn-wrap>a:hover{border-color:rgba(146,151,179,.5)}.main-header__avatar-img{border-radius:50%}.logo{display:inline-block;height:25px;width:48px;margin-right:5px;background:url(icon-48.png) 0 -12px;background-repeat:no-repeat;vertical-align:middle;-webkit-filter:grayscale(.9);transition:.4s ease;opacity:.3}.footer:hover .logo{-webkit-filter:grayscale(0);opacity:1}.footer__right{font-size:0;line-height:0}.footer__separator{display:inline-block;height:24px;margin:0 10px 0 20px;border-left:1px solid rgba(255,255,255,.2)}.mode-btn{margin-left:10px;display:inline-block}.footer__link:first-of-type{margin-left:5px}.footer__link{display:inline-block;margin-right:5px;position:relative;top:2px}.footer a>svg{transition:.3s ease;fill:rgba(255,255,255,.2)}.footer a:hover svg{fill:rgba(255,255,255,.45)}.mode-btn svg{width:24px;height:24px}.mode-btn.selected svg{fill:rgba(255,255,255,.45)}.gutter{background:rgba(255,255,255,.05);flex-shrink:0}.gutter-horizontal{cursor:ew-resize}.gutter-vertical{cursor:ns-resize}.item-title-input{background:0 0;border:0;color:rgba(255,255,255,.6);flex:1}.search-input{background:rgba(255,255,255,.1);padding:10px 20px;border:0;width:100%;font-size:16px;color:#fff;border-radius:4px}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:2000;visibility:hidden;pointer-events:none}.modal__close-btn{position:absolute;right:10px;top:10px;opacity:.3;transition:.25s ease}.modal__close-btn>svg{fill:#000;width:30px;height:30px}.modal__close-btn:hover{opacity:.7}.modal__content{background:#fdfdfd;color:#444;position:relative;border-radius:8px;opacity:0;padding:2em;font-size:1.1em;line-height:1.4;max-height:90vh;box-sizing:border-box;overflow-y:auto;pointer-events:auto;transition-property:transform,opacity;transition-duration:.19s;transform:translateY(-50px) scale(.7)}.is-modal-visible{visibility:visible}.is-modal-visible .modal__content{transition-duration:.3s;transform:translateY(0) scale(1);opacity:1}.modal-overlay{position:fixed;width:100%;height:100%;visibility:hidden;top:0;left:0;z-index:5;opacity:0;will-change:opacity;background:rgba(0,0,0,.6);transition:opacity .3s}.saved-items-pane{position:fixed;right:0;top:0;bottom:0;width:450px;padding:20px 30px;z-index:6;background-color:var(--color-sidebar);transition:.3s cubic-bezier(1,.13,.21,.87);transition-property:transform;will-change:transform;transform:translateX(100%)}.saved-items-pane.is-open{transition-duration:.4s;transform:translateX(0)}.is-modal-visible~.modal-overlay,.saved-items-pane.is-open~.modal-overlay{opacity:1;visibility:visible}.saved-items-pane__close-btn{position:absolute;left:-18px;top:24px;opacity:0;visibility:hidden;border-radius:50%;padding:10px 14px;background:#dc143c;transform:scale(0);will-change:transform,opacity;transition:.3s ease;transition-delay:0}.saved-items-pane.is-open .saved-items-pane__close-btn{opacity:1;transition-delay:.4s;transform:scale(1);visibility:visible}.saved-item-tile{padding:20px;background-color:rgba(255,255,255,.06);position:relative;margin:20px 0;display:block;border-radius:4px;cursor:pointer;opacity:0;transform:translateX(50px);will-change:opacity,transform;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);animation:slide-left .35s ease forwards}.saved-item-tile:nth-child(1){animation-delay:.2s}.saved-item-tile:nth-child(2){animation-delay:.25s}.saved-item-tile:nth-child(3){animation-delay:.3s}.saved-item-tile:nth-child(4){animation-delay:.35s}.saved-item-tile:nth-child(5){animation-delay:.4s}.saved-item-tile:nth-child(6){animation-delay:.45s}.saved-item-tile:nth-child(7){animation-delay:.5s}.saved-item-tile:nth-child(8){animation-delay:.55s}.saved-item-tile:nth-child(9){animation-delay:.6s}.saved-item-tile:nth-child(10){animation-delay:.65s}.saved-item-tile:nth-child(11){animation-delay:.7s}.saved-item-tile:nth-child(12){animation-delay:.75s}.saved-item-tile:nth-child(n+12){animation-delay:.8s}@keyframes slide-left{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.saved-item-tile.selected,.saved-item-tile:hover{background:rgba(255,255,255,.1)}.saved-item-tile__btns{position:absolute;top:6px;z-index:1;right:8px;opacity:0;pointer-events:none;transition:.25s ease}.saved-item-tile.selected .saved-item-tile__btns,.saved-item-tile:hover .saved-item-tile__btns{opacity:1;pointer-events:auto}.saved-item-tile__btn{padding:7px 10px;color:rgba(255,255,255,.3);border-radius:20px;margin-left:2px;background:rgba(255,255,255,.05);text-transform:uppercase}.saved-item-tile__btn:hover{background:rgba(255,255,255,.8);color:#555}.saved-item-tile__title{pointer-events:none;font-size:1.4em;margin:0 0 1em 0;opacity:.8}.saved-item-tile__meta{pointer-events:none;opacity:.3}.saved-items-pane__container{overflow-y:scroll;max-height:calc(100vh - 90px)}.notifications-btn{position:relative}@keyframes shake{2%,22%{transform:translate3d(-1px,0,0)}20%,5%{transform:translate3d(2px,0,0)}12%,17%,7%{transform:translate3d(-4px,0,0)}10%,15%{transform:translate3d(4px,0,0)}}.notifications-btn.has-new{animation:shake 7s linear infinite;transform-origin:50% 10px}.notifications-btn__dot{position:absolute;right:1;top:-2px;background:#31fe45;border-radius:50%;width:12px;height:12px;display:none}.has-new .notifications-btn__dot{display:block}.notification{border:1px solid #f1f1f1;border-radius:5px;padding:20px;background:#f8f6f9;position:relative}.notification:not(:last-child){margin-bottom:10px}.notification li:not(:last-child){margin-bottom:10px}.notification__version{background:#ff8c00;color:#fff;padding:3px;border-radius:5px;position:absolute;top:2px;left:2px}.loader,.loader:after{border-radius:50%;width:3em;height:3em}.loader{font-size:5px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(118,57,229,.2);border-right:1.1em solid rgba(118,57,229,.2);border-bottom:1.1em solid rgba(118,57,229,.2);border-left:1.1em solid #7639e5;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.btn-group{position:relative;cursor:pointer}.dropdown__menu{position:absolute;top:100%;left:0;padding:0;margin:0;min-width:200px;display:block;font-size:.88rem;list-style:none;border-radius:4px;overflow:hidden;opacity:0;visibility:hidden;transition:transform .25s ease;transform:translateY(10px);z-index:5;background:#fff}.dropdown__menu>li>a{display:block;padding:6px 15px;color:#333;cursor:pointer}.dropdown__menu>li.selected>a,.dropdown__menu>li>a:hover{background:var(--color-sidebar);color:#fff}.dropdown__menu>li:not(:last-child){border-bottom:1px solid rgba(0,0,0,.05)}.dropdown__menu.is-open,.open>.dropdown__menu{opacity:1;visibility:visible;transform:translateY(0)}.alerts-container{position:fixed;will-change:transform;left:50%;top:-5px;padding:10px;background:#fff;border:1px solid #eee;color:#333;box-shadow:0 3px 5px rgba(0,0,0,.2);font-size:1rem;border-radius:3px;z-index:6;transform:translateX(-50%) translateY(-100%);transition:.3s ease}.alerts-container.is-active{transform:translateX(-50%) translateY(0)}.error-gutter{width:8px}.gutter-error-marker{width:8px;height:20px;background:red;border-radius:0;position:relative;top:0;left:1px}.gutter-error-marker:after{content:attr(data-title);background:red;color:#fff;padding:4px;opacity:0;visibility:hidden;position:absolute;top:14px;left:0;width:300px;transform:translateX(-10px);will-change:transform;transition:.2s ease}.gutter-error-marker:hover:after{opacity:1;visibility:visible;transform:translateX(0)}.count-label{color:rgba(0,0,0,.8);background:rgba(255,255,255,.53);border-radius:5px;padding:1px 6px;font-weight:700}.onboard-step{background:#f7f2f1;border:1px solid #ecdede;margin:15px;padding:20px 30px;background-color:#fff;border-radius:10px;box-shadow:0 16px 22px rgba(0,0,0,.1);flex:1;opacity:0;animation:onboard-step-show .6s ease forwards;animation-delay:.1s}.onboard-step:nth-child(2){animation-delay:.2s}.onboard-step:nth-child(3){animation-delay:.4s}.onboard-step__icon{fill:transparent!important;stroke-width:.3px;stroke:#eeb096;width:150px;height:150px}@keyframes onboard-step-show{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.autocomplete-dropdown{border-top-left-radius:0;border-top-right-radius:0;right:0;max-height:200px;overflow-y:auto;border:1px solid rgba(0,0,0,.5);z-index:2001}.autocomplete__loader{position:absolute;right:3px;bottom:1px}@keyframes wobble{from{transform:none}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:none}}.animated{animation-duration:1s;animation-fill-mode:both}.wobble{animation-name:wobble}.console{background:var(--color-bg);z-index:6;position:absolute;bottom:0;min-height:80px;height:35vh;left:0;right:0;transform:translateY(0);transition:transform .4s cubic-bezier(.76,.01,.13,.9)}.console.is-minimized{transform:translateY(calc(100% - 29px))}.console .Codemirror{height:calc(100% - 55px)}.console-exec-input{padding:5px;font-size:1.3em;flex:1;background:rgba(0,0,0,.3);color:#fff;border:0;outline:0}.console:not(.is-minimized) .code-wrap__header{cursor:ns-resize}.global-console-container{display:none;position:relative;height:35px}.is-detached-mode .console,.is-detached-mode .footer{z-index:4}.is-detached-mode .global-console-container{display:block}.kbd-shortcut__keys{background:rgba(0,0,0,.1);border-radius:3px;padding:3px 8px;margin-right:5px;display:inline-block;font-size:.9rem;font-weight:700}.kbd-shortcut__details{display:inline-block}.web-maker-with-tag{position:relative;display:inline-block}.web-maker-with-tag:after{content:'BETA';position:relative;left:3px;top:-10px;border-radius:4px;background:#b76b29;color:#fff;letter-spacing:.6px;padding:2px;font-size:10px}.is-extension .web-maker-with-tag:after{display:none}.social-login-btn--github{background:#656b6f}.social-login-btn--facebook{background:#4e62c0}.social-login-btn--google{background:#fff;border:2px solid currentColor;color:inherit}body.is-logged-in .hide-on-login,body:not(.is-app) .show-when-app,body:not(.is-extension) .show-when-extension,body:not(.is-logged-in) .hide-on-logout{display:none}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-dracula .CodeMirror-gutters,.cm-s-dracula.CodeMirror{background-color:#282a36!important;color:#f8f8f2!important}.cm-s-dracula .CodeMirror-activeline-background{background:rgba(255,255,255,.1)}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-activeline-background{background:#253540} \ No newline at end of file +:root{--color-bg:#252637;--color-sidebar:#3a2b63;--code-font-size:16px}body{margin:0;padding:0;background:rgba(0,0,0,.5);background:var(--color-bg);color:rgba(255,255,255,.9);min-height:100vh;font-size:87.5%;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif,'Segoe UI Emoji','Segoe UI Symbol'}h1{margin-top:0}a{text-decoration:none;color:#dc143c;cursor:pointer}.hide{display:none!important}.flex{display:flex}.flex-grow{flex-grow:1}.flex-v-center{align-items:center}.fr{float:right}.relative{position:relative}.tac{text-align:center}.tar{text-align:right}.va-m{vertical-align:middle}.full-width{width:100%}.opacity--30{opacity:.3}.opacity--70{opacity:.7}.pointer-none{pointer-events:none}.ml-1{margin-left:1rem}.ml-2{margin-left:2rem}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}hr{background:0;border:0;border-bottom:1px solid #dedede}label{cursor:pointer}[class*=hint--]:after{text-transform:none;font-weight:400;letter-spacing:.5px}.line{display:block;margin-bottom:1em}.caret{display:inline-block;width:0;height:0;border:6px solid transparent;border-top-color:currentColor;position:relative;top:5px;margin-left:8px}a>svg{fill:rgba(255,255,255,.2)}input[type=number],input[type=text],select,textarea{padding:3px 5px;font-size:inherit}.hidden-select{opacity:0;position:absolute;left:0;right:0;top:0;bottom:0}.btn{display:inline-block;border:0;background:#0074d9;color:#fff;font-size:inherit;border-radius:3px;padding:7px 15px;cursor:pointer;transition:box-shadow .2s ease}.btn--big{padding:15px 30px;border-radius:3px}.btn-icon{display:inline-flex;align-items:center}.btn:hover{text-decoration:none;box-shadow:0 3px 5px 0 rgba(0,0,0,.15)}.btn:focus{outline-width:4px;outline-color:#b76b29;outline-style:solid;outline-offset:1px}.btn-icon>svg{width:20px;height:20px;fill:currentColor;vertical-align:middle;margin-right:8px}.btn--big>svg{width:25px;height:25px;margin-right:12px}.star:after{content:'★';color:#eee333}.show-when-selected{display:none}.selected .show-when-selected{display:inline-block}.main-container{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;flex-direction:column;overflow:hidden;will-change:-webkit-filter;transition:.1s ease .2s}body:not(.light-version).overlay-visible .main-container{transition-duration:.5s;transition-delay:.4s;-webkit-filter:blur(3px);filter:blur(3px)}.code-side,.demo-side{flex-basis:inherit;position:relative;width:50%}.layout-3 .content-wrap{flex-direction:row-reverse}.code-side{display:flex;flex-direction:column}.layout-2 .content-wrap{flex-direction:column}.layout-2 .code-side{flex-direction:row;width:auto}.layout-2 .demo-side{width:auto}.layout-4 .code-side{display:none}.layout-4 .code-side+.gutter{display:none}.layout-4 .demo-side{width:100%!important}.is-detached-mode .demo-side{display:none}.is-detached-mode .code-side{width:100%!important}.is-detached-mode.layout-2 .code-side{height:auto!important}.code-wrap{display:flex;flex-direction:column;flex-basis:inherit;height:33%;overflow:hidden;position:relative;background:var(--color-bg);transition:height .3s ease,width .3s ease;will-change:height}.layout-2 .code-wrap.is-minimized{flex-direction:row}.is-dragging .code-wrap{transition:none}.layout-2 .code-wrap{height:auto;width:33%}.code-wrap:nth-of-type(3){animation-delay:.3s}.code-wrap:nth-of-type(5){animation-delay:.4s}.code-wrap__header{display:flex;flex-shrink:0;justify-content:space-between;align-items:center;padding:5px 10px;background:rgba(0,0,0,.2);color:#888;border-bottom:1px solid rgba(0,0,0,.3);font-weight:700;user-select:none}.code-wrap__header-label{display:inline-block;font-size:1.1em;opacity:.5}.layout-2 .code-side .is-minimized .code-wrap__header{writing-mode:vertical-lr;padding:10px 5px}.code-wrap__header .caret{transition:.2s ease}.is-minimized .code-wrap__header .caret{opacity:0}.code-wrap__header-btn{display:inline-block;vertical-align:top;margin-left:8px}.code-wrap__header-btn,.code-wrap__header-btn>svg{width:18px;height:18px}.code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}.is-maximized .code-wrap__collapse-btn:before{content:url('data:image/svg+xml;utf8,')}@keyframes pop-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.Codemirror{width:100%;height:calc(100% - 25px);font-size:var(--code-font-size)}.layout-2 .is-minimized .Codemirror{height:calc(100%)}.Codemirror pre{font-variant-ligatures:contextual}.cm-s-monokai .CodeMirror-linenumber{color:rgba(255,255,255,.2)}.cm-s-monokai .CodeMirror-gutters,.cm-s-monokai.CodeMirror{background:var(--color-bg)}.cm-s-monokai .CodeMirror-guttermarker-subtle{opacity:.4}.cm-s-monokai .CodeMirror-activeline-background,.cm-s-monokai .CodeMirror-activeline-gutter{background:rgba(0,0,0,.1)!important}.CodeMirror-hints{font-size:var(--code-font-size);border:0;background:#1e1e2c}.CodeMirror-hint{color:#bbb;padding:2px 4px}li.CodeMirror-hint-active{background:#5b429d}#demo-frame{border:0;width:100%;height:calc(100% - 29px);position:absolute;z-index:1;background:#fff}body>#demo-frame{height:100%}.footer,.main-header{padding:5px 10px;background-color:#12131b;color:rgba(255,255,255,.45);border-top:1px solid rgba(255,255,255,.14)}.footer{z-index:6}.main-header{display:flex;flex-wrap:nowrap;border:0;border-bottom:1px solid rgba(255,255,255,.14)}.main-header__btn-wrap>a{font-size:.8em;font-weight:700;line-height:20px;height:20px;letter-spacing:.6px;color:#9297b3;border-radius:3px;margin-left:10px;padding:0 8px;border:1px solid rgba(0,0,0,.9);background:linear-gradient(180deg,rgba(0,0,0,.5) 0,rgba(255,255,255,.1) 100%);box-shadow:0 -1px 0 0 rgba(255,255,255,.15);text-transform:uppercase}.main-header__btn-wrap>a>svg{fill:#9297b3;margin-right:4px}.main-header__btn-wrap>a.is-marked>svg{fill:#dc143c}.main-header__btn-wrap>a:hover{border-color:rgba(146,151,179,.5)}.main-header__avatar-img{border-radius:50%}.logo{display:inline-block;height:25px;width:48px;margin-right:5px;background:url(icon-48.png) 0 -12px;background-repeat:no-repeat;vertical-align:middle;-webkit-filter:grayscale(.9);transition:.4s ease;opacity:.3}.footer:hover .logo{-webkit-filter:grayscale(0);opacity:1}.footer__right{font-size:0;line-height:0}.footer__separator{display:inline-block;height:24px;margin:0 10px 0 20px;border-left:1px solid rgba(255,255,255,.2)}.mode-btn{margin-left:10px;display:inline-block}.footer__link:first-of-type{margin-left:5px}.footer__link{display:inline-block;margin-right:5px;position:relative;top:2px}.footer a>svg{transition:.3s ease;fill:rgba(255,255,255,.2)}.footer a:hover svg{fill:rgba(255,255,255,.45)}.mode-btn svg{width:24px;height:24px}.mode-btn.selected svg{fill:rgba(255,255,255,.45)}.gutter{background:rgba(255,255,255,.05);flex-shrink:0}.gutter-horizontal{cursor:ew-resize}.gutter-vertical{cursor:ns-resize}.item-title-input{background:0 0;border:0;color:rgba(255,255,255,.6);flex:1}.search-input{background:rgba(255,255,255,.1);padding:10px 20px;border:0;width:100%;font-size:16px;color:#fff;border-radius:4px}.modal{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:2000;visibility:hidden;pointer-events:none}.modal__close-btn{position:absolute;right:10px;top:10px;opacity:.3;transition:.25s ease}.modal__close-btn>svg{fill:#000;width:30px;height:30px}.modal__close-btn:hover{opacity:.7}.modal__content{background:#fdfdfd;color:#444;position:relative;border-radius:8px;opacity:0;padding:2em;font-size:1.1em;line-height:1.4;max-height:90vh;box-sizing:border-box;overflow-y:auto;pointer-events:auto;transition-property:transform,opacity;transition-duration:.19s;transform:translateY(-50px) scale(.7)}.is-modal-visible{visibility:visible}.is-modal-visible .modal__content{transition-duration:.3s;transform:translateY(0) scale(1);opacity:1}.modal-overlay{position:fixed;width:100%;height:100%;visibility:hidden;top:0;left:0;z-index:5;opacity:0;will-change:opacity;background:rgba(0,0,0,.6);transition:opacity .3s}.saved-items-pane{position:fixed;right:0;top:0;bottom:0;width:450px;padding:20px 30px;z-index:6;background-color:var(--color-sidebar);transition:.3s cubic-bezier(1,.13,.21,.87);transition-property:transform;will-change:transform;transform:translateX(100%)}.saved-items-pane.is-open{transition-duration:.4s;transform:translateX(0)}.is-modal-visible~.modal-overlay,.saved-items-pane.is-open~.modal-overlay{opacity:1;visibility:visible}.saved-items-pane__close-btn{position:absolute;left:-18px;top:24px;opacity:0;visibility:hidden;border-radius:50%;padding:10px 14px;background:#dc143c;transform:scale(0);will-change:transform,opacity;transition:.3s ease;transition-delay:0}.saved-items-pane.is-open .saved-items-pane__close-btn{opacity:1;transition-delay:.4s;transform:scale(1);visibility:visible}.saved-item-tile{padding:20px;background-color:rgba(255,255,255,.06);position:relative;margin:20px 0;display:block;border-radius:4px;cursor:pointer;opacity:0;transform:translateX(50px);will-change:opacity,transform;box-shadow:0 2px 4px 0 rgba(0,0,0,.2);animation:slide-left .35s ease forwards}.saved-item-tile:nth-child(1){animation-delay:.2s}.saved-item-tile:nth-child(2){animation-delay:.25s}.saved-item-tile:nth-child(3){animation-delay:.3s}.saved-item-tile:nth-child(4){animation-delay:.35s}.saved-item-tile:nth-child(5){animation-delay:.4s}.saved-item-tile:nth-child(6){animation-delay:.45s}.saved-item-tile:nth-child(7){animation-delay:.5s}.saved-item-tile:nth-child(8){animation-delay:.55s}.saved-item-tile:nth-child(9){animation-delay:.6s}.saved-item-tile:nth-child(10){animation-delay:.65s}.saved-item-tile:nth-child(11){animation-delay:.7s}.saved-item-tile:nth-child(12){animation-delay:.75s}.saved-item-tile:nth-child(n+12){animation-delay:.8s}@keyframes slide-left{from{opacity:0;transform:translateX(50px)}to{opacity:1;transform:translateX(0)}}.saved-item-tile.selected,.saved-item-tile:hover{background:rgba(255,255,255,.1)}.saved-item-tile__btns{position:absolute;top:6px;z-index:1;right:8px;opacity:0;pointer-events:none;transition:.25s ease}.saved-item-tile.selected .saved-item-tile__btns,.saved-item-tile:hover .saved-item-tile__btns{opacity:1;pointer-events:auto}.saved-item-tile__btn{padding:7px 10px;color:rgba(255,255,255,.3);border-radius:20px;margin-left:2px;background:rgba(255,255,255,.05);text-transform:uppercase}.saved-item-tile__btn:hover{background:rgba(255,255,255,.8);color:#555}.saved-item-tile__title{pointer-events:none;font-size:1.4em;margin:0 0 1em 0;opacity:.8}.saved-item-tile__meta{pointer-events:none;opacity:.3}.saved-items-pane__container{overflow-y:scroll;max-height:calc(100vh - 90px)}.notifications-btn{position:relative}@keyframes shake{2%,22%{transform:translate3d(-1px,0,0)}20%,5%{transform:translate3d(2px,0,0)}12%,17%,7%{transform:translate3d(-4px,0,0)}10%,15%{transform:translate3d(4px,0,0)}}.notifications-btn.has-new{animation:shake 7s linear infinite;transform-origin:50% 10px}.notifications-btn__dot{position:absolute;right:1;top:-2px;background:#31fe45;border-radius:50%;width:12px;height:12px;display:none}.has-new .notifications-btn__dot{display:block}.notification{border:1px solid #f1f1f1;border-radius:5px;padding:20px;background:#f8f6f9;position:relative}.notification:not(:last-child){margin-bottom:10px}.notification li:not(:last-child){margin-bottom:10px}.notification__version{background:#ff8c00;color:#fff;padding:3px;border-radius:5px;position:absolute;top:2px;left:2px}.loader,.loader:after{border-radius:50%;width:3em;height:3em}.loader{font-size:5px;position:relative;text-indent:-9999em;border-top:1.1em solid rgba(118,57,229,.2);border-right:1.1em solid rgba(118,57,229,.2);border-bottom:1.1em solid rgba(118,57,229,.2);border-left:1.1em solid #7639e5;transform:translateZ(0);animation:load8 1.1s infinite linear}@keyframes load8{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.btn-group{position:relative;cursor:pointer}.dropdown__menu{position:absolute;top:100%;left:0;padding:0;margin:0;min-width:200px;display:block;font-size:.88rem;list-style:none;border-radius:4px;overflow:hidden;opacity:0;visibility:hidden;transition:transform .25s ease;transform:translateY(10px);z-index:5;background:#fff}.dropdown__menu>li>a{display:block;padding:6px 15px;color:#333;cursor:pointer}.dropdown__menu>li.selected>a,.dropdown__menu>li>a:hover{background:var(--color-sidebar);color:#fff}.dropdown__menu>li:not(:last-child){border-bottom:1px solid rgba(0,0,0,.05)}.dropdown__menu.is-open,.open>.dropdown__menu{opacity:1;visibility:visible;transform:translateY(0)}.alerts-container{position:fixed;will-change:transform;left:50%;top:-5px;padding:10px;background:#fff;border:1px solid #eee;color:#333;box-shadow:0 3px 5px rgba(0,0,0,.2);font-size:1rem;border-radius:3px;z-index:6;transform:translateX(-50%) translateY(-100%);transition:.3s ease}.alerts-container.is-active{transform:translateX(-50%) translateY(0)}.error-gutter{width:8px}.gutter-error-marker{width:8px;height:20px;background:red;border-radius:0;position:relative;top:0;left:1px}.gutter-error-marker:after{content:attr(data-title);background:red;color:#fff;padding:4px;opacity:0;visibility:hidden;position:absolute;top:14px;left:0;width:300px;transform:translateX(-10px);will-change:transform;transition:.2s ease}.gutter-error-marker:hover:after{opacity:1;visibility:visible;transform:translateX(0)}.count-label{color:rgba(0,0,0,.8);background:rgba(255,255,255,.53);border-radius:5px;padding:1px 6px;font-weight:700}.onboard-step{background:#f7f2f1;border:1px solid #ecdede;margin:15px;padding:20px 30px;background-color:#fff;border-radius:10px;box-shadow:0 16px 22px rgba(0,0,0,.1);flex:1;opacity:0;animation:onboard-step-show .6s ease forwards;animation-delay:.1s}.onboard-step:nth-child(2){animation-delay:.2s}.onboard-step:nth-child(3){animation-delay:.4s}.onboard-step__icon{fill:transparent!important;stroke-width:.3px;stroke:#eeb096;width:150px;height:150px}@keyframes onboard-step-show{from{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.autocomplete-dropdown{border-top-left-radius:0;border-top-right-radius:0;right:0;max-height:200px;overflow-y:auto;border:1px solid rgba(0,0,0,.5);z-index:2001}.autocomplete__loader{position:absolute;right:3px;bottom:1px}@keyframes wobble{from{transform:none}15%{transform:translate3d(-25%,0,0) rotate3d(0,0,1,-5deg)}30%{transform:translate3d(20%,0,0) rotate3d(0,0,1,3deg)}45%{transform:translate3d(-15%,0,0) rotate3d(0,0,1,-3deg)}60%{transform:translate3d(10%,0,0) rotate3d(0,0,1,2deg)}75%{transform:translate3d(-5%,0,0) rotate3d(0,0,1,-1deg)}to{transform:none}}.animated{animation-duration:1s;animation-fill-mode:both}.wobble{animation-name:wobble}.console{background:var(--color-bg);z-index:6;position:absolute;bottom:0;min-height:80px;height:35vh;left:0;right:0;transform:translateY(0);transition:transform .4s cubic-bezier(.76,.01,.13,.9)}.console.is-minimized{transform:translateY(calc(100% - 29px))}.console .Codemirror{height:calc(100% - 55px)}.console-exec-input{padding:5px;font-size:1.3em;flex:1;background:rgba(0,0,0,.3);color:#fff;border:0;outline:0}.console:not(.is-minimized) .code-wrap__header{cursor:ns-resize}.global-console-container{display:none;position:relative;height:35px}.is-detached-mode .console,.is-detached-mode .footer{z-index:4}.is-detached-mode .global-console-container{display:block}.kbd-shortcut__keys{background:rgba(0,0,0,.1);border-radius:3px;padding:3px 8px;margin-right:5px;display:inline-block;font-size:.9rem;font-weight:700}.kbd-shortcut__details{display:inline-block}.web-maker-with-tag{position:relative;display:inline-block}.web-maker-with-tag:after{content:'BETA';position:relative;left:3px;top:-10px;border-radius:4px;background:#b76b29;color:#fff;letter-spacing:.6px;padding:2px;font-size:10px}.is-extension .web-maker-with-tag:after{display:none}.social-login-btn--github{background:#656b6f}.social-login-btn--facebook{background:#4e62c0}.social-login-btn--google{background:#fff;border:2px solid currentColor;color:inherit}body.is-logged-in .hide-on-login,body:not(.is-app) .show-when-app,body:not(.is-extension) .show-when-extension,body:not(.is-logged-in) .hide-on-logout{display:none}.cm-s-paraiso-dark.CodeMirror{background:#2f1e2e;color:#b9b6b0}.cm-s-paraiso-dark .CodeMirror-gutters{background:#2f1e2e;border-right:0}.cm-s-paraiso-dark .CodeMirror-activeline-background{background:#4d344a}.cm-s-monokai.CodeMirror{background:#272822;color:#f8f8f2}.cm-s-monokai .CodeMirror-gutters{background:#272822;border-right:0}.cm-s-monokai .CodeMirror-activeline-background{background:#373831}.cm-s-3024-day.CodeMirror{background:#f7f7f7;color:#3a3432}.cm-s-3024-day .CodeMirror-gutters{background:#f7f7f7;border-right:0}.cm-s-3024-day .CodeMirror-activeline-background{background:#e8f2ff}.cm-s-material.CodeMirror{background-color:#263238;color:rgba(233,237,237,1)}.cm-s-material .CodeMirror-gutters{background:#263238;color:#537f7e}.cm-s-material .CodeMirror-activeline-background{background:rgba(0,0,0,0)}.cm-s-dracula .CodeMirror-gutters,.cm-s-dracula.CodeMirror{background-color:#282a36!important;color:#f8f8f2!important}.cm-s-dracula .CodeMirror-activeline-background{background:rgba(255,255,255,.1)}.cm-s-blackboard.CodeMirror{background:#0c1021;color:#f8f8f8}.cm-s-blackboard .CodeMirror-gutters{background:#0c1021;border-right:0}.cm-s-blackboard .CodeMirror-activeline-background{background:#3c3636}.cm-s-midnight.CodeMirror{background:#0f192a;color:#d1edff}.cm-s-midnight .CodeMirror-gutters{background:#0f192a;border-right:1px solid}.cm-s-midnight .CodeMirror-activeline-background{background:#253540} \ No newline at end of file