@cocreate/render 1.36.1 → 1.37.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 CHANGED
@@ -1,3 +1,15 @@
1
+ # [1.37.0](https://github.com/CoCreate-app/CoCreate-render/compare/v1.36.1...v1.37.0) (2023-12-18)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * removed default ([01c1b1f](https://github.com/CoCreate-app/CoCreate-render/commit/01c1b1f8f5fa0159ae3399352e55a93e45b50678))
7
+
8
+
9
+ ### Features
10
+
11
+ * attribute name rendering converts string to attributes ([30c6b25](https://github.com/CoCreate-app/CoCreate-render/commit/30c6b25b422cc9bbaa00c2f36ceafaaac302780d))
12
+
1
13
  ## [1.36.1](https://github.com/CoCreate-app/CoCreate-render/compare/v1.36.0...v1.36.1) (2023-12-15)
2
14
 
3
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/render",
3
- "version": "1.36.1",
3
+ "version": "1.37.0",
4
4
  "description": "A simple render component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.",
5
5
  "keywords": [
6
6
  "render",
package/src/index.js CHANGED
@@ -130,7 +130,7 @@ async function render({ source, element, selector, data, key, index, currentInde
130
130
  source = { data }
131
131
 
132
132
  if (data.$filter) {
133
- index = index || data.$filter.startingIndex
133
+ index = index || data.$filter.startingIndex || data.$filter.index
134
134
  update = update || data.$filter.update
135
135
  remove = remove || data.$filter.remove
136
136
  }
@@ -476,11 +476,17 @@ async function renderValues(node, data, key, renderAs, keyPath, parent) {
476
476
 
477
477
  name = await renderValue(attr, data, namePlaceholder, renderAs, renderedAttribute);
478
478
  value = await renderValue(attr, data, valuePlaceholder, renderAs, renderedAttribute);
479
-
480
- if (name === undefined && name === null) {
479
+ if (namePlaceholder.includes('{{') && name) {
480
+ const attributes = name.match(/([^\s]+="[^"]*"|[^\s]+)/g) || [];
481
+ attributes.forEach(attr => {
482
+ let [attributeName, attributeValue] = attr.split("=");
483
+ attributeValue = attributeValue ? attributeValue.replace(/"/g, '') : '';
484
+ node.setAttribute(attributeName, attributeValue);
485
+ });
486
+ } else if (name === undefined || name === null || name === '') {
481
487
  renderedNodes.delete(attr)
482
488
  node.removeAttribute(attr.name);
483
- } else if ((value || value === "") && (name !== attr.name || value !== attr.value))
489
+ } else if (name && (value || value === "") && (name !== attr.name || value !== attr.value))
484
490
  node.setAttribute(name, value);
485
491
  }
486
492
  // });
@@ -835,4 +841,4 @@ Observer.init({
835
841
 
836
842
  init()
837
843
 
838
- export default { render, renderValue, sources, renderedNodes }
844
+ export { render, renderValue, sources, renderedNodes }