Skip to content

Commit 25f955c

Browse files
committed
select and cascader style updated
1 parent f760ba6 commit 25f955c

File tree

7 files changed

+90
-20
lines changed

7 files changed

+90
-20
lines changed

client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderComp.tsx

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,39 @@
11
import { default as Cascader } from "antd/es/cascader";
2-
import { CascaderStyleType } from "comps/controls/styleControlConstants";
2+
import { CascaderStyleType, ChildrenMultiSelectStyleType } from "comps/controls/styleControlConstants";
33
import { blurMethod, focusMethod } from "comps/utils/methodUtils";
44
import { trans } from "i18n";
55
import styled from "styled-components";
66
import { UICompBuilder, withDefault } from "../../generators";
77
import { CommonNameConfig, NameConfig, withExposingConfigs } from "../../generators/withExposing";
88
import { CascaderChildren, CascaderPropertyView, defaultDataSource } from "./cascaderContants";
9-
import { getStyle } from "./selectCompConstants";
109
import { refMethods } from "comps/generators/withMethodExposing";
1110

12-
const CascaderStyle = styled(Cascader)<{ $style: CascaderStyleType }>`
11+
const CascaderStyle = styled(Cascader)<{ $style: CascaderStyleType,$childrenInputFieldStyle:ChildrenMultiSelectStyleType }>`
1312
width: 100%;
1413
font-family:"Montserrat";
15-
${(props) => props.$style && getStyle(props.$style)}
14+
${(props) => { return props.$style && { ...props.$style, 'border-radius': props.$style.radius } }}
1615
`;
1716

17+
const DropdownRenderStyle = styled.div<{ $childrenInputFieldStyle: ChildrenMultiSelectStyleType }>`
18+
background-color: ${props => props.$childrenInputFieldStyle?.background};
19+
border: ${props => props.$childrenInputFieldStyle?.border};
20+
border-style: ${props => props.$childrenInputFieldStyle?.borderStyle};
21+
border-width: ${props => props.$childrenInputFieldStyle?.borderWidth};
22+
border-radius: ${props => props.$childrenInputFieldStyle?.radius};
23+
rotate: ${props => props.$childrenInputFieldStyle?.rotation};
24+
margin: ${props => props.$childrenInputFieldStyle?.margin};
25+
padding: ${props => props.$childrenInputFieldStyle?.padding};
26+
.ant-cascader-menu-item-content{
27+
font-size: ${props => props.$childrenInputFieldStyle?.textSize};
28+
font-style: ${props => props.$childrenInputFieldStyle?.fontStyle};
29+
font-family: ${props => props.$childrenInputFieldStyle?.fontFamily};
30+
font-weight: ${props => props.$childrenInputFieldStyle?.textWeight};
31+
text-transform: ${props => props.$childrenInputFieldStyle?.textTransform};
32+
text-decoration: ${props => props.$childrenInputFieldStyle?.textDecoration};
33+
color: ${props => props.$childrenInputFieldStyle?.text};
34+
}
35+
`
36+
1837
let CascaderBasicComp = (function () {
1938
const childrenMap = CascaderChildren;
2039

@@ -23,6 +42,7 @@ let CascaderBasicComp = (function () {
2342
style: props.style,
2443
labelStyle: props.labelStyle,
2544
inputFieldStyle:props.inputFieldStyle,
45+
childrenInputFieldStyle:props.childrenInputFieldStyle,
2646
children: (
2747
<CascaderStyle
2848
ref={props.viewRef}
@@ -34,8 +54,14 @@ let CascaderBasicComp = (function () {
3454
placeholder={props.placeholder}
3555
showSearch={props.showSearch}
3656
$style={props.inputFieldStyle}
57+
$childrenInputFieldStyle={props.childrenInputFieldStyle}
3758
onFocus={() => props.onEvent("focus")}
3859
onBlur={() => props.onEvent("blur")}
60+
dropdownRender={(menus: React.ReactNode) => (
61+
<DropdownRenderStyle $childrenInputFieldStyle={props.childrenInputFieldStyle}>
62+
{menus}
63+
</DropdownRenderStyle>
64+
)}
3965
onChange={(value: (string | number)[]) => {
4066
props.value.onChange(value as string[]);
4167
props.onEvent("change");

client/packages/lowcoder/src/comps/comps/selectInputComp/cascaderContants.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { arrayStringExposingStateControl } from "comps/controls/codeStateControl
66
import { BoolControl } from "comps/controls/boolControl";
77
import { LabelControl } from "comps/controls/labelControl";
88
import { styleControl } from "comps/controls/styleControl";
9-
import { CascaderStyle, InputFieldStyle, LabelStyle } from "comps/controls/styleControlConstants";
9+
import { CascaderStyle, ChildrenMultiSelectStyle, InputFieldStyle, LabelStyle } from "comps/controls/styleControlConstants";
1010
import {
1111
allowClearPropertyView,
1212
disabledPropertyView,
@@ -40,7 +40,8 @@ export const CascaderChildren = {
4040
viewRef: RefControl<CascaderRef>,
4141
margin: MarginControl,
4242
padding: PaddingControl,
43-
inputFieldStyle:styleControl(CascaderStyle)
43+
inputFieldStyle:styleControl(CascaderStyle),
44+
childrenInputFieldStyle:styleControl(ChildrenMultiSelectStyle)
4445
};
4546

4647
export const CascaderPropertyView = (
@@ -83,6 +84,9 @@ export const CascaderPropertyView = (
8384
<Section name={sectionNames.inputFieldStyle}>
8485
{children.inputFieldStyle.getPropertyView()}
8586
</Section>
87+
<Section name={'Children Input Field Style'}>
88+
{children.childrenInputFieldStyle.getPropertyView()}
89+
</Section>
8690
</>
8791
)}
8892
</>

client/packages/lowcoder/src/comps/comps/selectInputComp/multiSelectComp.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { styleControl } from "comps/controls/styleControl";
2-
import { InputFieldStyle, LabelStyle, MultiSelectStyle } from "comps/controls/styleControlConstants";
2+
import { ChildrenMultiSelectStyle, InputFieldStyle, LabelStyle, MultiSelectStyle } from "comps/controls/styleControlConstants";
33
import { trans } from "i18n";
44
import { arrayStringExposingStateControl } from "../../controls/codeStateControl";
55
import { UICompBuilder } from "../../generators";
@@ -25,6 +25,7 @@ let MultiSelectBasicComp = (function () {
2525
style: styleControl(InputFieldStyle),
2626
labelStyle:styleControl(LabelStyle),
2727
inputFieldStyle:styleControl(MultiSelectStyle),
28+
childrenInputFieldStyle:styleControl(ChildrenMultiSelectStyle),
2829
margin: MarginControl,
2930
padding: PaddingControl,
3031
};
@@ -40,6 +41,7 @@ let MultiSelectBasicComp = (function () {
4041
style: props.style,
4142
labelStyle: props.labelStyle,
4243
inputFieldStyle:props.inputFieldStyle,
44+
childrenInputFieldStyle:props.childrenInputFieldStyle,
4345
children: (
4446
<SelectUIView
4547
{...props}

client/packages/lowcoder/src/comps/comps/selectInputComp/selectComp.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { styleControl } from "comps/controls/styleControl";
2-
import { InputFieldStyle, LabelStyle, SelectStyle } from "comps/controls/styleControlConstants";
2+
import { ChildrenMultiSelectStyle, InputFieldStyle, LabelStyle, SelectStyle } from "comps/controls/styleControlConstants";
33
import { trans } from "i18n";
44
import { stringExposingStateControl } from "../../controls/codeStateControl";
55
import { UICompBuilder } from "../../generators";
@@ -27,7 +27,8 @@ let SelectBasicComp = (function () {
2727
value: stringExposingStateControl("value"),
2828
style: styleControl(InputFieldStyle),
2929
labelStyle: styleControl(LabelStyle),
30-
inputFieldStyle: styleControl(SelectStyle)
30+
inputFieldStyle: styleControl(SelectStyle),
31+
childrenInputFieldStyle: styleControl(ChildrenMultiSelectStyle)
3132
};
3233
return new UICompBuilder(childrenMap, (props, dispatch) => {
3334
const [
@@ -45,6 +46,7 @@ let SelectBasicComp = (function () {
4546
style: props.style,
4647
labelStyle: props.labelStyle,
4748
inputFieldStyle:props.inputFieldStyle,
49+
childrenInputFieldStyle:props.childrenInputFieldStyle,
4850
children: (
4951
<SelectUIView
5052
{...props}

client/packages/lowcoder/src/comps/comps/selectInputComp/selectCompConstants.tsx

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import {
4040
heightCalculator,
4141

4242
SelectStyle,
43+
ChildrenMultiSelectStyleType,
4344
} from "comps/controls/styleControlConstants";
4445
import { stateComp, withDefault } from "../../generators";
4546
import {
@@ -186,10 +187,25 @@ const Select = styled(AntdSelect) <{ $style: SelectStyleType & MultiSelectStyleT
186187
${(props) => props.$style && getStyle(props.$style)}
187188
`;
188189

189-
const DropdownStyled = styled.div<{ $style: MultiSelectStyleType }>`
190-
${(props) => props.$style && getDropdownStyle(props.$style)}
190+
const DropdownStyled = styled.div<{ $style: ChildrenMultiSelectStyleType }>`
191+
background-color: ${props => props.$style?.background};
192+
border: ${props => props.$style?.border};
193+
border-style: ${props => props.$style?.borderStyle};
194+
border-width: ${props => props.$style?.borderWidth};
195+
border-radius: ${props => props.$style?.radius};
196+
rotate: ${props => props.$style?.rotation};
197+
margin: ${props => props.$style?.margin};
198+
padding: ${props => props.$style?.padding};
191199
.ant-select-item-option-content {
192-
${(props) => `padding: ${props.$style.padding}`};
200+
font-size: ${props => props.$style?.textSize};
201+
font-style: ${props => props.$style?.fontStyle};
202+
font-family: ${props => props.$style?.fontFamily};
203+
font-weight: ${props => props.$style?.textWeight};
204+
text-transform: ${props => props.$style?.textTransform};
205+
color: ${props => props.$style?.text};
206+
}
207+
.option-label{
208+
text-decoration: ${props => props.$style?.textDecoration} !important;
193209
}
194210
.option-label img {
195211
min-width: 14px;
@@ -229,11 +245,12 @@ export const SelectUIView = (
229245
mode?: "multiple" | "tags";
230246
value: any;
231247
style: SelectStyleType | MultiSelectStyleType;
248+
childrenInputFieldStyle: ChildrenMultiSelectStyleType;
232249
onChange: (value: any) => void;
233250
dispatch: DispatchType;
234251
}
235-
) => (
236-
<Select
252+
) => {
253+
return <Select
237254
ref={props.viewRef}
238255
mode={props.mode}
239256
$style={props.style as SelectStyleType & MultiSelectStyleType}
@@ -246,7 +263,7 @@ export const SelectUIView = (
246263
option?.label.toLowerCase().includes(input.toLowerCase())
247264
}
248265
dropdownRender={(originNode: ReactNode) => (
249-
<DropdownStyled $style={props.style as MultiSelectStyleType}>
266+
<DropdownStyled $style={props.childrenInputFieldStyle as ChildrenMultiSelectStyleType}>
250267
{originNode}
251268
</DropdownStyled>
252269
)}
@@ -282,7 +299,7 @@ export const SelectUIView = (
282299
</Select.Option>
283300
))}
284301
</Select>
285-
);
302+
}
286303

287304
export const SelectPropertyView = (
288305
children: RecordConstructorToComp<
@@ -295,6 +312,7 @@ export const SelectPropertyView = (
295312
style: { getPropertyView: () => ControlNode };
296313
labelStyle: { getPropertyView: () => ControlNode };
297314
inputFieldStyle: { getPropertyView: () => ControlNode };
315+
childrenInputFieldStyle: { getPropertyView: () => ControlNode };
298316
}
299317
) => (
300318
<>
@@ -343,6 +361,9 @@ export const SelectPropertyView = (
343361
<Section name={sectionNames.inputFieldStyle}>
344362
{children.inputFieldStyle.getPropertyView()}
345363
</Section>
364+
<Section name={'Children Input Field Styles'}>
365+
{children.childrenInputFieldStyle.getPropertyView()}
366+
</Section>
346367
</>
347368
)}
348369
</>

client/packages/lowcoder/src/comps/controls/labelControl.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ type LabelViewProps = Pick<FormItemProps, "required" | "help" | "validateStatus"
2323
labelStyle?: Record<string, string>;
2424
field?: Record<string, string>;
2525
inputFieldStyle?: Record<string, string>;
26+
childrenInputFieldStyle?: Record<string, string>;
2627
};
2728

2829
const StyledStarIcon = styled(StarIcon)`
@@ -168,8 +169,9 @@ export const LabelControl = (function () {
168169
align: dropdownControl(AlignOptions, "left"),
169170
};
170171

171-
return new MultiCompBuilder(childrenMap, (props) => (args: LabelViewProps) => (
172-
<LabelViewWrapper $style={args.style} inputFieldStyle={args.inputFieldStyle}>
172+
return new MultiCompBuilder(childrenMap, (props) => (args: LabelViewProps) =>
173+
{
174+
return <LabelViewWrapper $style={args.style} inputFieldStyle={args.inputFieldStyle}>
173175
<MainWrapper
174176
$position={props.position}
175177
$hasLabel={!!props.text}
@@ -246,8 +248,8 @@ export const LabelControl = (function () {
246248
{args.help}
247249
</HelpWrapper>
248250
)}
249-
</LabelViewWrapper>
250-
))
251+
</LabelViewWrapper>}
252+
)
251253
.setPropertyViewFn((children) => (
252254
<Section name={trans("label")}>
253255
{children.text.propertyView({ label: trans("labelProp.text") })}

client/packages/lowcoder/src/comps/controls/styleControlConstants.tsx

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -976,6 +976,18 @@ export const MultiSelectStyle = [
976976
...ACCENT_VALIDATE,
977977
] as const;
978978

979+
export const ChildrenMultiSelectStyle = [
980+
...multiSelectCommon,
981+
{
982+
name: "multiIcon",
983+
label: trans("style.multiIcon"),
984+
depTheme: "primary",
985+
depType: DEP_TYPE.SELF,
986+
transformer: toSelf,
987+
platform: "pc",
988+
},
989+
] as const;
990+
979991
export const TabContainerStyle = [
980992
// Keep background related properties of container as STYLING_FIELDS_SEQUENCE has rest of the properties
981993
...replaceAndMergeMultipleStyles([...ContainerStyle.filter((style) => ['border', 'radius', 'borderWidth', 'margin', 'padding'].includes(style.name) === false), ...STYLING_FIELDS_SEQUENCE], 'text', [{
@@ -1618,6 +1630,7 @@ export type RatingStyleType = StyleConfigType<typeof RatingStyle>;
16181630
export type SwitchStyleType = StyleConfigType<typeof SwitchStyle>;
16191631
export type SelectStyleType = StyleConfigType<typeof SelectStyle>;
16201632
export type MultiSelectStyleType = StyleConfigType<typeof MultiSelectStyle>;
1633+
export type ChildrenMultiSelectStyleType = StyleConfigType<typeof ChildrenMultiSelectStyle>;
16211634
export type TabContainerStyleType = StyleConfigType<typeof TabContainerStyle>;
16221635
export type ModalStyleType = StyleConfigType<typeof ModalStyle>;
16231636
export type CascaderStyleType = StyleConfigType<typeof CascaderStyle>;

0 commit comments

Comments
 (0)