@cocreate/render 1.28.4 → 1.28.6

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,18 @@
1
+ ## [1.28.6](https://github.com/CoCreate-app/CoCreate-render/compare/v1.28.5...v1.28.6) (2023-10-17)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * await getValue() ([f57bd36](https://github.com/CoCreate-app/CoCreate-render/commit/f57bd36937dcb854d341d4f8b7f7d39b1c8f5bf7))
7
+
8
+ ## [1.28.5](https://github.com/CoCreate-app/CoCreate-render/compare/v1.28.4...v1.28.5) (2023-10-16)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * render delete nodes ([1921e57](https://github.com/CoCreate-app/CoCreate-render/commit/1921e572051d62aa53513f5379538f3df3c76d93))
14
+ * update and delete for loop data.type ([cc5e4b5](https://github.com/CoCreate-app/CoCreate-render/commit/cc5e4b5ef33814de59159204f6af8648b6fdfbca))
15
+
1
16
  ## [1.28.4](https://github.com/CoCreate-app/CoCreate-render/compare/v1.28.3...v1.28.4) (2023-10-14)
2
17
 
3
18
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/render",
3
- "version": "1.28.4",
3
+ "version": "1.28.6",
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
@@ -100,7 +100,7 @@ async function render({ source, element, data, key, index, currentIndex, update,
100
100
 
101
101
  for (let i = 0; i < element.length; i++) {
102
102
  if (!key)
103
- key = element[i].getAttribute('render')
103
+ key = element[i].getAttribute('render') || type
104
104
 
105
105
  let renderedNode = renderedNodes.get(element[i])
106
106
  if (source) {
@@ -110,43 +110,37 @@ async function render({ source, element, data, key, index, currentIndex, update,
110
110
  }
111
111
  }
112
112
 
113
- // TODO: for loop data[type]?
114
113
  if (remove) {
115
- if (renderedNode.source) {
116
- if (key)
117
- renderedNode.source.data[key].splice(index, 1)
118
- else {
119
-
114
+ for (let j = 0; j < data[type].length; j++) {
115
+ let cloneKey
116
+ if (type === 'object') {
117
+ cloneKey = data[type][j]._id;
118
+ } else {
119
+ cloneKey = data[type][j].name;
120
120
  }
121
- }
122
121
 
123
- let cloneKey
124
- if (type === 'object') {
125
- cloneKey = data[type][0]._id;
126
- } else {
127
- cloneKey = data[type][0].name;
128
- }
129
-
130
- let clone = renderedNode.clones.get(cloneKey)
131
- if (!clone) return
122
+ let clone = renderedNode.clones.get(cloneKey)
123
+ if (!clone) return
132
124
 
133
- renderedNode.clones.delete(cloneKey)
134
- renderedNodes.delete(clone)
135
- clone.remove()
125
+ renderedNode.clones.delete(cloneKey)
126
+ renderedNodes.delete(clone)
127
+ clone.remove()
128
+ }
136
129
  } else if (key || Array.isArray(data)) {
137
130
  if (update) {
138
- let clone
139
- if (type === 'object') {
140
- clone = renderedNode.clones.get(data[type][0]._id);
141
- } else {
142
- clone = renderedNode.clones.get(data[type][0].name);
143
- }
131
+ for (let j = 0; j < data[type].length; j++) {
132
+ let clone
133
+ if (type === 'object') {
134
+ clone = renderedNode.clones.get(data[type][j]._id);
135
+ } else {
136
+ clone = renderedNode.clones.get(data[type][j].name);
137
+ }
144
138
 
145
- if (!currentIndex)
146
- currentIndex = data.$filter.currentIndex
139
+ if (!currentIndex)
140
+ currentIndex = data.$filter.currentIndex
141
+
142
+ if (!clone) return
147
143
 
148
- if (!clone) return
149
- for (let j = 0; j < data[type].length; j++) {
150
144
  await renderValues(clone, { object: data[type][j] });
151
145
  if (currentIndex >= 0)
152
146
  insertElement(renderedNode, clone, index, currentIndex)
@@ -170,8 +164,8 @@ async function render({ source, element, data, key, index, currentIndex, update,
170
164
  }
171
165
 
172
166
  async function renderTemplate(template, data, key, index, keyPath) {
173
- if (!key)
174
- key = template.getAttribute('render')
167
+ // if (!key)
168
+ // key = template.getAttribute('render')
175
169
 
176
170
  let templateData = renderedNodes.get(template)
177
171
  if (!templateData) {
@@ -636,7 +630,7 @@ function getRenderValue(node, data, key, renderAs) {
636
630
  return value
637
631
  }
638
632
 
639
- function renderKey(element, params) {
633
+ async function renderKey(element, params) {
640
634
  // TODO: custom render-keys
641
635
  const form = element.closest("form") || document;
642
636
  if (!params)
@@ -648,7 +642,7 @@ function renderKey(element, params) {
648
642
  for (let el of elements) {
649
643
  let attribute = el.getAttribute(params)
650
644
  if (attribute)
651
- data[attribute] = el.getValue()
645
+ data[attribute] = await el.getValue()
652
646
  }
653
647
  data = dotNotationToObject(data)
654
648
  let renderData = { data: { [params]: data } }
@@ -684,9 +678,9 @@ Observer.init({
684
678
  name: 'fileRender',
685
679
  observe: ['attributes'],
686
680
  attributeName: ['render-selector', 'render-closest', 'render-parent', 'render-next', 'render-previous'],
687
- callback: function (mutation) {
681
+ callback: async function (mutation) {
688
682
  render({
689
- element: mutation.target, data: mutation.target.getValue()
683
+ element: mutation.target, data: await mutation.target.getValue()
690
684
  });
691
685
  }
692
686
  });