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

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 +9 -9
@@ -0,0 +1,122 @@
1
+ {
2
+ "properties": {
3
+ "type": "object",
4
+ "additionalProperties": false,
5
+ "properties": {
6
+ "title": {
7
+ "type": "string",
8
+ "description": "Modal title - supports html."
9
+ },
10
+ "bodyStyle": {
11
+ "type": "object",
12
+ "description": "Css style to applied to modal body.",
13
+ "docs": {
14
+ "displayType": "yaml"
15
+ }
16
+ },
17
+ "centered": {
18
+ "type": "boolean",
19
+ "default": false,
20
+ "description": "Centered Modal."
21
+ },
22
+ "closable": {
23
+ "type": "boolean",
24
+ "default": false,
25
+ "description": "Whether a close (x) button is visible on top right of the confirm dialog or not."
26
+ },
27
+ "content": {
28
+ "type": "string",
29
+ "description": "Modal content. Overridden by the \"content\" content area - supports html."
30
+ },
31
+ "icon": {
32
+ "type": ["string", "object"],
33
+ "description": "Name of an React-Icon (See <a href='https://react-icons.github.io/react-icons/'>all icons</a>) or properties of an Icon block to customize modal icon.",
34
+ "docs": {
35
+ "displayType": "icon"
36
+ }
37
+ },
38
+ "mask": {
39
+ "type": "boolean",
40
+ "default": true,
41
+ "description": "Whether show mask or not."
42
+ },
43
+ "maskClosable": {
44
+ "type": "boolean",
45
+ "default": false,
46
+ "description": "Whether to close the modal dialog when the mask (area outside the modal) is clicked."
47
+ },
48
+ "modalStyle": {
49
+ "type": "object",
50
+ "description": "Css style to applied to modal.",
51
+ "docs": {
52
+ "displayType": "yaml"
53
+ }
54
+ },
55
+ "okText": {
56
+ "type": "string",
57
+ "default": "Ok",
58
+ "description": "Text of the Ok button."
59
+ },
60
+ "cancelText": {
61
+ "type": "string",
62
+ "default": "Cancel",
63
+ "description": "Text of the Cancel button."
64
+ },
65
+ "okButton": {
66
+ "type": "object",
67
+ "description": "Ok button properties.",
68
+ "docs": {
69
+ "displayType": "button"
70
+ }
71
+ },
72
+ "cancelButton": {
73
+ "type": "object",
74
+ "description": "Cancel button properties.",
75
+ "docs": {
76
+ "displayType": "button"
77
+ }
78
+ },
79
+ "width": {
80
+ "type": ["number", "string"],
81
+ "default": 416,
82
+ "description": "Width of the modal dialog.",
83
+ "docs": {
84
+ "displayType": "string"
85
+ }
86
+ },
87
+ "zIndex": {
88
+ "type": "number",
89
+ "default": 1000,
90
+ "description": "The z-index of the Modal."
91
+ },
92
+ "status": {
93
+ "type": "string",
94
+ "enum": ["success", "error", "info", "warning", "confirm"],
95
+ "default": "confirm",
96
+ "description": "Modal status type."
97
+ }
98
+ }
99
+ },
100
+ "events": {
101
+ "type": "object",
102
+ "additionalProperties": false,
103
+ "properties": {
104
+ "onOk": {
105
+ "type": "array",
106
+ "description": "Trigger actions when Ok button is clicked."
107
+ },
108
+ "onOpen": {
109
+ "type": "array",
110
+ "description": "Trigger actions when confirm modal is opened."
111
+ },
112
+ "onCancel": {
113
+ "type": "array",
114
+ "description": "Trigger actions when Cancel button is clicked."
115
+ },
116
+ "onClose": {
117
+ "type": "array",
118
+ "description": "Triggered after onOk or onCancel actions are completed."
119
+ }
120
+ }
121
+ }
122
+ }
@@ -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/modal/style/index.less';
@@ -0,0 +1,31 @@
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 { Layout } from 'antd';
17
+ import { blockDefaultProps } from '@lowdefy/block-utils';
18
+ const Content = Layout.Content;
19
+ const ContentBlock = ({ blockId , content , methods , properties })=>/*#__PURE__*/ React.createElement(Content, {
20
+ id: blockId,
21
+ className: methods.makeCssClass(properties.style)
22
+ }, content.content && content.content());
23
+ ContentBlock.defaultProps = blockDefaultProps;
24
+ ContentBlock.meta = {
25
+ category: 'container',
26
+ icons: [],
27
+ styles: [
28
+ 'blocks/Content/style.less'
29
+ ]
30
+ };
31
+ export default ContentBlock;
@@ -0,0 +1,16 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "style": {
8
+ "type": "object",
9
+ "description": "Css style object to applied to content.",
10
+ "docs": {
11
+ "displayType": "yaml"
12
+ }
13
+ }
14
+ }
15
+ }
16
+ }
@@ -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/layout/style/index.less';
@@ -0,0 +1,137 @@
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, { useEffect } from 'react';
16
+ import { get } from '@lowdefy/helpers';
17
+ import { List, Typography } from 'antd';
18
+ import { blockDefaultProps } from '@lowdefy/block-utils';
19
+ import Button from '../Button/Button.js';
20
+ const ControlledListBlock = ({ blockId , components: { Icon , Link } , events , list , methods , properties , })=>{
21
+ useEffect(()=>{
22
+ methods.registerMethod('moveItemDown', methods.moveItemDown);
23
+ methods.registerMethod('moveItemUp', methods.moveItemUp);
24
+ methods.registerMethod('pushItem', methods.pushItem);
25
+ methods.registerMethod('removeItem', methods.removeItem);
26
+ methods.registerMethod('unshiftItem', methods.unshiftItem);
27
+ });
28
+ const styles = {
29
+ header: {
30
+ display: 'flex',
31
+ flexDirection: 'row',
32
+ flexWrap: 'nowrap',
33
+ justifyContent: 'space-between'
34
+ },
35
+ footer: {
36
+ display: 'flex',
37
+ flexDirection: 'row',
38
+ flexWrap: 'nowrap',
39
+ justifyContent: 'space-between'
40
+ },
41
+ item: {
42
+ width: '100%'
43
+ }
44
+ };
45
+ return /*#__PURE__*/ React.createElement(List, {
46
+ id: blockId,
47
+ size: properties.size,
48
+ header: (properties.title || properties.addToFront && !properties.hideAddButton) && /*#__PURE__*/ React.createElement("div", {
49
+ className: methods.makeCssClass([
50
+ styles.header,
51
+ properties.headerStyle
52
+ ])
53
+ }, properties.title ? /*#__PURE__*/ React.createElement(Typography.Text, {
54
+ strong: true
55
+ }, properties.title) : /*#__PURE__*/ React.createElement("br", null), properties.addToFront && !properties.hideAddButton && /*#__PURE__*/ React.createElement(Button, {
56
+ blockId: `${blockId}_add_button`,
57
+ components: {
58
+ Icon,
59
+ Link
60
+ },
61
+ events: events,
62
+ properties: {
63
+ icon: 'AiOutlinePlus',
64
+ size: properties.size,
65
+ title: get(properties, 'addItemButton.title ') || 'Add Item',
66
+ type: 'default',
67
+ ...properties.addItemButton
68
+ },
69
+ onClick: ()=>methods.unshiftItem()
70
+ })),
71
+ footer: !properties.addToFront && !properties.hideAddButton && /*#__PURE__*/ React.createElement("div", {
72
+ className: methods.makeCssClass([
73
+ styles.footer,
74
+ properties.footerStyle
75
+ ])
76
+ }, /*#__PURE__*/ React.createElement("br", null), /*#__PURE__*/ React.createElement(Button, {
77
+ blockId: `${blockId}_add_button`,
78
+ components: {
79
+ Icon,
80
+ Link
81
+ },
82
+ events: events,
83
+ properties: {
84
+ icon: 'AiOutlinePlus',
85
+ size: properties.size,
86
+ title: get(properties, 'addItemButton.title ') || 'Add Item',
87
+ type: 'dashed',
88
+ ...properties.addItemButton
89
+ },
90
+ onClick: ()=>methods.pushItem()
91
+ })),
92
+ bordered: true,
93
+ locale: {
94
+ emptyText: properties.noDataTitle || 'No Items'
95
+ },
96
+ dataSource: list,
97
+ renderItem: (item, i)=>/*#__PURE__*/ React.createElement(List.Item, {
98
+ key: `${blockId}_${i}`,
99
+ className: methods.makeCssClass([
100
+ styles.item,
101
+ properties.itemStyle
102
+ ]),
103
+ extra: !properties.hideRemoveButton && [
104
+ // eslint-disable-next-line react/jsx-key
105
+ /*#__PURE__*/ React.createElement(Icon, {
106
+ blockId: `${blockId}_${i}_remove_icon`,
107
+ events: events,
108
+ properties: {
109
+ name: 'AiOutlineMinusCircle',
110
+ ...properties.removeItemIcon,
111
+ style: {
112
+ paddingLeft: properties.size === 'small' ? 2 : properties.size === 'large' ? 6 : 4,
113
+ fontSize: properties.size === 'small' ? 16 : properties.size === 'large' ? 20 : 18,
114
+ ...properties.removeItemIcon && properties.removeItemIcon.style ? properties.removeItemIcon.style : {}
115
+ }
116
+ },
117
+ onClick: ()=>methods.removeItem(i)
118
+ }),
119
+ ]
120
+ }, item.content && item.content({
121
+ width: '100%'
122
+ }))
123
+ });
124
+ };
125
+ ControlledListBlock.defaultProps = blockDefaultProps;
126
+ ControlledListBlock.meta = {
127
+ valueType: 'array',
128
+ category: 'list',
129
+ icons: [
130
+ 'AiOutlinePlus',
131
+ 'AiOutlineMinusCircle'
132
+ ],
133
+ styles: [
134
+ 'blocks/ControlledList/style.less'
135
+ ]
136
+ };
137
+ export default ControlledListBlock;
@@ -0,0 +1,68 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "title": {
8
+ "type": "string",
9
+ "description": "Controlled list title."
10
+ },
11
+ "addToFront": {
12
+ "type": "boolean",
13
+ "default": false,
14
+ "description": "When true, add new items to the front of the list."
15
+ },
16
+ "hideAddButton": {
17
+ "type": "boolean",
18
+ "default": false,
19
+ "description": "When true, hide the add new item button."
20
+ },
21
+ "size": {
22
+ "type": "string",
23
+ "enum": ["small", "default", "large"],
24
+ "default": "default",
25
+ "description": "When true, hide the add new item button."
26
+ },
27
+ "style": {
28
+ "type": "object",
29
+ "description": "Css style object to applied to content.",
30
+ "docs": {
31
+ "displayType": "yaml"
32
+ }
33
+ },
34
+ "addItemButton": {
35
+ "type": "object",
36
+ "description": "Custom add item button properties.",
37
+ "docs": {
38
+ "displayType": "button"
39
+ }
40
+ },
41
+ "removeItemIcon": {
42
+ "type": ["string", "object"],
43
+ "description": "Custom remove item icon properties.",
44
+ "docs": {
45
+ "displayType": "icon"
46
+ }
47
+ },
48
+ "footerStyle": {
49
+ "type": "object",
50
+ "description": "Css style object to applied to controlled list footer.",
51
+ "docs": {
52
+ "displayType": "yaml"
53
+ }
54
+ },
55
+ "itemStyle": {
56
+ "type": "object",
57
+ "description": "Css style object to applied to controlled list items.",
58
+ "docs": {
59
+ "displayType": "yaml"
60
+ }
61
+ },
62
+ "noDataTitle": {
63
+ "type": "string",
64
+ "description": "Title to show when list is empty."
65
+ }
66
+ }
67
+ }
68
+ }
@@ -0,0 +1,19 @@
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/list/style/index.less';
18
+ @import 'antd/lib/typography/style/index.less';
19
+ @import '../Button/style.less';
@@ -0,0 +1,102 @@
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 { DatePicker } from 'antd';
17
+ import moment from 'moment';
18
+ import { blockDefaultProps } from '@lowdefy/block-utils';
19
+ import { type } from '@lowdefy/helpers';
20
+ import Label from '../Label/Label.js';
21
+ import disabledDate from '../../disabledDate.js';
22
+ const RangePicker = DatePicker.RangePicker;
23
+ const rangeValue = (value, format)=>{
24
+ if (value && format) return value.map((val)=>moment.utc(val, format).startOf('day'));
25
+ if (value) return value.map((val)=>moment.utc(val).startOf('day'));
26
+ return null;
27
+ };
28
+ const DateRangeSelector = ({ blockId , components: { Icon } , events , loading , methods , properties , required , validation , value , })=>{
29
+ return /*#__PURE__*/ React.createElement(Label, {
30
+ blockId: blockId,
31
+ components: {
32
+ Icon
33
+ },
34
+ events: events,
35
+ properties: {
36
+ title: properties.title,
37
+ size: properties.size,
38
+ ...properties.label
39
+ },
40
+ validation: validation,
41
+ required: required,
42
+ content: {
43
+ content: ()=>/*#__PURE__*/ React.createElement("div", {
44
+ className: methods.makeCssClass({
45
+ width: '100%'
46
+ })
47
+ }, /*#__PURE__*/ React.createElement("div", {
48
+ id: `${blockId}_popup`
49
+ }), /*#__PURE__*/ React.createElement(RangePicker, {
50
+ id: `${blockId}_input`,
51
+ allowClear: properties.allowClear !== false,
52
+ autoFocus: properties.autoFocus,
53
+ bordered: properties.bordered,
54
+ className: methods.makeCssClass([
55
+ {
56
+ width: '100%'
57
+ },
58
+ properties.inputStyle
59
+ ]),
60
+ disabled: properties.disabled || loading,
61
+ disabledDate: disabledDate(properties.disabledDates),
62
+ format: properties.format || 'YYYY-MM-DD',
63
+ getPopupContainer: ()=>document.getElementById(`${blockId}_popup`),
64
+ separator: properties.separator || '~',
65
+ size: properties.size,
66
+ status: validation.status,
67
+ placeholder: type.isArray(properties.placeholder) && [
68
+ properties.placeholder[0] || 'Start Date',
69
+ properties.placeholder[1] || 'End Date',
70
+ ] || [
71
+ 'Start Date',
72
+ 'End Date'
73
+ ],
74
+ suffixIcon: /*#__PURE__*/ React.createElement(Icon, {
75
+ blockId: `${blockId}_suffixIcon`,
76
+ events: events,
77
+ properties: properties.suffixIcon || 'AiOutlineCalendar'
78
+ }),
79
+ onChange: (newVal)=>{
80
+ methods.setValue(!newVal ? null : newVal.map((val)=>moment.utc(val.add(val.utcOffset(), 'minutes')).startOf('day').toDate()));
81
+ methods.triggerEvent({
82
+ name: 'onChange'
83
+ });
84
+ },
85
+ value: rangeValue(value)
86
+ }))
87
+ }
88
+ });
89
+ };
90
+ DateRangeSelector.defaultProps = blockDefaultProps;
91
+ DateRangeSelector.meta = {
92
+ valueType: 'array',
93
+ category: 'input',
94
+ icons: [
95
+ ...Label.meta.icons,
96
+ 'AiOutlineCalendar'
97
+ ],
98
+ styles: [
99
+ 'blocks/DateRangeSelector/style.less'
100
+ ]
101
+ };
102
+ export default DateRangeSelector;