{"version":3,"file":"CrudBrowserUtilities.mjs","names":["RESERVED_PATH_PARAMETERS","getPrimaryKeyValues","properties","entityValue","primaryKeyProperties","filter","property","extendedProperties","identifier","primaryKeyValues","reduce","keyValues","push","getPathObject","pathParameters","primaryKeyParameters","parameter","name","pathObject","length","forEach","pkp","index","findTermByType","fieldType","term","toLowerCase","getModelProperties","model","componentsObj","modelPropertiesObj","refKeys","reference","refString","lastIndex","lastIndexOf","referenceModel","substring","key","abstractModel","getEntityAttributes","catalog","entityName","catalogObjectList","ctlg","components","entity","find","catalogObject","catalogObjectName","Object","keys","nullable","modelProperty","getPathParametersObj","pathParametersDefinition","entityData","pathParametersObj","param"],"sources":["../../../src/utilities/maintenanceEngine/CrudBrowserUtilities.js"],"sourcesContent":["const RESERVED_PATH_PARAMETERS = ['version', 'udp-api-version'];\n\nexport const getPrimaryKeyValues = (properties, entityValue) => {\n  const primaryKeyProperties = properties?.filter(\n    (property) => property?.extendedProperties?.identifier\n  );\n  const primaryKeyValues = primaryKeyProperties?.reduce(\n    (keyValues, property) => {\n      if (entityValue && entityValue[property['name']] !== null) {\n        keyValues.push(entityValue[property['name']]);\n      }\n      return keyValues;\n    },\n    []\n  );\n  return primaryKeyValues;\n};\n\nexport const getPathObject = (pathParameters, primaryKeyValues) => {\n  const primaryKeyParameters = pathParameters.filter(\n    (parameter) => parameter.name !== RESERVED_PATH_PARAMETERS\n  );\n\n  const pathObject = {};\n  if (primaryKeyParameters.length && primaryKeyValues.length) {\n    primaryKeyParameters.forEach((pkp, index) => {\n      pathObject[`{${pkp.name}}`] = primaryKeyValues[index];\n    });\n  }\n  return pathObject;\n};\n\nexport const findTermByType = (fieldType, term) => {\n  if (fieldType.toLowerCase() === term) {\n    return fieldType.toLowerCase();\n  } else {\n    return '';\n  }\n};\n\nconst getModelProperties = (model, componentsObj) => {\n  let modelPropertiesObj = null;\n  if (model) {\n    modelPropertiesObj = model.properties;\n    if (!modelPropertiesObj) {\n      const refKeys = [];\n      if (model['allOf']?.length) {\n        model['allOf'].forEach((reference) => {\n          if (reference['$ref']) {\n            const refString = reference['$ref'];\n            if (refString) {\n              const lastIndex = refString.lastIndexOf('/');\n              const referenceModel = refString.substring(lastIndex + 1);\n              refKeys.push(referenceModel);\n            }\n          }\n        });\n      }\n      refKeys.forEach((key) => {\n        const abstractModel = componentsObj[key];\n        if (modelPropertiesObj && abstractModel?.properties) {\n          modelPropertiesObj = {\n            ...modelPropertiesObj,\n            ...abstractModel.properties\n          };\n        } else {\n          modelPropertiesObj = abstractModel?.properties;\n        }\n      });\n    }\n  }\n  return modelPropertiesObj;\n};\n\nexport const getEntityAttributes = (catalog, entityName) => {\n  if (!catalog) {\n    return [];\n  }\n  const catalogObjectList = catalog?.ctlg?.catalogObjectList;\n  const componentsObj = catalog?.ctlg?.components;\n  const entity = catalogObjectList?.find(\n    (catalogObject) => catalogObject.catalogObjectName === entityName\n  );\n\n  if (!!componentsObj && Object.keys(componentsObj).length) {\n    const model = componentsObj[entityName];\n    let modelPropertiesObj = getModelProperties(model, componentsObj);\n    if (entity?.properties?.length) {\n      entity.properties.forEach((property) => {\n        let nullable = true;\n        if (modelPropertiesObj) {\n          const modelProperty = modelPropertiesObj[property['name']];\n          if (modelProperty) {\n            nullable = modelProperty.nullable || false;\n          }\n        }\n        property['nullable'] = nullable;\n      });\n    }\n  }\n\n  return entity ? entity.properties : [];\n};\n\nexport const getPathParametersObj = (pathParametersDefinition, entityData) => {\n  if (!pathParametersDefinition || !entityData) return {};\n\n  const pathParametersObj = {};\n\n  for (let param of pathParametersDefinition) {\n    pathParametersObj[param.name] = entityData[param.name];\n  }\n\n  return pathParametersObj;\n};\n"],"mappings":";AAAA,MAAMA,2BAA2B,CAAC,WAAW,kBAAkB;AAE/D,MAAaC,uBAAuBC,YAAYC,gBAAgB;AAa9D,SAZ6BD,YAAYG,QACtCC,aAAaA,UAAUC,oBAAoBC,WAC7C,GAC8CE,QAC5CC,WAAWL,aAAa;AACvB,MAAIH,eAAeA,YAAYG,SAAS,aAAa,KACnDK,WAAUC,KAAKT,YAAYG,SAAS,SAAS;AAE/C,SAAOK;IAET,EACF,CAAC;;AAIH,MAAaE,iBAAiBC,gBAAgBL,qBAAqB;CACjE,MAAMM,uBAAuBD,eAAeT,QACzCW,cAAcA,UAAUC,SAASjB,yBACnC;CAED,MAAMkB,aAAa,EAAE;AACrB,KAAIH,qBAAqBI,UAAUV,iBAAiBU,OAClDJ,sBAAqBK,SAASC,KAAKC,UAAU;AAC3CJ,aAAW,IAAIG,IAAIJ,KAAI,MAAOR,iBAAiBa;GAC/C;AAEJ,QAAOJ;;AAGT,MAAaK,kBAAkBC,WAAWC,SAAS;AACjD,KAAID,UAAUE,aAAa,KAAKD,KAC9B,QAAOD,UAAUE,aAAa;KAE9B,QAAO;;AAIX,MAAMC,sBAAsBC,OAAOC,kBAAkB;CACnD,IAAIC,qBAAqB;AACzB,KAAIF,OAAO;AACTE,uBAAqBF,MAAM1B;AAC3B,MAAI,CAAC4B,oBAAoB;GACvB,MAAMC,UAAU,EAAE;AAClB,OAAIH,MAAM,UAAUT,OAClBS,OAAM,SAASR,SAASY,cAAc;AACpC,QAAIA,UAAU,SAAS;KACrB,MAAMC,YAAYD,UAAU;AAC5B,SAAIC,WAAW;MACb,MAAMC,YAAYD,UAAUE,YAAY,IAAI;MAC5C,MAAMC,iBAAiBH,UAAUI,UAAUH,YAAY,EAAE;AACzDH,cAAQnB,KAAKwB,eAAe;;;KAGhC;AAEJL,WAAQX,SAASkB,QAAQ;IACvB,MAAMC,gBAAgBV,cAAcS;AACpC,QAAIR,sBAAsBS,eAAerC,WACvC4B,sBAAqB;KACnB,GAAGA;KACH,GAAGS,cAAcrC;KAClB;QAED4B,sBAAqBS,eAAerC;KAEtC;;;AAGN,QAAO4B;;AAGT,MAAaU,uBAAuBC,SAASC,eAAe;AAC1D,KAAI,CAACD,QACH,QAAO,EAAE;CAEX,MAAME,oBAAoBF,SAASG,MAAMD;CACzC,MAAMd,gBAAgBY,SAASG,MAAMC;CACrC,MAAMC,SAASH,mBAAmBI,MAC/BC,kBAAkBA,cAAcC,sBAAsBP,WACxD;AAED,KAAI,CAAC,CAACb,iBAAiBqB,OAAOC,KAAKtB,cAAc,CAACV,QAAQ;EACxD,MAAMS,QAAQC,cAAca;EAC5B,IAAIZ,qBAAqBH,mBAAmBC,OAAOC,cAAc;AACjE,MAAIiB,QAAQ5C,YAAYiB,OACtB2B,QAAO5C,WAAWkB,SAASd,aAAa;GACtC,IAAI8C,WAAW;AACf,OAAItB,oBAAoB;IACtB,MAAMuB,gBAAgBvB,mBAAmBxB,SAAS;AAClD,QAAI+C,cACFD,YAAWC,cAAcD,YAAY;;AAGzC9C,YAAS,cAAc8C;IACvB;;AAIN,QAAON,SAASA,OAAO5C,aAAa,EAAE;;AAGxC,MAAaoD,wBAAwBC,0BAA0BC,eAAe;AAC5E,KAAI,CAACD,4BAA4B,CAACC,WAAY,QAAO,EAAE;CAEvD,MAAMC,oBAAoB,EAAE;AAE5B,MAAK,IAAIC,SAASH,yBAChBE,mBAAkBC,MAAMzC,QAAQuC,WAAWE,MAAMzC;AAGnD,QAAOwC"}