native-document 1.0.137 → 1.0.139

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "native-document",
3
- "version": "1.0.137",
3
+ "version": "1.0.139",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -1,9 +1,12 @@
1
+ import {classPropertyAccumulator, cssPropertyAccumulator} from "../../utils";
2
+
1
3
  /**
2
4
  *
3
5
  * @class
4
6
  */
5
7
  export default function BaseComponent() {
6
8
  this.$description = {};
9
+ this.$editableProps = null;
7
10
  }
8
11
 
9
12
  Object.defineProperty( BaseComponent.prototype, 'nd', {
@@ -83,4 +86,31 @@ BaseComponent.prototype.render = function(renderFn) {
83
86
  }
84
87
  this.$description.render = renderFn;
85
88
  return this;
89
+ };
90
+
91
+ BaseComponent.prototype.getEditableProps = function() {
92
+ if(!this.$editableProps) {
93
+ const rawProps = this.$description.props || {};
94
+ this.$editableProps = {
95
+ ...rawProps,
96
+ class: classPropertyAccumulator(this.$description.props.class),
97
+ style: cssPropertyAccumulator(this.$description.props.style)
98
+ };
99
+ }
100
+
101
+ return this.$editableProps;
102
+ };
103
+
104
+ BaseComponent.prototype.resolveProps = function() {
105
+ if(!this.$editableProps) {
106
+ return { ...this.$description.props };
107
+ }
108
+ const props = { ...this.$editableProps };
109
+ if(props.class) {
110
+ props.class = props.class.value();
111
+ }
112
+ if(props.style) {
113
+ props.style = props.style.value();
114
+ }
115
+ return props;
86
116
  };
@@ -26,22 +26,17 @@ export default function Alert(message, config = {}) {
26
26
  }
27
27
 
28
28
  Alert.defaultTemplate = null;
29
- Alert.defaultTitleTemplate = null;
30
- Alert.defaultButtonsTemplate = null;
31
- Alert.defaultContentTemplate = null;
32
29
 
33
30
  /**
34
31
  * Sets the default template for all Alert instances
35
- * @param {{alert: (alert: Alert) => ValidChildren, alertContent: (alert: Alert) => ValidChildren, alertButtons: (alert: Alert) => ValidChildren, alertTitle: (alert: Alert) => ValidChildren}} template - Template object containing alert factory function
32
+ * @param {ValidChildren} template - Template object containing alert factory function
36
33
  */
37
34
  Alert.use = function(template) {
38
- Alert.defaultTemplate = template.alert;
39
- Alert.defaultTitleTemplate = template.alertTitle;
40
- Alert.defaultButtonsTemplate = template.alertButtons;
41
- Alert.defaultContentTemplate = template.alertContent;
35
+ Alert.defaultTemplate = template;
42
36
  };
43
37
 
44
- BaseComponent.extends(Alert, HasEventEmitter);
38
+ BaseComponent.extends(Alert);
39
+ BaseComponent.use(Alert, HasEventEmitter);
45
40
 
46
41
  /**
47
42
  * Sets the variant style for the alert
@@ -36,10 +36,10 @@ Avatar.defaultTemplate = null;
36
36
 
37
37
  /**
38
38
  * Sets the default template for all Avatar instances
39
- * @param {{avatar: (avatar: Avatar) => ValidChildren}} template - Template object containing avatar factory function
39
+ * @param {ValidChildren} template - Template object containing avatar factory function
40
40
  */
41
41
  Avatar.use = function(template) {
42
- Avatar.defaultTemplate = template.avatar;
42
+ Avatar.defaultTemplate = template;
43
43
  };
44
44
 
45
45
  Avatar.preset = function(name, callback) {
@@ -17,6 +17,11 @@ export default function AvatarGroup(props = {}) {
17
17
 
18
18
  BaseComponent.extends(AvatarGroup);
19
19
 
20
+ AvatarGroup.defaultTemplate = null;
21
+ AvatarGroup.use = function(template) {
22
+ AvatarGroup.defaultTemplate = template;
23
+ };
24
+
20
25
  AvatarGroup.prototype.items = function() {
21
26
  this.$description.items = Array.from(arguments);
22
27
  return this;
@@ -24,7 +24,9 @@ BaseComponent.extends(Badge);
24
24
 
25
25
  Badge.defaultTemplate = null;
26
26
 
27
- Badge.use = function(template) {};
27
+ Badge.use = function(template) {
28
+ Badge.defaultTemplate = template;
29
+ };
28
30
 
29
31
  Badge.preset = function(name, callback) {
30
32
  if (Badge.prototype[name] || Badge[name]) {
@@ -15,10 +15,13 @@ export default function Breadcrumb(config = {}) {
15
15
  };
16
16
  }
17
17
 
18
- BaseComponent.extends(Breadcrumb, HasEventEmitter);
18
+ BaseComponent.extends(Breadcrumb);
19
+ BaseComponent.use(Breadcrumb, HasEventEmitter);
19
20
 
20
- Breadcrumb.use = function(template) {};
21
21
  Breadcrumb.defaultTemplate = null;
22
+ Breadcrumb.use = function(template) {
23
+ Breadcrumb.defaultTemplate = template;
24
+ };
22
25
 
23
26
  Breadcrumb.prototype.item = function(label, href) {
24
27
  this.$description.items.push({ label, href });
@@ -26,9 +26,8 @@ export default function Divider(label, props = {}) {
26
26
  BaseComponent.extends(Divider);
27
27
 
28
28
  Divider.defaultTemplate = null;
29
-
30
29
  Divider.use = function(template) {
31
- Divider.defaultTemplate = template.divider;
30
+ Divider.defaultTemplate = template;
32
31
  };
33
32
 
34
33
  Divider.preset = function(name, callback) {
@@ -25,7 +25,7 @@ BaseComponent.use(ListGroup, HasItems);
25
25
  ListGroup.defaultTemplate = null;
26
26
 
27
27
  ListGroup.use = function(template) {
28
- ListGroup.defaultTemplate = template.listGroup;
28
+ ListGroup.defaultTemplate = template;
29
29
  };
30
30
 
31
31
  ListGroup.prototype.header = function(header) {
@@ -26,7 +26,7 @@ BaseComponent.extends(ListItem);
26
26
  ListItem.defaultTemplate = null;
27
27
 
28
28
  ListItem.use = function(template) {
29
- ListItem.defaultTemplate = template.listItem;
29
+ ListItem.defaultTemplate = template;
30
30
  };
31
31
 
32
32
  ListItem.prototype.content = function(content) {
@@ -17,5 +17,5 @@ BaseComponent.extends(MenuDivider);
17
17
  MenuDivider.defaultTemplate = null;
18
18
 
19
19
  MenuDivider.use = function(template) {
20
- MenuDivider.defaultTemplate = template.menuDivider;
20
+ MenuDivider.defaultTemplate = template;
21
21
  };
@@ -35,7 +35,7 @@ BaseComponent.extends(Progress, HasEventEmitter);
35
35
  Progress.defaultTemplate = null;
36
36
 
37
37
  Progress.use = function(template) {
38
- Progress.defaultTemplate = template.progress;
38
+ Progress.defaultTemplate = template;
39
39
  };
40
40
 
41
41
  Progress.preset = function(name, callback) {
@@ -10,4 +10,9 @@ export function Spacer(props = {}) {
10
10
  props
11
11
  };
12
12
  }
13
- BaseComponent.extends(Spacer);
13
+ BaseComponent.extends(Spacer);
14
+
15
+ Spacer.defaultTemplate = null;
16
+ Spacer.use = function(template) {
17
+ Spacer.defaultTemplate = template;
18
+ };
@@ -24,7 +24,7 @@ export default function Spinner(props = {}) {
24
24
 
25
25
  Spinner.defaultTemplate = null;
26
26
  Spinner.use = function(template) {
27
- Spinner.defaultTemplate = template.spinner;
27
+ Spinner.defaultTemplate = template;
28
28
  };
29
29
 
30
30
  BaseComponent.extends(Spinner);
@@ -23,7 +23,7 @@ BaseComponent.extends(Splitter, HasEventEmitter);
23
23
  Splitter.defaultTemplate = null;
24
24
 
25
25
  Splitter.use = function(template) {
26
- Splitter.defaultTemplate = template.splitter;
26
+ Splitter.defaultTemplate = template;
27
27
  };
28
28
 
29
29
  Splitter.prototype.dynamic = function(){
@@ -18,7 +18,7 @@ export default function SplitterGutter(leftPanel, rightPanel, config = {}) {
18
18
  SplitterGutter.defaultTemplate = null;
19
19
 
20
20
  SplitterGutter.use = function(template) {
21
- SplitterGutter.defaultTemplate = template.splitterGutter;
21
+ SplitterGutter.defaultTemplate = template;
22
22
  };
23
23
 
24
24
  SplitterGutter.prototype.panels = function(leftPanel, rightPanel) {
@@ -29,7 +29,7 @@ BaseComponent.extends(SplitterPanel, BaseComponent);
29
29
  SplitterPanel.defaultTemplate = null;
30
30
 
31
31
  SplitterPanel.use = function(template) {
32
- SplitterPanel.defaultTemplate = template.splitterPanel;
32
+ SplitterPanel.defaultTemplate = template;
33
33
  };
34
34
 
35
35
  SplitterPanel.prototype.content = function(content) {