accessibleprimevue
Version:
Note: This is the forked version of the Primefaces/PrimeVue repository. Since V3 has reached its EOL this is use to fix identified accessibility bugs in the v3 version of primevue. PrimeVue is an open source UI library for Vue featuring a rich set of 80+
2 lines (1 loc) • 11.6 kB
JavaScript
this.primevue=this.primevue||{},this.primevue.toast=function(e,t,o,n,r,s,i,l,c,a,u,m){"use strict";function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var f=p(e),d=p(t),y=p(n),v=p(r),g=p(s),h=p(i),b=p(l),I=p(c),k=p(a),S={name:"BaseToast",extends:y.default,props:{group:{type:String,default:null},position:{type:String,default:"top-right"},autoZIndex:{type:Boolean,default:!0},baseZIndex:{type:Number,default:0},breakpoints:{type:Object,default:null},closeIcon:{type:String,default:void 0},infoIcon:{type:String,default:void 0},warnIcon:{type:String,default:void 0},errorIcon:{type:String,default:void 0},successIcon:{type:String,default:void 0},closeButtonProps:{type:null,default:null}},style:v.default,provide:function(){return{$parentInstance:this}}},C={name:"ToastMessage",hostName:"Toast",extends:y.default,emits:["close"],closeTimeout:null,props:{message:{type:null,default:null},templates:{type:Object,default:null},closeIcon:{type:String,default:null},infoIcon:{type:String,default:null},warnIcon:{type:String,default:null},errorIcon:{type:String,default:null},successIcon:{type:String,default:null},closeButtonProps:{type:null,default:null}},mounted:function(){var e=this;this.message.life&&(this.closeTimeout=setTimeout((function(){e.close({message:e.message,type:"life-end"})}),this.message.life))},beforeUnmount:function(){this.clearCloseTimeout()},methods:{close:function(e){this.$emit("close",e)},onCloseClick:function(){this.clearCloseTimeout(),this.close({message:this.message,type:"close"})},clearCloseTimeout:function(){this.closeTimeout&&(clearTimeout(this.closeTimeout),this.closeTimeout=null)}},computed:{iconComponent:function(){return{info:!this.infoIcon&&b.default,success:!this.successIcon&&g.default,warn:!this.warnIcon&&h.default,error:!this.errorIcon&&k.default}[this.message.severity]},closeAriaLabel:function(){return this.$primevue.config.locale.aria?this.$primevue.config.locale.aria.close:void 0}},components:{TimesIcon:I.default,InfoCircleIcon:b.default,CheckIcon:g.default,ExclamationTriangleIcon:h.default,TimesCircleIcon:k.default},directives:{ripple:p(u).default}};function P(e){return P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},P(e)}function O(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function j(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?O(Object(o),!0).forEach((function(t){x(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):O(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function x(e,t,o){var n;return(t="symbol"==P(n=B(t,"string"))?n:String(n))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function B(e,t){if("object"!=P(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=P(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var E=["aria-label"];function w(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function T(e,t){if(e){if("string"==typeof e)return $(e,t);var o=Object.prototype.toString.call(e).slice(8,-1);return"Object"===o&&e.constructor&&(o=e.constructor.name),"Map"===o||"Set"===o?Array.from(e):"Arguments"===o||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(o)?$(e,t):void 0}}function A(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function D(e){if(Array.isArray(e))return $(e)}function $(e,t){(null==t||t>e.length)&&(t=e.length);for(var o=0,n=new Array(t);o<t;o++)n[o]=e[o];return n}C.render=function(e,t,o,n,r,s){var i=m.resolveDirective("ripple");return m.openBlock(),m.createElementBlock("div",m.mergeProps({class:[e.cx("container"),o.message.styleClass],role:"alert","aria-live":"assertive","aria-atomic":"true"},e.ptm("container")),[o.templates.container?(m.openBlock(),m.createBlock(m.resolveDynamicComponent(o.templates.container),{key:0,message:o.message,onClose:s.onCloseClick,closeCallback:s.onCloseClick},null,40,["message","onClose","closeCallback"])):(m.openBlock(),m.createElementBlock("div",m.mergeProps({key:1,class:[e.cx("content"),o.message.contentStyleClass]},e.ptm("content")),[o.templates.message?(m.openBlock(),m.createBlock(m.resolveDynamicComponent(o.templates.message),{key:1,message:o.message},null,8,["message"])):(m.openBlock(),m.createElementBlock(m.Fragment,{key:0},[(m.openBlock(),m.createBlock(m.resolveDynamicComponent(o.templates.icon?o.templates.icon:s.iconComponent&&s.iconComponent.name?s.iconComponent:"span"),m.mergeProps({class:e.cx("icon")},e.ptm("icon")),null,16,["class"])),m.createElementVNode("div",m.mergeProps({class:e.cx("text")},e.ptm("text")),[m.createElementVNode("span",m.mergeProps({class:e.cx("summary")},e.ptm("summary")),m.toDisplayString(o.message.summary),17),m.createElementVNode("div",m.mergeProps({class:e.cx("detail")},e.ptm("detail")),m.toDisplayString(o.message.detail),17)],16)],64)),!1!==o.message.closable?(m.openBlock(),m.createElementBlock("div",m.normalizeProps(m.mergeProps({key:2},e.ptm("buttonContainer"))),[m.withDirectives((m.openBlock(),m.createElementBlock("button",m.mergeProps({class:e.cx("closeButton"),type:"button","aria-label":s.closeAriaLabel,onClick:t[0]||(t[0]=function(){return s.onCloseClick&&s.onCloseClick.apply(s,arguments)}),autofocus:""},j(j(j({},o.closeButtonProps),e.ptm("button")),e.ptm("closeButton"))),[(m.openBlock(),m.createBlock(m.resolveDynamicComponent(o.templates.closeicon||"TimesIcon"),m.mergeProps({class:[e.cx("closeIcon"),o.closeIcon]},j(j({},e.ptm("buttonIcon")),e.ptm("closeIcon"))),null,16,["class"]))],16,E)),[[i]])],16)):m.createCommentVNode("",!0)],16))],16)};var N=0,R={name:"Toast",extends:S,inheritAttrs:!1,emits:["close","life-end"],data:function(){return{messages:[]}},styleElement:null,mounted:function(){d.default.on("add",this.onAdd),d.default.on("remove",this.onRemove),d.default.on("remove-group",this.onRemoveGroup),d.default.on("remove-all-groups",this.onRemoveAllGroups),this.breakpoints&&this.createStyle()},beforeUnmount:function(){this.destroyStyle(),this.$refs.container&&this.autoZIndex&&o.ZIndexUtils.clear(this.$refs.container),d.default.off("add",this.onAdd),d.default.off("remove",this.onRemove),d.default.off("remove-group",this.onRemoveGroup),d.default.off("remove-all-groups",this.onRemoveAllGroups)},methods:{add:function(e){var t;if(!0===e.preventDuplicate&&-1!==this.messages.findIndex((function(t){return t.summary===e.summary&&t.detail===e.detail})))return;null==e.id&&(e.id=N++),this.messages=[].concat(D(t=this.messages)||A(t)||T(t)||w(),[e])},remove:function(e){var t=this.messages.findIndex((function(t){var o;return t.id===(null===(o=e.message)||void 0===o?void 0:o.id)}));-1==t&&(t=this.messages.findIndex((function(t){return t.summary===e.message.summary&&t.detail===e.message.detail}))),-1!==t&&(this.messages.splice(t,1),this.$emit(e.type,{message:e.message}))},onAdd:function(e){this.group==e.group&&this.add(e)},onRemove:function(e){this.remove({message:e,type:"close"})},onRemoveGroup:function(e){this.group===e&&(this.messages=[])},onRemoveAllGroups:function(){this.messages=[]},onEnter:function(){this.$refs.container.setAttribute(this.attributeSelector,""),this.autoZIndex&&o.ZIndexUtils.set("modal",this.$refs.container,this.baseZIndex||this.$primevue.config.zIndex.modal)},onLeave:function(){var e=this;this.$refs.container&&this.autoZIndex&&o.ObjectUtils.isEmpty(this.messages)&&setTimeout((function(){o.ZIndexUtils.clear(e.$refs.container)}),200)},createStyle:function(){if(!this.styleElement&&!this.isUnstyled){var e;this.styleElement=document.createElement("style"),this.styleElement.type="text/css",o.DomHandler.setAttribute(this.styleElement,"nonce",null===(e=this.$primevue)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.csp)||void 0===e?void 0:e.nonce),document.head.appendChild(this.styleElement);var t="";for(var n in this.breakpoints){var r="";for(var s in this.breakpoints[n])r+=s+":"+this.breakpoints[n][s]+"!important;";t+="\n @media screen and (max-width: ".concat(n,") {\n .p-toast[").concat(this.attributeSelector,"] {\n ").concat(r,"\n }\n }\n ")}this.styleElement.innerHTML=t}},destroyStyle:function(){this.styleElement&&(document.head.removeChild(this.styleElement),this.styleElement=null)}},computed:{attributeSelector:function(){return o.UniqueComponentId()}},components:{ToastMessage:C,Portal:f.default}};function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function Z(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function L(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};t%2?Z(Object(o),!0).forEach((function(t){G(e,t,o[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):Z(Object(o)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}))}return e}function G(e,t,o){var n;return(t="symbol"==U(n=V(t,"string"))?n:String(n))in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function V(e,t){if("object"!=U(e)||!e)return e;var o=e[Symbol.toPrimitive];if(void 0!==o){var n=o.call(e,t||"default");if("object"!=U(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}return R.render=function(e,t,o,n,r,s){var i=m.resolveComponent("ToastMessage"),l=m.resolveComponent("Portal");return m.openBlock(),m.createBlock(l,null,{default:m.withCtx((function(){return[m.createElementVNode("div",m.mergeProps({ref:"container",class:e.cx("root"),style:e.sx("root",!0,{position:e.position})},e.ptmi("root")),[m.createVNode(m.TransitionGroup,m.mergeProps({name:"p-toast-message",tag:"div",onEnter:s.onEnter,onLeave:s.onLeave},L(L({},e.ptm("message")),e.ptm("transition"))),{default:m.withCtx((function(){return[(m.openBlock(!0),m.createElementBlock(m.Fragment,null,m.renderList(r.messages,(function(o){return m.openBlock(),m.createBlock(i,{key:o.id,message:o,templates:e.$slots,closeIcon:e.closeIcon,infoIcon:e.infoIcon,warnIcon:e.warnIcon,errorIcon:e.errorIcon,successIcon:e.successIcon,closeButtonProps:e.closeButtonProps,onClose:t[0]||(t[0]=function(e){return s.remove(e)}),pt:e.pt},null,8,["message","templates","closeIcon","infoIcon","warnIcon","errorIcon","successIcon","closeButtonProps","pt"])})),128))]})),_:1},16,["onEnter","onLeave"])],16)]})),_:1})},R}(primevue.portal,primevue.toasteventbus,primevue.utils,primevue.basecomponent,primevue.toast.style,primevue.icons.check,primevue.icons.exclamationtriangle,primevue.icons.infocircle,primevue.icons.times,primevue.icons.timescircle,primevue.ripple,Vue);