dbm 1.4.14 → 1.4.16

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.
Files changed (89) hide show
  1. package/css/admin.css +6 -1
  2. package/css/all.css +4 -1
  3. package/css/cookie-bar.css +40 -0
  4. package/css/elements.css +41 -0
  5. package/css/form-field.css +46 -0
  6. package/css/grid.css +8 -0
  7. package/css/icons.css +2 -0
  8. package/css/utils.css +12 -6
  9. package/dbm.js +1 -1
  10. package/ecommerce/Cart.js +44 -9
  11. package/ecommerce/LocalStorageCartLoader.js +7 -3
  12. package/flow/controllers/select/SingleSelection.js +7 -0
  13. package/flow/updatefunctions/basic/index.js +1 -1
  14. package/graphapi/webclient/decode/Relations.js +12 -0
  15. package/graphapi/webclient/decode/index.js +3 -0
  16. package/loading/index.js +34 -0
  17. package/node/googlemaps/index.js +53 -0
  18. package/node/index.js +1 -0
  19. package/package.json +1 -1
  20. package/react/BaseObject.js +32 -5
  21. package/react/admin/editor/Editor.js +5 -6
  22. package/react/admin/editor/fields/ArrayField.js +24 -7
  23. package/react/admin/editor/fields/Link.js +53 -0
  24. package/react/admin/editor/fields/index.js +2 -1
  25. package/react/admin/objects/ExploreObject.js +103 -0
  26. package/react/admin/objects/explore/Relation.js +67 -0
  27. package/react/admin/objects/explore/RelationType.js +38 -0
  28. package/react/admin/objects/explore/RelationTypeGroup.js +22 -0
  29. package/react/admin/objects/explore/index.js +3 -0
  30. package/react/admin/objects/index.js +3 -1
  31. package/react/admin/objects/itemeditors/DraggableHierarchyDisplay.js +13 -5
  32. package/react/admin/objects/itemeditors/HierarchyOrderedRelationsList.js +2 -1
  33. package/react/admin/objects/itemeditors/TextAreaField.js +26 -0
  34. package/react/admin/objects/itemeditors/index.js +1 -0
  35. package/react/animation/AnimationController.js +1 -3
  36. package/react/animation/index.js +15 -0
  37. package/react/area/InsertElement.js +3 -0
  38. package/react/area/Layout.js +20 -0
  39. package/react/area/List.js +4 -0
  40. package/react/area/NativeElement.js +37 -0
  41. package/react/area/RepeatedSlider.js +73 -0
  42. package/react/area/SingleItemSlideshow.js +69 -0
  43. package/react/area/SlideshowSteps.js +45 -0
  44. package/react/area/index.js +6 -1
  45. package/react/blocks/admin/objects/Explore.js +18 -0
  46. package/react/blocks/admin/objects/index.js +2 -1
  47. package/react/blocks/content/Buttons.js +33 -0
  48. package/react/blocks/content/SectionsGrid.js +19 -0
  49. package/react/blocks/content/Spacing.js +13 -0
  50. package/react/blocks/content/SpacingLine.js +18 -0
  51. package/react/blocks/content/index.js +5 -1
  52. package/react/blocks/index.js +150 -1
  53. package/react/context/AddContextVariables.js +9 -4
  54. package/react/cookies/CookieBar.js +1 -1
  55. package/react/cookies/CookieOverlayMessage.js +2 -2
  56. package/react/dynamic/DesignRepositoryProxy.js +22 -0
  57. package/react/dynamic/DynamicDesignElement.js +24 -0
  58. package/react/dynamic/index.js +60 -0
  59. package/react/form/EditObjectProperty.js +15 -2
  60. package/react/form/EditableContent.js +71 -0
  61. package/react/form/GraphApiImageWithAltText.js +268 -0
  62. package/react/form/Link.js +40 -0
  63. package/react/form/Url.js +25 -0
  64. package/react/form/index.js +4 -0
  65. package/react/index.js +12 -0
  66. package/react/interaction/Checked.js +32 -0
  67. package/react/interaction/ClickOutsideTrigger.js +1 -1
  68. package/react/interaction/index.js +2 -1
  69. package/react/svg/AddGlobalFilterClasses.js +3 -3
  70. package/react/svg/BlendColorFilter.js +42 -0
  71. package/react/svg/GlobalFilters.js +1 -1
  72. package/react/svg/MatrixFilter.js +1 -3
  73. package/react/svg/index.js +20 -0
  74. package/react/text/index.js +4 -0
  75. package/repository/Item.js +8 -0
  76. package/repository/admin/index.js +10 -0
  77. package/repository/index.js +3 -0
  78. package/repository/proxy/RepositoryProxy.js +60 -0
  79. package/repository/proxy/index.js +1 -0
  80. package/site/BrowserUpdater.js +3 -3
  81. package/startup/index.js +1 -1
  82. package/tracking/Controller.js +14 -8
  83. package/tracking/DataLayerTracker.js +27 -18
  84. package/tracking/GtagTracker.js +112 -0
  85. package/tracking/MetaPixelTracker.js +1 -1
  86. package/tracking/SingleAccountMetaPixelTracker.js +118 -0
  87. package/tracking/TagManagerTracker.js +2 -2
  88. package/tracking/index.js +24 -0
  89. package/utils/svg/ColorMatrixFunctions.js +13 -0
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import Dbm from "../../../../index.js";
3
3
 
4
- export default class SelectObjectsField extends Dbm.react.BaseObject {
4
+ export default class ArrayField extends Dbm.react.BaseObject {
5
5
  _construct() {
6
6
  super._construct();
7
7
 
@@ -66,14 +66,31 @@ export default class SelectObjectsField extends Dbm.react.BaseObject {
66
66
 
67
67
 
68
68
  return this._createMainElement(Dbm.react.form.EditArray, {value: this.item.properties.value},
69
- React.createElement("div", {},
70
- this.getPropValue("children"),
71
- React.createElement(Dbm.react.interaction.CommandButton, {command: Dbm.commands.callFunction(this._removeItem, [Dbm.react.source.contextVariable("arrayEditor"), Dbm.react.source.contextVariable("item")])},
72
- React.createElement("div", {}, "Remove")
69
+ React.createElement("div", {"className": "flex-row small-item-spacing"},
70
+ React.createElement("div", {"className": "flex-row-item flex-resize"},
71
+ this.getPropValue("children")
72
+ ),
73
+ React.createElement("div", {"className": "flex-row-item flex-no-resize"},
74
+ React.createElement("div", {className: "spacing small"}),
75
+ React.createElement(Dbm.react.interaction.ConfirmButton, {"command": this._getScopedCallFunctionCommand(this._removeItem, [Dbm.react.source.contextVariable("arrayEditor"), Dbm.react.source.contextVariable("item")])},
76
+ React.createElement(Dbm.react.image.Image, {"src": "/assets/img/icons/delete.svg", "className": "background-contain text-row-icon action-icon-color cursor-pointer"}),
77
+ React.createElement("div", {"data-slot": "confirm", className: "absolute-container cursor-pointer", title: "Click to remove"},
78
+ React.createElement(Dbm.react.image.Image, {"src": "/assets/img/icons/delete.svg", "className": "background-contain text-row-icon hover-icon remove-action-icon-color cursor-pointer"}),
79
+ React.createElement("div", {className:"centered-tip-text no-pointer-events"},
80
+ "Remove?"
81
+ )
82
+ )
83
+ )
73
84
  )
74
85
  ),
75
- React.createElement(Dbm.react.interaction.CommandButton, {"data-slot": "after", command: Dbm.commands.callFunction(this._add.bind(this), [Dbm.react.source.contextVariable("arrayEditor")])},
76
- React.createElement("div", {className: "action-button action-button-padding"}, "Add")
86
+ React.createElement("div", {"data-slot": "spacing", className: "spacing small"}),
87
+ React.createElement("div", {"data-slot": "after", "className": "flex-row"},
88
+ React.createElement("div", {className: "spacing small"}),
89
+ React.createElement("div", {"className": "flex-row-item"},
90
+ React.createElement(Dbm.react.interaction.CommandButton, {command: Dbm.commands.callFunction(this._add.bind(this), [Dbm.react.source.contextVariable("arrayEditor")])},
91
+ React.createElement("div", {className: "action-button action-button-padding"}, "Add")
92
+ )
93
+ )
77
94
  )
78
95
  );
79
96
  }
@@ -0,0 +1,53 @@
1
+ import React from "react";
2
+ import Dbm from "../../../../index.js";
3
+
4
+ export default class Link extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+
8
+ this._valueChangedBound = this._valueChanged.bind(this);
9
+ this._objectChangedBound = this._objectChanged.bind(this);
10
+
11
+ Dbm.flow.addUpdateCommand(this.item.requireProperty("value", this._getObjectData()), Dbm.commands.callFunction(this._valueChangedBound));
12
+
13
+ let editorData = Dbm.objectPath(this.context, "moduleData.editorData");
14
+ Dbm.flow.addUpdateCommand(editorData.properties.data, Dbm.commands.callFunction(this._objectChangedBound));
15
+ }
16
+
17
+ _getObjectData() {
18
+ let fieldName = this.getPropValue("name");
19
+
20
+ let editorData = Dbm.objectPath(this.context, "moduleData.editorData");
21
+
22
+ let returnData = editorData.data[fieldName];
23
+ if(!returnData) {
24
+ returnData = {};
25
+ }
26
+
27
+ return returnData;
28
+ }
29
+
30
+
31
+ _valueChanged() {
32
+ //console.log("_valueChanged");
33
+
34
+ let fieldName = this.getPropValue("name");
35
+ let newValue = this.item.value;
36
+ let editorData = Dbm.objectPath(this.context, "moduleData.editorData");
37
+
38
+ let newData = {...editorData.data};
39
+ newData[fieldName] = newValue;
40
+
41
+ editorData.data = newData;
42
+ }
43
+
44
+ _objectChanged() {
45
+ //console.log("_objectChanged");
46
+
47
+ this.item.value = this._getObjectData();
48
+ }
49
+
50
+ _renderMainElement() {
51
+ return this._createMainElement(Dbm.react.form.Link, {value: this.item.properties.value, className: "standard-field standard-field-padding full-width"});
52
+ }
53
+ }
@@ -6,4 +6,5 @@ export {default as SelectObjectField} from "./SelectObjectField.js";
6
6
  export {default as SelectObjectsField} from "./SelectObjectsField.js";
7
7
  export {default as SelectionField} from "./SelectionField.js";
8
8
  export {default as ArrayField} from "./ArrayField.js";
9
- export {default as EditorBlocks} from "./EditorBlocks.js";
9
+ export {default as EditorBlocks} from "./EditorBlocks.js";
10
+ export {default as Link} from "./Link.js";
@@ -0,0 +1,103 @@
1
+ import React from "react";
2
+ import Dbm from "../../../index.js";
3
+
4
+ export default class ExploreObject extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+
8
+ let id = this.getPropValue("id");
9
+
10
+ this.item.requireProperty("fields", []);
11
+ this.item.requireProperty("incomingRelations", []);
12
+ this.item.requireProperty("outgoingRelations", []);
13
+
14
+ let allLoaded = Dbm.flow.updatefunctions.logic.allAtValue(Dbm.loading.LoadingStatus.LOADED);
15
+ this.item.requireProperty("loaded", false).addUpdate(this._getScopedCallFunctionCommand(this._loaded));
16
+
17
+ {
18
+ let request = Dbm.getGraphApi().requestRange(
19
+ [
20
+ {"type": "includePrivate"},
21
+ {"type": "includeDraft"},
22
+ {"type": "idSelection", "ids": [id]},
23
+ ],
24
+ ["objectTypes", "name", "identifier", "admin_fields", "relations"]
25
+ );
26
+ allLoaded.addCheck(request.properties.status);
27
+ }
28
+
29
+ this.item.properties.loaded.connectInput(allLoaded.output.properties.value);
30
+ }
31
+
32
+ _loaded() {
33
+ let id = this.getPropValue("id");
34
+ let item = Dbm.repository.getItem(id);
35
+ console.log(">>>>>>>>>>", item);
36
+
37
+ let encodedFields = [];
38
+ let fields = item.fields;
39
+ for(let fieldName in fields) {
40
+ encodedFields.push({"name": fieldName, "value": fields[fieldName]});
41
+ }
42
+
43
+ this.item.fields = encodedFields;
44
+
45
+ this.item.incomingRelations = Dbm.utils.ArrayFunctions.sortOnField([].concat(item["relations/in"]["all"]), "type");
46
+ this.item.outgoingRelations = Dbm.utils.ArrayFunctions.sortOnField([].concat(item["relations/out"]["all"]), "type");
47
+ console.log(this.item.incomingRelations);
48
+ }
49
+
50
+ _renderMainElement() {
51
+
52
+ let id = this.getPropValue("id");
53
+ let item = Dbm.repository.getItem(id);
54
+
55
+ return React.createElement("div", {},
56
+
57
+ React.createElement(Dbm.react.area.HasData, {check: this.item.properties.loaded},
58
+ React.createElement(Dbm.react.context.AddItemByIdToContext, {"id": id},
59
+
60
+ React.createElement("h2", {"className": "no-margins"},
61
+ Dbm.react.text.text(Dbm.react.source.item("id")),
62
+ " - ",
63
+ Dbm.react.text.text(Dbm.react.source.item("name")),
64
+ ),
65
+ React.createElement("div", {"className": "small-description"},
66
+ Dbm.react.text.text(Dbm.react.source.item("identifier"))
67
+ ),
68
+ React.createElement("div", {"className": "spacing small"}),
69
+ React.createElement(Dbm.react.area.List, {items: Dbm.react.source.item("objectTypes"), className: "inline-list standard-tag-list standard-tag-list-expand", "as": "objectType", "keyField": "(root)"},
70
+ React.createElement("div", {"className": "standard-tag standard-tag-padding standard-tag-list-item inline-list-item display-inline-block"},
71
+ Dbm.react.text.text(Dbm.react.source.contextVariable("objectType"))
72
+ )
73
+ ),
74
+ React.createElement("div", {"className": "spacing small"}),
75
+ React.createElement(Dbm.react.area.List, {items: this.item.properties.fields, "as": "field", "keyField": "name"},
76
+ React.createElement("div", {},
77
+ React.createElement("div", {},
78
+ Dbm.react.text.text(Dbm.react.source.contextVariable("field.name"))
79
+ ),
80
+ React.createElement("div", {},
81
+ Dbm.react.text.text(Dbm.react.source.contextVariable("field.value"))
82
+ )
83
+ )
84
+ ),
85
+ React.createElement("div", {"className": "spacing small"}),
86
+ React.createElement("div", {"className": "flex-row small-item-spacing halfs"},
87
+ React.createElement("div", {"className": "flex-row-item"},
88
+ React.createElement(Dbm.react.area.List, {items: this.item.properties.incomingRelations, "keyField": "type"},
89
+ React.createElement(Dbm.react.admin.objects.explore.RelationType, {"objectLink": "from"})
90
+ ),
91
+ ),
92
+ React.createElement("div", {"className": "flex-row-item"},
93
+ React.createElement(Dbm.react.area.List, {items: this.item.properties.outgoingRelations, "keyField": "type"},
94
+ React.createElement(Dbm.react.admin.objects.explore.RelationType, {"objectLink": "to"})
95
+ ),
96
+ )
97
+ )
98
+ )
99
+ )
100
+
101
+ )
102
+ }
103
+ }
@@ -0,0 +1,67 @@
1
+ import React from "react";
2
+ import Dbm from "../../../../index.js";
3
+
4
+ export default class Relation extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+
8
+ this.item.requireProperty("loaded", false);
9
+
10
+ }
11
+
12
+ _constructAfterProps() {
13
+
14
+ super._constructAfterProps();
15
+
16
+ let relation = this.getPropValue("relation");
17
+ let objectId = Dbm.objectPath(relation, this.getPropValue("objectLink") + ".id");
18
+
19
+ let allLoaded = Dbm.flow.updatefunctions.logic.allAtValue(Dbm.loading.LoadingStatus.LOADED);
20
+
21
+ {
22
+ let request = Dbm.getGraphApi().requestRange(
23
+ [
24
+ {"type": "includePrivate"},
25
+ {"type": "includeDraft"},
26
+ {"type": "idSelection", "ids": [objectId]},
27
+ ],
28
+ ["name", "identifier"]
29
+ );
30
+ allLoaded.addCheck(request.properties.status);
31
+ }
32
+
33
+ this.item.properties.loaded.connectInput(allLoaded.output.properties.value);
34
+ }
35
+
36
+ _renderMainElement() {
37
+
38
+ let relation = this.getPropValue("relation");
39
+ let objectId = Dbm.objectPath(relation, this.getPropValue("objectLink") + ".id");
40
+
41
+ let url = "/admin/items/item/?id=" + objectId;
42
+
43
+ return this._createMainElement("div", {},
44
+ React.createElement(Dbm.react.text.Link, {"href": url, "className": "custom-styled-link"},
45
+ React.createElement("div", {"className": "flex-row small-item-spacing"},
46
+ React.createElement("div", {"className": "flex-row-item"},
47
+ Dbm.react.text.text(objectId)
48
+ ),
49
+ React.createElement("div", {"className": "flex-row-item"},
50
+ React.createElement(Dbm.react.area.HasData, {"check": this.item.properties.loaded},
51
+ React.createElement(Dbm.react.context.AddItemByIdToContext, {"id": objectId},
52
+ Dbm.react.text.text(Dbm.react.source.item("name"))
53
+ )
54
+ )
55
+ )
56
+ ),
57
+ React.createElement("div", {"className": "small-description"},
58
+ React.createElement(Dbm.react.area.HasData, {"check": this.item.properties.loaded},
59
+ React.createElement(Dbm.react.context.AddItemByIdToContext, {"id": objectId},
60
+ Dbm.react.text.text(Dbm.react.source.item("identifier"))
61
+ )
62
+ )
63
+ )
64
+ )
65
+ )
66
+ }
67
+ }
@@ -0,0 +1,38 @@
1
+ import React from "react";
2
+ import Dbm from "../../../../index.js";
3
+
4
+ export default class RelationType extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ _renderMainElement() {
10
+
11
+ let relationType = this.context.item;
12
+ let objectLink = this.getPropValue("objectLink");
13
+
14
+
15
+ let allTypedRelations = [];
16
+
17
+ let currentArray = relationType.allRelations;
18
+ let currentArrayLength = currentArray.length;
19
+ for(let i = 0; i < currentArrayLength; i++) {
20
+ let currentRelation = currentArray[i];
21
+
22
+ let currentArray2 = Dbm.objectPath(currentRelation, objectLink + ".objectTypes");
23
+ let currentArray2Length = currentArray2.length;
24
+ for(let j = 0; j < currentArray2Length; j++) {
25
+ allTypedRelations.push({"type": currentArray2[j], "relation": currentRelation})
26
+ }
27
+ }
28
+
29
+ let groups = Dbm.utils.ArrayFunctions.sortOnField(Dbm.utils.ArrayFunctions.group(allTypedRelations, "type"), "key");
30
+
31
+ return this._createMainElement("div", {},
32
+ React.createElement("div", {}, Dbm.react.text.text(Dbm.react.source.item("type"))),
33
+ React.createElement(Dbm.react.area.List, {"items": groups, "as": "typeGroup"},
34
+ React.createElement(Dbm.react.admin.objects.explore.RelationTypeGroup, {"name": Dbm.react.source.contextVariable("typeGroup.key"), "relations": Dbm.react.source.contextVariable("typeGroup.value"), "objectLink": objectLink})
35
+ ),
36
+ )
37
+ }
38
+ }
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import Dbm from "../../../../index.js";
3
+
4
+ export default class RelationTypeGroup extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ _renderMainElement() {
10
+
11
+ let objectLink = this.getPropValue("objectLink");
12
+
13
+ return this._createMainElement("div", {},
14
+ React.createElement("div", {},
15
+ Dbm.react.text.text(this.getPropValue("name"))
16
+ ),
17
+ React.createElement(Dbm.react.area.List, {"items": this.getPropValue("relations"), "as": "relationWithType"},
18
+ React.createElement(Dbm.react.admin.objects.explore.Relation, {"relation": Dbm.react.source.contextVariable("relationWithType.relation"), "objectLink": objectLink})
19
+ )
20
+ )
21
+ }
22
+ }
@@ -0,0 +1,3 @@
1
+ export {default as RelationType} from "./RelationType.js";
2
+ export {default as RelationTypeGroup} from "./RelationTypeGroup.js";
3
+ export {default as Relation} from "./Relation.js";
@@ -5,5 +5,7 @@ export {default as InjectObjectTypeEditor} from "./InjectObjectTypeEditor.js";
5
5
  export {default as RunObjectCommands} from "./RunObjectCommands.js";
6
6
  export {default as UserList} from "./UserList.js";
7
7
  export {default as UserListRow} from "./UserListRow.js";
8
+ export {default as ExploreObject} from "./ExploreObject.js";
8
9
 
9
- export * as itemeditors from "./itemeditors/index.js";
10
+ export * as itemeditors from "./itemeditors/index.js";
11
+ export * as explore from "./explore/index.js";
@@ -18,6 +18,12 @@ export default class DraggableHierarchyDisplay extends Dbm.react.BaseObject {
18
18
  _renderMainElement() {
19
19
 
20
20
  let children = this.getPropValue("children");
21
+ let depthLimit = this.getPropValueWithoutNull("depthLimit", -1);
22
+ let newDepthLimit = depthLimit;
23
+ if(depthLimit > 0) {
24
+ newDepthLimit = depthLimit-1;
25
+ }
26
+ let canAddChilds = (depthLimit !== 0);
21
27
 
22
28
  return React.createElement("div", {},
23
29
  React.createElement(Dbm.react.context.AddItemToContext, {"item": Dbm.react.source.contextVariable("hierarchyItem.linkedItem")},
@@ -32,7 +38,7 @@ export default class DraggableHierarchyDisplay extends Dbm.react.BaseObject {
32
38
  ),
33
39
  React.createElement("div", {className: "flex-row-item flex-no-resize"},
34
40
  React.createElement("div", {className: "spacing small"}),
35
- React.createElement(Dbm.react.interaction.ConfirmButton, {"command": Dbm.commands.callFunction(this._remove.bind(this))},
41
+ React.createElement(Dbm.react.interaction.ConfirmButton, {"command": this._getScopedCallFunctionCommand(this._remove)},
36
42
  React.createElement(Dbm.react.image.Image, {"src": "/assets/img/icons/delete.svg", "className": "background-contain text-row-icon action-icon-color cursor-pointer"}),
37
43
  React.createElement("div", {"data-slot": "confirm", className: "absolute-container cursor-pointer", title: "Click to remove"},
38
44
  React.createElement(Dbm.react.image.Image, {"src": "/assets/img/icons/delete.svg", "className": "background-contain text-row-icon hover-icon remove-action-icon-color cursor-pointer"}),
@@ -50,14 +56,16 @@ export default class DraggableHierarchyDisplay extends Dbm.react.BaseObject {
50
56
  React.createElement("div", {className: "spacing small"}),
51
57
  React.createElement(Dbm.react.area.HasData, {check: Dbm.react.source.contextVariable("hierarchyItem.properties.children"), checkType: "notEmpty"},
52
58
  React.createElement(Dbm.react.area.List, {items: Dbm.react.source.contextVariable("hierarchyItem.properties.children"), as: "hierarchyItem"},
53
- React.createElement(Dbm.react.admin.objects.itemeditors.DraggableHierarchyDisplay, {}, children),
59
+ React.createElement(Dbm.react.admin.objects.itemeditors.DraggableHierarchyDisplay, {depthLimit: newDepthLimit}, children),
54
60
  React.createElement("div", {"data-slot": "spacing", className: "spacing small"}),
55
61
  ),
56
62
  React.createElement("div", {className: "spacing small"})
57
63
  ),
58
- React.createElement(Dbm.react.interaction.drag.DraggableItem, {skipDraggable: true, moveMode: "appendChild"},
59
- React.createElement("div", {className: "append-drop-position centered-cell-holder"},
60
- React.createElement("div", {})
64
+ React.createElement(Dbm.react.area.HasData, {check: canAddChilds},
65
+ React.createElement(Dbm.react.interaction.drag.DraggableItem, {skipDraggable: true, moveMode: "appendChild"},
66
+ React.createElement("div", {className: "append-drop-position centered-cell-holder"},
67
+ React.createElement("div", {})
68
+ )
61
69
  )
62
70
  )
63
71
  )
@@ -348,6 +348,7 @@ export default class HierarchyOrderedRelationsList extends Dbm.react.BaseObject
348
348
 
349
349
  let label = this.getPropValue("label");
350
350
  let children = this.getPropValue("children");
351
+ let depthLimit = this.getPropValueWithoutNull("depthLimit", -1);
351
352
 
352
353
  return React.createElement("div", {},
353
354
  React.createElement(Dbm.react.context.AddContextVariables, {"values": {"dragController": this, "hierarchyController": this}},
@@ -355,7 +356,7 @@ export default class HierarchyOrderedRelationsList extends Dbm.react.BaseObject
355
356
  React.createElement("div", {"className": ""},
356
357
  React.createElement(Dbm.react.area.List, {items: this.item.hierarchy.properties.children, as: "hierarchyItem"},
357
358
  React.createElement(Dbm.react.context.AddItemToContext, {"item": Dbm.react.source.contextVariable("hierarchyItem.linkedItem")},
358
- React.createElement(Dbm.react.admin.objects.itemeditors.DraggableHierarchyDisplay, {},
359
+ React.createElement(Dbm.react.admin.objects.itemeditors.DraggableHierarchyDisplay, {depthLimit: depthLimit},
359
360
  children
360
361
  )
361
362
  ),
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import Dbm from "../../../../index.js";
3
+
4
+ export default class TextAreaField extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ _renderMainElement() {
10
+
11
+ let label = this.getPropValue("label");
12
+ let fieldName = this.getPropValue("fieldName");
13
+
14
+ let fieldNameSource = Dbm.react.source.contextVariable("fieldName");
15
+ let editorValueSource = Dbm.react.source.contextVariable("valueEditor.editValue.value");
16
+
17
+ return React.createElement("div", {},
18
+ React.createElement("label", {className: "standard-field-label"}, label),
19
+ React.createElement(Dbm.react.context.AddContextVariables, {values: {"fieldName": fieldName}},
20
+ React.createElement(Dbm.react.admin.editorsgroup.EditField, {"fieldName": fieldNameSource},
21
+ React.createElement(Dbm.react.form.TextArea, {value: editorValueSource, className: "standard-field standard-field-padding full-width"})
22
+ )
23
+ )
24
+ )
25
+ }
26
+ }
@@ -20,3 +20,4 @@ export {default as RichTextField} from "./RichTextField.js";
20
20
  export {default as RichTextFieldWithTranslations} from "./RichTextFieldWithTranslations.js";
21
21
  export {default as FormattedField} from "./FormattedField.js";
22
22
  export {default as FormattedFieldWithTranslations} from "./FormattedFieldWithTranslations.js";
23
+ export {default as TextAreaField} from "./TextAreaField.js";
@@ -19,10 +19,8 @@ export default class AnimationController extends Dbm.core.BaseObject {
19
19
  //console.log("_updateStyle");
20
20
  let element = this.item.element;
21
21
 
22
-
23
-
24
22
  if(element) {
25
-
23
+
26
24
  let styleArray = [];
27
25
 
28
26
  let styleObject = this.item.style;
@@ -18,5 +18,20 @@ export const connectedAnimation = function(aStyleProperty) {
18
18
 
19
19
  newAnimationController.item.propertyInput("style", aStyleProperty);
20
20
 
21
+ return newAnimationController;
22
+ }
23
+
24
+ export const freeStyleTransformAnimation = function() {
25
+ let transform = new Dbm.flow.updatefunctions.dom.TransformStyle();
26
+
27
+ let newAnimationController = new Dbm.react.animation.AnimationController();
28
+
29
+ let styleObject = new Dbm.flow.updatefunctions.dom.StyleObject();
30
+ styleObject.addProperty("transform", transform.output.properties.value);
31
+
32
+ newAnimationController.item.propertyInput("style", styleObject.output.properties.style);
33
+ newAnimationController.item.setValue("styleProperties", styleObject);
34
+ newAnimationController.item.setValue("transformProperties", transform);
35
+
21
36
  return newAnimationController;
22
37
  }
@@ -20,6 +20,9 @@ export default class InsertElement extends Dbm.react.BaseObject {
20
20
  if(!element) {
21
21
  return React.createElement("div", {}, "No element set");
22
22
  }
23
+ else if(typeof(element) === "string") {
24
+ return element;
25
+ }
23
26
 
24
27
  let props = this._copyProps(element.props);
25
28
 
@@ -0,0 +1,20 @@
1
+ import React from "react";
2
+ import Dbm from "../../index.js";
3
+
4
+ export default class Layout extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+
8
+ let layoutProperty = this.context.layout;
9
+ }
10
+
11
+ _renderMainElement() {
12
+
13
+ let data = this.getPropValue("layout");
14
+
15
+ let layouts = Dbm.utils.ArrayFunctions.arrayOrSeparatedString(data);
16
+
17
+ return this._createMainElement(Dbm.react.area.HasData, {"check": this.context.layout, "checkType": "inArray", "compareValue": layouts}, this.getPropValue("children"));
18
+ }
19
+ }
20
+
@@ -53,6 +53,10 @@ export default class List extends Dbm.react.BaseObject {
53
53
  newChildren.push(React.createElement(Dbm.react.context.AddContextVariables, {key: key, values: values}, mainChildren));
54
54
  }
55
55
 
56
+ if(slots.wrapper) {
57
+ newChildren = React.cloneElement(slots.wrapper[0], slots.wrapper[0].props, newChildren);
58
+ }
59
+
56
60
  return React.createElement(React.Fragment, {}, newChildren);
57
61
  }
58
62
  }
@@ -0,0 +1,37 @@
1
+ import React from "react";
2
+ import Dbm from "../../index.js";
3
+
4
+ export default class NativeElement extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ _removedUsedProps(aProps) {
10
+ delete aProps["element"];
11
+ }
12
+
13
+ componentDidMount() {
14
+
15
+ let element = this.getPropValue("element");
16
+
17
+ let parentElement = this.item.holderElement;
18
+ if(element && parentElement) {
19
+ parentElement.appendChild(element);
20
+ }
21
+ }
22
+
23
+ componentDidUpdate() {
24
+
25
+ let element = this.getPropValue("element");
26
+
27
+ let parentElement = this.item.holderElement;
28
+ //METODO: should we remove the old element?
29
+ if(element && parentElement) {
30
+ parentElement.appendChild(element);
31
+ }
32
+ }
33
+
34
+ _renderMainElement() {
35
+ return this._createMainElement("div", {"ref": this.createRef("holderElement")});
36
+ }
37
+ }
@@ -0,0 +1,73 @@
1
+ import React from "react";
2
+ import Dbm from "../../index.js";
3
+
4
+ export default class RepeatedSlider extends Dbm.react.BaseObject {
5
+ _construct() {
6
+ super._construct();
7
+
8
+ this._sliderItems = {};
9
+ }
10
+
11
+ _removedUsedProps(aProps) {
12
+ delete aProps["viewWidth"];
13
+ delete aProps["prepareLength"];
14
+ delete aProps["spacing"];
15
+ delete aProps["position"];
16
+ delete aProps["itemClasses"];
17
+ }
18
+
19
+ _getItemForIndex(aIndex) {
20
+ let currentItem = this._sliderItems["i"+ aIndex];
21
+ if(!currentItem) {
22
+ currentItem = new Dbm.repository.Item();
23
+ currentItem.setValue("index", aIndex);
24
+ currentItem.setValue("envelope", 0);
25
+ currentItem.setValue("localPosition", 0);
26
+ this._sliderItems["i"+ aIndex] = currentItem;
27
+ }
28
+
29
+ return currentItem;
30
+ }
31
+
32
+ _renderMainElement() {
33
+ //console.log("FixedWidthInfiniteSlideshow::render");
34
+ //console.log(this);
35
+
36
+ let viewWidth = this.getPropValueWithDefault("viewWidth", 1000);
37
+ let prepLength = this.getPropValueWithDefault("prepareLength", 20);
38
+ let spacing = this.getPropValueWithDefault("spacing", 0);
39
+ let itemClasses = this.getPropValueWithDefault("itemClasses", "");
40
+
41
+ let position = this.getPropValueWithDefault("position", 0);
42
+
43
+ let elements = Dbm.utils.ArrayFunctions.singleOrArray(this.getPropValue("children"));
44
+
45
+ let numberOfElements = elements.length;
46
+
47
+ let length = 400;
48
+
49
+ let startIndex = Math.floor(position/length);
50
+
51
+ let endIndex = startIndex+10; //Math.floor(position);
52
+
53
+ let children = [];
54
+ for(let i = startIndex; i <= endIndex; i++) {
55
+ let currentPosition = i*length-position;
56
+ let elementIndex = Dbm.utils.NumberFunctions.floatMod(i, numberOfElements);
57
+
58
+ let indexItem = this._getItemForIndex(i);
59
+
60
+ let style = {"transform": "translateX(" + currentPosition + "px)", position: "absolute", left: 0, top: 0};
61
+ let child = React.createElement("div", {"key": i, "className": itemClasses, "style": style},
62
+ React.createElement(Dbm.react.context.AddContextVariables, {"values": {"sliderItem": indexItem}},
63
+ elements[elementIndex]
64
+ )
65
+ );
66
+ children.push(child);
67
+ }
68
+
69
+ return this._createMainElement("div", {},
70
+ children
71
+ );
72
+ }
73
+ }