Framework7 - Smart Custom Layout

by Maiki Nahara

HTML

<script src="https://unpkg.com/framework7/js/framework7.bundle.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/framework7/css/framework7.bundle.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/framework7-icons.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.0/js/all.min.js"></script>
<div id="app">
  <div class="panel panel-left panel-cover theme-dark">
    <div class="page"></div>
  </div>
  <div class="panel panel-right panel-reveal theme-dark">
    <div class="page"></div>
  </div>
  <div class="view view-main ios-edges">
    <div class="page" data-name="home">
      <div class="navbar">
        <div class="navbar-inner">
          <div class="left">
            <a href="#" class="link panel-open" data-panel="left">Left Panel</a>
          </div>
          <div class="title sliding">My App</div>
          <div class="right">
            <a href="#" class="link panel-open" data-panel="right">Right Panel</a>
          </div>
        </div>
      </div>
      <!-- Toolbar-->
      <div class="toolbar toolbar-bottom">
        <div class="toolbar-inner">
          <a href="#" class="link">Left Link</a>
          <a href="#" class="link">Right Link</a>
        </div>
      </div>
      <div class="page">
        <div class='page-content'>
          <div class="list inline-labels no-hairlines-md">
            <ul>
              <li>
                <a href="/ss-layout/" class="item-link item-content">
                  <div class="item-inner">Smartselect Layout</div>
                </a>
              </li>
            </ul>
          </div>
        </div>
      </div>
    </div>

CSS

.swiper-slide {
  height: 80px;
  width: 70%;
}

JavaScript

var $$ = Dom7
window.app = new Framework7({
  root: '#app',
  theme: 'ios',
  routes: [{
    path: '/ss-layout/',
    component: {
      template: `
<div class="page">
    <div class="navbar no-shadow">
      <div class="navbar-inner sliding">
        <div class="navbar-bg"></div>
        <div class="left">
          <a href="#" class="link back">
            <i class="icon icon-back"></i>
            <span class="if-not-md">Back</span>
          </a>
        </div>
        <div class="title navbar-calendar-title"></div>
      </div>
    </div>
    <div class="page-content">
			<div class="list">
        <ul>
          <li>
            <a class="item-link smart-select smart-select-init" data-open-in="popup"  data-searchbar="true" data-searchbar-placeholder="Search car">
              <select name="car" multiple>
                  {{#each ssItems}}
                    <optgroup label="{{name}}">
                      {{#each items}}
                        <option value={{this.id}} data-option-icon='{{this.icon}}'>{{this.name}}</option>
                      {{/each}}
                    </optgroup>
                  {{/each}}
              {{#each ssItems}}
              	
								{{/each}}
              </select>
              <div class="item-content">
                <div class="item-inner">
                  <div class="item-title">user</div>
                  {{#if selectedIcon}}
                  	<i class='{{selectedIcon}}'></i>
                  {{/if}}
                </div>
              </div>
            </a>
        		</li>
        	</ul>
				</div>
    	</div>

     <!-- End page -->
    </div>
  </div>
      `,
      data: function() {
      //<i class='{{selectedIcon}}'/>
        return {
        	ssLayout: null,
          selectedIcon: '',
          ssItems: [
          	{
            	name: 'Group 1',
              items: [
                {
                  "id": "5e38b5bc31a00d6df0ba83c1",
                  "name": "Pollard Brennan",
        ...