@ejfdelgado/ejflab-common 1.10.3 → 1.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@ejfdelgado/ejflab-common",
3
3
  "type": "commonjs",
4
- "version": "1.10.3",
4
+ "version": "1.10.4",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/ejfdelgado/ejflab-common.git"
package/src/MyTemplate.js CHANGED
@@ -213,6 +213,18 @@ class MyTemplate extends CsvWithFilters {
213
213
  }
214
214
  replaceBareValues(template, data, open = "\\{", close = "\\}", closeNoScape = "}", useStringify = false, skipUndefined = false) {
215
215
  const myPattern = new RegExp("\\$\\s*" + open + "([^" + closeNoScape + "]+)\\s*" + close, "g");
216
+ // Segond level replace
217
+ const myPattern2d = new RegExp("(\\$\\s*" + open + "[^$" + closeNoScape + "]+)\\$" + open + "([^" + closeNoScape + "]+)" + close + "([^" + closeNoScape + "]*" + close + ")", "g");
218
+ template = template.replace(myPattern2d, (match, g1, g2, g3) => {
219
+ const response = this.getColumnDescription(g2)[0];
220
+ const valor = SimpleObj.getValue(data, response.id);
221
+ const temp = this.filterValue(valor, response, undefined, response.id);
222
+ if (temp === undefined) {
223
+ return match;
224
+ } else {
225
+ return g1 + temp + g3;
226
+ }
227
+ });
216
228
  template = template.replace(myPattern, (match, g1) => {
217
229
  const response = this.getColumnDescription(g1)[0];
218
230
  const valor = SimpleObj.getValue(data, response.id);
@@ -76,6 +76,18 @@ function myTest() {
76
76
  exp: "my name is undefined Delgado and I like undefined undefined",
77
77
  skipUndefined: false,
78
78
  },
79
+ {
80
+ txt: "My ${index} lastname is ${lastname.${index}}",
81
+ data: { lastname: ["delgado", "leyton"], index: 0 },
82
+ exp: "My 0 lastname is delgado",
83
+ skipUndefined: false,
84
+ },
85
+ {
86
+ txt: "My ${index} lastname is ${lastname.${index}.detail}",
87
+ data: { lastname: [{ detail: "delgado" }, { detail: "leyton" }], index: 0 },
88
+ exp: "My 0 lastname is delgado",
89
+ skipUndefined: false,
90
+ },
79
91
  ];
80
92
 
81
93
  renderer.registerFunction("json", CsvFormatterFilters.json);