@lowdefy/blocks-antd 4.7.2 → 5.0.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 +15 -22
- package/dist/blocks/AutoComplete/meta.js +265 -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 +111 -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 +21 -16
- package/dist/blocks/Drawer/{schema.js → meta.js} +61 -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 +148 -122
- 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 +13 -21
- package/dist/blocks/MobileMenu/{schema.js → meta.js} +17 -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 +49 -36
- package/dist/blocks/MultipleSelector/{schema.js → meta.js} +177 -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/PageSiderMenu/PageSiderMenu.js +151 -192
- package/dist/blocks/PageSiderMenu/meta.js +476 -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 +35 -30
- package/dist/blocks/Selector/meta.js +379 -0
- package/dist/blocks/Sider/Sider.js +9 -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 +16 -1
- package/dist/disabledDate.js +15 -7
- package/dist/e2e.js +4 -1
- package/dist/metas.js +91 -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
|
@@ -0,0 +1,221 @@
|
|
|
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 } from '../../schemas/inputProperties.js';
|
|
19
|
+
export default {
|
|
20
|
+
category: 'input',
|
|
21
|
+
icons: [
|
|
22
|
+
...LabelMeta.icons,
|
|
23
|
+
'AiOutlineFrown',
|
|
24
|
+
'AiOutlineSmile'
|
|
25
|
+
],
|
|
26
|
+
valueType: 'any',
|
|
27
|
+
cssKeys: {
|
|
28
|
+
element: 'The RatingSlider element.',
|
|
29
|
+
label: 'The RatingSlider label.',
|
|
30
|
+
extra: 'The RatingSlider extra content.',
|
|
31
|
+
feedback: 'The RatingSlider validation feedback.',
|
|
32
|
+
minIcon: 'The min icon in the RatingSlider.',
|
|
33
|
+
maxIcon: 'The max icon in the RatingSlider.'
|
|
34
|
+
},
|
|
35
|
+
events: {
|
|
36
|
+
onChange: {
|
|
37
|
+
description: 'Trigger action when rating is changed.',
|
|
38
|
+
event: {
|
|
39
|
+
value: 'The selected rating value.'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
properties: {
|
|
44
|
+
type: 'object',
|
|
45
|
+
additionalProperties: false,
|
|
46
|
+
properties: {
|
|
47
|
+
autoFocus,
|
|
48
|
+
color: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
description: 'Rating slider color.',
|
|
51
|
+
docs: {
|
|
52
|
+
displayType: 'color'
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
disabled,
|
|
56
|
+
disableIcons: {
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
default: false,
|
|
59
|
+
description: 'Hides minimum and maximum icons.'
|
|
60
|
+
},
|
|
61
|
+
disableNotApplicable: {
|
|
62
|
+
type: 'boolean',
|
|
63
|
+
default: false,
|
|
64
|
+
description: 'Disables the N/A option left of slider.'
|
|
65
|
+
},
|
|
66
|
+
minIcon: {
|
|
67
|
+
...icon,
|
|
68
|
+
default: 'AiOutlineFrown',
|
|
69
|
+
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 the icon to the left of the minimum side of the slider."
|
|
70
|
+
},
|
|
71
|
+
maxIcon: {
|
|
72
|
+
...icon,
|
|
73
|
+
default: 'AiOutlineSmile',
|
|
74
|
+
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 the icon to the right of the maximum side of the slider."
|
|
75
|
+
},
|
|
76
|
+
label,
|
|
77
|
+
min: {
|
|
78
|
+
type: 'number',
|
|
79
|
+
default: 0,
|
|
80
|
+
description: 'The minimum value of the slider.'
|
|
81
|
+
},
|
|
82
|
+
max: {
|
|
83
|
+
type: 'number',
|
|
84
|
+
default: 10,
|
|
85
|
+
description: 'The maximum value of the slider.'
|
|
86
|
+
},
|
|
87
|
+
notApplicableLabel: {
|
|
88
|
+
type: 'string',
|
|
89
|
+
default: 'N/A',
|
|
90
|
+
description: 'Label shown at the null value of the slider.'
|
|
91
|
+
},
|
|
92
|
+
showDots: {
|
|
93
|
+
type: 'boolean',
|
|
94
|
+
default: true,
|
|
95
|
+
description: 'Shows dots at values between step values when true.'
|
|
96
|
+
},
|
|
97
|
+
showMarks: {
|
|
98
|
+
type: 'boolean',
|
|
99
|
+
default: true,
|
|
100
|
+
description: 'Shows values at specified min, max and step values.'
|
|
101
|
+
},
|
|
102
|
+
step: {
|
|
103
|
+
type: 'number',
|
|
104
|
+
default: 1,
|
|
105
|
+
exclusiveMinimum: 0,
|
|
106
|
+
description: ' The size of the step between values, has to be values greater than 0.'
|
|
107
|
+
},
|
|
108
|
+
tooltipVisible: {
|
|
109
|
+
type: 'string',
|
|
110
|
+
enum: [
|
|
111
|
+
'never',
|
|
112
|
+
'onClick',
|
|
113
|
+
'always'
|
|
114
|
+
],
|
|
115
|
+
default: 'onClick',
|
|
116
|
+
description: 'When tooltip should be visible.'
|
|
117
|
+
},
|
|
118
|
+
title: inputTitle,
|
|
119
|
+
theme: {
|
|
120
|
+
type: 'object',
|
|
121
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
122
|
+
docs: {
|
|
123
|
+
displayType: 'yaml',
|
|
124
|
+
link: 'https://ant.design/components/slider#design-token'
|
|
125
|
+
},
|
|
126
|
+
properties: {
|
|
127
|
+
controlSize: {
|
|
128
|
+
type: 'number',
|
|
129
|
+
default: 10,
|
|
130
|
+
description: 'Size of the slider control element.'
|
|
131
|
+
},
|
|
132
|
+
railSize: {
|
|
133
|
+
type: 'number',
|
|
134
|
+
default: 4,
|
|
135
|
+
description: 'Height (horizontal) or width (vertical) of the slider rail track.'
|
|
136
|
+
},
|
|
137
|
+
handleSize: {
|
|
138
|
+
type: 'number',
|
|
139
|
+
default: 10,
|
|
140
|
+
description: 'Size of the slider handle.'
|
|
141
|
+
},
|
|
142
|
+
handleSizeHover: {
|
|
143
|
+
type: 'number',
|
|
144
|
+
default: 12,
|
|
145
|
+
description: 'Size of the slider handle on hover.'
|
|
146
|
+
},
|
|
147
|
+
dotSize: {
|
|
148
|
+
type: 'number',
|
|
149
|
+
default: 8,
|
|
150
|
+
description: 'Size of the slider step dots.'
|
|
151
|
+
},
|
|
152
|
+
handleLineWidth: {
|
|
153
|
+
type: 'number',
|
|
154
|
+
default: 2,
|
|
155
|
+
description: 'Border line width of the handle.'
|
|
156
|
+
},
|
|
157
|
+
handleLineWidthHover: {
|
|
158
|
+
type: 'number',
|
|
159
|
+
default: 2.5,
|
|
160
|
+
description: 'Border line width of the handle on hover.'
|
|
161
|
+
},
|
|
162
|
+
railBg: {
|
|
163
|
+
type: 'string',
|
|
164
|
+
default: 'rgba(0,0,0,0.04)',
|
|
165
|
+
description: 'Background color of the slider rail.'
|
|
166
|
+
},
|
|
167
|
+
railHoverBg: {
|
|
168
|
+
type: 'string',
|
|
169
|
+
default: 'rgba(0,0,0,0.06)',
|
|
170
|
+
description: 'Background color of the slider rail on hover.'
|
|
171
|
+
},
|
|
172
|
+
trackBg: {
|
|
173
|
+
type: 'string',
|
|
174
|
+
default: '#91caff',
|
|
175
|
+
description: 'Background color of the active track.'
|
|
176
|
+
},
|
|
177
|
+
trackHoverBg: {
|
|
178
|
+
type: 'string',
|
|
179
|
+
default: '#69b1ff',
|
|
180
|
+
description: 'Background color of the active track on hover.'
|
|
181
|
+
},
|
|
182
|
+
handleColor: {
|
|
183
|
+
type: 'string',
|
|
184
|
+
default: '#91caff',
|
|
185
|
+
description: 'Color of the slider handle.'
|
|
186
|
+
},
|
|
187
|
+
handleActiveColor: {
|
|
188
|
+
type: 'string',
|
|
189
|
+
default: '#1677ff',
|
|
190
|
+
description: 'Color of the slider handle when active.'
|
|
191
|
+
},
|
|
192
|
+
handleActiveOutlineColor: {
|
|
193
|
+
type: 'string',
|
|
194
|
+
default: 'rgba(22,119,255,0.2)',
|
|
195
|
+
description: 'Color of the handle focus outline ring.'
|
|
196
|
+
},
|
|
197
|
+
handleColorDisabled: {
|
|
198
|
+
type: 'string',
|
|
199
|
+
default: '#bfbfbf',
|
|
200
|
+
description: 'Color of the slider handle when disabled.'
|
|
201
|
+
},
|
|
202
|
+
dotBorderColor: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
default: '#f0f0f0',
|
|
205
|
+
description: 'Border color of the step dots.'
|
|
206
|
+
},
|
|
207
|
+
dotActiveBorderColor: {
|
|
208
|
+
type: 'string',
|
|
209
|
+
default: '#91caff',
|
|
210
|
+
description: 'Border color of the active step dots.'
|
|
211
|
+
},
|
|
212
|
+
trackBgDisabled: {
|
|
213
|
+
type: 'string',
|
|
214
|
+
default: 'rgba(0,0,0,0.04)',
|
|
215
|
+
description: 'Background color of the track when disabled.'
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
};
|
|
@@ -14,9 +14,11 @@
|
|
|
14
14
|
limitations under the License.
|
|
15
15
|
*/ import React from 'react';
|
|
16
16
|
import { Result } from 'antd';
|
|
17
|
-
import {
|
|
18
|
-
|
|
17
|
+
import { renderHtml, withBlockDefaults } from '@lowdefy/block-utils';
|
|
18
|
+
import withTheme from '../withTheme.js';
|
|
19
|
+
const ResultBlock = ({ blockId, classNames = {}, components: { Icon }, events, content, methods, properties, styles = {} })=>/*#__PURE__*/ React.createElement(Result, {
|
|
19
20
|
id: blockId,
|
|
21
|
+
className: classNames.element,
|
|
20
22
|
title: renderHtml({
|
|
21
23
|
html: properties.title,
|
|
22
24
|
methods
|
|
@@ -26,10 +28,17 @@ const ResultBlock = ({ blockId, components: { Icon }, events, content, methods,
|
|
|
26
28
|
methods
|
|
27
29
|
}),
|
|
28
30
|
status: properties.status,
|
|
31
|
+
style: styles.element,
|
|
29
32
|
icon: properties.icon && /*#__PURE__*/ React.createElement(Icon, {
|
|
30
33
|
blockId: `${blockId}_icon`,
|
|
34
|
+
classNames: {
|
|
35
|
+
element: classNames.icon
|
|
36
|
+
},
|
|
31
37
|
events: events,
|
|
32
|
-
properties: properties.icon
|
|
38
|
+
properties: properties.icon,
|
|
39
|
+
styles: {
|
|
40
|
+
element: styles.icon
|
|
41
|
+
}
|
|
33
42
|
}),
|
|
34
43
|
extra: content.extra && content.extra({
|
|
35
44
|
justifyContent: 'center'
|
|
@@ -37,12 +46,4 @@ const ResultBlock = ({ blockId, components: { Icon }, events, content, methods,
|
|
|
37
46
|
}, content.content && content.content({
|
|
38
47
|
justifyContent: 'center'
|
|
39
48
|
}));
|
|
40
|
-
|
|
41
|
-
ResultBlock.meta = {
|
|
42
|
-
category: 'container',
|
|
43
|
-
icons: [],
|
|
44
|
-
styles: [
|
|
45
|
-
'blocks/Result/style.less'
|
|
46
|
-
]
|
|
47
|
-
};
|
|
48
|
-
export default ResultBlock;
|
|
49
|
+
export default withTheme('Result', withBlockDefaults(ResultBlock));
|
|
@@ -0,0 +1,129 @@
|
|
|
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
|
+
*/ export default {
|
|
16
|
+
category: 'container',
|
|
17
|
+
icons: [],
|
|
18
|
+
valueType: null,
|
|
19
|
+
slots: {
|
|
20
|
+
content: 'Additional content below the Result.',
|
|
21
|
+
extra: 'Extra content, typically action buttons.'
|
|
22
|
+
},
|
|
23
|
+
cssKeys: {
|
|
24
|
+
element: 'The Result element.',
|
|
25
|
+
icon: 'The icon in the Result.'
|
|
26
|
+
},
|
|
27
|
+
properties: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
additionalProperties: false,
|
|
30
|
+
properties: {
|
|
31
|
+
icon: {
|
|
32
|
+
type: [
|
|
33
|
+
'string',
|
|
34
|
+
'object'
|
|
35
|
+
],
|
|
36
|
+
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 use as result image.",
|
|
37
|
+
docs: {
|
|
38
|
+
displayType: 'icon'
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
status: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
enum: [
|
|
44
|
+
'success',
|
|
45
|
+
'error',
|
|
46
|
+
'info',
|
|
47
|
+
'warning',
|
|
48
|
+
'404',
|
|
49
|
+
'403',
|
|
50
|
+
'500'
|
|
51
|
+
],
|
|
52
|
+
default: 'info',
|
|
53
|
+
description: 'Status of the result. Determines image and color.'
|
|
54
|
+
},
|
|
55
|
+
subTitle: {
|
|
56
|
+
type: 'string',
|
|
57
|
+
description: 'Result subtitle or secondary text - supports html.'
|
|
58
|
+
},
|
|
59
|
+
title: {
|
|
60
|
+
type: 'string',
|
|
61
|
+
description: 'Result title or primary text - supports html.'
|
|
62
|
+
},
|
|
63
|
+
theme: {
|
|
64
|
+
type: 'object',
|
|
65
|
+
description: 'Antd design token overrides for this block. See <a href="https://ant.design/components/overview#design-token">antd design tokens</a>.',
|
|
66
|
+
docs: {
|
|
67
|
+
displayType: 'yaml',
|
|
68
|
+
link: 'https://ant.design/components/result#design-token'
|
|
69
|
+
},
|
|
70
|
+
properties: {
|
|
71
|
+
titleFontSize: {
|
|
72
|
+
type: 'number',
|
|
73
|
+
default: 24,
|
|
74
|
+
description: 'Font size of the result title.'
|
|
75
|
+
},
|
|
76
|
+
subtitleFontSize: {
|
|
77
|
+
type: 'number',
|
|
78
|
+
default: 14,
|
|
79
|
+
description: 'Font size of the result subtitle.'
|
|
80
|
+
},
|
|
81
|
+
iconFontSize: {
|
|
82
|
+
type: 'number',
|
|
83
|
+
default: 72,
|
|
84
|
+
description: 'Font size of the result status icon.'
|
|
85
|
+
},
|
|
86
|
+
extraMargin: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
default: '24px 0 0 0',
|
|
89
|
+
description: 'Margin applied to the extra content area.'
|
|
90
|
+
},
|
|
91
|
+
colorSuccess: {
|
|
92
|
+
type: 'string',
|
|
93
|
+
description: 'Color used for the success status icon.'
|
|
94
|
+
},
|
|
95
|
+
colorError: {
|
|
96
|
+
type: 'string',
|
|
97
|
+
description: 'Color used for the error status icon.'
|
|
98
|
+
},
|
|
99
|
+
colorInfo: {
|
|
100
|
+
type: 'string',
|
|
101
|
+
description: 'Color used for the info status icon.'
|
|
102
|
+
},
|
|
103
|
+
colorWarning: {
|
|
104
|
+
type: 'string',
|
|
105
|
+
description: 'Color used for the warning status icon.'
|
|
106
|
+
},
|
|
107
|
+
colorTextHeading: {
|
|
108
|
+
type: 'string',
|
|
109
|
+
description: 'Color of the result title text.'
|
|
110
|
+
},
|
|
111
|
+
colorTextDescription: {
|
|
112
|
+
type: 'string',
|
|
113
|
+
description: 'Color of the result subtitle text.'
|
|
114
|
+
},
|
|
115
|
+
paddingLG: {
|
|
116
|
+
type: 'number',
|
|
117
|
+
default: 24,
|
|
118
|
+
description: 'Large padding value applied to the result container.'
|
|
119
|
+
},
|
|
120
|
+
lineHeight: {
|
|
121
|
+
type: 'number',
|
|
122
|
+
default: 1.5714285714285714,
|
|
123
|
+
description: 'Line height used for result text content.'
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
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 React, { useState, useEffect, useCallback } from 'react';
|
|
16
|
+
import { Button } from 'antd';
|
|
17
|
+
import { SearchOutlined } from '@ant-design/icons';
|
|
18
|
+
import { cn, withBlockDefaults } from '@lowdefy/block-utils';
|
|
19
|
+
import withTheme from '../withTheme.js';
|
|
20
|
+
import SearchModal from './SearchModal.js';
|
|
21
|
+
import useSearchIndex from './useSearchIndex.js';
|
|
22
|
+
import useRecentSearches from './useRecentSearches.js';
|
|
23
|
+
import './style.module.css';
|
|
24
|
+
const isMac = typeof navigator !== 'undefined' && /Mac|iPhone|iPad|iPod/.test(navigator.userAgent);
|
|
25
|
+
function parseShortcut(shortcut) {
|
|
26
|
+
if (!shortcut) return null;
|
|
27
|
+
const parts = shortcut.toLowerCase().split('+');
|
|
28
|
+
return {
|
|
29
|
+
mod: parts.includes('mod'),
|
|
30
|
+
ctrl: parts.includes('ctrl'),
|
|
31
|
+
shift: parts.includes('shift'),
|
|
32
|
+
alt: parts.includes('alt'),
|
|
33
|
+
key: parts[parts.length - 1]
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
function matchesShortcut(e, parsed) {
|
|
37
|
+
if (!parsed) return false;
|
|
38
|
+
const modPressed = parsed.mod ? isMac ? e.metaKey : e.ctrlKey : true;
|
|
39
|
+
const ctrlPressed = parsed.ctrl ? e.ctrlKey : true;
|
|
40
|
+
const shiftPressed = parsed.shift ? e.shiftKey : !e.shiftKey;
|
|
41
|
+
const altPressed = parsed.alt ? e.altKey : !e.altKey;
|
|
42
|
+
return modPressed && ctrlPressed && shiftPressed && altPressed && e.key.toLowerCase() === parsed.key;
|
|
43
|
+
}
|
|
44
|
+
function SearchBlock({ blockId, classNames = {}, components: { ShortcutBadge }, methods, properties, styles = {} }) {
|
|
45
|
+
const [open, setOpen] = useState(false);
|
|
46
|
+
const searchIndex = useSearchIndex({
|
|
47
|
+
indexUrl: properties.indexUrl,
|
|
48
|
+
documents: properties.documents,
|
|
49
|
+
fields: properties.fields,
|
|
50
|
+
storeFields: properties.storeFields,
|
|
51
|
+
searchOptions: properties.searchOptions
|
|
52
|
+
});
|
|
53
|
+
const recentSearches = useRecentSearches({
|
|
54
|
+
enabled: properties.recentSearches !== false,
|
|
55
|
+
storageKey: properties.recentSearchesKey,
|
|
56
|
+
maxCount: properties.recentSearchesCount
|
|
57
|
+
});
|
|
58
|
+
const handleOpen = useCallback(async ()=>{
|
|
59
|
+
setOpen(true);
|
|
60
|
+
await searchIndex.ensureLoaded();
|
|
61
|
+
methods.triggerEvent({
|
|
62
|
+
name: 'onOpen'
|
|
63
|
+
});
|
|
64
|
+
}, [
|
|
65
|
+
searchIndex,
|
|
66
|
+
methods
|
|
67
|
+
]);
|
|
68
|
+
const handleClose = useCallback(()=>{
|
|
69
|
+
setOpen(false);
|
|
70
|
+
methods.triggerEvent({
|
|
71
|
+
name: 'onClose'
|
|
72
|
+
});
|
|
73
|
+
}, [
|
|
74
|
+
methods
|
|
75
|
+
]);
|
|
76
|
+
useEffect(()=>{
|
|
77
|
+
methods.registerMethod('toggleOpen', ()=>{
|
|
78
|
+
if (open) {
|
|
79
|
+
handleClose();
|
|
80
|
+
} else {
|
|
81
|
+
handleOpen();
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
methods.registerMethod('setOpen', ({ open: newOpen })=>{
|
|
85
|
+
if (newOpen) {
|
|
86
|
+
handleOpen();
|
|
87
|
+
} else {
|
|
88
|
+
handleClose();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
useEffect(()=>{
|
|
93
|
+
const parsed = parseShortcut(properties.shortcut ?? 'mod+k');
|
|
94
|
+
function handleKeyDown(e) {
|
|
95
|
+
if (matchesShortcut(e, parsed)) {
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
if (open) {
|
|
98
|
+
handleClose();
|
|
99
|
+
} else {
|
|
100
|
+
handleOpen();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
document.addEventListener('keydown', handleKeyDown);
|
|
105
|
+
return ()=>document.removeEventListener('keydown', handleKeyDown);
|
|
106
|
+
}, [
|
|
107
|
+
properties.shortcut,
|
|
108
|
+
open,
|
|
109
|
+
handleOpen,
|
|
110
|
+
handleClose
|
|
111
|
+
]);
|
|
112
|
+
return /*#__PURE__*/ React.createElement("div", {
|
|
113
|
+
id: blockId,
|
|
114
|
+
className: cn(classNames.element),
|
|
115
|
+
style: styles.element
|
|
116
|
+
}, /*#__PURE__*/ React.createElement(Button, {
|
|
117
|
+
className: cn('lf-search-trigger', classNames.trigger),
|
|
118
|
+
style: styles.trigger,
|
|
119
|
+
onClick: handleOpen
|
|
120
|
+
}, /*#__PURE__*/ React.createElement(SearchOutlined, null), /*#__PURE__*/ React.createElement("span", {
|
|
121
|
+
className: "lf-search-trigger-label"
|
|
122
|
+
}, properties.label ?? 'Search'), properties.showShortcut !== false && /*#__PURE__*/ React.createElement(ShortcutBadge, {
|
|
123
|
+
shortcut: properties.shortcut ?? 'mod+k'
|
|
124
|
+
})), /*#__PURE__*/ React.createElement(SearchModal, {
|
|
125
|
+
open: open,
|
|
126
|
+
onClose: handleClose,
|
|
127
|
+
properties: properties,
|
|
128
|
+
methods: methods,
|
|
129
|
+
classNames: classNames,
|
|
130
|
+
styles: styles,
|
|
131
|
+
searchIndex: searchIndex,
|
|
132
|
+
recentSearches: recentSearches
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
export default withTheme('Search', withBlockDefaults(SearchBlock));
|
|
@@ -0,0 +1,33 @@
|
|
|
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 React from 'react';
|
|
16
|
+
function SearchHighlight({ text, terms, className, style }) {
|
|
17
|
+
if (!text || !terms || terms.length === 0) {
|
|
18
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
19
|
+
className: className,
|
|
20
|
+
style: style
|
|
21
|
+
}, text);
|
|
22
|
+
}
|
|
23
|
+
const escaped = terms.map((t)=>t.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
24
|
+
const pattern = new RegExp(`(${escaped.join('|')})`, 'gi');
|
|
25
|
+
const parts = text.split(pattern);
|
|
26
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
27
|
+
className: className,
|
|
28
|
+
style: style
|
|
29
|
+
}, parts.map((part, i)=>pattern.test(part) ? /*#__PURE__*/ React.createElement("mark", {
|
|
30
|
+
key: i
|
|
31
|
+
}, part) : part));
|
|
32
|
+
}
|
|
33
|
+
export default SearchHighlight;
|