;'use strict';(function(exports){const PAGES_ICON_SIZE=30;function Pages(){this.panel=document.getElementById('pages-panel');this.panels=document.getElementById('panels');this.pages=document.getElementById('pages');this.scrollable=document.querySelector('#pages-panel > .scrollable');this.bottombar=document.getElementById('bottombar');this.remove=document.getElementById('remove');this.done=document.getElementById('done');this.empty=true;this.editMode=false;this.dialogs=[];this.pages.addEventListener('click',this);this.pages.addEventListener('contextmenu',this);this.pages.addEventListener('keydown',this);window.addEventListener('resize',this);this.done.addEventListener('click',e=>{e.preventDefault();this.exitEditMode();});this.remove.addEventListener('click',e=>{e.preventDefault();this.unpinSelectedCard();});this.pagesStore=new PagesStore('places');this.pagesStore.init().then(()=>{document.addEventListener('places-set',(e)=>{var id=e.detail.id;this.pagesStore.get(id).then((page)=>{for(var child of this.pages.children){if(child.dataset.id===id){if(!page.data.pinned){this.removeCard(child);}else{this.updatePinnedPage(child,page.data);} return;}} if(!page.data.pinned){return;} this.addPinnedPage(page.data);});});document.addEventListener('places-removed',(e)=>{var id=e.detail.id;for(var child of this.pages.children){if(child.dataset.id===id){this.removeCard(child);return;}}});document.addEventListener('places-cleared',()=>{this.exitEditMode();for(var child of this.pages.children){this.pages.removeChild(child);} if(!this.empty){this.empty=true;this.panel.classList.add('empty');}});},(e)=>{console.error('Error initialising pinned pages',e);}).then(()=>{return this.pagesStore.getAll().then((pages)=>{for(var page of pages){this.addPinnedPage(page.data);} if(this.empty){this.panel.classList.add('empty');}},(e)=>{console.error('Error getting pinned pages',e);});});} Pages.prototype={updatePinnedPage:function(card,page){card.title=page.title;card.dataset.id=page.url;card.style.order=-Math.round(page.pinTime/1000);page.meta=page.meta||{};if(page.screenshot){page.meta.screenshot=page.screenshot;} setTimeout(function(card,page){card.meta=page.meta;IconsHelper.getIconBlob(page.url,PAGES_ICON_SIZE,page).then((iconObj)=>{if(iconObj.blob){var iconURL=URL.createObjectURL(iconObj.blob);card.icon=`url(${iconURL})`;}}).catch((e)=>{console.error('Failed to fetch icon',e);});}.bind(this,card,page));},addPinnedPage:function(page){var pinCard=document.createElement('gaia-pin-card');pinCard.tabIndex=0;pinCard.setAttribute('role','link');this.updatePinnedPage(pinCard,page);this.pages.appendChild(pinCard);if(this.empty){this.empty=false;this.panel.classList.remove('empty');}},launchCard:function(card){var features={name:card.title,icon:card.icon,remote:true};window.open(card.dataset.id,'_blank',Object.keys(features).map(key=>encodeURIComponent(key)+'='+encodeURIComponent(features[key])).join(','));},enterEditMode:function(card){if(this.selectedCard){this.selectedCard.classList.remove('selected');} if(card){this.selectedCard=card;card.classList.add('selected');} this.editMode=true;document.body.classList.add('edit-mode');this.remove.classList.add('active');},exitEditMode:function(){if(!this.editMode){return;} this.editMode=false;document.body.classList.remove('edit-mode');this.remove.classList.remove('active');if(this.selectedCard){this.selectedCard.classList.remove('selected');this.selectedCard=null;}},removeCard:function(card){if(this.selectedCard===card){this.selectedCard=null;} this.pages.removeChild(card,()=>{if(!this.empty&&this.pages.children.length===0){this.exitEditMode();this.empty=true;this.panel.classList.add('empty');}});},unpinSelectedCard:function(){if(!this.selectedCard){return;} var id=this.selectedCard.dataset.id;this.removeCard(this.selectedCard);this.pagesStore.get(id).then(entry=>{entry.data.pinned=false;this.pagesStore.datastore.put(entry.data,id).then(()=>{},e=>{console.error('Error unpinning page:',e);});},e=>{console.error('Error retrieving page to unpin:',e);});},handleEvent:function(e){switch(e.type){case'click':if(e.target.nodeName!=='GAIA-PIN-CARD'){break;} if(this.editMode){this.enterEditMode(e.target);}else{this.launchCard(e.target);} break;case'contextmenu':if(e.target.nodeName!=='GAIA-PIN-CARD'){break;} this.enterEditMode(e.target);break;case'keydown':if(e.target.nodeName!=='GAIA-PIN-CARD'){break;} switch(e.keyCode){case 32:case 13:this.launchCard(e.target);} break;case'resize':this.pages.synchronise();break;}}};exports.Pages=Pages;}(window));