@5minds/node-red-dashboard-2-processcube-dynamic-form
Advanced tools
Comparing version 1.0.22-feature-440ff6-m03wbcq3 to 1.0.22
module.exports = function (RED) { | ||
function UIDynamicFormNode(config) { | ||
RED.nodes.createNode(this, config); | ||
function UIDynamicFormNode(config) { | ||
RED.nodes.createNode(this, config); | ||
const node = this; | ||
const node = this; | ||
// which group are we rendering this widget | ||
const group = RED.nodes.getNode(config.group); | ||
// which group are we rendering this widget | ||
const group = RED.nodes.getNode(config.group); | ||
const base = group.getBase(); | ||
const base = group.getBase(); | ||
// server-side event handlers | ||
const evts = { | ||
onAction: true, | ||
onInput: function (msg, send, done) { | ||
// store the latest value in our Node-RED datastore | ||
base.stores.data.save(base, node, msg); | ||
}, | ||
onSocket: { | ||
"my-custom-event": function (conn, id, msg) { | ||
console.info('"my-custom-event" received:', conn.id, id, msg); | ||
console.info("conn.id:", conn.id); | ||
console.info("id:", id); | ||
console.info("msg:", msg); | ||
console.info("node.id:", node.id); | ||
// emit a msg in Node-RED from this node | ||
node.send(msg); | ||
}, | ||
}, | ||
}; | ||
// server-side event handlers | ||
const evts = { | ||
onAction: true, | ||
onInput: function (msg, send, done) { | ||
// store the latest value in our Node-RED datastore | ||
base.stores.data.save(base, node, msg); | ||
}, | ||
onSocket: { | ||
'my-custom-event': function (conn, id, msg) { | ||
console.info('"my-custom-event" received:', conn.id, id, msg); | ||
console.info('conn.id:', conn.id); | ||
console.info('id:', id); | ||
console.info('msg:', msg); | ||
console.info('node.id:', node.id); | ||
// emit a msg in Node-RED from this node | ||
node.send(msg); | ||
}, | ||
}, | ||
}; | ||
// inform the dashboard UI that we are adding this node | ||
if (group) { | ||
group.register(node, config, evts); | ||
} else { | ||
node.error("No group configured"); | ||
// inform the dashboard UI that we are adding this node | ||
if (group) { | ||
group.register(node, config, evts); | ||
} else { | ||
node.error('No group configured'); | ||
} | ||
} | ||
} | ||
RED.nodes.registerType("ui-dynamic-form", UIDynamicFormNode, { | ||
defaults: { | ||
outputs: { value: 1 }, | ||
}, | ||
outputs: function (config) { | ||
return config.outputs || 1; | ||
}, | ||
}); | ||
RED.nodes.registerType('ui-dynamic-form', UIDynamicFormNode, { | ||
defaults: { | ||
outputs: { value: 1 }, | ||
}, | ||
outputs: function (config) { | ||
return config.outputs || 1; | ||
}, | ||
}); | ||
}; |
{ | ||
"name": "@5minds/node-red-dashboard-2-processcube-dynamic-form", | ||
"version": "1.0.22-feature-440ff6-m03wbcq3", | ||
"version": "1.0.22", | ||
"description": "The ui component for the ProcessCube dynamic-form", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
@@ -1,2 +0,2 @@ | ||
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dynamic-form-wrapper[data-v-2821d23f]{padding:10px;margin:10px;border:1px solid black}.dynamic-form-class[data-v-2821d23f]{color:green;font-weight:700}h1[data-v-2821d23f]{margin-bottom:10px}h2[data-v-2821d23f]{margin-top:1.5rem;margin-bottom:.75rem}h3[data-v-2821d23f]{margin-top:1rem}p[data-v-2821d23f]{margin-bottom:5px}ul li[data-v-2821d23f]{list-style-type:circle;list-style-position:inside;margin-left:15px}pre[data-v-2821d23f]{padding:12px;margin:12px;background-color:#eee}code[data-v-2821d23f]{font-size:.825rem;color:#ae0000}")),document.head.appendChild(e)}}catch(a){console.error("vite-plugin-css-injected-by-js",a)}})(); | ||
(function(n,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vuex")):typeof define=="function"&&define.amd?define(["exports","vue","vuex"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n["ui-dynamic-form"]={},n.Vue,n.vuex))})(this,function(n,e,u){"use strict";const h=(t,s)=>{const r=t.__vccOpts||t;for(const[d,i]of s)r[d]=i;return r},f={name:"UIDynamicForm",inject:["$socket"],props:{id:{type:String,required:!0},props:{type:Object,default:()=>({})},state:{type:Object,default:()=>({enabled:!1,visible:!1})}},setup(t){console.info("UIDynamicForm setup with:",t),console.debug("Vue function loaded correctly",e.markRaw)},data(){return{actions:[],form:{},formData:{},msg:{},taskInput:{},error:!1,errorMsg:""}},computed:{...u.mapState("data",["messages"]),waiting_title(){return this.props.waiting_title||"Warten auf den Usertask..."},waiting_info(){return this.props.waiting_info||"Der Usertask wird automatisch angezeigt, wenn ein entsprechender Task vorhanden ist."}},mounted(){this.$socket.on("widget-load:"+this.id,t=>{this.init(),this.$store.commit("data/bind",{widgetId:this.id,msg:t})}),this.$socket.on("msg-input:"+this.id,t=>{this.init(),this.msg=t,t.payload&&t.payload.userTask&&(this.taskInput=t.payload.userTask),t.payload&&t.payload.userTask&&t.payload.userTask.startToken&&(this.formData={...t.payload.userTask.startToken},console.info(this.formData)),this.$store.commit("data/bind",{widgetId:this.id,msg:t})}),this.$socket.emit("widget-load",this.id)},unmounted(){var t,s;(t=this.$socket)==null||t.off("widget-load"+this.id),(s=this.$socket)==null||s.off("msg-input:"+this.id)},methods:{hasUserTask(){return this.messages&&this.messages[this.id]&&this.messages[this.id].payload.userTask},userTask(){return this.hasUserTask()?this.messages[this.id].payload.userTask:{}},fields(){return(this.hasUserTask()?this.userTask().userTaskConfig.formFields:[]).map(r=>({...r,component:y(r.type),items:k(r.type,r)}))},hasFields(){return this.messages&&this.messages[this.id]&&this.messages[this.id].payload.userTask!==void 0},send(t,s){const r=[];r[s]=t,this.$socket.emit("widget-action",this.id,r)},init(){this.actions=this.props.options},actionFn(t){this.checkCondition(t.condition)?(this.showError(!1,""),this.send({payload:{formData:this.formData,userTask:this.userTask()}},this.actions.findIndex(s=>s.label===t.label))):this.showError(!0,t.errorMessage)},checkCondition(t){if(t=="")return!0;try{return!!Function("fields","userTask","msg",'"use strict"; return ('+t+")")(this.formData,this.taskInput,this.msg)}catch(s){return console.error("Error while evaluating condition: "+s),!1}},showError(t,s){this.error=t,this.errorMsg=s}}};function k(t,s){return t==="enum"?s.enumValues.map(r=>({title:r.name,value:r.id})):null}function y(t){switch(t){case"string":return"v-text-field";case"long":case"date":return"v-text-field";case"enum":return"v-select";case"boolean":return"v-checkbox";case"text":return"v-text-field";case"select":return"v-select";case"checkbox":return"v-checkbox";case"radio":return"v-radio";case"switch":return"v-switch";case"slider":return"v-slider";case"time":return"v-time-picker";case"datetime":return"v-datetime-picker";case"color":return"v-color-picker";case"file":return"v-file-input";case"textarea":return"v-textarea";case"password":return"v-text-field";case"number":return"v-text-field";case"email":return"v-text-field";case"tel":return"v-text-field";case"url":return"v-text-field";default:return"v-text-field"}}const _={className:"ui-dynamic-form-wrapper"},g={key:0},x={key:1};function w(t,s,r,d,i,a){const b=e.resolveComponent("v-col"),c=e.resolveComponent("v-row"),m=e.resolveComponent("v-alert"),B=e.resolveComponent("v-btn"),C=e.resolveComponent("v-form");return e.openBlock(),e.createElementBlock("div",_,[a.hasFields()?(e.openBlock(),e.createElementBlock("p",g,[e.createVNode(C,{ref:"form",modelValue:i.form,"onUpdate:modelValue":s[0]||(s[0]=o=>i.form=o)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields(),(o,l)=>(e.openBlock(),e.createBlock(c,{key:l},{default:e.withCtx(()=>[e.createVNode(b,{cols:"12"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.component),{id:o.id,modelValue:i.formData[o.id],"onUpdate:modelValue":p=>i.formData[o.id]=p,required:o.required,items:o.items,label:o.label},null,8,["id","modelValue","onUpdate:modelValue","required","items","label"]))]),_:2},1024)]),_:2},1024))),128)),e.createVNode(c,{style:{padding:"12px"}},{default:e.withCtx(()=>[i.error?(e.openBlock(),e.createBlock(m,{key:0,type:"error"},{default:e.withCtx(()=>[e.createTextVNode("Error: "+e.toDisplayString(i.errorMsg),1)]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(c,{style:{display:"flex",gap:"8px",padding:"12px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.actions,(o,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,style:{"flex-grow":"1"}},[(e.openBlock(),e.createBlock(B,{key:l,style:{width:"100%"},onClick:p=>a.actionFn(o)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.label),1)]),_:2},1032,["onClick"]))]))),128))]),_:1})]),_:1},8,["modelValue"])])):(e.openBlock(),e.createElementBlock("p",x,[e.createVNode(m,{text:a.waiting_info,title:a.waiting_title},null,8,["text","title"])]))])}const T=h(f,[["render",w],["__scopeId","data-v-2821d23f"]]);n.UIDynamicForm=T,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}); | ||
(function(){"use strict";try{if(typeof document<"u"){var a=document.createElement("style");a.appendChild(document.createTextNode(".dynamic-form-wrapper[data-v-3faf560c]{padding:10px;margin:10px;border:1px solid black}.dynamic-form-class[data-v-3faf560c]{color:green;font-weight:700}h1[data-v-3faf560c]{margin-bottom:10px}h2[data-v-3faf560c]{margin-top:1.5rem;margin-bottom:.75rem}h3[data-v-3faf560c]{margin-top:1rem}p[data-v-3faf560c]{margin-bottom:5px}ul li[data-v-3faf560c]{list-style-type:circle;list-style-position:inside;margin-left:15px}pre[data-v-3faf560c]{padding:12px;margin:12px;background-color:#eee}code[data-v-3faf560c]{font-size:.825rem;color:#ae0000}")),document.head.appendChild(a)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})(); | ||
(function(n,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("vuex")):typeof define=="function"&&define.amd?define(["exports","vue","vuex"],e):(n=typeof globalThis<"u"?globalThis:n||self,e(n["ui-dynamic-form"]={},n.Vue,n.vuex))})(this,function(n,e,u){"use strict";const h=(t,s)=>{const r=t.__vccOpts||t;for(const[a,o]of s)r[a]=o;return r},f={name:"UIDynamicForm",inject:["$socket"],props:{id:{type:String,required:!0},props:{type:Object,default:()=>({})},state:{type:Object,default:()=>({enabled:!1,visible:!1})}},setup(t){console.info("UIDynamicForm setup with:",t),console.debug("Vue function loaded correctly",e.markRaw)},data(){return{actions:[],form:{},formData:{},msg:{},taskInput:{},error:!1,errorMsg:""}},computed:{...u.mapState("data",["messages"]),waiting_title(){return this.props.waiting_title||"Warten auf den Usertask..."},waiting_info(){return this.props.waiting_info||"Der Usertask wird automatisch angezeigt, wenn ein entsprechender Task vorhanden ist."}},mounted(){this.$socket.on("widget-load:"+this.id,t=>{this.init(),this.$store.commit("data/bind",{widgetId:this.id,msg:t})}),this.$socket.on("msg-input:"+this.id,t=>{this.init(),this.msg=t;const s=t.payload&&t.payload.userTask,r=t.payload.userTask.userTaskConfig.formFields,a=t.payload.userTask.startToken;s&&(this.taskInput=t.payload.userTask),s&&r&&r.forEach(o=>{this.formData[o.id]=o.defaultValue}),s&&a&&Object.keys(a).forEach(o=>{this.formData[o]=a[o]}),this.$store.commit("data/bind",{widgetId:this.id,msg:t})}),this.$socket.emit("widget-load",this.id)},unmounted(){var t,s;(t=this.$socket)==null||t.off("widget-load"+this.id),(s=this.$socket)==null||s.off("msg-input:"+this.id)},methods:{hasUserTask(){return this.messages&&this.messages[this.id]&&this.messages[this.id].payload.userTask},userTask(){return this.hasUserTask()?this.messages[this.id].payload.userTask:{}},fields(){return(this.hasUserTask()?this.userTask().userTaskConfig.formFields:[]).map(r=>({...r,component:_(r.type),items:k(r.type,r)}))},hasFields(){return this.messages&&this.messages[this.id]&&this.messages[this.id].payload.userTask!==void 0},send(t,s){const r=[];r[s]=t,this.$socket.emit("widget-action",this.id,r)},init(){this.actions=this.props.options},actionFn(t){this.checkCondition(t.condition)?(this.showError(!1,""),this.send({payload:{formData:this.formData,userTask:this.userTask()}},this.actions.findIndex(s=>s.label===t.label))):this.showError(!0,t.errorMessage)},checkCondition(t){if(t=="")return!0;try{return!!Function("fields","userTask","msg",'"use strict"; return ('+t+")")(this.formData,this.taskInput,this.msg)}catch(s){return console.error("Error while evaluating condition: "+s),!1}},showError(t,s){this.error=t,this.errorMsg=s}}};function k(t,s){return t==="enum"?s.enumValues.map(r=>({title:r.name,value:r.id})):null}function _(t){switch(t){case"string":return"v-text-field";case"long":case"date":return"v-text-field";case"enum":return"v-select";case"boolean":return"v-checkbox";case"text":return"v-text-field";case"select":return"v-select";case"checkbox":return"v-checkbox";case"radio":return"v-radio";case"switch":return"v-switch";case"slider":return"v-slider";case"time":return"v-time-picker";case"datetime":return"v-datetime-picker";case"color":return"v-color-picker";case"file":return"v-file-input";case"textarea":return"v-textarea";case"password":return"v-text-field";case"number":return"v-text-field";case"email":return"v-text-field";case"tel":return"v-text-field";case"url":return"v-text-field";default:return"v-text-field"}}const g={className:"ui-dynamic-form-wrapper"},y={key:0},x={key:1};function w(t,s,r,a,o,c){const b=e.resolveComponent("v-col"),d=e.resolveComponent("v-row"),m=e.resolveComponent("v-alert"),B=e.resolveComponent("v-btn"),C=e.resolveComponent("v-form");return e.openBlock(),e.createElementBlock("div",g,[c.hasFields()?(e.openBlock(),e.createElementBlock("p",y,[e.createVNode(C,{ref:"form",modelValue:o.form,"onUpdate:modelValue":s[0]||(s[0]=i=>o.form=i)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.fields(),(i,l)=>(e.openBlock(),e.createBlock(d,{key:l},{default:e.withCtx(()=>[e.createVNode(b,{cols:"12"},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(i.component),{id:i.id,modelValue:o.formData[i.id],"onUpdate:modelValue":p=>o.formData[i.id]=p,required:i.required,items:i.items,label:i.label},null,8,["id","modelValue","onUpdate:modelValue","required","items","label"]))]),_:2},1024)]),_:2},1024))),128)),e.createVNode(d,{style:{padding:"12px"}},{default:e.withCtx(()=>[o.error?(e.openBlock(),e.createBlock(m,{key:0,type:"error"},{default:e.withCtx(()=>[e.createTextVNode("Error: "+e.toDisplayString(o.errorMsg),1)]),_:1})):e.createCommentVNode("",!0)]),_:1}),e.createVNode(d,{style:{display:"flex",gap:"8px",padding:"12px"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.actions,(i,l)=>(e.openBlock(),e.createElementBlock("div",{key:l,style:{"flex-grow":"1"}},[(e.openBlock(),e.createBlock(B,{key:l,style:{width:"100%"},onClick:p=>c.actionFn(i)},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(i.label),1)]),_:2},1032,["onClick"]))]))),128))]),_:1})]),_:1},8,["modelValue"])])):(e.openBlock(),e.createElementBlock("p",x,[e.createVNode(m,{text:c.waiting_info,title:c.waiting_title},null,8,["text","title"])]))])}const T=h(f,[["render",w],["__scopeId","data-v-3faf560c"]]);n.UIDynamicForm=T,Object.defineProperty(n,Symbol.toStringTag,{value:"Module"})}); |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
43732
2