From 144437ff5c82456d5d8835159e57171df4923008 Mon Sep 17 00:00:00 2001 From: stephane Huart Date: Wed, 25 Oct 2023 23:32:30 +0200 Subject: [PATCH] add basic filter node --- .../evaluator_nodes_templates.js | 13 +++-- .../templates/node_filter.js | 54 +++++++++++++++++++ .../templates/settings_node_colors.js | 7 +++ 3 files changed, 67 insertions(+), 7 deletions(-) create mode 100644 src/js/modules/common_evaluators/templates/node_filter.js create mode 100644 src/js/modules/common_evaluators/templates/settings_node_colors.js diff --git a/src/js/modules/common_evaluators/evaluator_nodes_templates.js b/src/js/modules/common_evaluators/evaluator_nodes_templates.js index 267be96..9c5e503 100644 --- a/src/js/modules/common_evaluators/evaluator_nodes_templates.js +++ b/src/js/modules/common_evaluators/evaluator_nodes_templates.js @@ -7,6 +7,9 @@ import showPopupInstancePreview from "../popup_instance_preview/popup_instance_p import createAttributeManagement from "../common_project_management/attributes_management.js"; import state_manager from "../common_state/state_manager.js"; +import { filter } from "./templates/node_filter.js"; +import { settingsNodeColors as nodeColors} from "./templates/settings_node_colors.js"; + var getProp = function(props,propName, data){ var valuePassed = props[propName].get() @@ -19,13 +22,9 @@ var getProp = function(props,propName, data){ var evaluatorTemplates = {} -var nodeColors = { - input:0x83314a, - inputData:0x00d6a3, - inputObject:0xed9e5c, - output:0x1d1d1d, - attribute:0xa35abd, -} + + +evaluatorTemplates.filter = filter // baseTemplates.input_number = { // templateName : "input_number", diff --git a/src/js/modules/common_evaluators/templates/node_filter.js b/src/js/modules/common_evaluators/templates/node_filter.js new file mode 100644 index 0000000..4dc1152 --- /dev/null +++ b/src/js/modules/common_evaluators/templates/node_filter.js @@ -0,0 +1,54 @@ +import { settingsNodeColors as nodeColors } from "./settings_node_colors.js" + +export var filter = { + templateName : "filter", + name : "Filter", + style:{ + headerColor:nodeColors.inputObject, + }, + category:"data", + + props :[ + {id:"output", expect:"text", label:"output", type:"hidden", editable:false, socket:"output", value:"output"}, + {id:"paramName", expect:"text", label:"Param Name", type:"text", editable:true, socket:"input", value:"...."}, + {id:"paramIndex", expect:"text", label:"Param Name", type:"text", editable:true, socket:"input", value:"...."}, + {id:"a", expect:"data", label:"Data", type:"text", editable:true, socket:"input", value:"0"}, + ], + methods:{ + }, + event:{ + onEvaluate:(props, globals) =>{ + // var instanceRepo = createInstancesManagement() + // var currentInstance = instanceRepo.getById(globals.originInstance) + // props.output.set(currentInstance) + // var paramName = props.paramName.get() + // if (paramName!="....") { + // props.output.set("false") + // let url = window.location.hash.slice(1) || '/'; + // if (url.split("?")[1]) {//if there are already search params + // var splitedParams = url.split("?")[1].split("&") + // url = url.split("?")[0] + // for (let i = 0; i < splitedParams.length; i++) { + // const sparam = splitedParams[i].split("="); + // if (paramName == sparam[0]) { + // props.output.set(sparam[1] || "flase") + // } + // } + // } + // } + if (Array.isArray(props.a.get()) && props.a.get()[0] && props.a.get()[0].attributes.type) { + var oldDataSet = props.a.get() + var newDataSet = [] + for (let i = 0; i < oldDataSet.length; i++) { + const element = oldDataSet[i]; + if (i<2) { + newDataSet.push(element) + } + } + props.output.set(newDataSet) + } + }, + // onInit:(props) =>{ + // }, + }, +} \ No newline at end of file diff --git a/src/js/modules/common_evaluators/templates/settings_node_colors.js b/src/js/modules/common_evaluators/templates/settings_node_colors.js new file mode 100644 index 0000000..e1bc1c3 --- /dev/null +++ b/src/js/modules/common_evaluators/templates/settings_node_colors.js @@ -0,0 +1,7 @@ +export var settingsNodeColors = { + input:0x83314a, + inputData:0x00d6a3, + inputObject:0xed9e5c, + output:0x1d1d1d, + attribute:0xa35abd, +} \ No newline at end of file