{"version":3,"file":"DataBrowserColumnDefs.mjs","names":["toTitleCase","toLowerFirstChar","defaultGridColumn","headerName","field","minWidth","autoHeight","sortable","DataBrowserColumnDefs","entityAttributes","actionList","isServerSide","queryColumnsData","columnName","crudTableActionRenderName","panelDirection","childEntityAttributes","reduce","defs","element","extendedProperties","childEntity","push","shownColumns","hiddenColumns","forEach","matchingColumn","matchingColumnIndex","findIndex","column","name","find","ea","Object","keys","childEntityAssoc","length","UdpType","Keys","k","includes","columnHeaderName","reference","alias","def","context","lookupId","lookup","charAt","toLowerCase","slice","hide","searchable","filter","filterParams","suppressAndOrCondition","filterOptions","enableRowGroup","orderable","columnDefs","concat","pinned","width","maxWidth","cellRenderer","cellRendererParams","valueGetter","params","data","suppressMenu","cellStyle","display","alignItems","defaultColActionsDef","resizable","editable","floatingFilter"],"sources":["../../src/dataBrowser/DataBrowserColumnDefs.js"],"sourcesContent":["import {\n  toTitleCase,\n  toLowerFirstChar\n} from '../utilities/input/StringUtilities';\n\nconst defaultGridColumn = {\n  headerName: '',\n  field: '',\n  minWidth: 80,\n  autoHeight: false,\n  sortable: false\n};\n\nexport const DataBrowserColumnDefs = (\n  entityAttributes,\n  actionList,\n  isServerSide,\n  queryColumnsData,\n  columnName = 'Actions',\n  crudTableActionRenderName = 'actionsRenderer',\n  panelDirection = 'right'\n) => {\n  const childEntityAttributes = entityAttributes?.reduce((defs, element) => {\n    if (element?.extendedProperties?.childEntity) {\n      defs.push(element);\n    }\n    return defs;\n  }, []);\n\n  let shownColumns = [];\n  let hiddenColumns = [];\n\n  entityAttributes?.forEach((element) => {\n    if (!element?.extendedProperties?.childEntity) {\n      let matchingColumn = null;\n      const matchingColumnIndex = queryColumnsData.findIndex(\n        (column) => column.name === element?.name\n      );\n\n      if (matchingColumnIndex >= 0) {\n        matchingColumn = queryColumnsData[matchingColumnIndex];\n      }\n\n      // update column header if attribute has a child entity\n      const childEntity = childEntityAttributes.find(\n        (ea) =>\n          Object.keys(ea?.extendedProperties?.childEntityAssoc || {}).length &&\n          !ea?.extendedProperties?.childEntityAssoc?.UdpType &&\n          ea?.name === element?.name &&\n          ea?.extendedProperties?.childEntityAssoc.Keys.find((k) =>\n            toLowerFirstChar(k).includes(element?.name)\n          )\n      );\n\n      let columnHeaderName = toTitleCase(\n        childEntity ? childEntity?.reference : element?.name\n      );\n\n      if (matchingColumn) {\n        columnHeaderName = toTitleCase(\n          childEntity\n            ? childEntity?.reference\n            : matchingColumn?.alias || matchingColumn?.name\n        );\n      }\n\n      let def = {\n        ...defaultGridColumn,\n        context: { lookupId: matchingColumn?.extendedProperties?.lookup ?? null },\n        headerName: columnHeaderName,\n        field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n        hide: !matchingColumn\n      };\n\n      if (element?.extendedProperties?.searchable && isServerSide) {\n        def = {\n          ...def,\n          filter: 'agTextColumnFilter',\n          filterParams: {\n            suppressAndOrCondition: true,\n            filterOptions: [\n              'equals',\n              'contains',\n              'notEqual',\n              'greaterThan',\n              'lessThan',\n              'greaterThanOrEqual',\n              'lessThanOrEqual'\n            ]\n          },\n          enableRowGroup: true\n        };\n      }\n      if (element?.extendedProperties?.orderable || !isServerSide) {\n        def = {\n          ...def,\n          sortable: true\n        };\n      }\n\n      if (matchingColumn) {\n        shownColumns[matchingColumnIndex] = def;\n      } else {\n        hiddenColumns.push(def);\n      }\n    }\n  });\n\n  let columnDefs = shownColumns.concat(hiddenColumns);\n\n  columnDefs.push({\n    headerName:\n      crudTableActionRenderName === 'actionsRenderer' ? 'Actions' : columnName,\n    filter: false,\n    pinned: panelDirection,\n    width: 150,\n    maxWidth: 180,\n    cellRenderer: crudTableActionRenderName,\n    cellRendererParams: {\n      actionList\n    },\n    valueGetter: (params) => params.data,\n    suppressMenu: true,\n    sortable: false,\n    cellStyle: { display: 'flex', alignItems: 'center' }\n  });\n\n  return columnDefs;\n};\n\nexport const defaultColActionsDef = {\n  resizable: true,\n  editable: false,\n  sortable: false,\n  filter: true,\n  floatingFilter: false,\n  enableRowGroup: true\n};\n"],"mappings":";;AAKA,MAAME,oBAAoB;CACxBC,YAAY;CACZC,OAAO;CACPC,UAAU;CACVC,YAAY;CACZC,UAAU;CACX;AAED,MAAaC,yBACXC,kBACAC,YACAC,cACAC,kBACAC,aAAa,WACbC,4BAA4B,mBAC5BC,iBAAiB,YACd;CACH,MAAMC,wBAAwBP,kBAAkBQ,QAAQC,MAAMC,YAAY;AACxE,MAAIA,SAASC,oBAAoBC,YAC/BH,MAAKI,KAAKH,QAAQ;AAEpB,SAAOD;IACN,EAAE,CAAC;CAEN,IAAIK,eAAe,EAAE;CACrB,IAAIC,gBAAgB,EAAE;AAEtBf,mBAAkBgB,SAASN,YAAY;AACrC,MAAI,CAACA,SAASC,oBAAoBC,aAAa;GAC7C,IAAIK,iBAAiB;GACrB,MAAMC,sBAAsBf,iBAAiBgB,WAC1CC,WAAWA,OAAOC,SAASX,SAASW,KACtC;AAED,OAAIH,uBAAuB,EACzBD,kBAAiBd,iBAAiBe;GAIpC,MAAMN,cAAcL,sBAAsBe,MACvCC,OACCC,OAAOC,KAAKF,IAAIZ,oBAAoBe,oBAAoB,EAAE,CAAC,CAACC,UAC5D,CAACJ,IAAIZ,oBAAoBe,kBAAkBE,WAC3CL,IAAIF,SAASX,SAASW,QACtBE,IAAIZ,oBAAoBe,iBAAiBG,KAAKP,MAAMQ,MAClDtC,iBAAiBsC,EAAE,CAACC,SAASrB,SAASW,KACxC,CACJ,CAAC;GAED,IAAIW,mBAAmBzC,YACrBqB,cAAcA,aAAaqB,YAAYvB,SAASW,KACjD;AAED,OAAIJ,eACFe,oBAAmBzC,YACjBqB,cACIA,aAAaqB,YACbhB,gBAAgBiB,SAASjB,gBAAgBI,KAC9C;GAGH,IAAIc,MAAM;IACR,GAAG1C;IACH2C,SAAS,EAAEC,UAAUpB,gBAAgBN,oBAAoB2B,UAAU,MAAM;IACzE5C,YAAYsC;IACZrC,OAAOe,SAASW,KAAKkB,OAAO,EAAE,CAACC,aAAa,GAAG9B,SAASW,KAAKoB,MAAM,EAAE;IACrEC,MAAM,CAACzB;IACR;AAED,OAAIP,SAASC,oBAAoBgC,cAAczC,aAC7CiC,OAAM;IACJ,GAAGA;IACHS,QAAQ;IACRC,cAAc;KACZC,wBAAwB;KACxBC,eAAe;MACb;MACA;MACA;MACA;MACA;MACA;MACA;MAAiB;KAEpB;IACDC,gBAAgB;IACjB;AAEH,OAAItC,SAASC,oBAAoBsC,aAAa,CAAC/C,aAC7CiC,OAAM;IACJ,GAAGA;IACHrC,UAAU;IACX;AAGH,OAAImB,eACFH,cAAaI,uBAAuBiB;OAEpCpB,eAAcF,KAAKsB,IAAI;;GAG3B;CAEF,IAAIe,aAAapC,aAAaqC,OAAOpC,cAAc;AAEnDmC,YAAWrC,KAAK;EACdnB,YACEW,8BAA8B,oBAAoB,YAAYD;EAChEwC,QAAQ;EACRQ,QAAQ9C;EACR+C,OAAO;EACPC,UAAU;EACVC,cAAclD;EACdmD,oBAAoB,EAClBvD,YACD;EACDwD,cAAcC,WAAWA,OAAOC;EAChCC,cAAc;EACd9D,UAAU;EACV+D,WAAW;GAAEC,SAAS;GAAQC,YAAY;GAAS;EACpD,CAAC;AAEF,QAAOb"}