@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 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
 
@@ -11,18 +11,19 @@
11
11
  <body class="padding:20px">
12
12
 
13
13
  <form>
14
- <input render-key="renderKey.name">
15
- <div template_id="renderKey">
16
- <div>This is <b>{{renderKey.name}}</b></div>
17
- <p>This {{renderKey.name}}</p>
18
- <input value="{{renderKey.name}}">
19
- <button actions='renderKey' href="https://{{renderKey.name}}/admin/signin.html">Create Form</button>
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
- <script src="https://cdn.cocreate.app/latest/CoCreate.min.js"></script>
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cocreate/render",
3
- "version": "1.22.8",
3
+ "version": "1.23.1",
4
4
  "description": "A simple render component in vanilla javascript. Easily configured using HTML5 attributes and/or JavaScript API.",
5
5
  "keywords": [
6
6
  "render",
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 [key, val] of Object.entries(value)) {
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 [key, value] of Object.entries(data)) {
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
- let data = CoCreate.api.getFormData('render-key', 'renderKey', form);
421
-
422
- CoCreateRender.data({
423
- selector: "[template='renderKey']",
424
- data: {renderKey: data}
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
- endEvent: "renderKey",
435
- callback: (btn, data) => {
436
- renderKey(btn);
453
+ callback: (btn, params) => {
454
+ renderKey(btn, params);
437
455
  }
438
456
  });
439
457