@cocreate/render 1.22.8 → 1.23.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 +14 -0
- package/demo/renderKey.html +9 -8
- package/package.json +1 -1
- package/src/index.js +31 -13
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
## [1.23.1](https://github.com/CoCreate-app/CoCreate-render/compare/v1.23.0...v1.23.1) (2023-04-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* replaced object.entries with Object.keys ([99c4046](https://github.com/CoCreate-app/CoCreate-render/commit/99c404626e4e913433d2b1922cda419fb8dfe186))
|
|
7
|
+
|
|
8
|
+
# [1.23.0](https://github.com/CoCreate-app/CoCreate-render/compare/v1.22.8...v1.23.0) (2023-04-13)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* render-key supports defing custom attribute by applying attribute name as a param in action. renderKey(customAttr) ([71ec778](https://github.com/CoCreate-app/CoCreate-render/commit/71ec77801d4d5a9b7e752d436352e68ba0e8d8e2))
|
|
14
|
+
|
|
1
15
|
## [1.22.8](https://github.com/CoCreate-app/CoCreate-render/compare/v1.22.7...v1.22.8) (2023-04-11)
|
|
2
16
|
|
|
3
17
|
|
package/demo/renderKey.html
CHANGED
|
@@ -11,18 +11,19 @@
|
|
|
11
11
|
<body class="padding:20px">
|
|
12
12
|
|
|
13
13
|
<form>
|
|
14
|
-
<input render-key="
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
<
|
|
19
|
-
<
|
|
14
|
+
<input render-key="name" value="test">
|
|
15
|
+
<input render-key="domain" value="test.com">
|
|
16
|
+
<div template_id="render-key">
|
|
17
|
+
<div>This is <b>{{render-key.name}}</b></div>
|
|
18
|
+
<p>This {{render-key.name}}</p>
|
|
19
|
+
<input value="{{render-key.name}}">
|
|
20
|
+
<input value="{{render-key.domain}}">
|
|
21
|
+
<button actions='renderKey'>Create Form</button>
|
|
20
22
|
</div>
|
|
21
23
|
</form>
|
|
22
24
|
|
|
23
25
|
<!-- <script src="../dist/CoCreate-render-key.js"></script> -->
|
|
24
|
-
|
|
25
|
-
<!-- <script src="https://cdn.cocreate.app/1.49.2/CoCreate.min.js"></script> -->
|
|
26
|
+
<script src="https://cdn.cocreate.app/latest/CoCreate.min.js"></script>
|
|
26
27
|
|
|
27
28
|
</body>
|
|
28
29
|
|
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import action from '@cocreate/actions';
|
|
3
3
|
import observer from '@cocreate/observer';
|
|
4
4
|
import uuid from '@cocreate/uuid';
|
|
5
|
-
import { queryDocumentSelector, getValueFromObject } from '@cocreate/utils';
|
|
5
|
+
import { queryDocumentSelector, getValueFromObject, dotNotationToObject } from '@cocreate/utils';
|
|
6
6
|
import '@cocreate/element-prototype';
|
|
7
7
|
import './index.css';
|
|
8
8
|
// import api from '@cocreate/api';
|
|
@@ -82,7 +82,8 @@ const CoCreateRender = {
|
|
|
82
82
|
let flag = true;
|
|
83
83
|
if (str)
|
|
84
84
|
flag = false;
|
|
85
|
-
for (const
|
|
85
|
+
for (const key of Object.keys(value)) {
|
|
86
|
+
let val = value[key]
|
|
86
87
|
if (typeof(val) == "object") {
|
|
87
88
|
str += `${key}: \n`;
|
|
88
89
|
this.generateString(val, str)
|
|
@@ -171,7 +172,8 @@ const CoCreateRender = {
|
|
|
171
172
|
let array = []
|
|
172
173
|
if (!data)
|
|
173
174
|
return array
|
|
174
|
-
for (const
|
|
175
|
+
for (const key of Object.keys(data)) {
|
|
176
|
+
let value = data[key]
|
|
175
177
|
if (!exclude.includes(key)) {
|
|
176
178
|
let type = 'string';
|
|
177
179
|
if (typeof(value) == "object")
|
|
@@ -415,14 +417,31 @@ const CoCreateRender = {
|
|
|
415
417
|
|
|
416
418
|
};
|
|
417
419
|
|
|
418
|
-
function renderKey(element) {
|
|
420
|
+
function renderKey(element, params) {
|
|
421
|
+
// ToDo: custom render-keys
|
|
419
422
|
const form = element.closest("form") || document;
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
423
|
+
if (!params)
|
|
424
|
+
params = 'render-key'
|
|
425
|
+
|
|
426
|
+
let data = {}
|
|
427
|
+
let selector = `[${params}]`
|
|
428
|
+
let elements = form.querySelectorAll(selector);
|
|
429
|
+
for (let el of elements) {
|
|
430
|
+
let attribute = el.getAttribute(params)
|
|
431
|
+
if (attribute)
|
|
432
|
+
data[attribute] = el.getValue()
|
|
433
|
+
}
|
|
434
|
+
data = dotNotationToObject(data)
|
|
435
|
+
let renderData = {data: {[params]: data}}
|
|
436
|
+
|
|
437
|
+
let templateSelector = `[template_id='${params}']`
|
|
438
|
+
let template = document.querySelectorAll(templateSelector);
|
|
439
|
+
if (template)
|
|
440
|
+
renderData.elements = template
|
|
441
|
+
else
|
|
442
|
+
renderData.selector = `[template='${params}']`
|
|
443
|
+
|
|
444
|
+
CoCreateRender.data(renderData);
|
|
426
445
|
|
|
427
446
|
document.dispatchEvent(new CustomEvent('renderKey', {
|
|
428
447
|
detail: { data }
|
|
@@ -431,9 +450,8 @@ function renderKey(element) {
|
|
|
431
450
|
|
|
432
451
|
action.init({
|
|
433
452
|
name: "renderKey",
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
renderKey(btn);
|
|
453
|
+
callback: (btn, params) => {
|
|
454
|
+
renderKey(btn, params);
|
|
437
455
|
}
|
|
438
456
|
});
|
|
439
457
|
|