@lowdefy/blocks-antd 4.0.0-alpha.29 → 4.0.0-alpha.30

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 (193) hide show
  1. package/dist/blocks/Affix/Affix.js +43 -0
  2. package/dist/blocks/Affix/schema.json +34 -0
  3. package/dist/blocks/Affix/style.less +17 -0
  4. package/dist/blocks/Alert/Alert.js +78 -0
  5. package/dist/blocks/Alert/schema.json +62 -0
  6. package/dist/blocks/Alert/style.less +17 -0
  7. package/dist/blocks/AutoComplete/AutoComplete.js +86 -0
  8. package/dist/blocks/AutoComplete/schema.json +148 -0
  9. package/dist/blocks/AutoComplete/style.less +17 -0
  10. package/dist/blocks/Avatar/Avatar.js +49 -0
  11. package/dist/blocks/Avatar/schema.json +71 -0
  12. package/dist/blocks/Avatar/style.less +17 -0
  13. package/dist/blocks/Badge/Badge.js +44 -0
  14. package/dist/blocks/Badge/schema.json +70 -0
  15. package/dist/blocks/Badge/style.less +17 -0
  16. package/dist/blocks/Breadcrumb/Breadcrumb.js +79 -0
  17. package/dist/blocks/Breadcrumb/schema.json +78 -0
  18. package/dist/blocks/Breadcrumb/style.less +17 -0
  19. package/dist/blocks/Button/Button.js +77 -0
  20. package/dist/blocks/Button/schema.json +91 -0
  21. package/dist/blocks/Button/style.less +17 -0
  22. package/dist/blocks/ButtonSelector/ButtonSelector.js +91 -0
  23. package/dist/blocks/ButtonSelector/schema.json +188 -0
  24. package/dist/blocks/ButtonSelector/style.less +18 -0
  25. package/dist/blocks/Card/Card.js +50 -0
  26. package/dist/blocks/Card/schema.json +58 -0
  27. package/dist/blocks/Card/style.less +17 -0
  28. package/dist/blocks/CheckboxSelector/CheckboxSelector.js +97 -0
  29. package/dist/blocks/CheckboxSelector/schema.json +193 -0
  30. package/dist/blocks/CheckboxSelector/style.less +19 -0
  31. package/dist/blocks/CheckboxSwitch/CheckboxSwitch.js +74 -0
  32. package/dist/blocks/CheckboxSwitch/schema.json +105 -0
  33. package/dist/blocks/CheckboxSwitch/style.less +19 -0
  34. package/dist/blocks/Collapse/Collapse.js +89 -0
  35. package/dist/blocks/Collapse/schema.json +90 -0
  36. package/dist/blocks/Collapse/style.less +17 -0
  37. package/dist/blocks/Comment/Comment.js +56 -0
  38. package/dist/blocks/Comment/schema.json +39 -0
  39. package/dist/blocks/Comment/style.less +18 -0
  40. package/dist/blocks/ConfirmModal/ConfirmModal.js +96 -0
  41. package/dist/blocks/ConfirmModal/schema.json +122 -0
  42. package/dist/blocks/ConfirmModal/style.less +17 -0
  43. package/dist/blocks/Content/Content.js +31 -0
  44. package/dist/blocks/Content/schema.json +16 -0
  45. package/dist/blocks/Content/style.less +17 -0
  46. package/dist/blocks/ControlledList/ControlledList.js +137 -0
  47. package/dist/blocks/ControlledList/schema.json +68 -0
  48. package/dist/blocks/ControlledList/style.less +19 -0
  49. package/dist/blocks/DateRangeSelector/DateRangeSelector.js +102 -0
  50. package/dist/blocks/DateRangeSelector/schema.json +221 -0
  51. package/dist/blocks/DateRangeSelector/style.less +18 -0
  52. package/dist/blocks/DateSelector/DateSelector.js +90 -0
  53. package/dist/blocks/DateSelector/schema.json +183 -0
  54. package/dist/blocks/DateSelector/style.less +18 -0
  55. package/dist/blocks/DateTimeSelector/DateTimeSelector.js +98 -0
  56. package/dist/blocks/DateTimeSelector/schema.json +215 -0
  57. package/dist/blocks/DateTimeSelector/style.less +18 -0
  58. package/dist/blocks/Descriptions/Descriptions.js +83 -0
  59. package/dist/blocks/Descriptions/schema.json +186 -0
  60. package/dist/blocks/Descriptions/style.less +17 -0
  61. package/dist/blocks/Divider/Divider.js +37 -0
  62. package/dist/blocks/Divider/schema.json +35 -0
  63. package/dist/blocks/Divider/style.less +17 -0
  64. package/dist/blocks/Drawer/Drawer.js +104 -0
  65. package/dist/blocks/Drawer/schema.json +113 -0
  66. package/dist/blocks/Drawer/style.less +17 -0
  67. package/dist/blocks/Footer/Footer.js +36 -0
  68. package/dist/blocks/Footer/schema.json +16 -0
  69. package/dist/blocks/Footer/style.less +17 -0
  70. package/dist/blocks/Header/Header.js +36 -0
  71. package/dist/blocks/Header/schema.json +22 -0
  72. package/dist/blocks/Header/style.less +17 -0
  73. package/dist/blocks/Label/Label.js +116 -0
  74. package/dist/blocks/Label/getLabelCol.js +55 -0
  75. package/dist/blocks/Label/getWrapperCol.js +69 -0
  76. package/dist/blocks/Label/labelLogic.js +106 -0
  77. package/dist/blocks/Label/schema.json +62 -0
  78. package/dist/blocks/Label/style.less +34 -0
  79. package/dist/blocks/Layout/Layout.js +30 -0
  80. package/dist/blocks/Layout/schema.json +16 -0
  81. package/dist/blocks/Layout/style.less +17 -0
  82. package/dist/blocks/Menu/Menu.js +209 -0
  83. package/dist/blocks/Menu/schema.json +236 -0
  84. package/dist/blocks/Menu/style.less +17 -0
  85. package/dist/blocks/Message/Message.js +53 -0
  86. package/dist/blocks/Message/schema.json +48 -0
  87. package/dist/blocks/Message/style.less +17 -0
  88. package/dist/blocks/MobileMenu/MobileMenu.js +128 -0
  89. package/dist/blocks/MobileMenu/schema.json +236 -0
  90. package/dist/blocks/MobileMenu/style.less +19 -0
  91. package/dist/blocks/Modal/Modal.js +130 -0
  92. package/dist/blocks/Modal/schema.json +118 -0
  93. package/dist/blocks/Modal/style.less +17 -0
  94. package/dist/blocks/MonthSelector/MonthSelector.js +90 -0
  95. package/dist/blocks/MonthSelector/schema.json +183 -0
  96. package/dist/blocks/MonthSelector/style.less +18 -0
  97. package/dist/blocks/MultipleSelector/MultipleSelector.js +146 -0
  98. package/dist/blocks/MultipleSelector/schema.json +239 -0
  99. package/dist/blocks/MultipleSelector/style.less +18 -0
  100. package/dist/blocks/Notification/Notification.js +77 -0
  101. package/dist/blocks/Notification/schema.json +85 -0
  102. package/dist/blocks/Notification/style.less +18 -0
  103. package/dist/blocks/NumberInput/NumberInput.js +82 -0
  104. package/dist/blocks/NumberInput/schema.json +157 -0
  105. package/dist/blocks/NumberInput/style.less +18 -0
  106. package/dist/blocks/PageHCF/PageHCF.js +70 -0
  107. package/dist/blocks/PageHCF/schema.json +64 -0
  108. package/dist/blocks/PageHCF/style.less +20 -0
  109. package/dist/blocks/PageHCSF/PageHCSF.js +98 -0
  110. package/dist/blocks/PageHCSF/schema.json +148 -0
  111. package/dist/blocks/PageHCSF/style.less +21 -0
  112. package/dist/blocks/PageHSCF/PageHSCF.js +98 -0
  113. package/dist/blocks/PageHSCF/schema.json +147 -0
  114. package/dist/blocks/PageHSCF/style.less +21 -0
  115. package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +302 -0
  116. package/dist/blocks/PageHeaderMenu/schema.json +215 -0
  117. package/dist/blocks/PageHeaderMenu/style.less +23 -0
  118. package/dist/blocks/PageSHCF/PageSHCF.js +98 -0
  119. package/dist/blocks/PageSHCF/schema.json +148 -0
  120. package/dist/blocks/PageSHCF/style.less +21 -0
  121. package/dist/blocks/PageSiderMenu/PageSiderMenu.js +409 -0
  122. package/dist/blocks/PageSiderMenu/schema.json +283 -0
  123. package/dist/blocks/PageSiderMenu/style.less +26 -0
  124. package/dist/blocks/Pagination/Pagination.js +98 -0
  125. package/dist/blocks/Pagination/schema.json +75 -0
  126. package/dist/blocks/Pagination/style.less +17 -0
  127. package/dist/blocks/Paragraph/Paragraph.js +102 -0
  128. package/dist/blocks/Paragraph/schema.json +131 -0
  129. package/dist/blocks/Paragraph/style.less +17 -0
  130. package/dist/blocks/ParagraphInput/ParagraphInput.js +125 -0
  131. package/dist/blocks/ParagraphInput/schema.json +162 -0
  132. package/dist/blocks/ParagraphInput/style.less +17 -0
  133. package/dist/blocks/PasswordInput/PasswordInput.js +78 -0
  134. package/dist/blocks/PasswordInput/schema.json +123 -0
  135. package/dist/blocks/PasswordInput/style.less +18 -0
  136. package/dist/blocks/Progress/Progress.js +42 -0
  137. package/dist/blocks/Progress/schema.json +76 -0
  138. package/dist/blocks/Progress/style.less +17 -0
  139. package/dist/blocks/RadioSelector/RadioSelector.js +96 -0
  140. package/dist/blocks/RadioSelector/schema.json +190 -0
  141. package/dist/blocks/RadioSelector/style.less +19 -0
  142. package/dist/blocks/RatingSlider/RatingSlider.js +240 -0
  143. package/dist/blocks/RatingSlider/schema.json +169 -0
  144. package/dist/blocks/RatingSlider/style.less +19 -0
  145. package/dist/blocks/Result/Result.js +48 -0
  146. package/dist/blocks/Result/schema.json +30 -0
  147. package/dist/blocks/Result/style.less +17 -0
  148. package/dist/blocks/Selector/Selector.js +140 -0
  149. package/dist/blocks/Selector/schema.json +236 -0
  150. package/dist/blocks/Selector/style.less +18 -0
  151. package/dist/blocks/Sider/Sider.js +85 -0
  152. package/dist/blocks/Sider/schema.json +71 -0
  153. package/dist/blocks/Sider/style.less +17 -0
  154. package/dist/blocks/Statistic/Statistic.js +51 -0
  155. package/dist/blocks/Statistic/schema.json +74 -0
  156. package/dist/blocks/Statistic/style.less +17 -0
  157. package/dist/blocks/Switch/Switch.js +101 -0
  158. package/dist/blocks/Switch/schema.json +136 -0
  159. package/dist/blocks/Switch/style.less +18 -0
  160. package/dist/blocks/Tabs/Tabs.js +108 -0
  161. package/dist/blocks/Tabs/schema.json +97 -0
  162. package/dist/blocks/Tabs/style.less +17 -0
  163. package/dist/blocks/TextArea/TextArea.js +87 -0
  164. package/dist/blocks/TextArea/schema.json +164 -0
  165. package/dist/blocks/TextArea/style.less +18 -0
  166. package/dist/blocks/TextInput/TextInput.js +92 -0
  167. package/dist/blocks/TextInput/schema.json +149 -0
  168. package/dist/blocks/TextInput/style.less +18 -0
  169. package/dist/blocks/TimelineList/TimelineList.js +102 -0
  170. package/dist/blocks/TimelineList/schema.json +65 -0
  171. package/dist/blocks/TimelineList/style.less +17 -0
  172. package/dist/blocks/Title/Title.js +109 -0
  173. package/dist/blocks/Title/schema.json +136 -0
  174. package/dist/blocks/Title/style.less +17 -0
  175. package/dist/blocks/TitleInput/TitleInput.js +122 -0
  176. package/dist/blocks/TitleInput/schema.json +171 -0
  177. package/dist/blocks/TitleInput/style.less +17 -0
  178. package/dist/blocks/Tooltip/Tooltip.js +48 -0
  179. package/dist/blocks/Tooltip/schema.json +91 -0
  180. package/dist/blocks/Tooltip/style.less +17 -0
  181. package/dist/blocks/WeekSelector/WeekSelector.js +91 -0
  182. package/dist/blocks/WeekSelector/schema.json +183 -0
  183. package/dist/blocks/WeekSelector/style.less +18 -0
  184. package/dist/blocks.js +74 -0
  185. package/dist/color.js +85 -0
  186. package/dist/disabledDate.js +45 -0
  187. package/dist/getUniqueValues.js +30 -0
  188. package/dist/getValueIndex.js +42 -0
  189. package/dist/style.less +17 -0
  190. package/dist/types.js +31 -0
  191. package/dist/useRunAfterUpdate.js +29 -0
  192. package/dist/validationExamples.js +40 -0
  193. package/package.json +7 -7
@@ -0,0 +1,102 @@
1
+ function _extends() {
2
+ _extends = Object.assign || function(target) {
3
+ for(var i = 1; i < arguments.length; i++){
4
+ var source = arguments[i];
5
+ for(var key in source){
6
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
7
+ target[key] = source[key];
8
+ }
9
+ }
10
+ }
11
+ return target;
12
+ };
13
+ return _extends.apply(this, arguments);
14
+ }
15
+ /*
16
+ Copyright 2020-2022 Lowdefy, Inc
17
+
18
+ Licensed under the Apache License, Version 2.0 (the "License");
19
+ you may not use this file except in compliance with the License.
20
+ You may obtain a copy of the License at
21
+
22
+ http://www.apache.org/licenses/LICENSE-2.0
23
+
24
+ Unless required by applicable law or agreed to in writing, software
25
+ distributed under the License is distributed on an "AS IS" BASIS,
26
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
27
+ See the License for the specific language governing permissions and
28
+ limitations under the License.
29
+ */ import React from 'react';
30
+ import { Timeline } from 'antd';
31
+ import { blockDefaultProps } from '@lowdefy/block-utils';
32
+ import { get, mergeObjects, serializer, type } from '@lowdefy/helpers';
33
+ // TODO: need to pass value to list blocks to render item level settings.
34
+ const TimelineList = ({ blockId , components: { Icon } , events , list , methods , properties })=>{
35
+ // Temporary fix until list blocks get value from state
36
+ const value = properties.data;
37
+ const other = {};
38
+ if (properties.mode) {
39
+ other.mode = properties.mode;
40
+ }
41
+ return /*#__PURE__*/ React.createElement(Timeline, _extends({
42
+ id: blockId,
43
+ className: methods.makeCssClass([
44
+ {
45
+ padding: '5px 0px 0px 5px'
46
+ },
47
+ properties.style
48
+ ]),
49
+ pending: properties.pending,
50
+ pendingDot: properties.pendingDotIcon && /*#__PURE__*/ React.createElement(Icon, {
51
+ blockId: `${blockId}_pendingDotIcon`,
52
+ events: events,
53
+ properties: mergeObjects([
54
+ {
55
+ style: {
56
+ fontSize: 16
57
+ }
58
+ },
59
+ properties.pendingDotIcon
60
+ ])
61
+ }),
62
+ reverse: properties.reverse
63
+ }, other), (list || []).map((child, i)=>{
64
+ let icon = serializer.copy(get(value, `${i}.${properties.iconField || 'icon'}`));
65
+ let style = get(value, `${i}.${properties.styleField || 'style'}`);
66
+ if (type.isString(icon)) {
67
+ icon = {
68
+ name: icon
69
+ };
70
+ }
71
+ if (!type.isObject(style)) {
72
+ style = {};
73
+ }
74
+ const color = get(value, `${i}.${properties.colorField || 'color'}`);
75
+ return /*#__PURE__*/ React.createElement(Timeline.Item, {
76
+ key: `${blockId}_${i}`,
77
+ color: color,
78
+ position: get(value, `${i}.${properties.positionField || 'position'}`),
79
+ label: get(value, `${i}.${properties.labelField || 'label'}`),
80
+ dot: icon && /*#__PURE__*/ React.createElement(Icon, {
81
+ blockId: `${blockId}_${i}_icon`,
82
+ events: events,
83
+ properties: mergeObjects([
84
+ {
85
+ style,
86
+ color
87
+ },
88
+ icon
89
+ ])
90
+ })
91
+ }, child.content && child.content());
92
+ }));
93
+ };
94
+ TimelineList.defaultProps = blockDefaultProps;
95
+ TimelineList.meta = {
96
+ category: 'list',
97
+ icons: [],
98
+ styles: [
99
+ 'blocks/TimelineList/style.less'
100
+ ]
101
+ };
102
+ export default TimelineList;
@@ -0,0 +1,65 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "data": {
8
+ "type": "array",
9
+ "docs": {
10
+ "displayType": "yaml"
11
+ }
12
+ },
13
+ "style": {
14
+ "type": "object",
15
+ "description": "Css style object to apply to timeline.",
16
+ "docs": {
17
+ "displayType": "yaml"
18
+ }
19
+ },
20
+ "pendingDotIcon": {
21
+ "type": ["object", "string"],
22
+ "description": "Set the dot of the last ghost node when pending is true.",
23
+ "docs": {
24
+ "displayType": "icon"
25
+ }
26
+ },
27
+ "pending": {
28
+ "type": "boolean",
29
+ "default": false,
30
+ "description": "Set the last ghost node's existence or its content."
31
+ },
32
+ "reverse": {
33
+ "type": "boolean",
34
+ "default": false,
35
+ "description": "Reverse timeline nodes."
36
+ },
37
+ "iconField": {
38
+ "type": "string",
39
+ "description": "Use a custom icon field. Defaults to 'icon'."
40
+ },
41
+ "styleField": {
42
+ "type": "string",
43
+ "description": "Use a custom style field. Defaults to 'style'."
44
+ },
45
+ "colorField": {
46
+ "type": "string",
47
+ "description": "Use a custom color field. Defaults to 'color'."
48
+ },
49
+ "positionField": {
50
+ "type": "string",
51
+ "description": "Use a custom position field. Defaults to 'position'."
52
+ },
53
+ "labelField": {
54
+ "type": "string",
55
+ "description": "Use a custom label field. Defaults to 'label'."
56
+ },
57
+ "mode": {
58
+ "type": "string",
59
+ "enum": ["left", "right", "alternate"],
60
+ "default": "left",
61
+ "description": "By sending alternate the timeline will distribute the nodes to the left and right."
62
+ }
63
+ }
64
+ }
65
+ }
@@ -0,0 +1,17 @@
1
+ /*
2
+ Copyright 2020-2022 Lowdefy, Inc
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ @import 'antd/lib/timeline/style/index.less';
@@ -0,0 +1,109 @@
1
+ /*
2
+ Copyright 2020-2022 Lowdefy, Inc
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */ import React from 'react';
16
+ import { Typography } from 'antd';
17
+ import { blockDefaultProps, renderHtml } from '@lowdefy/block-utils';
18
+ import { type } from '@lowdefy/helpers';
19
+ const Title = Typography.Title;
20
+ const TitleBlock = ({ blockId , components: { Icon } , events , properties , methods })=>{
21
+ return /*#__PURE__*/ React.createElement(Title, {
22
+ id: blockId,
23
+ className: methods.makeCssClass([
24
+ properties.color && {
25
+ color: `${properties.color} !important`
26
+ },
27
+ properties.style,
28
+ ]),
29
+ code: properties.code,
30
+ copyable: type.isObject(properties.copyable) ? {
31
+ text: properties.copyable.text || properties.content,
32
+ onCopy: ()=>{
33
+ methods.triggerEvent({
34
+ name: 'onCopy',
35
+ event: {
36
+ value: properties.copyable.text || properties.content
37
+ }
38
+ });
39
+ },
40
+ icon: properties.copyable.icon && (type.isArray(properties.copyable.icon) ? [
41
+ /*#__PURE__*/ React.createElement(Icon, {
42
+ key: "copy-icon",
43
+ blockId: `${blockId}_copyable_before_icon`,
44
+ events: events,
45
+ properties: properties.copyable.icon[0]
46
+ }),
47
+ /*#__PURE__*/ React.createElement(Icon, {
48
+ key: "copied-icon",
49
+ blockId: `${blockId}_copyable_after_icon`,
50
+ events: events,
51
+ properties: properties.copyable.icon[1]
52
+ }),
53
+ ] : /*#__PURE__*/ React.createElement(Icon, {
54
+ blockId: `${blockId}_copyable_icon`,
55
+ events: events,
56
+ properties: properties.copyable.icon
57
+ })),
58
+ tooltips: properties.copyable.tooltips
59
+ } : properties.copyable && {
60
+ text: properties.content,
61
+ onCopy: ()=>{
62
+ methods.triggerEvent({
63
+ name: 'onCopy',
64
+ event: {
65
+ value: properties.content
66
+ }
67
+ });
68
+ }
69
+ },
70
+ delete: properties.delete,
71
+ disabled: properties.disabled,
72
+ ellipsis: type.isObject(properties.ellipsis) ? {
73
+ rows: properties.ellipsis.rows,
74
+ expandable: properties.ellipsis.expandable,
75
+ suffix: properties.ellipsis.suffix,
76
+ // FIX: not working, might be and antd issue.
77
+ // symbol: properties.ellipsis.symbol && <span>{properties.ellipsis.symbol}</span>,
78
+ // "symbol": {
79
+ // "type": "string",
80
+ // "description": "Custom ... symbol of ellipsis content."
81
+ // }
82
+ onExpand: (ellipsis)=>{
83
+ methods.triggerEvent({
84
+ name: 'onExpand',
85
+ event: {
86
+ ellipsis
87
+ }
88
+ });
89
+ }
90
+ } : properties.ellipsis,
91
+ italic: properties.italic,
92
+ level: properties.level,
93
+ mark: properties.mark,
94
+ type: properties.type,
95
+ underline: properties.underline
96
+ }, renderHtml({
97
+ html: properties.content,
98
+ methods
99
+ }));
100
+ };
101
+ TitleBlock.defaultProps = blockDefaultProps;
102
+ TitleBlock.meta = {
103
+ category: 'display',
104
+ icons: [],
105
+ styles: [
106
+ 'blocks/Title/style.less'
107
+ ]
108
+ };
109
+ export default TitleBlock;
@@ -0,0 +1,136 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "code": {
8
+ "type": "boolean",
9
+ "default": false,
10
+ "description": "Apply code style."
11
+ },
12
+ "color": {
13
+ "type": "string",
14
+ "description": "Title color.",
15
+ "docs": {
16
+ "displayType": "color"
17
+ }
18
+ },
19
+ "content": {
20
+ "type": "string",
21
+ "description": "Title text content - supports html."
22
+ },
23
+ "copyable": {
24
+ "default": false,
25
+ "oneOf": [
26
+ {
27
+ "type": "boolean",
28
+ "description": "Provide copy text button."
29
+ },
30
+ {
31
+ "type": "object",
32
+ "additionalProperties": false,
33
+ "properties": {
34
+ "text": {
35
+ "type": "string",
36
+ "description": "Paragraph text to copy when clicked."
37
+ },
38
+ "icon": {
39
+ "type": ["string", "object", "array"],
40
+ "description": "Copy icon, can be an array or two icons for before and after clicked.",
41
+ "docs": {
42
+ "displayType": "icon"
43
+ }
44
+ },
45
+ "tooltips": {
46
+ "type": ["string", "array"],
47
+ "description": "Tooltip text, can be an array or two strings for before and after clicked.",
48
+ "docs": {
49
+ "displayType": "string"
50
+ }
51
+ }
52
+ }
53
+ }
54
+ ]
55
+ },
56
+ "delete": {
57
+ "type": "boolean",
58
+ "default": false,
59
+ "description": "Apply deleted (strikethrough) style."
60
+ },
61
+ "disabled": {
62
+ "type": "boolean",
63
+ "default": false,
64
+ "description": "Apply disabled style."
65
+ },
66
+ "ellipsis": {
67
+ "default": false,
68
+ "oneOf": [
69
+ {
70
+ "type": "boolean",
71
+ "description": "Display ellipsis when text overflows a single line."
72
+ },
73
+ {
74
+ "type": "object",
75
+ "additionalProperties": false,
76
+ "properties": {
77
+ "rows": {
78
+ "type": "number",
79
+ "description": "Max rows of content."
80
+ },
81
+ "expandable": {
82
+ "type": "boolean",
83
+ "description": "Expand hidden content when clicked."
84
+ },
85
+ "suffix": {
86
+ "type": "string",
87
+ "description": "Suffix of ellipses content."
88
+ }
89
+ }
90
+ }
91
+ ]
92
+ },
93
+ "italic": {
94
+ "type": "boolean",
95
+ "default": false,
96
+ "description": "Apply italic style."
97
+ },
98
+ "level": {
99
+ "type": "number",
100
+ "default": 1,
101
+ "enum": [1, 2, 3, 4, 5],
102
+ "description": "Set title type. Matches with h1, h2, h3 and h4."
103
+ },
104
+ "mark": {
105
+ "type": "boolean",
106
+ "default": false,
107
+ "description": "Apply marked (highlighted) style."
108
+ },
109
+ "type": {
110
+ "type": "string",
111
+ "default": "default",
112
+ "enum": ["secondary", "warning", "danger", "success"],
113
+ "description": "Additional types. Don't specify for default."
114
+ },
115
+ "underline": {
116
+ "type": "boolean",
117
+ "default": false,
118
+ "description": "Apply underline style."
119
+ }
120
+ }
121
+ },
122
+ "events": {
123
+ "type": "object",
124
+ "additionalProperties": false,
125
+ "properties": {
126
+ "onExpand": {
127
+ "type": "array",
128
+ "description": "Trigger action when ellipse expand is clicked."
129
+ },
130
+ "onCopy": {
131
+ "type": "array",
132
+ "description": "Trigger action when copy text is clicked."
133
+ }
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,17 @@
1
+ /*
2
+ Copyright 2020-2022 Lowdefy, Inc
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ @import 'antd/lib/typography/style/index.less';
@@ -0,0 +1,122 @@
1
+ /*
2
+ Copyright 2020-2022 Lowdefy, Inc
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */ import React, { useState } from 'react';
16
+ import { Typography } from 'antd';
17
+ import { blockDefaultProps } from '@lowdefy/block-utils';
18
+ import { type } from '@lowdefy/helpers';
19
+ const Title = Typography.Title;
20
+ const TitleInput = ({ blockId , components: { Icon } , events , loading , methods , properties , value , })=>{
21
+ const [editing, setEdit] = useState(false);
22
+ const editableEvents = {
23
+ onStart: ()=>{
24
+ setEdit(true);
25
+ methods.triggerEvent({
26
+ name: 'onStart'
27
+ });
28
+ },
29
+ onChange: (val)=>{
30
+ setEdit(false);
31
+ methods.setValue(val);
32
+ methods.triggerEvent({
33
+ name: 'onChange',
34
+ event: {
35
+ value: val
36
+ }
37
+ });
38
+ }
39
+ };
40
+ return /*#__PURE__*/ React.createElement(Title, {
41
+ id: blockId,
42
+ code: properties.code,
43
+ italic: properties.italic,
44
+ level: properties.level,
45
+ mark: properties.mark,
46
+ type: properties.type,
47
+ underline: properties.underline,
48
+ className: methods.makeCssClass([
49
+ properties.color && {
50
+ color: `${properties.color} !important`
51
+ },
52
+ properties.style,
53
+ ]),
54
+ copyable: type.isObject(properties.copyable) ? {
55
+ text: properties.copyable.text,
56
+ onCopy: ()=>{
57
+ methods.triggerEvent({
58
+ name: 'onCopy',
59
+ event: {
60
+ value: properties.copyable.text
61
+ }
62
+ });
63
+ },
64
+ icon: properties.copyable.icon && (type.isArray(properties.copyable.icon) ? [
65
+ /*#__PURE__*/ React.createElement(Icon, {
66
+ key: "copy-icon",
67
+ events: events,
68
+ blockId: `${blockId}_copyable_before_icon`,
69
+ properties: properties.copyable.icon[0]
70
+ }),
71
+ /*#__PURE__*/ React.createElement(Icon, {
72
+ key: "copied-icon",
73
+ events: events,
74
+ blockId: `${blockId}_copyable_after_icon`,
75
+ properties: properties.copyable.icon[1]
76
+ }),
77
+ ] : /*#__PURE__*/ React.createElement(Icon, {
78
+ blockId: `${blockId}_copyable_icon`,
79
+ events: events,
80
+ properties: properties.copyable.icon
81
+ })),
82
+ tooltips: properties.copyable.tooltips
83
+ } : properties.copyable,
84
+ delete: properties.delete,
85
+ disabled: properties.disabled || loading,
86
+ ellipsis: type.isObject(properties.ellipsis) ? {
87
+ rows: properties.ellipsis.rows,
88
+ expandable: properties.ellipsis.expandable,
89
+ suffix: properties.ellipsis.suffix,
90
+ onExpand: (ellipsis)=>{
91
+ methods.triggerEvent({
92
+ name: 'onExpand',
93
+ event: {
94
+ ellipsis
95
+ }
96
+ });
97
+ }
98
+ } : properties.ellipsis,
99
+ editable: type.isObject(properties.editable) ? {
100
+ icon: properties.editable.icon && /*#__PURE__*/ React.createElement(Icon, {
101
+ blockId: `${blockId}_editable_icon`,
102
+ events: events,
103
+ properties: properties.editable.icon
104
+ }),
105
+ tooltip: properties.editable.tooltip,
106
+ editing: properties.editable.editing || editing,
107
+ maxLength: properties.editable.maxLength,
108
+ autoSize: properties.editable.autoSize,
109
+ ...editableEvents
110
+ } : properties.editable !== false && editableEvents
111
+ }, !type.isNone(value) ? value.toString() : '');
112
+ };
113
+ TitleInput.defaultProps = blockDefaultProps;
114
+ TitleInput.meta = {
115
+ valueType: 'string',
116
+ category: 'input',
117
+ icons: [],
118
+ styles: [
119
+ 'blocks/TitleInput/style.less'
120
+ ]
121
+ };
122
+ export default TitleInput;