@cocreate/elements 1.36.1 → 1.36.2

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,11 @@
1
+ ## [1.36.2](https://github.com/CoCreate-app/CoCreate-elements/compare/v1.36.1...v1.36.2) (2024-08-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * prevent duplicate input event listeners ([e7d5bfd](https://github.com/CoCreate-app/CoCreate-elements/commit/e7d5bfd7c254b9e4a76bd5eb55106b86357904c9))
7
+ * use continue in for loop ([e0febbc](https://github.com/CoCreate-app/CoCreate-elements/commit/e0febbcbf16486d54e312cd646f2d2a255e71848))
8
+
1
9
  ## [1.36.1](https://github.com/CoCreate-app/CoCreate-elements/compare/v1.36.0...v1.36.1) (2024-07-09)
2
10
 
3
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/elements",
3
- "version": "1.36.1",
3
+ "version": "1.36.2",
4
4
  "description": "Fetch content into any html element by using html5 attributes to query data stored in CoCreate headless CMS. If data is changed it will instantly reflect in html tags as changes are broadcasted in realtime",
5
5
  "keywords": [
6
6
  "elements",
package/src/fetchSrc.js CHANGED
@@ -19,7 +19,7 @@ async function initElements(elements) {
19
19
  let src = element.getAttribute('src') || element.getAttribute('source') || element.getAttribute('stream');
20
20
 
21
21
  if (!src || /{{\s*([\w\W]+)\s*}}/g.test(src))
22
- return;
22
+ continue;
23
23
 
24
24
  let initialize = initializing.get(element)
25
25
  if (!initialize || initialize.src != src) {
package/src/index.js CHANGED
@@ -97,18 +97,26 @@ async function initElement(el) {
97
97
  if (!elements.has(el)) {
98
98
  elements.set(el, '')
99
99
 
100
- if (['INPUT', 'TEXTAREA', 'SELECT'].includes(el.tagName)
101
- || (el.hasAttribute('contenteditable') && el.getAttribute('contenteditable') !== 'false')
102
- || el.contenteditable) {
103
- el.addEventListener('input', function (e) {
104
- const { object, key, isRealtime, isCrdt } = getAttributes(el);
105
- if (!isRealtime || isRealtime === "false" || key === "_id") return;
106
- if (isCrdt == "true" && object && object !== 'pending') return
107
- if (e.detail && e.detail.skip == true) return;
108
- if (data.type !== 'object' && data[data.type] === 'pending') return
109
-
110
- save(el);
111
- });
100
+ if (el.tagName === "EDITOR")
101
+ console.log('editor event added')
102
+ if (!el.elementsInputEvent) {
103
+ el.elementsInputEvent = true;
104
+
105
+ if (['INPUT', 'TEXTAREA', 'SELECT'].includes(el.tagName)
106
+ || (el.hasAttribute('contenteditable') && el.getAttribute('contenteditable') !== 'false')
107
+ || el.contenteditable) {
108
+ el.addEventListener('input', function (e) {
109
+ if (el.pendingObject) return
110
+
111
+ const { object, key, isRealtime, isCrdt } = getAttributes(el);
112
+ if (!isRealtime || isRealtime === "false" || key === "_id") return;
113
+ if (isCrdt == "true" && object && object !== 'pending') return
114
+ if (e.detail && e.detail.skip == true) return;
115
+ if (data.type !== 'object' && data[data.type] === 'pending') return
116
+
117
+ save(el);
118
+ });
119
+ }
112
120
  }
113
121
  }
114
122
  // let attributes = ['filter-key', 'filter-search', 'filter-sort-key', 'filter-on', 'filter-limit']