UNPKG

framework7

Version:

Full featured mobile HTML framework for building iOS & Android apps

2 lines (1 loc) 8.52 kB
(function framework7ComponentLoader(e,t){void 0===t&&(t=!0);var a=e.$,s=e.utils,r=(e.getDevice,e.getSupport,e.Class),n=(e.Modal,e.ConstructorMethods),i=(e.ModalMethods,s.extend),o=s.deleteProps;function c(e){this.wrapped=e}function l(e){var t,a;function s(t,a){try{var n=e[t](a),i=n.value,o=i instanceof c;Promise.resolve(o?i.wrapped:i).then((function(e){o?s("return"===t?"return":"next",e):r(n.done?"return":"normal",e)}),(function(e){s("throw",e)}))}catch(e){r("throw",e)}}function r(e,r){switch(e){case"return":t.resolve({value:r,done:!0});break;case"throw":t.reject(r);break;default:t.resolve({value:r,done:!1})}(t=t.next)?s(t.key,t.arg):a=null}this._invoke=function(e,r){return new Promise((function(n,i){var o={key:e,arg:r,resolve:n,reject:i,next:null};a?a=a.next=o:(t=a=o,s(e,r))}))},"function"!=typeof e.return&&(this.return=void 0)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function m(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}l.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},l.prototype.next=function(e){return this._invoke("next",e)},l.prototype.throw=function(e){return this._invoke("throw",e)},l.prototype.return=function(e){return this._invoke("return",e)};var u=function(e){var t,s;function r(t,s){var r;void 0===s&&(s={});var n=m(r=e.call(this,s,[t])||this),o={top:!1,topOffset:0,bottomOffset:0,attachments:[],renderAttachments:void 0,renderAttachment:void 0,maxHeight:null,resizePage:!0};n.useModulesParams(o),n.params=i(o,s);var c=a(n.params.el);if(0===c.length)return n||m(r);if(c[0].f7Messagebar)return c[0].f7Messagebar||m(r);c[0].f7Messagebar=n;var l,h=c.parents(".page").eq(0),u=h.find(".page-content").eq(0),g=c.find(".messagebar-area");l=n.params.textareaEl?a(n.params.textareaEl):c.find("textarea");var f=c.find(".messagebar-attachments"),d=c.find(".messagebar-sheet");function b(){n.params.resizePage&&n.resizePage()}function p(e){e.preventDefault()}function v(e){var t=a(this).index();a(e.target).closest(".messagebar-attachment-delete").length?(a(this).trigger("messagebar:attachmentdelete",t),n.emit("local::attachmentDelete messagebarAttachmentDelete",n,this,t)):(a(this).trigger("messagebar:attachmentclick",t),n.emit("local::attachmentClick messagebarAttachmentClick",n,this,t))}function $(){n.checkEmptyState(),n.$el.trigger("messagebar:change"),n.emit("local::change messagebarChange",n)}function E(){n.sheetHide(),n.$el.addClass("messagebar-focused"),n.$el.trigger("messagebar:focus"),n.emit("local::focus messagebarFocus",n)}function y(){n.$el.removeClass("messagebar-focused"),n.$el.trigger("messagebar:blur"),n.emit("local::blur messagebarBlur",n)}return n.params.top&&c.addClass("messagebar-top"),i(n,{$el:c,el:c[0],$areaEl:g,areaEl:g[0],$textareaEl:l,textareaEl:l[0],$attachmentsEl:f,attachmentsEl:f[0],attachmentsVisible:f.hasClass("messagebar-attachments-visible"),$sheetEl:d,sheetEl:d[0],sheetVisible:d.hasClass("messagebar-sheet-visible"),$pageEl:h,pageEl:h[0],$pageContentEl:u,pageContentEl:u,top:c.hasClass("messagebar-top")||n.params.top,attachments:[]}),n.attachEvents=function(){c.on("textarea:resize",b),c.on("submit",p),c.on("click",".messagebar-attachment",v),l.on("change input",$),l.on("focus",E),l.on("blur",y),t.on("resize",b)},n.detachEvents=function(){c.off("textarea:resize",b),c.off("submit",p),c.off("click",".messagebar-attachment",v),l.off("change input",$),l.off("focus",E),l.off("blur",y),t.off("resize",b)},n.useModules(),n.init(),n||m(r)}s=e,(t=r).prototype=Object.create(s.prototype),t.prototype.constructor=t,h(t,s);var n=r.prototype;return n.focus=function(){return this.$textareaEl.focus(),this},n.blur=function(){return this.$textareaEl.blur(),this},n.clear=function(){return this.$textareaEl.val("").trigger("change"),this},n.getValue=function(){return this.$textareaEl.val().trim()},n.setValue=function(e){return this.$textareaEl.val(e).trigger("change"),this},n.setPlaceholder=function(e){return this.$textareaEl.attr("placeholder",e),this},n.resizePage=function(){var e=this,t=e.params,a=e.$el,s=e.top,r=e.$pageEl,n=e.$pageContentEl,i=e.$areaEl,o=e.$textareaEl,c=e.$sheetEl,l=e.$attachmentsEl,h=a[0].offsetHeight,m=t.maxHeight;if(s);else{var u=parseInt(n.css("padding-bottom"),10),g=h+t.bottomOffset;if(g!==u&&n.length){var f=parseInt(n.css("padding-top"),10),d=n[0].scrollHeight,b=n[0].offsetHeight,p=n[0].scrollTop===d-b;m||(m=r[0].offsetHeight-f-c.outerHeight()-l.outerHeight()-parseInt(i.css("margin-top"),10)-parseInt(i.css("margin-bottom"),10)),o.css("max-height",m+"px"),n.css("padding-bottom",g+"px"),p&&n.scrollTop(n[0].scrollHeight-b),a.trigger("messagebar:resizepage"),e.emit("local::resizePage messagebarResizePage",e)}}},n.checkEmptyState=function(){var e=this.$el,t=this.$textareaEl.val().trim();t&&t.length?e.addClass("messagebar-with-value"):e.removeClass("messagebar-with-value")},n.attachmentsCreate=function(e){void 0===e&&(e="");var t=this,s=a('<div class="messagebar-attachments">'+e+"</div>");return s.insertBefore(t.$textareaEl),i(t,{$attachmentsEl:s,attachmentsEl:s[0]}),t},n.attachmentsShow=function(e){void 0===e&&(e="");var t=this;return t.$attachmentsEl=t.$el.find(".messagebar-attachments"),0===t.$attachmentsEl.length&&t.attachmentsCreate(e),t.$el.addClass("messagebar-attachments-visible"),t.attachmentsVisible=!0,t.params.resizePage&&t.resizePage(),t},n.attachmentsHide=function(){var e=this;return e.$el.removeClass("messagebar-attachments-visible"),e.attachmentsVisible=!1,e.params.resizePage&&e.resizePage(),e},n.attachmentsToggle=function(){var e=this;return e.attachmentsVisible?e.attachmentsHide():e.attachmentsShow(),e},n.renderAttachment=function(e){var t=this;return t.params.renderAttachment?t.params.renderAttachment.call(t,e):'\n <div class="messagebar-attachment">\n <img src="'+e+'">\n <span class="messagebar-attachment-delete"></span>\n </div>\n '},n.renderAttachments=function(){var e,t=this;e=t.params.renderAttachments?t.params.renderAttachments.call(t,t.attachments):""+t.attachments.map((function(e){return t.renderAttachment(e)})).join(""),0===t.$attachmentsEl.length?t.attachmentsCreate(e):t.$attachmentsEl.html(e)},n.sheetCreate=function(e){void 0===e&&(e="");var t=this,s=a('<div class="messagebar-sheet">'+e+"</div>");return t.$el.append(s),i(t,{$sheetEl:s,sheetEl:s[0]}),t},n.sheetShow=function(e){void 0===e&&(e="");var t=this;return t.$sheetEl=t.$el.find(".messagebar-sheet"),0===t.$sheetEl.length&&t.sheetCreate(e),t.$el.addClass("messagebar-sheet-visible"),t.sheetVisible=!0,t.params.resizePage&&t.resizePage(),t},n.sheetHide=function(){var e=this;return e.$el.removeClass("messagebar-sheet-visible"),e.sheetVisible=!1,e.params.resizePage&&e.resizePage(),e},n.sheetToggle=function(){var e=this;return e.sheetVisible?e.sheetHide():e.sheetShow(),e},n.init=function(){var e=this;return e.attachEvents(),e.checkEmptyState(),e},n.destroy=function(){var e=this;e.emit("local::beforeDestroy messagebarBeforeDestroy",e),e.$el.trigger("messagebar:beforedestroy"),e.detachEvents(),e.$el[0]&&(e.$el[0].f7Messagebar=null,delete e.$el[0].f7Messagebar),o(e)},r}(r),g={name:"messagebar",static:{Messagebar:u},create:function(){this.messagebar=n({defaultSelector:".messagebar",constructor:u,app:this,domProp:"f7Messagebar",addMethods:"clear getValue setValue setPlaceholder resizePage focus blur attachmentsCreate attachmentsShow attachmentsHide attachmentsToggle renderAttachments sheetCreate sheetShow sheetHide sheetToggle".split(" ")})},on:{tabBeforeRemove:function(e){var t=this;a(e).find(".messagebar-init").each((function(e){t.messagebar.destroy(e)}))},tabMounted:function(e){var t=this;a(e).find(".messagebar-init").each((function(e){t.messagebar.create(i({el:e},a(e).dataset()))}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".messagebar-init").each((function(e){t.messagebar.destroy(e)}))},pageInit:function(e){var t=this;e.$el.find(".messagebar-init").each((function(e){t.messagebar.create(i({el:e},a(e).dataset()))}))}},vnode:{"messagebar-init":{insert:function(e){var t=e.elm;this.messagebar.create(i({el:t},a(t).dataset()))},destroy:function(e){var t=e.elm;this.messagebar.destroy(t)}}}};if(t){if(e.prototype.modules&&e.prototype.modules[g.name])return;e.use(g),e.instance&&(e.instance.useModuleParams(g,e.instance.params),e.instance.useModule(g))}return g}(Framework7, typeof Framework7AutoInstallComponent === 'undefined' ? undefined : Framework7AutoInstallComponent))