@lowdefy/blocks-antd 4.7.3 → 5.1.0
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/dist/blocks/Affix/Affix.js +6 -12
- package/dist/blocks/Affix/{schema.js → meta.js} +23 -14
- package/dist/blocks/Alert/Alert.js +17 -12
- package/dist/blocks/Alert/e2e.js +1 -1
- package/dist/blocks/Alert/meta.js +186 -0
- package/dist/blocks/AutoComplete/AutoComplete.js +21 -22
- package/dist/blocks/AutoComplete/meta.js +266 -0
- package/dist/blocks/Avatar/Avatar.js +58 -18
- package/dist/blocks/Avatar/meta.js +277 -0
- package/dist/blocks/Badge/Badge.js +13 -12
- package/dist/blocks/Badge/{schema.js → meta.js} +80 -1
- package/dist/blocks/Breadcrumb/Breadcrumb.js +40 -41
- package/dist/blocks/Breadcrumb/meta.js +90 -0
- package/dist/blocks/Button/Button.js +77 -39
- package/dist/blocks/Button/meta.js +230 -0
- package/dist/blocks/ButtonSelector/ButtonSelector.js +54 -59
- package/dist/blocks/ButtonSelector/meta.js +213 -0
- package/dist/blocks/Calendar/Calendar.js +153 -0
- package/dist/blocks/Calendar/e2e.js +27 -0
- package/dist/blocks/Calendar/meta.js +148 -0
- package/dist/blocks/Card/Card.js +22 -21
- package/dist/blocks/Card/meta.js +170 -0
- package/dist/blocks/Carousel/Carousel.js +6 -12
- package/dist/blocks/Carousel/{schema.js → meta.js} +61 -22
- package/dist/blocks/CheckboxSelector/CheckboxSelector.js +58 -64
- package/dist/blocks/CheckboxSelector/meta.js +150 -0
- package/dist/blocks/CheckboxSwitch/CheckboxSwitch.js +38 -44
- package/dist/blocks/CheckboxSwitch/meta.js +183 -0
- package/dist/blocks/Collapse/Collapse.js +21 -12
- package/dist/blocks/Collapse/meta.js +179 -0
- package/dist/blocks/ColorSelector/ColorSelector.js +97 -0
- package/dist/blocks/ColorSelector/e2e.js +32 -0
- package/dist/blocks/ColorSelector/meta.js +250 -0
- package/dist/blocks/ConfigProvider/ConfigProvider.js +51 -0
- package/dist/blocks/{Alert/style.less → ConfigProvider/e2e.js} +5 -3
- package/dist/blocks/{ControlledList/schema.js → ConfigProvider/meta.js} +43 -45
- package/dist/blocks/ConfirmModal/ConfirmModal.js +45 -25
- package/dist/blocks/ConfirmModal/{schema.js → meta.js} +93 -35
- package/dist/blocks/Content/Content.js +5 -12
- package/dist/blocks/{Layout/schema.js → Content/meta.js} +11 -3
- package/dist/blocks/ControlledList/ControlledList.js +42 -54
- package/dist/blocks/ControlledList/meta.js +158 -0
- package/dist/blocks/DateRangeSelector/DateRangeSelector.js +31 -29
- package/dist/blocks/DateRangeSelector/meta.js +297 -0
- package/dist/blocks/DateSelector/DateSelector.js +28 -28
- package/dist/blocks/DateSelector/meta.js +241 -0
- package/dist/blocks/DateTimeSelector/DateTimeSelector.js +28 -28
- package/dist/blocks/DateTimeSelector/meta.js +282 -0
- package/dist/blocks/Descriptions/Descriptions.js +20 -22
- package/dist/blocks/Descriptions/{schema.js → meta.js} +71 -15
- package/dist/blocks/Divider/Divider.js +8 -14
- package/dist/blocks/Divider/meta.js +86 -0
- package/dist/blocks/Drawer/Drawer.js +23 -16
- package/dist/blocks/Drawer/{schema.js → meta.js} +62 -61
- package/dist/blocks/DropdownButton/DropdownButton.js +221 -0
- package/dist/blocks/DropdownButton/e2e.js +30 -0
- package/dist/blocks/DropdownButton/meta.js +317 -0
- package/dist/blocks/DropdownMenu/DropdownMenu.js +130 -0
- package/dist/blocks/DropdownMenu/e2e.js +28 -0
- package/dist/blocks/DropdownMenu/meta.js +322 -0
- package/dist/blocks/Flex/Flex.js +31 -0
- package/dist/blocks/{Comment → Flex}/e2e.js +1 -2
- package/dist/blocks/Flex/meta.js +115 -0
- package/dist/blocks/FloatButton/FloatButton.js +46 -0
- package/dist/blocks/FloatButton/e2e.js +28 -0
- package/dist/blocks/FloatButton/meta.js +156 -0
- package/dist/blocks/Footer/Footer.js +8 -17
- package/dist/blocks/{Header/schema.js → Footer/meta.js} +11 -12
- package/dist/blocks/Header/Header.js +38 -18
- package/dist/blocks/Header/meta.js +318 -0
- package/dist/blocks/Label/Label.js +19 -27
- package/dist/blocks/Label/labelLogic.js +37 -41
- package/dist/blocks/Label/meta.js +148 -0
- package/dist/blocks/Label/style.module.css +185 -0
- package/dist/blocks/Layout/Layout.js +10 -13
- package/dist/blocks/{Content/schema.js → Layout/meta.js} +11 -3
- package/dist/blocks/Masonry/Masonry.js +37 -0
- package/dist/blocks/{Affix/style.less → Masonry/e2e.js} +9 -3
- package/dist/blocks/Masonry/meta.js +86 -0
- package/dist/blocks/MasonryList/MasonryList.js +42 -0
- package/dist/blocks/{AutoComplete/style.less → MasonryList/e2e.js} +9 -3
- package/dist/blocks/MasonryList/meta.js +86 -0
- package/dist/blocks/Menu/Menu.js +153 -124
- package/dist/blocks/Menu/meta.js +544 -0
- package/dist/blocks/Message/Message.js +18 -16
- package/dist/blocks/Message/{schema.js → meta.js} +29 -14
- package/dist/blocks/MobileMenu/MobileMenu.js +28 -23
- package/dist/blocks/MobileMenu/{schema.js → meta.js} +48 -31
- package/dist/blocks/Modal/Modal.js +20 -16
- package/dist/blocks/Modal/meta.js +234 -0
- package/dist/blocks/MonthSelector/MonthSelector.js +30 -30
- package/dist/blocks/MonthSelector/meta.js +260 -0
- package/dist/blocks/MultipleSelector/MultipleSelector.js +57 -37
- package/dist/blocks/MultipleSelector/{schema.js → meta.js} +178 -151
- package/dist/blocks/Notification/Notification.js +39 -23
- package/dist/blocks/Notification/{schema.js → meta.js} +36 -22
- package/dist/blocks/NumberInput/NumberInput.js +12 -21
- package/dist/blocks/NumberInput/meta.js +250 -0
- package/dist/blocks/PageHeaderMenu/PageHeaderMenu.js +137 -189
- package/dist/blocks/PageHeaderMenu/meta.js +420 -0
- package/dist/blocks/PageSidebarLayout/PageSidebarLayout.js +511 -0
- package/dist/blocks/PageSidebarLayout/e2e.js +34 -0
- package/dist/blocks/PageSidebarLayout/meta.js +516 -0
- package/dist/blocks/PageSiderMenu/PageSiderMenu.js +188 -196
- package/dist/blocks/PageSiderMenu/meta.js +486 -0
- package/dist/blocks/Pagination/Pagination.js +6 -15
- package/dist/blocks/Pagination/meta.js +233 -0
- package/dist/blocks/Paragraph/Paragraph.js +28 -16
- package/dist/blocks/Paragraph/{schema.js → meta.js} +68 -18
- package/dist/blocks/ParagraphInput/ParagraphInput.js +34 -17
- package/dist/blocks/ParagraphInput/{schema.js → meta.js} +134 -18
- package/dist/blocks/PasswordInput/PasswordInput.js +9 -16
- package/dist/blocks/PasswordInput/meta.js +195 -0
- package/dist/blocks/PhoneNumberInput/PhoneNumberInput.js +37 -33
- package/dist/blocks/PhoneNumberInput/formatPhoneNumber.js +25 -0
- package/dist/blocks/PhoneNumberInput/meta.js +225 -0
- package/dist/blocks/PhoneNumberInput/upstream-formatting-spec.md +173 -0
- package/dist/blocks/Popover/Popover.js +7 -12
- package/dist/blocks/Popover/{schema.js → meta.js} +81 -11
- package/dist/blocks/Progress/Progress.js +7 -12
- package/dist/blocks/Progress/{schema.js → meta.js} +74 -4
- package/dist/blocks/QRCode/QRCode.js +39 -0
- package/dist/blocks/{Footer/schema.js → QRCode/e2e.js} +9 -15
- package/dist/blocks/QRCode/meta.js +152 -0
- package/dist/blocks/RadioSelector/RadioSelector.js +55 -63
- package/dist/blocks/RadioSelector/meta.js +179 -0
- package/dist/blocks/RatingSlider/RatingSlider.js +95 -103
- package/dist/blocks/RatingSlider/meta.js +221 -0
- package/dist/blocks/Result/Result.js +13 -12
- package/dist/blocks/Result/meta.js +129 -0
- package/dist/blocks/Search/Search.js +135 -0
- package/dist/blocks/Search/SearchHighlight.js +33 -0
- package/dist/blocks/Search/SearchModal.js +171 -0
- package/dist/blocks/Search/SearchResults.js +129 -0
- package/dist/blocks/Search/meta.js +258 -0
- package/dist/blocks/Search/style.module.css +96 -0
- package/dist/blocks/Search/useListKeyboardNav.js +45 -0
- package/dist/blocks/Search/useRecentSearches.js +77 -0
- package/dist/blocks/Search/useSearchIndex.js +144 -0
- package/dist/blocks/SegmentedSelector/SegmentedSelector.js +93 -0
- package/dist/blocks/SegmentedSelector/e2e.js +32 -0
- package/dist/blocks/SegmentedSelector/meta.js +222 -0
- package/dist/blocks/Selector/Selector.js +41 -30
- package/dist/blocks/Selector/meta.js +380 -0
- package/dist/blocks/Sider/Sider.js +19 -18
- package/dist/blocks/Sider/{schema.js → meta.js} +20 -34
- package/dist/blocks/Slider/Slider.js +8 -20
- package/dist/blocks/Slider/meta.js +226 -0
- package/dist/blocks/Splitter/Splitter.js +70 -0
- package/dist/blocks/Splitter/e2e.js +24 -0
- package/dist/blocks/Splitter/meta.js +193 -0
- package/dist/blocks/Statistic/Statistic.js +26 -15
- package/dist/blocks/Statistic/{schema.js → meta.js} +41 -4
- package/dist/blocks/Steps/Steps.js +94 -0
- package/dist/blocks/Steps/e2e.js +31 -0
- package/dist/blocks/Steps/meta.js +246 -0
- package/dist/blocks/Switch/Switch.js +59 -54
- package/dist/blocks/Switch/meta.js +178 -0
- package/dist/blocks/Tabs/Tabs.js +49 -18
- package/dist/blocks/Tabs/meta.js +258 -0
- package/dist/blocks/Tag/Tag.js +17 -15
- package/dist/blocks/Tag/{schema.js → meta.js} +35 -13
- package/dist/blocks/TextArea/TextArea.js +10 -16
- package/dist/blocks/TextArea/meta.js +255 -0
- package/dist/blocks/TextInput/TextInput.js +23 -18
- package/dist/blocks/TextInput/meta.js +286 -0
- package/dist/blocks/TimelineList/TimelineList.js +29 -27
- package/dist/blocks/TimelineList/{schema.js → meta.js} +45 -8
- package/dist/blocks/Title/Title.js +34 -21
- package/dist/blocks/Title/{schema.js → meta.js} +117 -14
- package/dist/blocks/TitleInput/TitleInput.js +43 -25
- package/dist/blocks/TitleInput/{schema.js → meta.js} +156 -18
- package/dist/blocks/Tooltip/Tooltip.js +16 -16
- package/dist/blocks/Tooltip/{schema.js → meta.js} +74 -19
- package/dist/blocks/Tour/Tour.js +75 -0
- package/dist/blocks/Tour/e2e.js +31 -0
- package/dist/blocks/Tour/meta.js +255 -0
- package/dist/blocks/TreeSelector/TreeSelector.js +6 -12
- package/dist/blocks/TreeSelector/{schema.js → meta.js} +134 -25
- package/dist/blocks/Watermark/Watermark.js +34 -0
- package/dist/blocks/Watermark/e2e.js +23 -0
- package/dist/blocks/Watermark/meta.js +148 -0
- package/dist/blocks/WeekSelector/WeekSelector.js +35 -31
- package/dist/blocks/WeekSelector/meta.js +269 -0
- package/dist/blocks/buildMenuItems.js +95 -0
- package/dist/blocks/headerActions.js +220 -0
- package/dist/blocks/useItemShortcuts.js +64 -0
- package/dist/blocks/withTheme.js +40 -0
- package/dist/blocks.js +17 -1
- package/dist/disabledDate.js +15 -7
- package/dist/e2e.js +4 -1
- package/dist/metas.js +92 -0
- package/dist/schemas/breadcrumbList.js +64 -0
- package/dist/schemas/disabledDates.js +83 -0
- package/dist/{blocks/Avatar/style.less → schemas/icon.js} +10 -3
- package/dist/schemas/index.js +21 -0
- package/dist/schemas/inputProperties.js +70 -0
- package/dist/schemas/label.js +62 -0
- package/dist/schemas/menuLinks.js +49 -0
- package/dist/schemas/options.js +84 -0
- package/dist/types.js +4 -18
- package/package.json +19 -17
- package/dist/blocks/Affix/schema.json +0 -34
- package/dist/blocks/Alert/schema.js +0 -84
- package/dist/blocks/Alert/schema.json +0 -62
- package/dist/blocks/AutoComplete/schema.js +0 -181
- package/dist/blocks/AutoComplete/schema.json +0 -160
- package/dist/blocks/Avatar/schema.js +0 -98
- package/dist/blocks/Avatar/schema.json +0 -71
- package/dist/blocks/Badge/schema.json +0 -70
- package/dist/blocks/Badge/style.less +0 -17
- package/dist/blocks/Breadcrumb/schema.js +0 -95
- package/dist/blocks/Breadcrumb/schema.json +0 -78
- package/dist/blocks/Breadcrumb/style.less +0 -17
- package/dist/blocks/Button/schema.js +0 -123
- package/dist/blocks/Button/schema.json +0 -91
- package/dist/blocks/Button/style.less +0 -17
- package/dist/blocks/ButtonSelector/schema.js +0 -214
- package/dist/blocks/ButtonSelector/schema.json +0 -188
- package/dist/blocks/ButtonSelector/style.less +0 -18
- package/dist/blocks/Card/schema.js +0 -75
- package/dist/blocks/Card/schema.json +0 -58
- package/dist/blocks/Card/style.less +0 -17
- package/dist/blocks/Carousel/schema.json +0 -183
- package/dist/blocks/Carousel/style.less +0 -17
- package/dist/blocks/CheckboxSelector/schema.js +0 -220
- package/dist/blocks/CheckboxSelector/schema.json +0 -193
- package/dist/blocks/CheckboxSelector/style.less +0 -19
- package/dist/blocks/CheckboxSwitch/schema.js +0 -122
- package/dist/blocks/CheckboxSwitch/schema.json +0 -105
- package/dist/blocks/CheckboxSwitch/style.less +0 -19
- package/dist/blocks/Collapse/schema.js +0 -110
- package/dist/blocks/Collapse/schema.json +0 -90
- package/dist/blocks/Collapse/style.less +0 -17
- package/dist/blocks/Comment/Comment.js +0 -56
- package/dist/blocks/Comment/schema.js +0 -56
- package/dist/blocks/Comment/schema.json +0 -39
- package/dist/blocks/Comment/style.less +0 -18
- package/dist/blocks/ConfirmModal/schema.json +0 -122
- package/dist/blocks/ConfirmModal/style.less +0 -17
- package/dist/blocks/Content/schema.json +0 -16
- package/dist/blocks/Content/style.less +0 -17
- package/dist/blocks/ControlledList/schema.json +0 -73
- package/dist/blocks/ControlledList/style.less +0 -19
- package/dist/blocks/DateRangeSelector/schema.js +0 -266
- package/dist/blocks/DateRangeSelector/schema.json +0 -221
- package/dist/blocks/DateRangeSelector/style.less +0 -18
- package/dist/blocks/DateSelector/schema.js +0 -219
- package/dist/blocks/DateSelector/schema.json +0 -183
- package/dist/blocks/DateSelector/style.less +0 -18
- package/dist/blocks/DateTimeSelector/schema.js +0 -251
- package/dist/blocks/DateTimeSelector/schema.json +0 -215
- package/dist/blocks/DateTimeSelector/style.less +0 -18
- package/dist/blocks/Descriptions/schema.json +0 -186
- package/dist/blocks/Descriptions/style.less +0 -17
- package/dist/blocks/Divider/schema.js +0 -56
- package/dist/blocks/Divider/schema.json +0 -35
- package/dist/blocks/Divider/style.less +0 -17
- package/dist/blocks/Drawer/schema.json +0 -121
- package/dist/blocks/Drawer/style.less +0 -17
- package/dist/blocks/Footer/schema.json +0 -16
- package/dist/blocks/Footer/style.less +0 -17
- package/dist/blocks/Header/schema.json +0 -22
- package/dist/blocks/Header/style.less +0 -17
- package/dist/blocks/Label/schema.js +0 -83
- package/dist/blocks/Label/schema.json +0 -62
- package/dist/blocks/Label/style.less +0 -34
- package/dist/blocks/Layout/schema.json +0 -16
- package/dist/blocks/Layout/style.less +0 -17
- package/dist/blocks/Menu/schema.js +0 -283
- package/dist/blocks/Menu/schema.json +0 -236
- package/dist/blocks/Menu/style.less +0 -17
- package/dist/blocks/Message/schema.json +0 -48
- package/dist/blocks/Message/style.less +0 -17
- package/dist/blocks/MobileMenu/schema.json +0 -236
- package/dist/blocks/MobileMenu/style.less +0 -19
- package/dist/blocks/Modal/schema.js +0 -142
- package/dist/blocks/Modal/schema.json +0 -125
- package/dist/blocks/Modal/style.less +0 -17
- package/dist/blocks/MonthSelector/schema.js +0 -219
- package/dist/blocks/MonthSelector/schema.json +0 -183
- package/dist/blocks/MonthSelector/style.less +0 -18
- package/dist/blocks/MultipleSelector/schema.json +0 -297
- package/dist/blocks/MultipleSelector/style.less +0 -19
- package/dist/blocks/Notification/schema.json +0 -85
- package/dist/blocks/Notification/style.less +0 -18
- package/dist/blocks/NumberInput/schema.js +0 -193
- package/dist/blocks/NumberInput/schema.json +0 -172
- package/dist/blocks/NumberInput/style.less +0 -18
- package/dist/blocks/PageHeaderMenu/schema.js +0 -241
- package/dist/blocks/PageHeaderMenu/schema.json +0 -215
- package/dist/blocks/PageHeaderMenu/style.less +0 -23
- package/dist/blocks/PageSiderMenu/schema.js +0 -321
- package/dist/blocks/PageSiderMenu/schema.json +0 -283
- package/dist/blocks/PageSiderMenu/style.less +0 -26
- package/dist/blocks/Pagination/schema.js +0 -101
- package/dist/blocks/Pagination/schema.json +0 -75
- package/dist/blocks/Pagination/style.less +0 -17
- package/dist/blocks/Paragraph/schema.json +0 -135
- package/dist/blocks/Paragraph/style.less +0 -18
- package/dist/blocks/ParagraphInput/schema.json +0 -162
- package/dist/blocks/ParagraphInput/style.less +0 -17
- package/dist/blocks/PasswordInput/schema.js +0 -152
- package/dist/blocks/PasswordInput/schema.json +0 -131
- package/dist/blocks/PasswordInput/style.less +0 -18
- package/dist/blocks/PhoneNumberInput/schema.js +0 -243
- package/dist/blocks/PhoneNumberInput/schema.json +0 -216
- package/dist/blocks/PhoneNumberInput/style.less +0 -33
- package/dist/blocks/Popover/schema.json +0 -86
- package/dist/blocks/Popover/style.less +0 -17
- package/dist/blocks/Progress/schema.json +0 -76
- package/dist/blocks/Progress/style.less +0 -17
- package/dist/blocks/RadioSelector/schema.js +0 -217
- package/dist/blocks/RadioSelector/schema.json +0 -190
- package/dist/blocks/RadioSelector/style.less +0 -19
- package/dist/blocks/RatingSlider/schema.js +0 -196
- package/dist/blocks/RatingSlider/schema.json +0 -169
- package/dist/blocks/RatingSlider/style.less +0 -19
- package/dist/blocks/Result/schema.js +0 -55
- package/dist/blocks/Result/schema.json +0 -30
- package/dist/blocks/Result/style.less +0 -17
- package/dist/blocks/Selector/schema.js +0 -287
- package/dist/blocks/Selector/schema.json +0 -258
- package/dist/blocks/Selector/style.less +0 -18
- package/dist/blocks/Sider/schema.json +0 -71
- package/dist/blocks/Sider/style.less +0 -17
- package/dist/blocks/Slider/style.less +0 -18
- package/dist/blocks/Statistic/schema.json +0 -74
- package/dist/blocks/Statistic/style.less +0 -17
- package/dist/blocks/Switch/schema.js +0 -162
- package/dist/blocks/Switch/schema.json +0 -136
- package/dist/blocks/Switch/style.less +0 -18
- package/dist/blocks/Tabs/schema.js +0 -124
- package/dist/blocks/Tabs/schema.json +0 -93
- package/dist/blocks/Tabs/style.less +0 -17
- package/dist/blocks/Tag/schema.json +0 -45
- package/dist/blocks/Tag/style.less +0 -17
- package/dist/blocks/TextArea/schema.js +0 -196
- package/dist/blocks/TextArea/schema.json +0 -172
- package/dist/blocks/TextArea/style.less +0 -18
- package/dist/blocks/TextInput/schema.js +0 -223
- package/dist/blocks/TextInput/schema.json +0 -189
- package/dist/blocks/TextInput/style.less +0 -18
- package/dist/blocks/TimelineList/schema.json +0 -65
- package/dist/blocks/TimelineList/style.less +0 -17
- package/dist/blocks/Title/schema.json +0 -136
- package/dist/blocks/Title/style.less +0 -18
- package/dist/blocks/TitleInput/schema.json +0 -171
- package/dist/blocks/TitleInput/style.less +0 -17
- package/dist/blocks/Tooltip/schema.json +0 -91
- package/dist/blocks/Tooltip/style.less +0 -17
- package/dist/blocks/TreeSelector/schema.json +0 -166
- package/dist/blocks/TreeSelector/style.less +0 -27
- package/dist/blocks/WeekSelector/schema.js +0 -219
- package/dist/blocks/WeekSelector/schema.json +0 -183
- package/dist/blocks/WeekSelector/style.less +0 -18
- package/dist/color.js +0 -85
- package/dist/schemas.js +0 -75
- package/dist/style.less +0 -17
|
@@ -13,19 +13,21 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React, { useState } from 'react';
|
|
16
|
-
import {
|
|
16
|
+
import { renderHtml, withBlockDefaults } from '@lowdefy/block-utils';
|
|
17
17
|
import { get, type } from '@lowdefy/helpers';
|
|
18
18
|
import { Select } from 'antd';
|
|
19
19
|
import Label from '../Label/Label.js';
|
|
20
|
+
import withTheme from '../withTheme.js';
|
|
20
21
|
import getValueIndex from '../../getValueIndex.js';
|
|
21
22
|
import getUniqueValues from '../../getUniqueValues.js';
|
|
22
23
|
const Option = Select.Option;
|
|
23
|
-
const Selector = ({ blockId, components: { Icon, Link }, events, loading, methods, properties, required, validation, value })=>{
|
|
24
|
+
const Selector = ({ blockId, classNames = {}, components: { Icon, Link }, events, loading, methods, properties, required, styles = {}, validation, value })=>{
|
|
24
25
|
const [fetchState, setFetch] = useState(false);
|
|
25
26
|
const [elementId] = useState((0 | Math.random() * 9e2) + 1e2);
|
|
26
27
|
const uniqueValueOptions = getUniqueValues(properties.options || []);
|
|
27
28
|
return /*#__PURE__*/ React.createElement(Label, {
|
|
28
29
|
blockId: blockId,
|
|
30
|
+
classNames: classNames,
|
|
29
31
|
components: {
|
|
30
32
|
Icon,
|
|
31
33
|
Link
|
|
@@ -38,22 +40,28 @@ const Selector = ({ blockId, components: { Icon, Link }, events, loading, method
|
|
|
38
40
|
},
|
|
39
41
|
validation: validation,
|
|
40
42
|
required: required,
|
|
43
|
+
styles: styles,
|
|
41
44
|
content: {
|
|
42
45
|
content: ()=>/*#__PURE__*/ React.createElement("div", {
|
|
43
|
-
|
|
46
|
+
style: {
|
|
44
47
|
width: '100%'
|
|
45
|
-
}
|
|
48
|
+
}
|
|
46
49
|
}, /*#__PURE__*/ React.createElement("div", {
|
|
47
50
|
id: `${blockId}_${elementId}_popup`
|
|
48
51
|
}), /*#__PURE__*/ React.createElement(Select, {
|
|
49
52
|
id: `${blockId}_input`,
|
|
50
|
-
bordered: properties.
|
|
51
|
-
className:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
variant: properties.bordered === false ? 'borderless' : properties.variant,
|
|
54
|
+
className: classNames.element,
|
|
55
|
+
classNames: {
|
|
56
|
+
content: classNames.selector
|
|
57
|
+
},
|
|
58
|
+
style: {
|
|
59
|
+
width: '100%',
|
|
60
|
+
...styles.element
|
|
61
|
+
},
|
|
62
|
+
styles: {
|
|
63
|
+
content: styles.selector
|
|
64
|
+
},
|
|
57
65
|
mode: "single",
|
|
58
66
|
autoFocus: properties.autoFocus,
|
|
59
67
|
getPopupContainer: ()=>document.getElementById(`${blockId}_${elementId}_popup`),
|
|
@@ -64,13 +72,25 @@ const Selector = ({ blockId, components: { Icon, Link }, events, loading, method
|
|
|
64
72
|
status: validation.status,
|
|
65
73
|
suffixIcon: properties.suffixIcon && /*#__PURE__*/ React.createElement(Icon, {
|
|
66
74
|
blockId: `${blockId}_suffixIcon`,
|
|
75
|
+
classNames: {
|
|
76
|
+
element: classNames.suffixIcon
|
|
77
|
+
},
|
|
67
78
|
events: events,
|
|
68
|
-
properties: properties.suffixIcon
|
|
79
|
+
properties: properties.suffixIcon,
|
|
80
|
+
styles: {
|
|
81
|
+
element: styles.suffixIcon
|
|
82
|
+
}
|
|
69
83
|
}),
|
|
70
84
|
clearIcon: properties.clearIcon && /*#__PURE__*/ React.createElement(Icon, {
|
|
71
85
|
blockId: `${blockId}_clearIcon`,
|
|
86
|
+
classNames: {
|
|
87
|
+
element: classNames.clearIcon
|
|
88
|
+
},
|
|
72
89
|
events: events,
|
|
73
|
-
properties: properties.clearIcon
|
|
90
|
+
properties: properties.clearIcon,
|
|
91
|
+
styles: {
|
|
92
|
+
element: styles.clearIcon
|
|
93
|
+
}
|
|
74
94
|
}),
|
|
75
95
|
showArrow: properties.showArrow,
|
|
76
96
|
allowClear: properties.allowClear !== false,
|
|
@@ -119,7 +139,8 @@ const Selector = ({ blockId, components: { Icon, Link }, events, loading, method
|
|
|
119
139
|
},
|
|
120
140
|
value: getValueIndex(value, uniqueValueOptions)
|
|
121
141
|
}, uniqueValueOptions.map((opt, i)=>type.isPrimitive(opt) ? /*#__PURE__*/ React.createElement(Option, {
|
|
122
|
-
|
|
142
|
+
style: styles.options,
|
|
143
|
+
className: classNames.options,
|
|
123
144
|
id: `${blockId}_${i}`,
|
|
124
145
|
key: i,
|
|
125
146
|
value: `${i}`
|
|
@@ -127,10 +148,11 @@ const Selector = ({ blockId, components: { Icon, Link }, events, loading, method
|
|
|
127
148
|
html: `${opt}`,
|
|
128
149
|
methods
|
|
129
150
|
})) : /*#__PURE__*/ React.createElement(Option, {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
opt.style
|
|
133
|
-
|
|
151
|
+
style: {
|
|
152
|
+
...styles.options,
|
|
153
|
+
...opt.style
|
|
154
|
+
},
|
|
155
|
+
className: classNames.options,
|
|
134
156
|
disabled: opt.disabled,
|
|
135
157
|
filterstring: opt.filterString,
|
|
136
158
|
id: `${blockId}_${i}`,
|
|
@@ -146,15 +168,4 @@ const Selector = ({ blockId, components: { Icon, Link }, events, loading, method
|
|
|
146
168
|
}
|
|
147
169
|
});
|
|
148
170
|
};
|
|
149
|
-
|
|
150
|
-
Selector.meta = {
|
|
151
|
-
valueType: 'any',
|
|
152
|
-
category: 'input',
|
|
153
|
-
icons: [
|
|
154
|
-
...Label.meta.icons
|
|
155
|
-
],
|
|
156
|
-
styles: [
|
|
157
|
-
'blocks/Selector/style.less'
|
|
158
|
-
]
|
|
159
|
-
};
|
|
160
|
-
export default Selector;
|
|
171
|
+
export default withTheme('Select', withBlockDefaults(Selector));
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
/*
|
|
2
|
+
Copyright 2020-2026 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 LabelMeta from '../Label/meta.js';
|
|
16
|
+
import label from '../../schemas/label.js';
|
|
17
|
+
import icon from '../../schemas/icon.js';
|
|
18
|
+
import { disabled, inputTitle, autoFocus, variant, bordered, allowClear, sizeSmallDefaultLarge } from '../../schemas/inputProperties.js';
|
|
19
|
+
export default {
|
|
20
|
+
category: 'input',
|
|
21
|
+
icons: [
|
|
22
|
+
...LabelMeta.icons,
|
|
23
|
+
'AiOutlineCloseCircle',
|
|
24
|
+
'AiOutlineDown'
|
|
25
|
+
],
|
|
26
|
+
valueType: 'any',
|
|
27
|
+
cssKeys: {
|
|
28
|
+
element: 'The Selector element.',
|
|
29
|
+
selector: 'The inner value/tag container of the Selector (antd `content` semantic slot).',
|
|
30
|
+
clearIcon: 'The clear icon in the Selector.',
|
|
31
|
+
label: 'The Selector label.',
|
|
32
|
+
extra: 'The Selector extra content.',
|
|
33
|
+
feedback: 'The Selector validation feedback.',
|
|
34
|
+
options: 'The Selector options.',
|
|
35
|
+
suffixIcon: 'The suffix icon in the Selector.'
|
|
36
|
+
},
|
|
37
|
+
events: {
|
|
38
|
+
onBlur: 'Trigger action event occurs when selector loses focus.',
|
|
39
|
+
onChange: {
|
|
40
|
+
description: 'Trigger action when selection is changed.',
|
|
41
|
+
event: {
|
|
42
|
+
value: 'The selected value.'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
onFocus: 'Trigger action when selector gets focus.',
|
|
46
|
+
onClear: 'Trigger action when selector is cleared.',
|
|
47
|
+
onSearch: {
|
|
48
|
+
description: 'Trigger actions when input is changed.',
|
|
49
|
+
event: {
|
|
50
|
+
value: 'The search input value.'
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
properties: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
additionalProperties: false,
|
|
57
|
+
properties: {
|
|
58
|
+
allowClear: {
|
|
59
|
+
...allowClear,
|
|
60
|
+
default: true,
|
|
61
|
+
description: 'Allow the user to clear the selected value, sets the value to null.'
|
|
62
|
+
},
|
|
63
|
+
autoFocus,
|
|
64
|
+
bordered: {
|
|
65
|
+
...bordered,
|
|
66
|
+
description: 'Whether or not the selector has a border style. Deprecated, use variant instead.'
|
|
67
|
+
},
|
|
68
|
+
clearIcon: {
|
|
69
|
+
...icon,
|
|
70
|
+
default: 'AiOutlineCloseCircle',
|
|
71
|
+
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 at far right position of the selector, shown when user is given option to clear input."
|
|
72
|
+
},
|
|
73
|
+
label,
|
|
74
|
+
disabled,
|
|
75
|
+
options: {
|
|
76
|
+
default: [],
|
|
77
|
+
oneOf: [
|
|
78
|
+
{
|
|
79
|
+
type: 'array',
|
|
80
|
+
description: 'Options can either be an array of primitive values, on an array of label, value pairs - supports html.',
|
|
81
|
+
items: {
|
|
82
|
+
type: 'string'
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'array',
|
|
87
|
+
description: 'Options can either be an array of primitive values, on an array of label, value pairs.',
|
|
88
|
+
items: {
|
|
89
|
+
type: 'number'
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
type: 'array',
|
|
94
|
+
description: 'Options can either be an array of primitive values, on an array of label, value pairs.',
|
|
95
|
+
items: {
|
|
96
|
+
type: 'boolean'
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'array',
|
|
101
|
+
description: 'Options can either be an array of primitive values, on an array of label, value pairs.',
|
|
102
|
+
items: {
|
|
103
|
+
type: 'object',
|
|
104
|
+
required: [
|
|
105
|
+
'value'
|
|
106
|
+
],
|
|
107
|
+
properties: {
|
|
108
|
+
label: {
|
|
109
|
+
type: 'string',
|
|
110
|
+
description: 'Value label shown to user - supports html.'
|
|
111
|
+
},
|
|
112
|
+
value: {
|
|
113
|
+
description: 'Value selected. Can be of any type.',
|
|
114
|
+
oneOf: [
|
|
115
|
+
{
|
|
116
|
+
type: 'string'
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: 'number'
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
type: 'boolean'
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'object'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
type: 'array'
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
docs: {
|
|
132
|
+
displayType: 'yaml'
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
disabled: {
|
|
136
|
+
type: 'boolean',
|
|
137
|
+
default: false,
|
|
138
|
+
description: 'Disable the option if true.'
|
|
139
|
+
},
|
|
140
|
+
filterString: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
description: 'String to match against when filtering selector options during. If no filterString is provided the filter method matches against options.label.'
|
|
143
|
+
},
|
|
144
|
+
style: {
|
|
145
|
+
type: 'object',
|
|
146
|
+
description: 'Css style to applied to option.',
|
|
147
|
+
docs: {
|
|
148
|
+
displayType: 'yaml'
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
]
|
|
155
|
+
},
|
|
156
|
+
placeholder: {
|
|
157
|
+
type: 'string',
|
|
158
|
+
default: 'Select item',
|
|
159
|
+
description: 'Placeholder text inside the block before user selects input.'
|
|
160
|
+
},
|
|
161
|
+
loadingPlaceholder: {
|
|
162
|
+
type: 'string',
|
|
163
|
+
default: 'Loading',
|
|
164
|
+
description: 'Placeholder text to show in options while the block is loading.'
|
|
165
|
+
},
|
|
166
|
+
notFoundContent: {
|
|
167
|
+
type: 'string',
|
|
168
|
+
default: 'not Found',
|
|
169
|
+
description: 'Placeholder text to show when list of options are empty.'
|
|
170
|
+
},
|
|
171
|
+
showArrow: {
|
|
172
|
+
type: 'boolean',
|
|
173
|
+
default: true,
|
|
174
|
+
description: 'Show the suffix icon at the drop-down position of the selector.'
|
|
175
|
+
},
|
|
176
|
+
showSearch: {
|
|
177
|
+
type: 'boolean',
|
|
178
|
+
default: true,
|
|
179
|
+
description: 'Make the selector options searchable.'
|
|
180
|
+
},
|
|
181
|
+
size: sizeSmallDefaultLarge,
|
|
182
|
+
suffixIcon: {
|
|
183
|
+
...icon,
|
|
184
|
+
default: 'AiOutlineDown',
|
|
185
|
+
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 at the drop-down position of the selector."
|
|
186
|
+
},
|
|
187
|
+
title: inputTitle,
|
|
188
|
+
variant,
|
|
189
|
+
theme: {
|
|
190
|
+
type: 'object',
|
|
191
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
192
|
+
docs: {
|
|
193
|
+
displayType: 'yaml',
|
|
194
|
+
link: 'https://ant.design/components/select#design-token'
|
|
195
|
+
},
|
|
196
|
+
properties: {
|
|
197
|
+
borderRadius: {
|
|
198
|
+
type: 'number',
|
|
199
|
+
default: 6,
|
|
200
|
+
description: 'Border radius of the selector.'
|
|
201
|
+
},
|
|
202
|
+
borderRadiusLG: {
|
|
203
|
+
type: 'number',
|
|
204
|
+
default: 8,
|
|
205
|
+
description: 'Border radius for large selectors.'
|
|
206
|
+
},
|
|
207
|
+
borderRadiusSM: {
|
|
208
|
+
type: 'number',
|
|
209
|
+
default: 4,
|
|
210
|
+
description: 'Border radius for small selectors.'
|
|
211
|
+
},
|
|
212
|
+
clearBg: {
|
|
213
|
+
type: 'string',
|
|
214
|
+
default: '#ffffff',
|
|
215
|
+
description: 'Background color of the clear button.'
|
|
216
|
+
},
|
|
217
|
+
colorBorder: {
|
|
218
|
+
type: 'string',
|
|
219
|
+
description: 'Border color of the selector.'
|
|
220
|
+
},
|
|
221
|
+
colorPrimary: {
|
|
222
|
+
type: 'string',
|
|
223
|
+
description: 'Primary color override for the selector.'
|
|
224
|
+
},
|
|
225
|
+
colorText: {
|
|
226
|
+
type: 'string',
|
|
227
|
+
description: 'Text color of the selector input.'
|
|
228
|
+
},
|
|
229
|
+
controlHeight: {
|
|
230
|
+
type: 'number',
|
|
231
|
+
default: 32,
|
|
232
|
+
description: 'Height of the selector.'
|
|
233
|
+
},
|
|
234
|
+
controlHeightLG: {
|
|
235
|
+
type: 'number',
|
|
236
|
+
default: 40,
|
|
237
|
+
description: 'Height for large selectors.'
|
|
238
|
+
},
|
|
239
|
+
controlHeightSM: {
|
|
240
|
+
type: 'number',
|
|
241
|
+
default: 24,
|
|
242
|
+
description: 'Height for small selectors.'
|
|
243
|
+
},
|
|
244
|
+
fontSize: {
|
|
245
|
+
type: 'number',
|
|
246
|
+
default: 14,
|
|
247
|
+
description: 'Font size of the selector input text.'
|
|
248
|
+
},
|
|
249
|
+
fontSizeLG: {
|
|
250
|
+
type: 'number',
|
|
251
|
+
default: 16,
|
|
252
|
+
description: 'Font size for large selectors.'
|
|
253
|
+
},
|
|
254
|
+
fontSizeSM: {
|
|
255
|
+
type: 'number',
|
|
256
|
+
default: 14,
|
|
257
|
+
description: 'Font size for small selectors.'
|
|
258
|
+
},
|
|
259
|
+
hoverBorderColor: {
|
|
260
|
+
type: 'string',
|
|
261
|
+
default: '#4096ff',
|
|
262
|
+
description: 'Border color when the selector is hovered.'
|
|
263
|
+
},
|
|
264
|
+
activeBorderColor: {
|
|
265
|
+
type: 'string',
|
|
266
|
+
default: '#1677ff',
|
|
267
|
+
description: 'Border color when the selector is focused or active.'
|
|
268
|
+
},
|
|
269
|
+
activeOutlineColor: {
|
|
270
|
+
type: 'string',
|
|
271
|
+
default: 'rgba(5, 145, 255, 0.1)',
|
|
272
|
+
description: 'Outline color when the selector is focused.'
|
|
273
|
+
},
|
|
274
|
+
multipleItemBg: {
|
|
275
|
+
type: 'string',
|
|
276
|
+
default: 'rgba(0, 0, 0, 0.06)',
|
|
277
|
+
description: 'Background color of selected items in multiple mode.'
|
|
278
|
+
},
|
|
279
|
+
multipleItemBorderColor: {
|
|
280
|
+
type: 'string',
|
|
281
|
+
default: 'transparent',
|
|
282
|
+
description: 'Border color of selected items in multiple mode.'
|
|
283
|
+
},
|
|
284
|
+
multipleItemHeight: {
|
|
285
|
+
type: 'number',
|
|
286
|
+
default: 24,
|
|
287
|
+
description: 'Height of selected item tags in multiple mode.'
|
|
288
|
+
},
|
|
289
|
+
multipleItemHeightSM: {
|
|
290
|
+
type: 'number',
|
|
291
|
+
default: 16,
|
|
292
|
+
description: 'Height of selected item tags in small multiple mode.'
|
|
293
|
+
},
|
|
294
|
+
multipleItemHeightLG: {
|
|
295
|
+
type: 'number',
|
|
296
|
+
default: 32,
|
|
297
|
+
description: 'Height of selected item tags in large multiple mode.'
|
|
298
|
+
},
|
|
299
|
+
multipleSelectorBgDisabled: {
|
|
300
|
+
type: 'string',
|
|
301
|
+
default: 'rgba(0, 0, 0, 0.04)',
|
|
302
|
+
description: 'Background of the selector in disabled multiple mode.'
|
|
303
|
+
},
|
|
304
|
+
multipleItemColorDisabled: {
|
|
305
|
+
type: 'string',
|
|
306
|
+
default: 'rgba(0, 0, 0, 0.25)',
|
|
307
|
+
description: 'Text color of disabled items in multiple mode.'
|
|
308
|
+
},
|
|
309
|
+
multipleItemBorderColorDisabled: {
|
|
310
|
+
type: 'string',
|
|
311
|
+
default: 'transparent',
|
|
312
|
+
description: 'Border color of disabled items in multiple mode.'
|
|
313
|
+
},
|
|
314
|
+
optionActiveBg: {
|
|
315
|
+
type: 'string',
|
|
316
|
+
default: 'rgba(0, 0, 0, 0.04)',
|
|
317
|
+
description: 'Background color of an option when hovered or active.'
|
|
318
|
+
},
|
|
319
|
+
optionFontSize: {
|
|
320
|
+
type: 'number',
|
|
321
|
+
default: 14,
|
|
322
|
+
description: 'Font size of option text in the dropdown.'
|
|
323
|
+
},
|
|
324
|
+
optionHeight: {
|
|
325
|
+
type: 'number',
|
|
326
|
+
default: 32,
|
|
327
|
+
description: 'Height of each option in the dropdown.'
|
|
328
|
+
},
|
|
329
|
+
optionLineHeight: {
|
|
330
|
+
type: 'number',
|
|
331
|
+
description: 'Line height of option text in the dropdown.'
|
|
332
|
+
},
|
|
333
|
+
optionPadding: {
|
|
334
|
+
type: [
|
|
335
|
+
'string',
|
|
336
|
+
'number'
|
|
337
|
+
],
|
|
338
|
+
default: '5px 12px',
|
|
339
|
+
description: 'Padding inside each option in the dropdown.'
|
|
340
|
+
},
|
|
341
|
+
optionSelectedBg: {
|
|
342
|
+
type: 'string',
|
|
343
|
+
default: '#e6f4ff',
|
|
344
|
+
description: 'Background color of the selected option in the dropdown.'
|
|
345
|
+
},
|
|
346
|
+
optionSelectedColor: {
|
|
347
|
+
type: 'string',
|
|
348
|
+
default: 'rgba(0, 0, 0, 0.88)',
|
|
349
|
+
description: 'Text color of the selected option in the dropdown.'
|
|
350
|
+
},
|
|
351
|
+
optionSelectedFontWeight: {
|
|
352
|
+
type: 'number',
|
|
353
|
+
default: 600,
|
|
354
|
+
description: 'Font weight of the selected option in the dropdown.'
|
|
355
|
+
},
|
|
356
|
+
selectorBg: {
|
|
357
|
+
type: 'string',
|
|
358
|
+
default: '#ffffff',
|
|
359
|
+
description: 'Background color of the selector input area.'
|
|
360
|
+
},
|
|
361
|
+
showArrowPaddingInlineEnd: {
|
|
362
|
+
type: 'number',
|
|
363
|
+
default: 18,
|
|
364
|
+
description: 'Padding at the inline end when the arrow is shown.'
|
|
365
|
+
},
|
|
366
|
+
singleItemHeightLG: {
|
|
367
|
+
type: 'number',
|
|
368
|
+
default: 40,
|
|
369
|
+
description: 'Height of the selector input in large single mode.'
|
|
370
|
+
},
|
|
371
|
+
zIndexPopup: {
|
|
372
|
+
type: 'number',
|
|
373
|
+
default: 1050,
|
|
374
|
+
description: 'Z-index of the dropdown popup.'
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
};
|
|
@@ -13,9 +13,10 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React, { useState, useEffect } from 'react';
|
|
16
|
-
import { blockDefaultProps } from '@lowdefy/block-utils';
|
|
17
16
|
import { get } from '@lowdefy/helpers';
|
|
18
17
|
import { Layout } from 'antd';
|
|
18
|
+
import { withBlockDefaults } from '@lowdefy/block-utils';
|
|
19
|
+
import { getDarkMode } from '../headerActions.js';
|
|
19
20
|
const Sider = Layout.Sider;
|
|
20
21
|
const triggerSetOpen = async ({ state, setOpen, methods, rename })=>{
|
|
21
22
|
if (!state) {
|
|
@@ -34,8 +35,16 @@ const triggerSetOpen = async ({ state, setOpen, methods, rename })=>{
|
|
|
34
35
|
}
|
|
35
36
|
setOpen(state);
|
|
36
37
|
};
|
|
37
|
-
const SiderBlock = ({ blockId, properties, content, methods, rename })=>{
|
|
38
|
+
const SiderBlock = ({ blockId, classNames = {}, properties, content, methods, rename, styles = {} })=>{
|
|
38
39
|
const [openState, setOpen] = useState(!properties.initialCollapsed);
|
|
40
|
+
// Sync internal state when the parent (e.g. PageSidebarLayout) changes
|
|
41
|
+
// `initialCollapsed` after mount — typically because a hydration-time read
|
|
42
|
+
// from localStorage restored a value different from the SSR default.
|
|
43
|
+
useEffect(()=>{
|
|
44
|
+
setOpen(!properties.initialCollapsed);
|
|
45
|
+
}, [
|
|
46
|
+
properties.initialCollapsed
|
|
47
|
+
]);
|
|
39
48
|
useEffect(()=>{
|
|
40
49
|
methods.registerMethod(get(rename, 'methods.toggleOpen', {
|
|
41
50
|
default: 'toggleOpen'
|
|
@@ -56,30 +65,22 @@ const SiderBlock = ({ blockId, properties, content, methods, rename })=>{
|
|
|
56
65
|
});
|
|
57
66
|
return /*#__PURE__*/ React.createElement(Sider, {
|
|
58
67
|
id: blockId,
|
|
59
|
-
className: `${
|
|
60
|
-
{
|
|
61
|
-
overflow: 'auto'
|
|
62
|
-
},
|
|
63
|
-
properties.style
|
|
64
|
-
])} hide-on-print`,
|
|
68
|
+
className: classNames.element ? `${classNames.element} hide-on-print` : 'hide-on-print',
|
|
65
69
|
breakpoint: properties.breakpoint,
|
|
66
70
|
collapsed: !openState,
|
|
67
71
|
collapsedWidth: properties.collapsedWidth,
|
|
68
72
|
collapsible: properties.collapsible,
|
|
69
73
|
reverseArrow: properties.reverseArrow,
|
|
70
|
-
theme: properties.theme,
|
|
74
|
+
theme: properties.theme ?? (getDarkMode() ? 'dark' : 'light'),
|
|
75
|
+
style: {
|
|
76
|
+
overflow: 'auto',
|
|
77
|
+
background: 'var(--ant-color-bg-container)',
|
|
78
|
+
...styles.element
|
|
79
|
+
},
|
|
71
80
|
width: properties.width,
|
|
72
81
|
onBreakpoint: ()=>methods.triggerEvent({
|
|
73
82
|
name: 'onBreakpoint'
|
|
74
83
|
})
|
|
75
84
|
}, content.content && content.content());
|
|
76
85
|
};
|
|
77
|
-
|
|
78
|
-
SiderBlock.meta = {
|
|
79
|
-
category: 'container',
|
|
80
|
-
icons: [],
|
|
81
|
-
styles: [
|
|
82
|
-
'blocks/Sider/style.less'
|
|
83
|
-
]
|
|
84
|
-
};
|
|
85
|
-
export default SiderBlock;
|
|
86
|
+
export default withBlockDefaults(SiderBlock);
|
|
@@ -13,7 +13,20 @@
|
|
|
13
13
|
See the License for the specific language governing permissions and
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ export default {
|
|
16
|
-
|
|
16
|
+
category: 'container',
|
|
17
|
+
icons: [],
|
|
18
|
+
valueType: null,
|
|
19
|
+
slots: {
|
|
20
|
+
content: 'Child blocks in the sider panel.'
|
|
21
|
+
},
|
|
22
|
+
cssKeys: {
|
|
23
|
+
element: 'The Sider element.'
|
|
24
|
+
},
|
|
25
|
+
events: {
|
|
26
|
+
onClose: 'Trigger actions when sider is closed.',
|
|
27
|
+
onOpen: 'Trigger actions when sider is opened.',
|
|
28
|
+
onBreakpoint: 'Trigger actions on breakpoint change.'
|
|
29
|
+
},
|
|
17
30
|
properties: {
|
|
18
31
|
type: 'object',
|
|
19
32
|
additionalProperties: false,
|
|
@@ -49,22 +62,6 @@
|
|
|
49
62
|
default: false,
|
|
50
63
|
description: 'Direction of arrow, for a sider that expands from the right'
|
|
51
64
|
},
|
|
52
|
-
theme: {
|
|
53
|
-
type: 'string',
|
|
54
|
-
enum: [
|
|
55
|
-
'light',
|
|
56
|
-
'dark'
|
|
57
|
-
],
|
|
58
|
-
default: 'dark',
|
|
59
|
-
description: 'Color theme of the sidebar'
|
|
60
|
-
},
|
|
61
|
-
style: {
|
|
62
|
-
type: 'object',
|
|
63
|
-
description: 'Css style object to apply to sider.',
|
|
64
|
-
docs: {
|
|
65
|
-
displayType: 'yaml'
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
65
|
width: {
|
|
69
66
|
type: [
|
|
70
67
|
'string',
|
|
@@ -74,24 +71,13 @@
|
|
|
74
71
|
docs: {
|
|
75
72
|
displayType: 'string'
|
|
76
73
|
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
events: {
|
|
81
|
-
type: 'object',
|
|
82
|
-
additionalProperties: false,
|
|
83
|
-
properties: {
|
|
84
|
-
onClose: {
|
|
85
|
-
type: 'array',
|
|
86
|
-
description: 'Trigger actions when sider is closed.'
|
|
87
74
|
},
|
|
88
|
-
|
|
89
|
-
type: '
|
|
90
|
-
description: '
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
description: 'Trigger actions on breakpoint change.'
|
|
75
|
+
theme: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
78
|
+
docs: {
|
|
79
|
+
displayType: 'yaml'
|
|
80
|
+
}
|
|
95
81
|
}
|
|
96
82
|
}
|
|
97
83
|
}
|