I had built a custom FD widget for a date picking application. once I deploy, the widget works just fine as expected, however when AFTER deploying the flow, when i reload the editor, i find the widget(s) in a 'ready to deploy' state (blue dot on right hand upper corner). I tried, Full Deploy, Modified Flow deploy, Modified Node Deploy, restart flow but same result.
I dont see any functional issues (that i can see), but want to understand what is happening.
the other example flows of FD widgets are working fine without any issue. that is they remain deployed unless i make some changes in them.
[{"id":"23d8e302dcbca1ff","type":"flexdash custom","z":"d96da0cbca7c8342","fd_container":"28d1859702cdf729","fd_cols":"2","fd_rows":"1","fd_array":false,"fd_array_max":10,"fd_output_topic":"","fd_loopback":false,"name":"From Date","title":"From Date","sfc_source":"\n<template>\n <div class=\"pushbutton d-flex align-center justify-center\">\n <input type=\"datetime-local\" value=\"\" @change=\"changed($event.target.value)\" >\n </div>\n</template>\n\n\n<style scoped>\n .label { color: red; }\n</style>\n\n<script>\nexport default {\n // Props are the inputs to the widget.\n // They can be set dynamically using Node-RED messages using `msg.<prop>`.\n // In a \"custom widget\" like this one they cannot be set via the Node-RED flow editor:\n // use the default values in the lines below instead.\n props: {\n label: { default: \"clickme\" }, // text to show inside button\n output: { default: \"\" }, // value to output when clicked\n },\n\n emits: ['send'], // declare to Vue that this component emits a 'send' event\n\n // simple methods within the component\n \n methods: {\n changed(ev) {console.log(\"Date picker event:\", ev)\n this.$emit('send', ev)},\n },\n \n}\n</script>\n","import_map":{},"x":150,"y":100,"wires":[["386f862bdc5b0471"]]},{"id":"386f862bdc5b0471","type":"change","z":"d96da0cbca7c8342","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"T","fromt":"str","to":" ","tot":"str"},{"t":"set","p":"fdate","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"tdate","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"fdate","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":100,"wires":[["2e2314bcd8812c26"]]},{"id":"2e2314bcd8812c26","type":"join","z":"d96da0cbca7c8342","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":510,"y":120,"wires":[["ebb86858fdd669e7"]]},{"id":"628e865828f5a266","type":"change","z":"d96da0cbca7c8342","name":"","rules":[{"t":"change","p":"payload","pt":"msg","from":"T","fromt":"str","to":" ","tot":"str"},{"t":"set","p":"tdate","pt":"flow","to":"payload","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"tdate","tot":"str"},{"t":"set","p":"complete","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":340,"y":140,"wires":[["2e2314bcd8812c26"]]},{"id":"ebb86858fdd669e7","type":"change","z":"d96da0cbca7c8342","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"true","tot":"bool"},{"t":"set","p":"title","pt":"msg","to":"Fetch Data For Date Range","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":680,"y":100,"wires":[["3502135c929c2dac","64b830c4cd67f4e1"]]},{"id":"70c86d349449eafb","type":"flexdash custom","z":"d96da0cbca7c8342","fd_container":"28d1859702cdf729","fd_cols":2,"fd_rows":"1","fd_array":false,"fd_array_max":10,"fd_output_topic":"","fd_loopback":false,"name":"To Date","title":"To Date","sfc_source":"\n<template>\n <div class=\"pushbutton d-flex align-center justify-center\">\n <input type=\"datetime-local\" value=dd @change=\"changed($event.target.value)\" >\n </div>\n</template>\n\n\n<style scoped>\n .label { color: red; }\n</style>\n\n<script>\nexport default {\n // Props are the inputs to the widget.\n // They can be set dynamically using Node-RED messages using `msg.<prop>`.\n // In a \"custom widget\" like this one they cannot be set via the Node-RED flow editor:\n // use the default values in the lines below instead.\n props: {\n label: { default: \"clickme\" }, // text to show inside button\n output: { default: \"\" }, // value to output when clicked\n },\n\n emits: ['send'], // declare to Vue that this component emits a 'send' event\n\n // simple methods within the component\n \n methods: {\n changed(ev) {\n console.log(\"Date picker event:\", ev)\n this.$emit('send', ev)\n },\n },\n \n}\n</script>\n","import_map":{},"x":160,"y":140,"wires":[["628e865828f5a266"]]},{"id":"3502135c929c2dac","type":"fd-push-button","z":"d96da0cbca7c8342","fd_container":"28d1859702cdf729","fd_cols":"2","fd_rows":1,"fd_array":false,"fd_array_max":10,"fd_output_topic":"","fd_loopback":false,"name":"Fetch1","title":"","popup_info":"","enabled":"true","color":"light-green-accent-3","output_value":1440,"icon":"","x":870,"y":120,"wires":[["aaaf6fa15c49afe5","a1f1fa82f610e7fd"]]},{"id":"64b830c4cd67f4e1","type":"debug","z":"d96da0cbca7c8342","name":"debug 98","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1020,"y":80,"wires":[]},{"id":"95005e11a4473674","type":"inject","z":"d96da0cbca7c8342","name":"","props":[{"p":"enabled","v":"false","vt":"bool"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":710,"y":60,"wires":[["3502135c929c2dac"]]},{"id":"705bea0ed940347f","type":"change","z":"d96da0cbca7c8342","name":"","rules":[{"t":"set","p":"enabled","pt":"msg","to":"false","tot":"bool"},{"t":"set","p":"title","pt":"msg","to":"Select a Date Range","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":745,"y":140,"wires":[["3502135c929c2dac"]],"l":false},{"id":"aaaf6fa15c49afe5","type":"link out","z":"d96da0cbca7c8342","name":"link out 94","mode":"link","links":["903ec5e123d306aa"],"x":955,"y":120,"wires":[]},{"id":"a1f1fa82f610e7fd","type":"change","z":"d96da0cbca7c8342","name":"","rules":[{"t":"set","p":"payload1","pt":"msg","to":"fdate","tot":"flow"},{"t":"set","p":"payload2","pt":"msg","to":"tdate","tot":"flow"},{"t":"set","p":"label","pt":"msg","to":"payload1&'-to-'&payload2","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":700,"y":220,"wires":[["eb81d1954c7ee562"]]},{"id":"15c0335039c7a0f5","type":"delay","z":"d96da0cbca7c8342","name":"","pauseType":"delay","timeout":"250","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":685,"y":140,"wires":[["705bea0ed940347f"]],"l":false},{"id":"eb81d1954c7ee562","type":"fd-label","z":"d96da0cbca7c8342","fd_container":"28d1859702cdf729","fd_cols":"3","fd_rows":1,"fd_array":false,"fd_array_max":10,"name":"","title":"Selected Data Range","popup_info":"","label":null,"color":"","align":"center","justify":"center","weight":"400","size":"100%","padding":"4px","x":870,"y":220,"wires":[]},{"id":"903ec5e123d306aa","type":"link in","z":"d96da0cbca7c8342","name":"link in 110","links":["aaaf6fa15c49afe5"],"x":625,"y":140,"wires":[["15c0335039c7a0f5"]]},{"id":"28d1859702cdf729","type":"flexdash container","name":"charts","kind":"StdGrid","fd_children":",23d8e302dcbca1ff,70c86d349449eafb,3502135c929c2dac,eb81d1954c7ee562","title":"","tab":"9f23b0158f8280e3","min_cols":"1","max_cols":"20","unicast":"","parent":"","solid":false,"cols":"1","rows":"1"},{"id":"9f23b0158f8280e3","type":"flexdash tab","name":"charts","icon":"mdi-chart-line","title":"charts","fd_children":",28d1859702cdf729","fd":"e8f5aea52ab49500"}]