parsedHeading function
dynamic
parsedHeading(
- dynamic question,
- dynamic replacementVal
Implementation
parsedHeading(question, replacementVal) {
if (question['rtxt'] == null ||
question['rtxt']['blocks'] == null ||
question['rtxt']['blocks'][0] == null ||
question['rtxt']['blocks'][0]['text'] == null) {
return '';
}
var entityRanges = question['rtxt']['blocks'][0]['entityRanges'];
var entityMapping = question['rtxt']['entityMap'];
final Map<dynamic, dynamic> stringToReplace = {};
if (entityRanges.length <= 0) {
return question['rtxt']['blocks'][0]['text'];
}
var replacedString = question['rtxt']['blocks'][0]['text'];
var extraOffset = 0;
for (var i = 0; i < entityRanges.length; i++) {
var currentEntity = entityRanges[i];
var textToReplace =
'#CHANGE_${entityMapping[currentEntity['key'].toString()]['data']['component_txt']}';
replacedString = replacedString.replaceFirst(
RegExp(entityMapping[currentEntity['key'].toString()]['data']
['component_txt']),
textToReplace,
currentEntity['offset'] + extraOffset);
extraOffset += 8;
stringToReplace[i] = {};
stringToReplace[i]['pramKey'] =
entityMapping[currentEntity['key'].toString()]['data']['component_txt'];
stringToReplace[i]['regexKey'] = textToReplace;
// entityMapping[currentEntity['key'].toString()]['data']['component_txt']['replace_txt'] = textToReplace;
}
for (var i = 0; i < stringToReplace.length; i++) {
var stringToReplaceHere =
replacementVal[stringToReplace[i]['pramKey']] ?? '';
replacedString = replacedString.replaceAll(
stringToReplace[i]['regexKey'], stringToReplaceHere);
}
return replacedString;
}