import { DataType, JSUtils } from "@sankhyalabs/core";
export function getSelectedRecordsIDsInfo(dataUnit) {
  const selectionInfo = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getSelectionInfo();
  if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
    return [];
  }
  const selectedRecordsIDsInfo = [];
  const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
  if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
    selectedRecords.forEach(({ __record__id__ }) => {
      if (!dataUnit.isNewRecord(__record__id__)) {
        /*
          Esse if foi necessário para tratar corretamente o ID
          do record quando está sendo utilizado no modo standAlone
          isso não faz a exportação da grid funcionar no modo standAlone
          mas deixa de causar erro nas oprações de CRUD.
        */
        if (!JSUtils.isBase64(__record__id__)) {
          selectedRecordsIDsInfo.push({
            name: "__record__id__",
            type: DataType.TEXT,
            value: __record__id__
          });
          return;
        }
        const revertBase64ToObject = JSON.parse(window.atob(__record__id__));
        Object.entries(revertBase64ToObject).forEach(([name, value]) => {
          const metadataField = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getField(name);
          if (metadataField == undefined) {
            return;
          }
          selectedRecordsIDsInfo.push(Object.assign({ name, type: metadataField.dataType }, value));
        });
      }
    });
  }
  return selectedRecordsIDsInfo;
}
