@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,85 @@
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, useEffect } from 'react';
16
+ import { blockDefaultProps } from '@lowdefy/block-utils';
17
+ import { get } from '@lowdefy/helpers';
18
+ import { Layout } from 'antd';
19
+ const Sider = Layout.Sider;
20
+ const triggerSetOpen = async ({ state , setOpen , methods , rename })=>{
21
+ if (!state) {
22
+ await methods.triggerEvent({
23
+ name: get(rename, 'events.onClose', {
24
+ default: 'onClose'
25
+ })
26
+ });
27
+ }
28
+ if (state) {
29
+ await methods.triggerEvent({
30
+ name: get(rename, 'events.onOpen', {
31
+ default: 'onOpen'
32
+ })
33
+ });
34
+ }
35
+ setOpen(state);
36
+ };
37
+ const SiderBlock = ({ blockId , properties , content , methods , rename })=>{
38
+ const [openState, setOpen] = useState(!properties.initialCollapsed);
39
+ useEffect(()=>{
40
+ methods.registerMethod(get(rename, 'methods.toggleOpen', {
41
+ default: 'toggleOpen'
42
+ }), async ()=>await triggerSetOpen({
43
+ state: !openState,
44
+ setOpen,
45
+ methods,
46
+ rename
47
+ }));
48
+ methods.registerMethod(get(rename, 'methods.setOpen', {
49
+ default: 'setOpen'
50
+ }), async ({ open })=>await triggerSetOpen({
51
+ state: !!open,
52
+ setOpen,
53
+ methods,
54
+ rename
55
+ }));
56
+ });
57
+ return /*#__PURE__*/ React.createElement(Sider, {
58
+ id: blockId,
59
+ className: `${methods.makeCssClass([
60
+ {
61
+ overflow: 'auto'
62
+ },
63
+ properties.style
64
+ ])} hide-on-print`,
65
+ breakpoint: properties.breakpoint,
66
+ collapsed: !openState,
67
+ collapsedWidth: properties.collapsedWidth,
68
+ collapsible: properties.collapsible,
69
+ reverseArrow: properties.reverseArrow,
70
+ theme: properties.theme,
71
+ width: properties.width,
72
+ onBreakpoint: ()=>methods.triggerEvent({
73
+ name: 'onBreakpoint'
74
+ })
75
+ }, content.content && content.content());
76
+ };
77
+ SiderBlock.defaultProps = blockDefaultProps;
78
+ SiderBlock.meta = {
79
+ category: 'container',
80
+ icons: [],
81
+ styles: [
82
+ 'blocks/Sider/style.less'
83
+ ]
84
+ };
85
+ export default SiderBlock;
@@ -0,0 +1,71 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "breakpoint": {
8
+ "type": "string",
9
+ "enum": ["xs", "sm", "md", "lg", "xl", "xxl"],
10
+ "default": "sm",
11
+ "description": "Breakpoint of the responsive layout"
12
+ },
13
+ "collapsedWidth": {
14
+ "type": "integer",
15
+ "description": "Width of the collapsed sidebar, by setting to 0 a special trigger will appear"
16
+ },
17
+ "collapsible": {
18
+ "type": "boolean",
19
+ "description": "Whether can be collapsed"
20
+ },
21
+ "initialCollapsed": {
22
+ "type": "boolean",
23
+ "default": true,
24
+ "description": "Set the initial collapsed state"
25
+ },
26
+ "reverseArrow": {
27
+ "type": "boolean",
28
+ "default": false,
29
+ "description": "Direction of arrow, for a sider that expands from the right"
30
+ },
31
+ "theme": {
32
+ "type": "string",
33
+ "enum": ["light", "dark"],
34
+ "default": "light",
35
+ "description": "Color theme of the sidebar"
36
+ },
37
+ "style": {
38
+ "type": "object",
39
+ "description": "Css style object to apply to sider.",
40
+ "docs": {
41
+ "displayType": "style"
42
+ }
43
+ },
44
+ "width": {
45
+ "type": ["string", "number"],
46
+ "description": "width of the sidebar",
47
+ "docs": {
48
+ "displayType": "string"
49
+ }
50
+ }
51
+ }
52
+ },
53
+ "events": {
54
+ "type": "object",
55
+ "additionalProperties": false,
56
+ "properties": {
57
+ "onClose": {
58
+ "type": "array",
59
+ "description": "Trigger actions when sider is closed."
60
+ },
61
+ "onOpen": {
62
+ "type": "array",
63
+ "description": "Trigger actions when sider is opened."
64
+ },
65
+ "onBreakpoint": {
66
+ "type": "array",
67
+ "description": "Trigger actions on breakpoint change."
68
+ }
69
+ }
70
+ }
71
+ }
@@ -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,51 @@
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 { Statistic } from 'antd';
17
+ import { type } from '@lowdefy/helpers';
18
+ import { blockDefaultProps, renderHtml } from '@lowdefy/block-utils';
19
+ const StatisticBlock = ({ blockId , components: { Icon } , events , properties , methods })=>/*#__PURE__*/ React.createElement(Statistic, {
20
+ className: methods.makeCssClass(properties.style),
21
+ decimalSeparator: properties.decimalSeparator,
22
+ groupSeparator: properties.groupSeparator,
23
+ id: blockId,
24
+ loading: properties.loading,
25
+ precision: properties.precision,
26
+ title: renderHtml({
27
+ html: properties.title,
28
+ methods
29
+ }),
30
+ value: type.isNone(properties.value) ? '' : properties.value,
31
+ valueStyle: methods.makeCssClass(properties.valueStyle, true),
32
+ prefix: properties.prefixIcon ? /*#__PURE__*/ React.createElement(Icon, {
33
+ blockId: `${blockId}_prefixIcon`,
34
+ events: events,
35
+ properties: properties.prefixIcon
36
+ }) : properties.prefix || '',
37
+ suffix: properties.suffixIcon ? /*#__PURE__*/ React.createElement(Icon, {
38
+ blockId: `${blockId}_suffixIcon`,
39
+ events: events,
40
+ properties: properties.suffixIcon
41
+ }) : properties.suffix || ''
42
+ });
43
+ StatisticBlock.defaultProps = blockDefaultProps;
44
+ StatisticBlock.meta = {
45
+ category: 'display',
46
+ icons: [],
47
+ styles: [
48
+ 'blocks/Statistic/style.less'
49
+ ]
50
+ };
51
+ export default StatisticBlock;
@@ -0,0 +1,74 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "decimalSeparator": {
8
+ "type": "string",
9
+ "default": ".",
10
+ "description": "Decimal separator."
11
+ },
12
+ "groupSeparator": {
13
+ "type": "string",
14
+ "default": ",",
15
+ "description": "Group separator."
16
+ },
17
+ "loading": {
18
+ "type": "boolean",
19
+ "default": false,
20
+ "description": "Control the loading status of Statistic."
21
+ },
22
+ "precision": {
23
+ "type": "number",
24
+ "description": "Number of decimals to display."
25
+ },
26
+ "prefix": {
27
+ "type": "string",
28
+ "description": "Prefix text, priority over prefixIcon."
29
+ },
30
+ "prefixIcon": {
31
+ "type": ["string", "object"],
32
+ "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 icon which prefix the statistic.",
33
+ "docs": {
34
+ "displayType": "icon"
35
+ }
36
+ },
37
+ "suffix": {
38
+ "type": "string",
39
+ "description": "Suffix text, priority over suffixIcon."
40
+ },
41
+ "suffixIcon": {
42
+ "type": ["string", "object"],
43
+ "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 icon which suffix the statistic.",
44
+ "docs": {
45
+ "displayType": "icon"
46
+ }
47
+ },
48
+ "title": {
49
+ "type": "string",
50
+ "description": "Title to describe the component - supports html."
51
+ },
52
+ "value": {
53
+ "oneOf": [
54
+ {
55
+ "type": "number",
56
+ "description": "Value to display.",
57
+ "step": "0.01"
58
+ },
59
+ {
60
+ "type": "string",
61
+ "description": "Value to display."
62
+ }
63
+ ]
64
+ },
65
+ "valueStyle": {
66
+ "type": "object",
67
+ "description": "Css style to applied to value.",
68
+ "docs": {
69
+ "displayType": "yaml"
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
@@ -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/statistic/style/index.less';
@@ -0,0 +1,101 @@
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 { Switch } from 'antd';
17
+ import { blockDefaultProps } from '@lowdefy/block-utils';
18
+ import { type, serializer } from '@lowdefy/helpers';
19
+ import Label from '../Label/Label.js';
20
+ const SwitchBlock = ({ blockId , components: { Icon , Link } , events , loading , methods , properties , required , validation , value , })=>{
21
+ let propertiesIconChecked = serializer.copy(properties.checkedIcon);
22
+ if (type.isString(propertiesIconChecked)) {
23
+ propertiesIconChecked = {
24
+ name: propertiesIconChecked
25
+ };
26
+ }
27
+ let propertiesIconUnchecked = serializer.copy(properties.uncheckedIcon);
28
+ if (type.isString(propertiesIconUnchecked)) {
29
+ propertiesIconUnchecked = {
30
+ name: propertiesIconUnchecked
31
+ };
32
+ }
33
+ return /*#__PURE__*/ React.createElement(Label, {
34
+ blockId: blockId,
35
+ components: {
36
+ Icon,
37
+ Link
38
+ },
39
+ events: events,
40
+ properties: {
41
+ title: properties.title,
42
+ size: properties.size,
43
+ ...properties.label
44
+ },
45
+ required: required,
46
+ validation: validation,
47
+ content: {
48
+ content: ()=>/*#__PURE__*/ React.createElement(Switch, {
49
+ autoFocus: properties.autoFocus,
50
+ checked: !!value,
51
+ className: methods.makeCssClass([
52
+ properties.color && {
53
+ '&.ant-switch-checked': {
54
+ backgroundColor: `${properties.color} !important`
55
+ }
56
+ },
57
+ properties.inputStyle,
58
+ ]),
59
+ disabled: properties.disabled || loading,
60
+ id: `${blockId}_input`,
61
+ size: properties.size,
62
+ checkedChildren: properties.checkedText ? /*#__PURE__*/ React.createElement("span", null, properties.checkedText) : /*#__PURE__*/ React.createElement(Icon, {
63
+ blockId: `${blockId}_checkedIcon`,
64
+ events: events,
65
+ properties: {
66
+ name: 'AiOutlineCheck',
67
+ ...propertiesIconChecked || {}
68
+ }
69
+ }),
70
+ unCheckedChildren: properties.uncheckedText ? /*#__PURE__*/ React.createElement("span", null, properties.uncheckedText) : /*#__PURE__*/ React.createElement(Icon, {
71
+ blockId: `${blockId}_uncheckedIcon`,
72
+ events: events,
73
+ properties: {
74
+ name: 'AiOutlineClose',
75
+ ...propertiesIconUnchecked || {}
76
+ }
77
+ }),
78
+ onChange: (newVal)=>{
79
+ methods.setValue(newVal);
80
+ methods.triggerEvent({
81
+ name: 'onChange'
82
+ });
83
+ }
84
+ })
85
+ }
86
+ });
87
+ };
88
+ SwitchBlock.defaultProps = blockDefaultProps;
89
+ SwitchBlock.meta = {
90
+ valueType: 'boolean',
91
+ category: 'input',
92
+ icons: [
93
+ ...Label.meta.icons,
94
+ 'AiOutlineCheck',
95
+ 'AiOutlineClose'
96
+ ],
97
+ styles: [
98
+ 'blocks/Switch/style.less'
99
+ ]
100
+ };
101
+ export default SwitchBlock;
@@ -0,0 +1,136 @@
1
+ {
2
+ "type": "object",
3
+ "properties": {
4
+ "type": "object",
5
+ "additionalProperties": false,
6
+ "properties": {
7
+ "autoFocus": {
8
+ "type": "boolean",
9
+ "default": false,
10
+ "description": "Autofocus to the block on page load."
11
+ },
12
+ "checkedIcon": {
13
+ "type": ["string", "object"],
14
+ "default": "AiOutlineCheck",
15
+ "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 icon to shown when switch is checked (true).",
16
+ "docs": {
17
+ "displayType": "icon"
18
+ }
19
+ },
20
+ "checkedText": {
21
+ "type": "string",
22
+ "description": "Text to shown when switch is checked (true)."
23
+ },
24
+ "color": {
25
+ "type": "string",
26
+ "description": "Switch checked color.",
27
+ "docs": {
28
+ "displayType": "color"
29
+ }
30
+ },
31
+ "disabled": {
32
+ "type": "boolean",
33
+ "default": false,
34
+ "description": "Disable the block if true."
35
+ },
36
+ "inputStyle": {
37
+ "type": "object",
38
+ "description": "Css style to applied to input.",
39
+ "docs": {
40
+ "displayType": "yaml"
41
+ }
42
+ },
43
+ "label": {
44
+ "type": "object",
45
+ "description": "Label properties.",
46
+ "additionalProperties": false,
47
+ "properties": {
48
+ "align": {
49
+ "type": "string",
50
+ "enum": ["left", "right"],
51
+ "default": "left",
52
+ "description": "Align label left or right when inline."
53
+ },
54
+ "colon": {
55
+ "type": "boolean",
56
+ "default": true,
57
+ "description": "Append label with colon."
58
+ },
59
+ "extra": {
60
+ "type": "string",
61
+ "description": "Extra text to display beneath the content - supports html."
62
+ },
63
+ "title": {
64
+ "type": "string",
65
+ "description": "Label title - supports html."
66
+ },
67
+ "span": {
68
+ "type": "number",
69
+ "description": "Label inline span."
70
+ },
71
+ "disabled": {
72
+ "type": "boolean",
73
+ "default": false,
74
+ "description": "Hide input label."
75
+ },
76
+ "hasFeedback": {
77
+ "type": "boolean",
78
+ "default": true,
79
+ "description": "Display feedback extra from validation, this does not disable validation."
80
+ },
81
+ "inline": {
82
+ "type": "boolean",
83
+ "default": false,
84
+ "description": "Render input and label inline."
85
+ },
86
+ "extraStyle": {
87
+ "type": "object",
88
+ "description": "Css style to applied to label extra.",
89
+ "docs": {
90
+ "displayType": "yaml"
91
+ }
92
+ },
93
+ "feedbackStyle": {
94
+ "type": "object",
95
+ "description": "Css style to applied to label feedback.",
96
+ "docs": {
97
+ "displayType": "yaml"
98
+ }
99
+ }
100
+ }
101
+ },
102
+ "size": {
103
+ "type": "string",
104
+ "enum": ["small", "default"],
105
+ "default": "default",
106
+ "description": "Size of the block."
107
+ },
108
+ "title": {
109
+ "type": "string",
110
+ "description": "Title to describe the input component, if no title is specified the block id is displayed - supports html."
111
+ },
112
+ "uncheckedIcon": {
113
+ "type": ["string", "object"],
114
+ "default": "AiOutlineClose",
115
+ "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 icon to shown when switch is unchecked (false).",
116
+ "docs": {
117
+ "displayType": "icon"
118
+ }
119
+ },
120
+ "uncheckedText": {
121
+ "type": "string",
122
+ "description": "Text to shown when switch is not checked (false)."
123
+ }
124
+ }
125
+ },
126
+ "events": {
127
+ "type": "object",
128
+ "additionalProperties": false,
129
+ "properties": {
130
+ "onChange": {
131
+ "type": "array",
132
+ "description": "Trigger action when switch is changed."
133
+ }
134
+ }
135
+ }
136
+ }
@@ -0,0 +1,18 @@
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/switch/style/index.less';
18
+ @import '../Label/style.less';
@@ -0,0 +1,108 @@
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 { blockDefaultProps } from '@lowdefy/block-utils';
31
+ import { Tabs } from 'antd';
32
+ const getTabs = ({ content , properties })=>{
33
+ let tabs = properties.tabs;
34
+ if (!tabs) {
35
+ tabs = Object.keys(content).sort().map((key)=>({
36
+ key,
37
+ title: key
38
+ }));
39
+ }
40
+ // remove extraAreaKey key area from tabs
41
+ return tabs.filter((tab)=>tab.key !== properties.extraAreaKey);
42
+ };
43
+ const getAdditionalProps = ({ content , properties })=>{
44
+ const additionalProps = {};
45
+ if (properties.activeKey) {
46
+ additionalProps.activeKey = properties.activeKey;
47
+ }
48
+ if (properties.extraAreaKey) {
49
+ additionalProps.tabBarExtraContent = content[properties.extraAreaKey] && content[properties.extraAreaKey]();
50
+ }
51
+ return additionalProps;
52
+ };
53
+ const TabsBlock = ({ blockId , components: { Icon } , events , content , methods , properties })=>{
54
+ const tabs = getTabs({
55
+ content,
56
+ properties
57
+ });
58
+ const additionalProps = getAdditionalProps({
59
+ content,
60
+ properties
61
+ });
62
+ return /*#__PURE__*/ React.createElement(Tabs, _extends({
63
+ animated: properties.animated !== undefined ? properties.animated : true,
64
+ defaultActiveKey: properties.defaultActiveKey || tabs[0].key,
65
+ id: blockId,
66
+ onChange: (activeKey)=>methods.triggerEvent({
67
+ name: 'onChange',
68
+ event: {
69
+ activeKey
70
+ }
71
+ }),
72
+ size: properties.size || 'default',
73
+ tabBarStyle: methods.makeCssClass(properties.tabBarStyle, true),
74
+ tabPosition: properties.tabPosition || 'top',
75
+ type: properties.tabType || 'line',
76
+ onTabScroll: ({ direction })=>methods.triggerEvent({
77
+ name: 'onTabScroll',
78
+ event: {
79
+ direction
80
+ }
81
+ }),
82
+ onTabClick: (key)=>methods.triggerEvent({
83
+ name: 'onTabClick',
84
+ event: {
85
+ key
86
+ }
87
+ })
88
+ }, additionalProps), tabs.map((tab)=>/*#__PURE__*/ React.createElement(Tabs.TabPane, {
89
+ disabled: tab.disabled,
90
+ key: tab.key,
91
+ tab: /*#__PURE__*/ React.createElement("span", {
92
+ className: methods.makeCssClass(tab.titleStyle)
93
+ }, tab.icon && /*#__PURE__*/ React.createElement(Icon, {
94
+ blockId: `${blockId}_icon`,
95
+ events: events,
96
+ properties: tab.icon
97
+ }), tab.title || tab.key)
98
+ }, content[tab.key] && content[tab.key]())));
99
+ };
100
+ TabsBlock.defaultProps = blockDefaultProps;
101
+ TabsBlock.meta = {
102
+ category: 'container',
103
+ icons: [],
104
+ styles: [
105
+ 'blocks/Tabs/style.less'
106
+ ]
107
+ };
108
+ export default TabsBlock;