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",
...