UNPKG

@wiajs/ui

Version:

wia app ui packages

109 lines (108 loc) 4.11 kB
import { Utils, Constructors } from '@wiajs/core'; import Searchbar from './searchbar-class'; export default { name: 'searchbar', static: { Searchbar }, create () { const app = this; app.searchbar = Constructors({ defaultSelector: '.searchbar', constructor: Searchbar, app, domProp: 'f7Searchbar', addMethods: 'clear enable disable toggle search'.split(' ') }); }, on: { tabMounted (tabEl) { const app = this; $(tabEl).find('.searchbar-init').each((index, searchbarEl)=>{ const $searchbarEl = $(searchbarEl); app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); }); }, tabBeforeRemove (tabEl) { $(tabEl).find('.searchbar-init').each((index, searchbarEl)=>{ if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { searchbarEl.f7Searchbar.destroy(); } }); }, pageInit (page) { const app = this; page.$el.find('.searchbar-init').each((index, searchbarEl)=>{ const $searchbarEl = $(searchbarEl); app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); }); if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { page.$navbarEl.find('.searchbar-init').each((index, searchbarEl)=>{ const $searchbarEl = $(searchbarEl); app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); }); } }, pageBeforeRemove (page) { const app = this; page.$el.find('.searchbar-init').each((index, searchbarEl)=>{ if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { searchbarEl.f7Searchbar.destroy(); } }); if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { page.$navbarEl.find('.searchbar-init').each((index, searchbarEl)=>{ if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { searchbarEl.f7Searchbar.destroy(); } }); } } }, clicks: { '.searchbar-clear': function clear($clickedEl, data = {}) { const app = this; const sb = app.searchbar.get(data.searchbar); if (sb) sb.clear(); }, '.searchbar-enable': function enable($clickedEl, data = {}) { const app = this; const sb = app.searchbar.get(data.searchbar); if (sb) sb.enable(true); }, '.searchbar-disable': function disable($clickedEl, data = {}) { const app = this; const sb = app.searchbar.get(data.searchbar); if (sb) sb.disable(); }, '.searchbar-toggle': function toggle($clickedEl, data = {}) { const app = this; const sb = app.searchbar.get(data.searchbar); if (sb) sb.toggle(); } }, vnode: { 'searchbar-init': { insert (vnode) { const app = this; const searchbarEl = vnode.elm; const $searchbarEl = $(searchbarEl); app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); }, destroy (vnode) { const searchbarEl = vnode.elm; if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { searchbarEl.f7Searchbar.destroy(); } } } } };