vuex-toast
Version:
Simple toast notification using Vuex
10 lines • 2.85 kB
JavaScript
/*!
* vuex-toast v0.1.3
* https://github.com/ktsn/vuex-toast
*
* @license
* Copyright (c) 2016 katashin
* Released under the MIT license
* https://github.com/ktsn/vuex-toast/blob/master/LICENSE
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(t.VuexToast={})}(this,function(t){"use strict";function e(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}var s="@@toast/",n=s+"ADD_TOAST_MESSAGE",i=s+"REMOVE_TOAST_MESSAGE";var o={render:function(){var t=this,e=t.$createElement,s=t._self._c||e;return s("div",{staticClass:"toast",class:t.positionClass},[s("toast-transition",t._l(t.messages,function(e){return s("div",{key:e.id,staticClass:"toast-message",class:t.messageTypeClass(e),attrs:{role:"note"}},[t.html?s("div",{staticClass:"toast-message-text",domProps:{innerHTML:t._s(e.text)}}):s("div",{staticClass:"toast-message-text"},[t._v(t._s(e.text))]),t._v(" "),s("button",{staticClass:"toast-button",attrs:{"aria-label":"Close",type:"button"},on:{click:function(s){t.close(e.id)}}})])}))],1)},staticRenderFns:[],props:{position:{validator:function(t){return/^(:?n|s|nw|ne|sw|se)$/.test(t)},default:"ne"},namespace:{type:String,default:""},html:Boolean},computed:{messages:function(){return this.$store.getters[this.normalizedNamespace+"toastMessages"]},positionClass:function(){return"toast-position-"+this.position},normalizedNamespace:function(){return""===this.namespace?"":/\/$/.test(this.namespace)?this.namespace:this.namespace+"/"}},methods:{close:function(t){this.$store.dispatch(this.normalizedNamespace+i,t)},messageTypeClass:function(t){return"toast-type-"+t.type}},components:{ToastTransition:{functional:!0,render:function(t,e){return t("transition-group",{attrs:{tag:"div",name:"toast",type:"transition"}},e.children)}}}};t.createComponent=function(){var t,e,s,n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).transition;return t=o,e={components:{toastTransition:n}},s={},Object.keys(t).forEach(function(n){s[n]=void 0===e[n]?t[n]:e[n]}),s},t.Toast=o,t.ADD_TOAST_MESSAGE=n,t.REMOVE_TOAST_MESSAGE=i,t.createModule=function(){var t,s,o=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).dismissInterval,a=void 0===o?5e3:o,r=0;return{state:{messages:[]},getters:{toastMessages:function(t){return t.messages}},actions:(e(t={},n,function(t,e){var s=t.commit,o=e.text,c=e.type,u=void 0===c?"info":c,m=e.dismissAfter,l=void 0===m?a:m,d=++r;s(n,{id:d,text:o,type:u,dismissAfter:l}),setTimeout(function(){return s(i,d)},l)}),e(t,i,function(t,e){(0,t.commit)(i,e)}),t),mutations:(e(s={},n,function(t,e){t.messages.push(e)}),e(s,i,function(t,e){t.messages=t.messages.filter(function(t){return t.id!==e})}),s)}},Object.defineProperty(t,"__esModule",{value:!0})});