UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

2 lines (1 loc) 2.17 kB
(function framework7ComponentLoader(t,o){void 0===o&&(o=!0);var s=t.$,e=t.utils,n=(t.getDevice,t.getSupport,t.Class,t.Modal),a=(t.ConstructorMethods,t.ModalMethods),l=t.$jsx,c=e.extend,r=e.nextTick;class i extends n{constructor(t,o){const e=c({on:{}},t.params.toast,o);super(t,e);const n=this;n.app=t,n.params=e;const{closeButton:a,closeTimeout:l}=n.params;let i,u;if(n.params.el)i=s(n.params.el);else{const t=n.render();i=s(t)}return i&&i.length>0&&i[0].f7Modal?i[0].f7Modal:0===i.length?n.destroy():(c(n,{$el:i,el:i[0],type:"toast"}),i[0].f7Modal=n,a&&(i.find(".toast-button").on("click",(()=>{n.emit("local::closeButtonClick toastCloseButtonClick",n),n.close()})),n.on("beforeDestroy",(()=>{i.find(".toast-button").off("click")}))),n.on("open",(()=>{s(".toast.modal-in").each((o=>{const s=t.toast.get(o);o!==n.el&&s&&s.close()})),l&&(u=r((()=>{n.close()}),l))})),n.on("close",(()=>{window.clearTimeout(u)})),n.params.destroyOnClose&&n.once("closed",(()=>{setTimeout((()=>{n.destroy()}),0)})),n)}render(){const t=this;if(t.params.render)return t.params.render.call(t,t);const{position:o,horizontalPosition:s,cssClass:e,icon:n,text:a,closeButton:c,closeButtonColor:r,closeButtonText:i}=t.params;return l("div",{class:`toast toast-${o} ${"top"===o||"bottom"===o?`toast-horizontal-${s}`:""} ${e||""} ${n?"toast-with-icon":""}`},l("div",{class:"toast-content"},n&&l("div",{class:"toast-icon"},n),l("div",{class:"toast-text"},a),c&&!n&&l("a",{class:"toast-button button "+(r?`color-${r}`:"")},i)))}}var u={name:"toast",static:{Toast:i},create(){const t=this;t.toast=c({},a({app:t,constructor:i,defaultSelector:".toast.modal-in"}),{show:o=>(c(o,{destroyOnClose:!0}),new i(t,o).open())})},params:{toast:{icon:null,text:null,position:"bottom",horizontalPosition:"left",closeButton:!1,closeButtonColor:null,closeButtonText:"Ok",closeTimeout:null,cssClass:null,render:null,containerEl:null}}};if(o){if(t.prototype.modules&&t.prototype.modules[u.name])return;t.use(u),t.instance&&(t.instance.useModuleParams(u,t.instance.params),t.instance.useModule(u))}return u}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))