@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 +19 -0
- package/package.json +1 -1
- package/src/form.js +1 -1
- package/src/index.js +52 -50
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.
|
|
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
|
|
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 (
|
|
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 (
|
|
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
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
}
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
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
|
-
|
|
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
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
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
|
|