@cocreate/elements 1.24.3 → 1.25.1

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,22 @@
1
+ ## [1.25.1](https://github.com/CoCreate-app/CoCreate-elements/compare/v1.25.0...v1.25.1) (2023-10-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * compbin Actions in to one array of Actions ([716602d](https://github.com/CoCreate-app/CoCreate-elements/commit/716602dd74368e32be5f1e053903b32b54fb003d))
7
+
8
+ # [1.25.0](https://github.com/CoCreate-app/CoCreate-elements/compare/v1.24.3...v1.25.0) (2023-10-22)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * conditions ([484ad35](https://github.com/CoCreate-app/CoCreate-elements/commit/484ad358f13fc07e92ebafbf710ccdc1fb740950))
14
+
15
+
16
+ ### Features
17
+
18
+ * ObjectId() returns an object containg the parts iof the _id along with a toString() function ([82e3956](https://github.com/CoCreate-app/CoCreate-elements/commit/82e3956db5c5bc966d160a04d9067bc039c34d37))
19
+
1
20
  ## [1.24.3](https://github.com/CoCreate-app/CoCreate-elements/compare/v1.24.2...v1.24.3) (2023-10-20)
2
21
 
3
22
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/elements",
3
- "version": "1.24.3",
3
+ "version": "1.25.1",
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/form.js CHANGED
@@ -38,7 +38,7 @@ function runObjectId(form) {
38
38
  // Sets the object id for each array in the array.
39
39
  for (let i = 0; i < arrays.length; i++) {
40
40
  // TODO: needs access to setTypeValue
41
- setTypeValue(form, { array: arrays[i], object: [{ _id: ObjectId() }] });
41
+ setTypeValue(form, { array: arrays[i], object: [{ _id: ObjectId().toString() }] });
42
42
  }
43
43
  }
44
44
 
package/src/index.js CHANGED
@@ -28,7 +28,7 @@ import Actions from '@cocreate/actions';
28
28
  import CRUD from '@cocreate/crud-client';
29
29
  import { dotNotationToObject, queryElements, queryData, sortData, getAttributes, getAttributeNames, checkValue } from '@cocreate/utils';
30
30
  import filter from '@cocreate/filter';
31
- import { render, renderedNodes } from '@cocreate/render';
31
+ import render from '@cocreate/render';
32
32
  import '@cocreate/element-prototype';
33
33
  import './fetchSrc';
34
34
  import { reset } from './form'
@@ -73,13 +73,13 @@ async function initElement(el) {
73
73
  // if found add the node as an element, if the element has crud attributes also add as the element
74
74
  for (let attribute of el.attributes) {
75
75
  if (attribute.match(/{{(.*?)}}/)) {
76
- let value = renderValue(attribute, undefined, attribute.value)
76
+ let value = render.renderValue(attribute, undefined, attribute.value)
77
77
  if (value)
78
78
  attribute.value = value
79
79
  }
80
80
  }
81
81
  if (el.innerHTML.match(/{{(.*?)}}/)) {
82
- let value = renderValue(el, undefined, el.innerHTML)
82
+ let value = render.renderValue(el, undefined, el.innerHTML)
83
83
  if (value)
84
84
  attribute.value = value
85
85
  }
@@ -110,9 +110,8 @@ async function initElement(el) {
110
110
  el.addEventListener('input', function (e) {
111
111
  const { object, key, isRealtime, isCrdt } = getAttributes(el);
112
112
  if (isRealtime == "false" || key == "_id") return;
113
-
114
113
  if (isCrdt == "true" && object && object !== 'pending') return
115
- if (object && e.detail && e.detail.skip == true) return;
114
+ if (e.detail && e.detail.skip == true) return;
116
115
  if (data.type !== 'object' && data[data.type] === 'pending') return
117
116
 
118
117
  save(el);
@@ -231,7 +230,9 @@ async function read(element, data, dataKey) {
231
230
  debounce.delete(dataKey.string)
232
231
  // TODO: should server support string and string array for type object, methods create, read, delete
233
232
  if (!data.$filter && data.type === 'object') {
234
- if (typeof data.object === 'string')
233
+ if (!data.object)
234
+ return
235
+ else if (typeof data.object === 'string')
235
236
  data.object = { _id: data.object }
236
237
  else if (Array.isArray(data.object)) {
237
238
  if (data.object.length)
@@ -880,7 +881,7 @@ Observer.init({
880
881
  clearTimeout(delayTimer);
881
882
  debounce.delete(mutation.target)
882
883
 
883
- let renderedNode = renderedNodes.get(mutation.target)
884
+ let renderedNode = render.renderedNodes.get(mutation.target)
884
885
  if (!renderedNode) return
885
886
 
886
887
  if (!mutation.movedFrom) return
@@ -987,7 +988,7 @@ function dndNewData(element, data) {
987
988
 
988
989
  let keyPath, clonesMap, clones, index
989
990
 
990
- let renderedNode = renderedNodes.get(element)
991
+ let renderedNode = render.renderedNodes.get(element)
991
992
  if (renderedNode) {
992
993
  keyPath = renderedNode.keyPath
993
994
  clonesMap = renderedNode.template.clones
@@ -1046,54 +1047,55 @@ Observer.init({
1046
1047
  }
1047
1048
  });
1048
1049
 
1049
- Actions.init({
1050
- name: "save",
1051
- endEvent: "saved",
1052
- callback: (action) => {
1053
- const form = action.element.closest("form");
1054
- save(form);
1055
- }
1056
- });
1057
-
1058
- Actions.init({
1059
- name: "delete",
1060
- endEvent: "deleted",
1061
- callback: async (action) => {
1062
- let elements = queryElements({ element: action.element, prefix: 'delete' });
1063
- if (elements === false)
1064
- elements = [action.element]
1065
-
1066
- for (let i = 0; i < elements.length; i++) {
1067
- const data = getObject(elements[i]);
1068
- if (!data) return
1069
- data.method = 'delete.' + data.type
1070
-
1071
- if (elements[i].renderValue) {
1072
- let selected = elements[i].querySelectorAll('.selected')
1073
- data[data.type] = []
1074
- for (let j = 0; j < selected.length; j++) {
1075
- let attribute = selected[j].getAttribute(data.type)
1076
- if (attribute) {
1077
- attribute = attribute.split(',')
1078
- for (let k = 0; k < attribute.length; k++) {
1079
- if (data.type === 'object')
1080
- data[data.type].push({ _id: attribute[k] })
1081
- else {
1082
- data[data.type].push(attribute[k])
1050
+ Actions.init([
1051
+ {
1052
+ name: "save",
1053
+ endEvent: "saved",
1054
+ callback: (action) => {
1055
+ const form = action.element.closest("form");
1056
+ save(form);
1057
+ }
1058
+ },
1059
+ {
1060
+ name: "delete",
1061
+ endEvent: "deleted",
1062
+ callback: async (action) => {
1063
+ let elements = queryElements({ element: action.element, prefix: 'delete' });
1064
+ if (elements === false)
1065
+ elements = [action.element]
1066
+
1067
+ for (let i = 0; i < elements.length; i++) {
1068
+ const data = getObject(elements[i]);
1069
+ if (!data) return
1070
+ data.method = 'delete.' + data.type
1071
+
1072
+ if (elements[i].renderValue) {
1073
+ let selected = elements[i].querySelectorAll('.selected')
1074
+ data[data.type] = []
1075
+ for (let j = 0; j < selected.length; j++) {
1076
+ let attribute = selected[j].getAttribute(data.type)
1077
+ if (attribute) {
1078
+ attribute = attribute.split(',')
1079
+ for (let k = 0; k < attribute.length; k++) {
1080
+ if (data.type === 'object')
1081
+ data[data.type].push({ _id: attribute[k] })
1082
+ else {
1083
+ data[data.type].push(attribute[k])
1084
+ }
1083
1085
  }
1084
1086
  }
1085
1087
  }
1086
- }
1087
- } else if (data.type === 'object' && typeof data[data.type] === 'string')
1088
- data[data.type] = { _id: data[data.type] }
1088
+ } else if (data.type === 'object' && typeof data[data.type] === 'string')
1089
+ data[data.type] = { _id: data[data.type] }
1089
1090
 
1090
- let response = await CRUD.send(data)
1091
- document.dispatchEvent(new CustomEvent('deleted', {
1092
- detail: response
1093
- }));
1091
+ let response = await CRUD.send(data)
1092
+ document.dispatchEvent(new CustomEvent('deleted', {
1093
+ detail: response
1094
+ }));
1095
+ }
1094
1096
  }
1095
1097
  }
1096
- });
1098
+ ]);
1097
1099
 
1098
1100
  init();
1099
1101