@cocreate/render 1.43.1 → 1.44.0
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/CHANGELOG.md +12 -0
- package/package.json +1 -1
- package/src/index.js +27 -10
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
# [1.44.0](https://github.com/CoCreate-app/CoCreate-render/compare/v1.43.1...v1.44.0) (2024-12-14)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* temporarily handle form.getData when multiple arrays ([6f1f11f](https://github.com/CoCreate-app/CoCreate-render/commit/6f1f11f994d2f6c5b7d915ca4ed9fa3497c84a54))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* improved handeling of refrence data and exclusion ([707180f](https://github.com/CoCreate-app/CoCreate-render/commit/707180f85965c4f773b8834cb72048068c7620c5))
|
|
12
|
+
|
|
1
13
|
## [1.43.1](https://github.com/CoCreate-app/CoCreate-render/compare/v1.43.0...v1.43.1) (2024-12-09)
|
|
2
14
|
|
|
3
15
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -306,19 +306,24 @@ async function renderTemplate(template, data, key, index, keyPath) {
|
|
|
306
306
|
renderReverse = template.element.getAttribute("render-reverse");
|
|
307
307
|
}
|
|
308
308
|
|
|
309
|
+
let exclude = template.element.getAttribute("render-exclude") || "";
|
|
310
|
+
if (exclude) {
|
|
311
|
+
exclude = exclude.replace(/ /g, "").split(",");
|
|
312
|
+
}
|
|
313
|
+
let reference = template.element.getAttribute("render-reference");
|
|
314
|
+
|
|
309
315
|
if ((key && !Array.isArray(renderData)) || renderType === "object") {
|
|
310
316
|
if (renderType && Array.isArray(renderData) && renderData.length === 1)
|
|
311
317
|
renderData = renderData[0];
|
|
312
318
|
|
|
313
|
-
let exclude = template.element.getAttribute("render-exclude") || "";
|
|
314
|
-
if (exclude) {
|
|
315
|
-
exclude = exclude.replace(/ /g, "").split(",");
|
|
316
|
-
if (!Array.isArray(exclude)) exclude = [exclude];
|
|
317
|
-
}
|
|
318
|
-
|
|
319
319
|
const keys = Object.keys(renderData);
|
|
320
320
|
for (let i = 0; i < keys.length; i++) {
|
|
321
321
|
if (exclude.includes(keys[i])) continue;
|
|
322
|
+
if (
|
|
323
|
+
reference === "false" &&
|
|
324
|
+
["$storage", "$database", "$array"].includes(key)
|
|
325
|
+
)
|
|
326
|
+
continue;
|
|
322
327
|
|
|
323
328
|
let value = renderData[keys[i]];
|
|
324
329
|
let type = "string";
|
|
@@ -364,12 +369,21 @@ async function renderTemplate(template, data, key, index, keyPath) {
|
|
|
364
369
|
|
|
365
370
|
clone.keyPath = template.keyPath || "" + `[${i}]`;
|
|
366
371
|
|
|
367
|
-
let object;
|
|
372
|
+
let object = { ...renderData[i] };
|
|
373
|
+
for (let j = 0; j < exclude.length; j++)
|
|
374
|
+
delete object[exclude[j]];
|
|
375
|
+
|
|
376
|
+
if (reference === "false") {
|
|
377
|
+
delete object.$storage;
|
|
378
|
+
delete object.$database;
|
|
379
|
+
delete object.$array;
|
|
380
|
+
}
|
|
381
|
+
|
|
368
382
|
if (renderAs) {
|
|
369
|
-
object = { [renderAs]:
|
|
383
|
+
object = { [renderAs]: object };
|
|
370
384
|
if (renderAs.includes("."))
|
|
371
385
|
object = dotNotationToObject(object);
|
|
372
|
-
} else object =
|
|
386
|
+
} else object = object;
|
|
373
387
|
|
|
374
388
|
let index;
|
|
375
389
|
if (key !== "data") index = i;
|
|
@@ -1013,9 +1027,12 @@ Actions.init({
|
|
|
1013
1027
|
prefix: "render"
|
|
1014
1028
|
});
|
|
1015
1029
|
|
|
1030
|
+
// TODO: data returned from form.getData() returns an array of objects each representing an storage, database and array in form. need a solution for handling what is the item to be rendered
|
|
1016
1031
|
let data = await action.form.getData();
|
|
1032
|
+
let array = action.form.getAttribute("array");
|
|
1033
|
+
if (array) data = data.find((obj) => obj.array === array);
|
|
1017
1034
|
for (let i = 0; i < elements.length; i++)
|
|
1018
|
-
render({ source: elements[i], data
|
|
1035
|
+
await render({ source: elements[i], data });
|
|
1019
1036
|
|
|
1020
1037
|
document.dispatchEvent(
|
|
1021
1038
|
new CustomEvent("render", {
|