@cocreate/render 1.22.8 → 1.23.0
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 +7 -0
- package/demo/renderKey.html +9 -8
- package/package.json +1 -1
- package/src/index.js +27 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.23.0](https://github.com/CoCreate-app/CoCreate-render/compare/v1.22.8...v1.23.0) (2023-04-13)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* 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))
|
|
7
|
+
|
|
1
8
|
## [1.22.8](https://github.com/CoCreate-app/CoCreate-render/compare/v1.22.7...v1.22.8) (2023-04-11)
|
|
2
9
|
|
|
3
10
|
|
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';
|
|
@@ -415,14 +415,31 @@ const CoCreateRender = {
|
|
|
415
415
|
|
|
416
416
|
};
|
|
417
417
|
|
|
418
|
-
function renderKey(element) {
|
|
418
|
+
function renderKey(element, params) {
|
|
419
|
+
// ToDo: custom render-keys
|
|
419
420
|
const form = element.closest("form") || document;
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
421
|
+
if (!params)
|
|
422
|
+
params = 'render-key'
|
|
423
|
+
|
|
424
|
+
let data = {}
|
|
425
|
+
let selector = `[${params}]`
|
|
426
|
+
let elements = form.querySelectorAll(selector);
|
|
427
|
+
for (let el of elements) {
|
|
428
|
+
let attribute = el.getAttribute(params)
|
|
429
|
+
if (attribute)
|
|
430
|
+
data[attribute] = el.getValue()
|
|
431
|
+
}
|
|
432
|
+
data = dotNotationToObject(data)
|
|
433
|
+
let renderData = {data: {[params]: data}}
|
|
434
|
+
|
|
435
|
+
let templateSelector = `[template_id='${params}']`
|
|
436
|
+
let template = document.querySelectorAll(templateSelector);
|
|
437
|
+
if (template)
|
|
438
|
+
renderData.elements = template
|
|
439
|
+
else
|
|
440
|
+
renderData.selector = `[template='${params}']`
|
|
441
|
+
|
|
442
|
+
CoCreateRender.data(renderData);
|
|
426
443
|
|
|
427
444
|
document.dispatchEvent(new CustomEvent('renderKey', {
|
|
428
445
|
detail: { data }
|
|
@@ -431,9 +448,8 @@ function renderKey(element) {
|
|
|
431
448
|
|
|
432
449
|
action.init({
|
|
433
450
|
name: "renderKey",
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
renderKey(btn);
|
|
451
|
+
callback: (btn, params) => {
|
|
452
|
+
renderKey(btn, params);
|
|
437
453
|
}
|
|
438
454
|
});
|
|
439
455
|
|