PluginProbe
The Innovative Form Builder – IvyForms / 1.1
The Innovative Form Builder – IvyForms v1.1
1.5.1 1.5 1.4.1 1.4 trunk 0.1.2 0.2 0.2.1 0.3 0.3.1 0.4 0.5 0.6 0.6.1 0.6.1-backup 0.6.1.1 0.7 0.8 0.8.1 0.8.2 0.9 0.9.1 1.0 1.1 1.1.1 All 27 releases
ivyforms / frontend / src / utils / form-styles / sections / fieldLabels.ts

fieldLabels.ts in The Innovative Form Builder – IvyForms 1.1, at frontend/src/utils/form-styles/sections/fieldLabels.ts

84 lines 3.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import type { FormStyleSettings } from '@/types/form-style'
2 import type { ActiveColors } from '@/utils/form-styles/styleSettings'
3 import { formatDimensionToCss } from '@/utils/styleUtils'
4
5 export function applyFieldLabelStyles(
6 css: string[],
7 baseSelector: string,
8 styleSettings: FormStyleSettings,
9 activeColors: ActiveColors,
10 ): void {
11 const fieldLabelPaddingLR = formatDimensionToCss(
12 styleSettings.advancedMode?.fieldLabels?.label?.paddingLeftRight,
13 )
14 const fieldLabelPaddingTB = formatDimensionToCss(
15 styleSettings.advancedMode?.fieldLabels?.label?.paddingTopBottom,
16 )
17 const fieldLabelAlignment = styleSettings.advancedMode?.fieldLabels?.label?.alignment || 'left'
18 const fieldLabelFontWeight = styleSettings.advancedMode?.fieldLabels?.label?.fontWeight
19 const fieldLabelFontStyle = styleSettings.advancedMode?.fieldLabels?.label?.fontStyle
20 const fieldLabelFontSize = formatDimensionToCss(
21 styleSettings.advancedMode?.fieldLabels?.label?.fontSize,
22 )
23
24 if (
25 activeColors.fieldLabels ||
26 fieldLabelPaddingLR ||
27 fieldLabelPaddingTB ||
28 fieldLabelFontWeight ||
29 fieldLabelFontStyle ||
30 fieldLabelFontSize
31 ) {
32 css.push(`${baseSelector} .ivyforms-form-item__label,`)
33 css.push(`${baseSelector} .el-form-item__label,`)
34 css.push(`${baseSelector} .ivyforms-field__address-label,`)
35 css.push(`${baseSelector} .ivyforms-name-field__label,`)
36 css.push(`${baseSelector} .ivyforms-name-field__layout__field-wrapper__sublabel {`)
37 if (activeColors.fieldLabels) {
38 css.push(` color: ${activeColors.fieldLabels} !important;`)
39 }
40 if (fieldLabelFontWeight) {
41 css.push(` font-weight: ${fieldLabelFontWeight} !important;`)
42 }
43 if (fieldLabelFontStyle) {
44 css.push(` font-style: ${fieldLabelFontStyle} !important;`)
45 }
46 if (fieldLabelFontSize) {
47 css.push(` font-size: ${fieldLabelFontSize} !important;`)
48 }
49 if (fieldLabelPaddingLR) {
50 css.push(` padding-left: ${fieldLabelPaddingLR} !important;`)
51 css.push(` padding-right: ${fieldLabelPaddingLR} !important;`)
52 }
53 if (fieldLabelPaddingTB) {
54 css.push(` padding-top: ${fieldLabelPaddingTB} !important;`)
55 css.push(` padding-bottom: ${fieldLabelPaddingTB} !important;`)
56 }
57 css.push('}')
58 }
59
60 if (fieldLabelAlignment !== 'left') {
61 const justifyContent = fieldLabelAlignment === 'center' ? 'center' : 'flex-end'
62 css.push(`${baseSelector} .ivyforms-form-item .el-form-item .el-form-item__label,`)
63 css.push(`${baseSelector} .el-form-item__label,`)
64 css.push(`${baseSelector} .ivyforms-field__address .el-form-item__label,`)
65 css.push(`${baseSelector} .ivyforms-field__address-label,`)
66 css.push(`${baseSelector} .ivyforms-name-field__label,`)
67 css.push(`${baseSelector} .ivyforms-name-field__layout__field-wrapper__sublabel {`)
68 css.push(` display: flex !important;`)
69 css.push(` width: 100% !important;`)
70 css.push(` text-align: ${fieldLabelAlignment} !important;`)
71 css.push(` justify-content: ${justifyContent} !important;`)
72 css.push(`}`)
73 }
74
75 const requiredIndicatorColor =
76 styleSettings.advancedMode?.fieldLabels?.requiredIndicator?.fontColor || '#E53E3E'
77
78 css.push(`${baseSelector} .ivyforms-form-item .ivyforms-form-item__asterisk,`)
79 css.push(`${baseSelector} .ivyforms-form-item__asterisk,`)
80 css.push(`${baseSelector} .el-form-item__label.is-required::before {`)
81 css.push(` color: ${requiredIndicatorColor} !important;`)
82 css.push('}')
83 }
84