Framework7 Navigate iside popup

by Maiki Nahara

HTML

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/framework7/5.4.5/css/framework7.bundle.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/framework7/5.4.5/js/framework7.bundle.js"></script>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no, minimal-ui, viewport-fit=cover">
  <meta name="apple-mobile-web-app-capable" content="yes">
  <meta name="theme-color" content="#2196f3">
  <title>My App</title>
</head>

<body>
  <div id="app">
    <div class="popup my-awesom-popup">

      <div class="view popup-panel-view">
        <div data-name="popup-home" class="page">
          <div class="page-content">
            <div class="list links-list">
              <ul>
                <li><a href="/popup-home/" data-view=".popup-page-view">Popup Home</a></li>
                <li><a href="/link2/" data-view=".popup-page-view">Link 2</a></li>
                <li><a href="/link3/" data-view=".popup-page-view">Link 3</a></li>
                <li><a href="#" data-popup=".my-awesom-popup" class="popup-close" >Close popup</a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>

      <div class="view popup-page-view">
      </div>
    </div>
    <div class="view view-main">
      <div data-name="home" class="page">
        <div class="page-content">
          <div class="block">
            <div class="row">
              <button class="col button button-outline open-popup-btn">Open popup</button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</body>

SCSS

.my-awesom-popup, .my-awesom-popup.popup.modal-in {
  display: flex;
}
.popup-panel-view {
  --f7-list-margin-vertical: 0;
  min-width: 30vw;
  max-width: 30vw;
  height: 100%;
}
.popup-page-view {
  --f7-list-margin-vertical: 0px;
  min-width: 70vw;
  max-width: 70vw;
  height: 100%;
}

JavaScript

var app = new Framework7({
  // App root element
  root: '#app',
  // App Name
  name: 'Pull To Refresh Demo',
  // App id
  id: 'com.myapp.test',
  // Enable swipe panel
  panel: {
    swipe: 'left',
  },
  theme: 'ios',
  // Add default routes
  routes: [{
    path: '/about/',
    url: 'about.html',
  }, ],
  // ... other parameters
});
var $$ = Dom7;
var mainView = app.views.create('.view-main');

var popupPanelView = app.views.get('.popup-panel-view')
var popupPageView = app.views.get('.popup-page-view')

if (!popupPanelView) {
  popupPanelView = app.views.create('.popup-panel-view', {}) 
}

if (!popupPageView) {
  popupPageView = app.views.create('.popup-page-view', {
  	url: '/popup-home/',
    routes: [
      {
        path: '/popup-home/',
        component: {
          template: `
<div data-name="popup-home" class="page">
  <div class="navbar">
    <div class="navbar-bg"></div>
    <div class="navbar-inner">
    	<div class="title">Home Popup Page</div>
    </div>
  </div>
<div class="page-content">


<div class="list media-list">
<ul>
<li>
<a href="#" class="item-link item-content">
<div class="item-media"><img src="https://cdn.framework7.io/placeholder/people-160x160-1.jpg" width="80"/></div>
<div class="item-inner">
<div class="item-title-row">
<div class="item-title">Yellow Submarine</div>
<div class="item-after">$15</div>
</div>
<div class="item-subtitle">Beatles</div>
<div class="item-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla sagittis tellus ut turpis condimentum, ut dignissim lacus tincidunt. Cras dolor metus, ultrices condimentum sodales sit amet, pharetra sodales eros. Phasellus vel felis tellus. Mauris rutrum ligula nec dapibus feugiat. In vel dui laoreet, commodo augue id, pulvinar lacus.</div>
</div></a></li>
<li>
<a href="#" class="item-link item-content">
<div class="item-media"><img src="https://cdn.framework7.io/placeholder/people-160x160-2.jpg" width="80"/></div>
<div class="item-inner">
<div...