dbm 1.4.15 → 1.4.17
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/commands/index.js +1 -1
- package/css/admin.css +6 -1
- package/css/all.css +4 -1
- package/css/cookie-bar.css +40 -0
- package/css/elements.css +41 -0
- package/css/form-field.css +46 -0
- package/css/grid.css +8 -0
- package/css/icons.css +2 -0
- package/css/utils.css +12 -6
- package/dbm.js +1 -1
- package/ecommerce/Cart.js +44 -9
- package/ecommerce/LocalStorageCartLoader.js +7 -3
- package/flow/controllers/select/SingleSelection.js +7 -0
- package/flow/updatefunctions/basic/index.js +1 -1
- package/graphapi/webclient/decode/Relations.js +12 -0
- package/loading/index.js +34 -0
- package/package.json +1 -1
- package/react/BaseObject.js +22 -5
- package/react/admin/editor/Editor.js +5 -6
- package/react/admin/editor/fields/ArrayField.js +24 -7
- package/react/admin/editor/fields/Link.js +53 -0
- package/react/admin/editor/fields/index.js +2 -1
- package/react/admin/objects/ExploreObject.js +103 -0
- package/react/admin/objects/explore/Relation.js +67 -0
- package/react/admin/objects/explore/RelationType.js +38 -0
- package/react/admin/objects/explore/RelationTypeGroup.js +22 -0
- package/react/admin/objects/explore/index.js +3 -0
- package/react/admin/objects/index.js +3 -1
- package/react/admin/objects/itemeditors/DraggableHierarchyDisplay.js +1 -1
- package/react/admin/objects/itemeditors/TextAreaField.js +26 -0
- package/react/admin/objects/itemeditors/index.js +1 -0
- package/react/animation/AnimationController.js +1 -3
- package/react/animation/index.js +15 -0
- package/react/area/InsertElement.js +3 -0
- package/react/area/Layout.js +20 -0
- package/react/area/List.js +4 -0
- package/react/area/ModalDialog.js +89 -0
- package/react/area/NativeElement.js +37 -0
- package/react/area/RepeatedSlider.js +73 -0
- package/react/area/SingleItemSlideshow.js +69 -0
- package/react/area/SlideshowSteps.js +45 -0
- package/react/area/index.js +7 -1
- package/react/blocks/admin/objects/Explore.js +18 -0
- package/react/blocks/admin/objects/index.js +2 -1
- package/react/blocks/content/Buttons.js +33 -0
- package/react/blocks/content/ContentBlock.js +7 -2
- package/react/blocks/content/SectionsGrid.js +19 -0
- package/react/blocks/content/Spacing.js +13 -0
- package/react/blocks/content/SpacingLine.js +18 -0
- package/react/blocks/content/index.js +5 -1
- package/react/blocks/index.js +108 -0
- package/react/context/AddContextVariables.js +9 -4
- package/react/cookies/CookieBar.js +6 -4
- package/react/cookies/CookieOverlayMessage.js +6 -4
- package/react/dynamic/DesignRepositoryProxy.js +22 -0
- package/react/dynamic/DynamicDesignElement.js +24 -0
- package/react/dynamic/index.js +60 -0
- package/react/form/EditObjectProperty.js +15 -2
- package/react/form/EditableContent.js +71 -0
- package/react/form/GraphApiImageWithAltText.js +268 -0
- package/react/form/Link.js +40 -0
- package/react/form/Url.js +25 -0
- package/react/form/index.js +4 -0
- package/react/index.js +12 -0
- package/react/interaction/Checked.js +32 -0
- package/react/interaction/ClickOutsideTrigger.js +1 -1
- package/react/interaction/index.js +2 -1
- package/react/svg/AddGlobalFilterClasses.js +3 -3
- package/react/svg/BlendColorFilter.js +42 -0
- package/react/svg/GlobalFilters.js +1 -1
- package/react/svg/MatrixFilter.js +1 -3
- package/react/svg/index.js +20 -0
- package/react/text/index.js +4 -0
- package/repository/Item.js +8 -0
- package/repository/admin/index.js +10 -0
- package/repository/index.js +3 -0
- package/repository/proxy/RepositoryProxy.js +60 -0
- package/repository/proxy/index.js +1 -0
- package/site/BrowserUpdater.js +3 -3
- package/startup/index.js +1 -1
- package/tracking/Controller.js +26 -8
- package/tracking/ConversionLinker.js +53 -0
- package/tracking/DataLayerTracker.js +27 -18
- package/tracking/GtagTracker.js +112 -0
- package/tracking/MetaPixelTracker.js +1 -1
- package/tracking/PageListTracker.js +46 -0
- package/tracking/SingleAccountMetaPixelTracker.js +118 -0
- package/tracking/TagManagerTracker.js +2 -2
- package/tracking/index.js +58 -0
- package/utils/svg/ColorMatrixFunctions.js +13 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class SlideshowSteps extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
this._sliderItems = {};
|
|
9
|
+
|
|
10
|
+
this.getDynamicPropWithoutState("length", 0).addUpdate(this._getScopedCallFunctionCommand(this._updateSteps));
|
|
11
|
+
let value = this.getDynamicPropWithoutState("value", 0);
|
|
12
|
+
|
|
13
|
+
let singleSelection = new Dbm.flow.controllers.select.SingleSelection();
|
|
14
|
+
singleSelection.item.properties.value.connectInput(value);
|
|
15
|
+
this.item.requireProperty("singleSelection", singleSelection.item);
|
|
16
|
+
|
|
17
|
+
this.item.requireProperty("steps", []);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
_removedUsedProps(aProps) {
|
|
21
|
+
delete aProps["length"];
|
|
22
|
+
delete aProps["index"];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_updateSteps() {
|
|
26
|
+
let numberOfSteps = this.item["props/length"];
|
|
27
|
+
let steps = [];
|
|
28
|
+
|
|
29
|
+
for(let i = 0; i < numberOfSteps; i++) {
|
|
30
|
+
let selectionProperty = this.item.singleSelection.controller.addSelectionValue(i);
|
|
31
|
+
steps.push({"id": i, "selected": selectionProperty});
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
this.item.steps = steps;
|
|
35
|
+
console.log(this.item.steps);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
_renderMainElement() {
|
|
39
|
+
let elements = this.getPropValue("children");
|
|
40
|
+
|
|
41
|
+
return this._createMainElement(Dbm.react.area.List, {"items": this.item.properties.steps},
|
|
42
|
+
React.createElement(Dbm.react.interaction.Checked, {"checked": Dbm.react.source.item("selected"), "preventUncheck": true}, elements)
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
}
|
package/react/area/index.js
CHANGED
|
@@ -13,6 +13,12 @@ export {default as SwitchableArea} from "./SwitchableArea.js";
|
|
|
13
13
|
export {default as PopoverLayer} from "./PopoverLayer.js";
|
|
14
14
|
export {default as RowOrStacked} from "./RowOrStacked.js";
|
|
15
15
|
export {default as SelectResponsiveLayout} from "./SelectResponsiveLayout.js";
|
|
16
|
+
export {default as NativeElement} from "./NativeElement.js";
|
|
17
|
+
export {default as SingleItemSlideshow} from "./SingleItemSlideshow.js";
|
|
18
|
+
export {default as SlideshowSteps} from "./SlideshowSteps.js";
|
|
19
|
+
export {default as RepeatedSlider} from "./RepeatedSlider.js";
|
|
20
|
+
export {default as Layout} from "./Layout.js";
|
|
21
|
+
export {default as ModalDialog} from "./ModalDialog.js";
|
|
16
22
|
|
|
17
23
|
export const responsiveLayout = function(aDefaultLayout) {
|
|
18
24
|
let newResponsiveLayout = new Dbm.react.area.ResponsiveLayout();
|
|
@@ -41,5 +47,5 @@ export const processStateElement = function(aState, aIdleElement, aProcessingEle
|
|
|
41
47
|
|
|
42
48
|
let element = React.createElement(Dbm.react.area.InsertElement, {"element": updateFunction.output.properties.value});
|
|
43
49
|
|
|
44
|
-
return
|
|
50
|
+
return element;
|
|
45
51
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class Explore extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
_renderMainElement() {
|
|
10
|
+
|
|
11
|
+
let url = new URL(document.location.href);
|
|
12
|
+
let id = url.searchParams.get("id");
|
|
13
|
+
|
|
14
|
+
return React.createElement("div", {className: "content-narrow"},
|
|
15
|
+
React.createElement(Dbm.react.admin.objects.ExploreObject, {"id": id})
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -2,4 +2,5 @@ export {default as List} from "./List.js";
|
|
|
2
2
|
export {default as Edit} from "./Edit.js";
|
|
3
3
|
export {default as RunObjectCommands} from "./RunObjectCommands.js";
|
|
4
4
|
export {default as Users} from "./Users.js";
|
|
5
|
-
export {default as User} from "./User.js";
|
|
5
|
+
export {default as User} from "./User.js";
|
|
6
|
+
export {default as Explore} from "./Explore.js";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "../../../index.js";
|
|
3
|
+
|
|
4
|
+
export default class Buttons extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
_renderMainElement() {
|
|
11
|
+
|
|
12
|
+
let element = Dbm.getInstance().repository.getItem("linkListCard").element;
|
|
13
|
+
|
|
14
|
+
return React.createElement("div", {"className": "content-narrow"},
|
|
15
|
+
React.createElement("div", {"className": "flex-row small-item-spacing"},
|
|
16
|
+
React.createElement(Dbm.react.area.List, {items: this.context.blockData.buttons},
|
|
17
|
+
React.createElement("div", {"className": "flex-row-item"},
|
|
18
|
+
React.createElement(Dbm.react.text.Link, {"href": Dbm.react.source.item("url"), "className": "custom-styled-link"},
|
|
19
|
+
React.createElement(Dbm.react.area.SwitchableArea, {"area": Dbm.react.source.item("type")},
|
|
20
|
+
React.createElement(Dbm.react.design.buttons.PrimaryButton, {"data-slot": "primary"},
|
|
21
|
+
Dbm.react.text.text(Dbm.react.source.item("text"))
|
|
22
|
+
),
|
|
23
|
+
React.createElement(Dbm.react.design.buttons.SecondaryButton, {"data-slot": "secondary"},
|
|
24
|
+
Dbm.react.text.text(Dbm.react.source.item("text"))
|
|
25
|
+
)
|
|
26
|
+
)
|
|
27
|
+
)
|
|
28
|
+
)
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -5,9 +5,14 @@ export default class ContentBlock extends Dbm.react.BaseObject {
|
|
|
5
5
|
_construct() {
|
|
6
6
|
super._construct();
|
|
7
7
|
|
|
8
|
-
let contentBlockId = this.context.blockData.contentBlock;
|
|
9
|
-
|
|
10
8
|
this.item.requireProperty("item", null);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_constructAfterProps() {
|
|
12
|
+
super._constructAfterProps();
|
|
13
|
+
|
|
14
|
+
let contentBlockId = this.getPropValueWithDefault("id", this.context.blockData.contentBlock);
|
|
15
|
+
console.log(contentBlockId);
|
|
11
16
|
|
|
12
17
|
let graphApi = Dbm.getInstance().repository.getItem("cachedGraphApi").controller;
|
|
13
18
|
{
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "dbm";
|
|
3
|
+
|
|
4
|
+
export default class SectionsGrid extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_renderMainElement() {
|
|
11
|
+
return this._createMainElement("div", {className: "content-narrow"},
|
|
12
|
+
React.createElement("div", {className: "section-grid section-grid-gap"},
|
|
13
|
+
React.createElement(Dbm.react.area.List, {"items": Dbm.react.source.blockData("sections")},
|
|
14
|
+
React.createElement(Dbm.react.design.content.GridSectionCard, {})
|
|
15
|
+
)
|
|
16
|
+
)
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "dbm";
|
|
3
|
+
|
|
4
|
+
export default class Spacing extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_renderMainElement() {
|
|
11
|
+
return this._createMainElement("div", {className: "spacing standard"});
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Dbm from "dbm";
|
|
3
|
+
|
|
4
|
+
export default class SpacingLine extends Dbm.react.BaseObject {
|
|
5
|
+
_construct() {
|
|
6
|
+
super._construct();
|
|
7
|
+
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
_renderMainElement() {
|
|
11
|
+
|
|
12
|
+
return this._createMainElement("div", {className: "content-narrow"},
|
|
13
|
+
React.createElement("div", {className: "spacing medium"}),
|
|
14
|
+
React.createElement("div", {className: "spacer-line"}),
|
|
15
|
+
React.createElement("div", {className: "spacing medium"})
|
|
16
|
+
);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -2,4 +2,8 @@ export {default as Card} from "./Card.js";
|
|
|
2
2
|
export {default as ContentBlock} from "./ContentBlock.js";
|
|
3
3
|
export {default as AnchorPosition} from "./AnchorPosition.js";
|
|
4
4
|
export {default as LinkList} from "./LinkList.js";
|
|
5
|
-
export {default as LinkListCard} from "./LinkListCard.js";
|
|
5
|
+
export {default as LinkListCard} from "./LinkListCard.js";
|
|
6
|
+
export {default as Spacing} from "./Spacing.js";
|
|
7
|
+
export {default as SpacingLine} from "./SpacingLine.js";
|
|
8
|
+
export {default as Buttons} from "./Buttons.js";
|
|
9
|
+
export {default as SectionsGrid} from "./SectionsGrid.js";
|
package/react/blocks/index.js
CHANGED
|
@@ -151,6 +151,7 @@ export let registerAllBlocks = function() {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
registerBlock("admin/objects/edit", "Admin / Edit object", createElement(Dbm.react.blocks.admin.objects.Edit));
|
|
154
|
+
registerBlock("admin/objects/explore", "Admin / Explore object", createElement(Dbm.react.blocks.admin.objects.Explore));
|
|
154
155
|
registerBlock("admin/objects/apiCommands", "Admin / Object API commands", createElement(Dbm.react.blocks.admin.objects.RunObjectCommands));
|
|
155
156
|
registerBlock("admin/users", "Admin / Users", createElement(Dbm.react.blocks.admin.objects.Users));
|
|
156
157
|
registerBlock("admin/users/user", "Admin / User", createElement(Dbm.react.blocks.admin.objects.User));
|
|
@@ -233,6 +234,32 @@ export let registerAllBlocks = function() {
|
|
|
233
234
|
registerBlock("content/linkList", "Link list", createElement(Dbm.react.blocks.content.LinkList, {}), editor, {}, {});
|
|
234
235
|
}
|
|
235
236
|
|
|
237
|
+
{
|
|
238
|
+
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
239
|
+
createElement(Dbm.react.form.LabelledArea, {label: "Sections"},
|
|
240
|
+
createElement(Dbm.react.admin.editor.fields.ArrayField, {name: "sections"},
|
|
241
|
+
createElement("div", {},
|
|
242
|
+
createElement(Dbm.react.form.EditObjectProperty, {"value": Dbm.react.source.item("properties.value"), "path": "image"},
|
|
243
|
+
createElement(Dbm.react.form.GraphApiImageWithAltText, {"value": Dbm.react.source.contextVariable("value"), "className": "standard-field standard-field-padding full-width"})
|
|
244
|
+
),
|
|
245
|
+
createElement(Dbm.react.form.EditObjectProperty, {"value": Dbm.react.source.item("properties.value"), "path": "title"},
|
|
246
|
+
createElement(Dbm.react.form.FormField, {"value": Dbm.react.source.contextVariable("value"), "className": "standard-field standard-field-padding full-width"})
|
|
247
|
+
),
|
|
248
|
+
createElement(Dbm.react.form.EditObjectProperty, {"value": Dbm.react.source.item("properties.value"), "path": "link", initialValue: {}},
|
|
249
|
+
createElement("div", {"className": "standard-field"},
|
|
250
|
+
createElement(Dbm.react.form.Link, {"value": Dbm.react.source.contextVariable("value")})
|
|
251
|
+
)
|
|
252
|
+
),
|
|
253
|
+
createElement(Dbm.react.form.EditObjectProperty, {"value": Dbm.react.source.item("properties.value"), "path": "content"},
|
|
254
|
+
createElement(Dbm.react.form.EditableContent, {"value": Dbm.react.source.contextVariable("value"), "className": "standard-field standard-field-padding full-width"})
|
|
255
|
+
)
|
|
256
|
+
)
|
|
257
|
+
)
|
|
258
|
+
)
|
|
259
|
+
);
|
|
260
|
+
registerBlock("content/sectionsGrid", "Sections grid", createElement(Dbm.react.blocks.content.SectionsGrid, {}), editor, {}, {"sections": true, "content": true});
|
|
261
|
+
}
|
|
262
|
+
|
|
236
263
|
{
|
|
237
264
|
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
238
265
|
createElement(Dbm.react.form.LabelledArea, {label: "Link name"},
|
|
@@ -309,6 +336,20 @@ export let registerAllBlocks = function() {
|
|
|
309
336
|
block.displayBlock.setValue("endSection", true);
|
|
310
337
|
}
|
|
311
338
|
|
|
339
|
+
{
|
|
340
|
+
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
341
|
+
|
|
342
|
+
);
|
|
343
|
+
let block = registerBlock("content/spacing", "Spacing", createElement(Dbm.react.blocks.content.Spacing), editor, {}, {});
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
{
|
|
347
|
+
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
348
|
+
|
|
349
|
+
);
|
|
350
|
+
let block = registerBlock("content/spacingLine", "Spacing line", createElement(Dbm.react.blocks.content.SpacingLine), editor, {}, {});
|
|
351
|
+
}
|
|
352
|
+
|
|
312
353
|
{
|
|
313
354
|
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
314
355
|
|
|
@@ -316,7 +357,55 @@ export let registerAllBlocks = function() {
|
|
|
316
357
|
let block = registerBlock("content/skipSpacing", "Skip spacing", createElement("div", {"data-skip-spacing": "1"}), editor, {}, {});
|
|
317
358
|
}
|
|
318
359
|
|
|
360
|
+
{
|
|
361
|
+
let buttonTypes = [];
|
|
362
|
+
{
|
|
363
|
+
let button = new Dbm.repository.Item();
|
|
364
|
+
button.setValue("type", "primary");
|
|
365
|
+
button.setValue("name", "Primary");
|
|
366
|
+
buttonTypes.push(button);
|
|
367
|
+
}
|
|
368
|
+
{
|
|
369
|
+
let button = new Dbm.repository.Item();
|
|
370
|
+
button.setValue("type", "secondary");
|
|
371
|
+
button.setValue("name", "Secondary");
|
|
372
|
+
buttonTypes.push(button);
|
|
373
|
+
}
|
|
319
374
|
|
|
375
|
+
let editor = createElement(Dbm.react.admin.editor.EditorBlockName, {},
|
|
376
|
+
createElement(Dbm.react.form.LabelledArea, {label: "Buttons"},
|
|
377
|
+
createElement(Dbm.react.admin.editor.fields.ArrayField, {name: "buttons"},
|
|
378
|
+
createElement("div", {"className": "standard-field flex-row vertically-center-items"},
|
|
379
|
+
createElement("div", {"className": "flex-row-item flex-no-resize"},
|
|
380
|
+
createElement(Dbm.react.form.EditObjectProperty, {"value": Dbm.react.source.item("properties.value"), "path": "type"},
|
|
381
|
+
createElement(Dbm.react.form.CustomSelection, {"value": Dbm.react.source.contextVariable("value"), "items": buttonTypes, "path": "type"},
|
|
382
|
+
createElement("div", {"data-slot": "button", "className": "standard-field-padding"}, "Select type"),
|
|
383
|
+
createElement("div", {},
|
|
384
|
+
createElement(Dbm.react.area.List, {items: Dbm.react.source.contextVariable("rows"), as: "row"},
|
|
385
|
+
createElement(Dbm.react.context.AddItemToContext, {
|
|
386
|
+
item: Dbm.react.source.contextVariable("row.forItem"),
|
|
387
|
+
children: createElement(Dbm.react.interaction.CommandButton, {
|
|
388
|
+
commands: [Dbm.commands.setProperty(Dbm.react.source.contextVariable("row.properties.selected"), true), Dbm.react.source.contextVariable("closeCommand")],
|
|
389
|
+
children: createElement("div", {
|
|
390
|
+
children: Dbm.react.text.text(Dbm.react.source.item("name"))
|
|
391
|
+
})
|
|
392
|
+
})
|
|
393
|
+
})
|
|
394
|
+
)
|
|
395
|
+
)
|
|
396
|
+
)
|
|
397
|
+
)
|
|
398
|
+
),
|
|
399
|
+
createElement("div", {"className": "flex-row-item flex-resize"},
|
|
400
|
+
createElement(Dbm.react.form.Link, {"value": Dbm.react.source.item("properties.value")})
|
|
401
|
+
)
|
|
402
|
+
)
|
|
403
|
+
|
|
404
|
+
)
|
|
405
|
+
),
|
|
406
|
+
);
|
|
407
|
+
let block = registerBlock("content/buttons", "Buttons", createElement(Dbm.react.blocks.content.Buttons), editor, {}, {});
|
|
408
|
+
}
|
|
320
409
|
|
|
321
410
|
{
|
|
322
411
|
let itemEditor = Dbm.getInstance().repository.getItem("admin/itemEditors/title");
|
|
@@ -611,6 +700,25 @@ export let registerAllBlocks = function() {
|
|
|
611
700
|
objectTypeEditor.editors = newArray;
|
|
612
701
|
}
|
|
613
702
|
|
|
703
|
+
{
|
|
704
|
+
let objectTypeEditor = Dbm.getInstance().repository.getItem("admin/objectTypeEditors/textMessageTemplate");
|
|
705
|
+
if(!objectTypeEditor.editors) {
|
|
706
|
+
objectTypeEditor.setValue("editors", []);
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
let newArray = [].concat(objectTypeEditor.editors);
|
|
710
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/name"));
|
|
711
|
+
newArray.push(Dbm.getInstance().repository.getItem("admin/itemEditors/identifier"));
|
|
712
|
+
|
|
713
|
+
{
|
|
714
|
+
let itemEditor = new Dbm.repository.Item();
|
|
715
|
+
itemEditor.setValue("element", createElement(Dbm.react.admin.objects.itemeditors.TextAreaField, {"label": "Content", "fieldName": "content"}));
|
|
716
|
+
newArray.push(itemEditor);
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
objectTypeEditor.editors = newArray;
|
|
720
|
+
}
|
|
721
|
+
|
|
614
722
|
{
|
|
615
723
|
let objectTypeEditor = Dbm.getInstance().repository.getItem("admin/objectTypeEditors/group/reviewGroup");
|
|
616
724
|
if(!objectTypeEditor.editors) {
|
|
@@ -6,17 +6,22 @@ export default class AddContextVariables extends Dbm.react.BaseObject {
|
|
|
6
6
|
super._construct();
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
_removedUsedProps(aProps) {
|
|
10
|
+
super._removedUsedProps(aProps);
|
|
11
|
+
|
|
12
|
+
delete aProps["values"];
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
_renderMainElement() {
|
|
12
16
|
|
|
13
17
|
let newContext = {...this.context};
|
|
14
18
|
|
|
15
|
-
let values = this.
|
|
19
|
+
let values = this.getPropValue("values");
|
|
16
20
|
for(let objectName in values) {
|
|
17
21
|
newContext[objectName] = values[objectName];
|
|
18
22
|
}
|
|
19
23
|
|
|
24
|
+
//METODO: pass down props to children
|
|
20
25
|
return React.createElement(Dbm.react.context.Context.Provider, {"value": newContext}, this.props.children);
|
|
21
26
|
}
|
|
22
27
|
}
|
|
@@ -37,6 +37,8 @@ export default class CookieBar extends Dbm.react.BaseObject {
|
|
|
37
37
|
elementSize.input.properties.element.connectInput(this.item.properties.widthElement);
|
|
38
38
|
elementSize.start();
|
|
39
39
|
|
|
40
|
+
let settingsUrl = this.getDynamicPropWithoutState("settingsUrl", "/cookie-settings/");
|
|
41
|
+
|
|
40
42
|
let layoutSwitch = new Dbm.flow.updatefunctions.logic.RangeSwitch();
|
|
41
43
|
layoutSwitch.input.properties.value.connectInput(elementSize.output.properties.width);
|
|
42
44
|
|
|
@@ -59,7 +61,7 @@ export default class CookieBar extends Dbm.react.BaseObject {
|
|
|
59
61
|
Dbm.react.text.translatedText("Only necessary", "onlyNecessary")
|
|
60
62
|
),
|
|
61
63
|
React.createElement("div", {"className": "spacing small"}),
|
|
62
|
-
React.createElement(Dbm.react.text.Link, {"href":
|
|
64
|
+
React.createElement(Dbm.react.text.Link, {"href": settingsUrl, className:"custom-styled-link"},
|
|
63
65
|
React.createElement("div", {"className": "secondary-button standard-button-padding text-align-center"},
|
|
64
66
|
Dbm.react.text.translatedText("Settings", "settings")
|
|
65
67
|
)
|
|
@@ -81,7 +83,7 @@ export default class CookieBar extends Dbm.react.BaseObject {
|
|
|
81
83
|
|
|
82
84
|
React.createElement("div", {"className": "flex-row small-item-spacing"},
|
|
83
85
|
React.createElement("div", {"className": "flex-row-item"},
|
|
84
|
-
React.createElement(Dbm.react.text.Link, {"href":
|
|
86
|
+
React.createElement(Dbm.react.text.Link, {"href": settingsUrl, className:"custom-styled-link"},
|
|
85
87
|
React.createElement("div", {"className": "secondary-button standard-button-padding"},
|
|
86
88
|
Dbm.react.text.translatedText("Settings", "settings")
|
|
87
89
|
)
|
|
@@ -115,7 +117,7 @@ export default class CookieBar extends Dbm.react.BaseObject {
|
|
|
115
117
|
React.createElement("div", {"className": "flex-row-item"},
|
|
116
118
|
React.createElement("div", {"className": "flex-row small-item-spacing"},
|
|
117
119
|
React.createElement("div", {"className": "flex-row-item"},
|
|
118
|
-
React.createElement(Dbm.react.text.Link, {"href":
|
|
120
|
+
React.createElement(Dbm.react.text.Link, {"href": settingsUrl, className:"custom-styled-link"},
|
|
119
121
|
React.createElement("div", {"className": "secondary-button standard-button-padding"},
|
|
120
122
|
Dbm.react.text.translatedText("Settings", "settings")
|
|
121
123
|
)
|
|
@@ -202,7 +204,7 @@ export default class CookieBar extends Dbm.react.BaseObject {
|
|
|
202
204
|
|
|
203
205
|
_renderMainElement() {
|
|
204
206
|
|
|
205
|
-
return this._createMainElement("div", {className: "cookie-bar-position no-pointer-events", "data-non-static": 1, ref: this.createRef("widthElement")},
|
|
207
|
+
return this._createMainElement("div", {className: "cookie-bar-position no-pointer-events cookie-bar-layer", "data-non-static": 1, ref: this.createRef("widthElement")},
|
|
206
208
|
React.createElement(Dbm.react.area.HasData, {"check": this.item.properties.inDom},
|
|
207
209
|
React.createElement(Dbm.react.text.TranslationGroup, {"path": "cookies/notice/bar"},
|
|
208
210
|
React.createElement("div", {className: "overflow-hidden"},
|
|
@@ -37,6 +37,8 @@ export default class CookieOverlayMessage extends Dbm.react.BaseObject {
|
|
|
37
37
|
elementSize.input.properties.element.connectInput(this.item.properties.widthElement);
|
|
38
38
|
elementSize.start();
|
|
39
39
|
|
|
40
|
+
let settingsUrl = this.getDynamicPropWithoutState("settingsUrl", "/cookie-settings/");
|
|
41
|
+
|
|
40
42
|
let layoutSwitch = new Dbm.flow.updatefunctions.logic.RangeSwitch();
|
|
41
43
|
layoutSwitch.input.properties.value.connectInput(elementSize.output.properties.width);
|
|
42
44
|
|
|
@@ -66,7 +68,7 @@ export default class CookieOverlayMessage extends Dbm.react.BaseObject {
|
|
|
66
68
|
Dbm.react.text.translatedText("Take full control over how we use cookies:", "text/settingsLinkDescription")
|
|
67
69
|
),
|
|
68
70
|
React.createElement("div", {"className": "spacing small"}),
|
|
69
|
-
React.createElement("a", {"href":
|
|
71
|
+
React.createElement("a", {"href": settingsUrl, className:"custom-styled-link"},
|
|
70
72
|
React.createElement("div", {"className": "secondary-button standard-button-padding text-align-center"},
|
|
71
73
|
Dbm.react.text.translatedText("Settings", "settings")
|
|
72
74
|
)
|
|
@@ -78,15 +80,15 @@ export default class CookieOverlayMessage extends Dbm.react.BaseObject {
|
|
|
78
80
|
let desktopLayout = React.createElement("div", {className: "centered-site"},
|
|
79
81
|
React.createElement("div", {className: "cookie-overlay-message-box cookie-overlay-message-box-padding all-pointer-events"},
|
|
80
82
|
React.createElement("div", {"className": "flex-row small-item-spacing"},
|
|
81
|
-
React.createElement("div", {"className": "flex-row-item half"},
|
|
83
|
+
React.createElement("div", {"className": "flex-row-item half flex-resize"},
|
|
82
84
|
React.createElement("div", {"className": "cookie-bar-title"},
|
|
83
85
|
Dbm.react.text.translatedText("Your privacy is important to us", "text/title")
|
|
84
86
|
),
|
|
87
|
+
React.createElement("div", {"className": "spacing small"}),
|
|
85
88
|
React.createElement("div", {"className": "cookie-bar-description"},
|
|
86
89
|
Dbm.react.text.translatedText("We use cookies to make our site work properly and to improve your experience. You can choose to accept all cookies, allow only those that are necessary, or manage your preferences in the settings.", "text/description")
|
|
87
90
|
)
|
|
88
91
|
),
|
|
89
|
-
React.createElement("div", {"className": "flex-row-item quarter"}),
|
|
90
92
|
React.createElement("div", {"className": "flex-row-item quarter"},
|
|
91
93
|
React.createElement("div", {"className": "standard-button standard-button-padding big full-width text-align-center", onClick: () => this._acceptAll()},
|
|
92
94
|
Dbm.react.text.translatedText("Allow all", "allowAll")
|
|
@@ -106,7 +108,7 @@ export default class CookieOverlayMessage extends Dbm.react.BaseObject {
|
|
|
106
108
|
Dbm.react.text.translatedText("Take full control over how we use cookies:", "text/settingsLinkDescription")
|
|
107
109
|
),
|
|
108
110
|
React.createElement("div", {"className": "flex-row-item"},
|
|
109
|
-
React.createElement("a", {"href":
|
|
111
|
+
React.createElement("a", {"href": settingsUrl, className:"custom-styled-link"},
|
|
110
112
|
React.createElement("div", {"className": "cookie-settings-link"},
|
|
111
113
|
Dbm.react.text.translatedText("Settings", "settings")
|
|
112
114
|
)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import Dbm from "../../index.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
export default class DesignRepositoryProxy extends Dbm.repository.proxy.RepositoryProxy {
|
|
5
|
+
|
|
6
|
+
_setupDefaults() {
|
|
7
|
+
this.reposityPrefix = "react/design/";
|
|
8
|
+
this.propertyName = "reactClass";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
_setupItem(aItem, aFullPath) {
|
|
12
|
+
console.log("_setupItem");
|
|
13
|
+
console.log(aItem, aFullPath);
|
|
14
|
+
|
|
15
|
+
let className = aFullPath.split("/").pop();
|
|
16
|
+
let element = React.createElement("div", {"className": "missing-design-element", "data-repository-path": aFullPath}, className)
|
|
17
|
+
|
|
18
|
+
let DynamicDesignElement = Dbm.react.dynamic.setupDesignItem(aItem, element, [], []);
|
|
19
|
+
|
|
20
|
+
aItem.requireProperty(this.propertyName, DynamicDesignElement);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import Dbm from "../../index.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
export default class DynamicDesignElement extends Dbm.react.BaseObject {
|
|
5
|
+
|
|
6
|
+
_construct() {
|
|
7
|
+
super._construct();
|
|
8
|
+
this.item.requireProperty("structure", null);
|
|
9
|
+
this._setupDesignElements();
|
|
10
|
+
|
|
11
|
+
//METODO: setup dynamic props
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
_setupDesignElements() {
|
|
15
|
+
//MENOTE: dynamically overridden
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
_renderMainElement() {
|
|
19
|
+
//METODO: link dynamic props
|
|
20
|
+
return React.createElement(Dbm.react.context.AddContextVariables, {"values": {"children": this.getPropValue("children")}},
|
|
21
|
+
this._mainElement(this.item.structure.element)
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import Dbm from "../../index.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
export {default as DesignRepositoryProxy} from "./DesignRepositoryProxy.js";
|
|
5
|
+
export {default as DynamicDesignElement} from "./DynamicDesignElement.js";
|
|
6
|
+
|
|
7
|
+
export const setupDesignItem = function(aItem, aElement, aPropNames = [], aSlots = []) {
|
|
8
|
+
let DynamicDesignElement = class DynamicDesignElement extends Dbm.react.dynamic.DynamicDesignElement {
|
|
9
|
+
_setupDesignElements() {
|
|
10
|
+
this.item.setValue("structure", aItem);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
aItem.setValue("element", aElement);
|
|
15
|
+
aItem.setValue("propNames", aPropNames);
|
|
16
|
+
aItem.setValue("slots", aSlots);
|
|
17
|
+
|
|
18
|
+
return DynamicDesignElement;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const addDesign = function(aPath, aElement, aPropNames = [], aSlots = []) {
|
|
22
|
+
let prefix = "react/design/";
|
|
23
|
+
let fullPath = prefix+aPath;
|
|
24
|
+
let item = Dbm.repository.getItem(fullPath);
|
|
25
|
+
let DynamicDesignElement = setupDesignItem(item, aElement, aPropNames, aSlots);
|
|
26
|
+
item.setValue("reactClass", DynamicDesignElement);
|
|
27
|
+
|
|
28
|
+
return item;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export const setupDefaultDesignElements = function() {
|
|
32
|
+
addDesign("buttons/PrimaryButton", React.createElement("div", {"className": "standard-button standard-button-padding"},
|
|
33
|
+
React.createElement(Dbm.react.area.InsertElement, {"element": Dbm.react.source.contextVariable("children")})
|
|
34
|
+
));
|
|
35
|
+
|
|
36
|
+
addDesign("buttons/SecondaryButton", React.createElement("div", {"className": "secondary-button standard-button-padding"},
|
|
37
|
+
React.createElement(Dbm.react.area.InsertElement, {"element": Dbm.react.source.contextVariable("children")})
|
|
38
|
+
));
|
|
39
|
+
|
|
40
|
+
addDesign("content/GridSectionCard", React.createElement("div", {"className": "grid-section-card"},
|
|
41
|
+
React.createElement(Dbm.react.text.OptionalLink, {"href": Dbm.react.source.item("link.url"), "className": "custom-styled-link"},
|
|
42
|
+
React.createElement("div", {"className": ""},
|
|
43
|
+
React.createElement("div", {"className": "flex-row"},
|
|
44
|
+
React.createElement("div", {"className": "flex-row-item flex-no-ressize"},
|
|
45
|
+
"Icon"
|
|
46
|
+
),
|
|
47
|
+
React.createElement("div", {"className": "flex-row-item flex-resize"},
|
|
48
|
+
React.createElement("div", {"className": "grid-section-card-title"},
|
|
49
|
+
Dbm.react.text.text(Dbm.react.source.item("title"))
|
|
50
|
+
)
|
|
51
|
+
)
|
|
52
|
+
),
|
|
53
|
+
React.createElement("div", {"className": "spacing small"}),
|
|
54
|
+
React.createElement("div", {"className": "grid-section-card-content"},
|
|
55
|
+
Dbm.react.text.htmlText(Dbm.react.source.item("content"), "div", {"className": "no-margins-around"})
|
|
56
|
+
)
|
|
57
|
+
)
|
|
58
|
+
)
|
|
59
|
+
));
|
|
60
|
+
}
|
|
@@ -8,10 +8,23 @@ export default class EditObjectProperty extends Dbm.react.BaseObject {
|
|
|
8
8
|
this._valueSelector = new Dbm.flow.controllers.transform.PartOfObject();
|
|
9
9
|
|
|
10
10
|
this._valueSelector.item.properties.object.connectInput(this.getDynamicPropWithoutState("value", {}));
|
|
11
|
-
this._valueSelector.item.properties.path.connectInput(this.getDynamicPropWithoutState("path",
|
|
11
|
+
this._valueSelector.item.properties.path.connectInput(this.getDynamicPropWithoutState("path", null));
|
|
12
12
|
|
|
13
|
-
this.item.requireProperty("value",
|
|
13
|
+
this.item.requireProperty("value", {}).connectInput(this._valueSelector.item.properties.value);
|
|
14
|
+
}
|
|
14
15
|
|
|
16
|
+
_constructAfterProps() {
|
|
17
|
+
super._constructAfterProps();
|
|
18
|
+
|
|
19
|
+
this._valueSelector._objectUpdated();
|
|
20
|
+
let initialValue = this.getPropValue("initialValue");
|
|
21
|
+
let currentValue = this.item.value;
|
|
22
|
+
if(this.item.value === null || this.item.value === undefined) {
|
|
23
|
+
if(initialValue !== null && initialValue !== undefined) {
|
|
24
|
+
this._valueSelector.item.value = initialValue;
|
|
25
|
+
this._valueSelector._valueUpdated();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
15
28
|
}
|
|
16
29
|
|
|
17
30
|
_renderMainElement() {
|