hunk.code_window:           "configProperty": "actionConfiguration.body",
             "controlType": "QUERY_DYNAMIC_TEXT",
             "evaluationSubstitutionType": "TEMPLATE",
             "hidden": {
               "path": "actionConfiguration.pluginSpecifiedTemplates[0].value",
               "comparison": "EQUALS",
               "value": "true"
             }
           }
         ]
       }
  
hunk.labels: keep keep keep keep keep replace replace keep keep keep keep
hunk.after_edit:             "comparison": "IN",
               "value": [
                 "true",
                 true
               ]
  
hunk.file_path: app/server/appsmith-plugins/postgresPlugin/src/main/resources/editor.json
hunk.type: replace
file: // eslint-disable-next-line @typescript-eslint/ban-ts-comment
  //@ts-ignore
  import widgetPropertyFns from "!!raw-loader!./derived.js";
  
  // TODO(abhinav):
  // Add unit test cases
  // Handle edge cases
  // Error out on wrong values
  const derivedProperties: any = {};
  // const regex = /(\w+):\s?\(props\)\s?=>\s?{([\w\W]*?)},/gim;
  const regex = /(\w+):\s?\(props, moment, _\)\s?=>\s?{([\w\W\n]*?)},\n?\s+?\/\//gim;
  
  let m;
  
  while ((m = regex.exec(widgetPropertyFns)) !== null) {
    // This is necessary to avoid infinite loops with zero-width matches
    if (m.index === regex.lastIndex) {
      regex.lastIndex++;
    }
  
    let key = "";
    // The result can be accessed through the `m`-variable.
    m.forEach((match, groupIndex) => {
      if (groupIndex === 1) {
        key = match;
      }
      if (groupIndex === 2) {
        derivedProperties[key] = match
          .trim()
          .replace(/\n/g, "")
          .replace(/props\./g, "this.");
      }
    });
  }
  
  export default derivedProperties;
  