primevue
Version:
PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBloc
2 lines (1 loc) • 2.91 kB
JavaScript
this.primevue=this.primevue||{},this.primevue.dynamicdialog=function(e,n,t,o,i,r){"use strict";function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=s(e),a=s(n),c={name:"DynamicDialog",extends:{name:"BaseDynamicDialog",extends:s(o).default,props:{},style:s(i).default,provide:function(){return{$parentInstance:this}}},inheritAttrs:!1,data:function(){return{instanceMap:{}}},openListener:null,closeListener:null,currentInstance:null,mounted:function(){var e=this;this.openListener=function(n){var o=n.instance,i=t.UniqueComponentId()+"_dynamic_dialog";o.visible=!0,o.key=i,e.instanceMap[i]=o},this.closeListener=function(n){var t=n.params,o=e.instanceMap[n.instance.key];o&&(o.visible=!1,o.options.onClose&&o.options.onClose({data:t,type:"config-close"}),e.currentInstance=o)},a.default.on("open",this.openListener),a.default.on("close",this.closeListener)},beforeUnmount:function(){a.default.off("open",this.openListener),a.default.off("close",this.closeListener)},methods:{onDialogHide:function(e){!this.currentInstance&&e.options.onClose&&e.options.onClose({type:"dialog-close"})},onDialogAfterHide:function(){this.currentInstance&&delete this.currentInstance,this.currentInstance=null},getTemplateItems:function(e){return Array.isArray(e)?e:[e]}},components:{DDialog:l.default}};return c.render=function(e,n,t,o,i,s){var l=r.resolveComponent("DDialog");return r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(i.instanceMap,(function(n,t){return r.openBlock(),r.createBlock(l,r.mergeProps({key:t,visible:n.visible,"onUpdate:visible":function(e){return n.visible=e},_instance:n},n.options.props,{pt:e.pt,unstyled:e.unstyled,onHide:function(e){return s.onDialogHide(n)},onAfterHide:s.onDialogAfterHide}),r.createSlots({default:r.withCtx((function(){return[(r.openBlock(),r.createBlock(r.resolveDynamicComponent(n.content),r.normalizeProps(r.guardReactiveProps(n.options.emits)),null,16))]})),_:2},[n.options.templates&&n.options.templates.header?{name:"header",fn:r.withCtx((function(){return[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(s.getTemplateItems(n.options.templates.header),(function(e,t){return r.openBlock(),r.createBlock(r.resolveDynamicComponent(e),r.mergeProps({key:t+"_header"},n.options.emits),null,16)})),128))]})),key:"0"}:void 0,n.options.templates&&n.options.templates.footer?{name:"footer",fn:r.withCtx((function(){return[(r.openBlock(!0),r.createElementBlock(r.Fragment,null,r.renderList(s.getTemplateItems(n.options.templates.footer),(function(e,t){return r.openBlock(),r.createBlock(r.resolveDynamicComponent(e),r.mergeProps({key:t+"_footer"},n.options.emits),null,16)})),128))]})),key:"1"}:void 0]),1040,["visible","onUpdate:visible","_instance","pt","unstyled","onHide","onAfterHide"])})),128)},c}(primevue.dialog,primevue.dynamicdialogeventbus,primevue.utils,primevue.basecomponent,primevue.dynamicdialog.style,Vue);