react-antd-admin-panel
Version:
Modern TypeScript-first React admin panel builder with Ant Design 6
1 lines • 37.7 kB
Source Map (JSON)
{"version":3,"file":"Switch-COFRAt2B.cjs","sources":["../src/base/FormFieldBuilder.tsx","../src/form/Input.tsx","../src/form/Select.tsx","../src/form/Checkbox.tsx","../src/form/DatePicker.tsx","../src/form/TextArea.tsx","../src/form/Radio.tsx","../src/form/Switch.tsx"],"sourcesContent":["import React from 'react';\nimport { BaseBuilder } from './BaseBuilder';\nimport type { FormFieldConfig, ValidationRule, FieldValue } from '../types';\n\nexport interface FormFieldBuilderConfig extends FormFieldConfig {\n // Extends FormFieldConfig from types\n}\n\n// Counter for generating unique IDs\nlet fieldIdCounter = 0;\n\n/**\n * Base class for all form field builders\n * Extends BaseBuilder with form-specific functionality\n */\nexport abstract class FormFieldBuilder<\n TConfig extends FormFieldBuilderConfig = FormFieldBuilderConfig,\n TValue extends FieldValue = FieldValue\n> extends BaseBuilder<TConfig> {\n protected _value?: TValue;\n protected _onChange?: (value: TValue) => void;\n protected _fieldId: string;\n\n constructor() {\n super();\n // Generate unique ID for accessibility (label-input association)\n this._fieldId = `raap-field-${++fieldIdCounter}`;\n }\n\n /**\n * Set the field label\n */\n label(text: string): this {\n (this._config as any).label = text;\n return this;\n }\n\n /**\n * Set the field placeholder\n */\n placeholder(text: string): this {\n (this._config as any).placeholder = text;\n return this;\n }\n\n /**\n * Mark field as required\n */\n required(value: boolean = true): this {\n (this._config as any).required = value;\n return this;\n }\n\n /**\n * Set the field tooltip\n */\n tooltip(text: string): this {\n (this._config as any).tooltip = text;\n return this;\n }\n\n /**\n * Set validation rules\n */\n rules(rules: ValidationRule[]): this {\n (this._config as any).rules = rules;\n return this;\n }\n\n /**\n * Add a single validation rule\n */\n rule(rule: ValidationRule): this {\n if (!(this._config as any).rules) {\n (this._config as any).rules = [];\n }\n (this._config as any).rules.push(rule);\n return this;\n }\n\n /**\n * Set default value\n */\n defaultValue(value: TValue): this {\n (this._config as any).defaultValue = value;\n this._value = value;\n return this;\n }\n\n /**\n * Set the field value\n */\n value(val: TValue): this {\n this._value = val;\n return this;\n }\n\n /**\n * Get the current field value\n */\n getValue(): TValue | undefined {\n return this._value;\n }\n\n /**\n * Set onChange handler\n */\n onChange(handler: (value: TValue) => void): this {\n this._onChange = handler;\n return this;\n }\n\n /**\n * Handle value change\n */\n protected handleChange(value: TValue): void {\n this._value = value;\n if (this._onChange) {\n this._onChange(value);\n }\n }\n\n /**\n * Get the field ID for accessibility\n */\n getFieldId(): string {\n return this._fieldId;\n }\n\n /**\n * Wrap field with label (with proper accessibility association)\n */\n protected wrapWithLabel(field: React.ReactNode): React.ReactNode {\n if (!this._config.label) {\n return <div key={this._key} style={{ marginBottom: '16px' }}>{field}</div>;\n }\n\n const required = (this._config as any).required;\n const descriptionId = (this._config as any).tooltip ? `${this._fieldId}-description` : undefined;\n \n return (\n <div key={this._key} style={{ marginBottom: '16px' }}>\n <label \n htmlFor={this._fieldId}\n style={{ \n display: 'block',\n marginBottom: '4px', \n fontSize: '14px',\n cursor: 'pointer'\n }}\n >\n {required && (\n <span style={{ color: '#ff4d4f', marginRight: '4px' }} aria-hidden=\"true\">*</span>\n )}\n {this._config.label}\n {required && (\n <span style={{ \n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n border: '0'\n }}> (required)</span>\n )}\n </label>\n {(this._config as any).tooltip && (\n <div \n id={descriptionId}\n style={{ fontSize: '12px', color: '#666', marginBottom: '4px' }}\n >\n {(this._config as any).tooltip}\n </div>\n )}\n {React.isValidElement(field) \n ? React.cloneElement(field as React.ReactElement<any>, { \n id: this._fieldId,\n 'aria-required': required || undefined,\n 'aria-describedby': descriptionId,\n })\n : field\n }\n </div>\n );\n }\n}\n","import React from 'react';\nimport { Input as AntInput, InputProps as AntInputProps } from 'antd';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface InputConfig extends FormFieldBuilderConfig {\n type?: 'text' | 'password' | 'email' | 'number' | 'url' | 'tel';\n maxLength?: number;\n minLength?: number;\n prefix?: React.ReactNode;\n suffix?: React.ReactNode;\n allowClear?: boolean;\n addonBefore?: React.ReactNode;\n addonAfter?: React.ReactNode;\n}\n\n/**\n * Input Field Builder\n * Wrapper for Ant Design Input component with builder pattern\n */\nexport class Input extends FormFieldBuilder<InputConfig, string> {\n /**\n * Set input type\n */\n type(value: 'text' | 'password' | 'email' | 'number' | 'url' | 'tel'): this {\n this._config.type = value;\n return this;\n }\n\n /**\n * Set maximum length\n */\n maxLength(value: number): this {\n this._config.maxLength = value;\n return this;\n }\n\n /**\n * Set minimum length\n */\n minLength(value: number): this {\n this._config.minLength = value;\n return this;\n }\n\n /**\n * Set prefix icon or element\n */\n prefix(element: React.ReactNode): this {\n this._config.prefix = element;\n return this;\n }\n\n /**\n * Set suffix icon or element\n */\n suffix(element: React.ReactNode): this {\n this._config.suffix = element;\n return this;\n }\n\n /**\n * Enable clear button\n */\n allowClear(value: boolean = true): this {\n this._config.allowClear = value;\n return this;\n }\n\n /**\n * Set addon before input\n */\n addonBefore(element: React.ReactNode): this {\n this._config.addonBefore = element;\n return this;\n }\n\n /**\n * Set addon after input\n */\n addonAfter(element: React.ReactNode): this {\n this._config.addonAfter = element;\n return this;\n }\n\n /**\n * Render the input component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: AntInputProps = {\n placeholder: this._config.placeholder,\n disabled: this._config.disabled,\n maxLength: this._config.maxLength,\n prefix: this._config.prefix,\n suffix: this._config.suffix,\n allowClear: this._config.allowClear,\n addonBefore: this._config.addonBefore,\n addonAfter: this._config.addonAfter,\n onChange: (e) => this.handleChange(e.target.value),\n };\n\n // Handle password type\n const input = this._config.type === 'password'\n ? <AntInput.Password {...props} />\n : <AntInput type={this._config.type || 'text'} {...props} />;\n\n return this.wrapWithLabel(input);\n }\n}\n","import React from 'react';\nimport { Select as AntSelect, SelectProps as AntSelectProps } from 'antd';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface SelectOption<T = any> {\n label: string;\n value: T;\n disabled?: boolean;\n}\n\nexport interface SelectConfig<T = any> extends FormFieldBuilderConfig {\n options?: SelectOption<T>[];\n mode?: 'multiple' | 'tags';\n showSearch?: boolean;\n allowClear?: boolean;\n loading?: boolean;\n maxTagCount?: number;\n filterOption?: boolean | ((input: string, option?: SelectOption<T>) => boolean);\n}\n\n/**\n * Select Field Builder\n * Wrapper for Ant Design Select component with builder pattern and generics\n * @template T - The type of option values\n */\nexport class Select<T = any> extends FormFieldBuilder<SelectConfig<T>, T | T[]> {\n /**\n * Set select options\n */\n options(opts: SelectOption<T>[]): this {\n this._config.options = opts;\n return this;\n }\n\n /**\n * Add a single option\n */\n option(label: string, value: T, disabled?: boolean): this {\n if (!this._config.options) {\n this._config.options = [];\n }\n this._config.options.push({ label, value, disabled });\n return this;\n }\n\n /**\n * Enable multiple selection\n */\n multiple(value: boolean = true): this {\n this._config.mode = value ? 'multiple' : undefined;\n return this;\n }\n\n /**\n * Enable tags mode (user can create new options)\n */\n tags(value: boolean = true): this {\n this._config.mode = value ? 'tags' : undefined;\n return this;\n }\n\n /**\n * Enable search functionality\n */\n showSearch(value: boolean = true): this {\n this._config.showSearch = value;\n return this;\n }\n\n /**\n * Enable clear button\n */\n allowClear(value: boolean = true): this {\n this._config.allowClear = value;\n return this;\n }\n\n /**\n * Set loading state\n */\n loading(value: boolean = true): this {\n this._config.loading = value;\n return this;\n }\n\n /**\n * Set maximum number of tags to display\n */\n maxTagCount(count: number): this {\n this._config.maxTagCount = count;\n return this;\n }\n\n /**\n * Set custom filter function\n */\n filterOption(fn: boolean | ((input: string, option?: SelectOption<T>) => boolean)): this {\n this._config.filterOption = fn;\n return this;\n }\n\n /**\n * Render the select component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: AntSelectProps<T | T[]> = {\n placeholder: this._config.placeholder,\n disabled: this._config.disabled,\n mode: this._config.mode,\n showSearch: this._config.showSearch,\n allowClear: this._config.allowClear,\n loading: this._config.loading,\n maxTagCount: this._config.maxTagCount,\n filterOption: this._config.filterOption as any,\n onChange: (value) => this.handleChange(value as T | T[]),\n options: this._config.options?.map(opt => ({\n label: opt.label,\n value: opt.value as any,\n disabled: opt.disabled,\n })),\n };\n\n return this.wrapWithLabel(<AntSelect {...props} />);\n }\n}\n","import React from 'react';\nimport { Checkbox as AntCheckbox } from 'antd';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface CheckboxConfig extends FormFieldBuilderConfig {\n text?: string;\n indeterminate?: boolean;\n}\n\nexport interface CheckboxOption {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport interface CheckboxGroupConfig extends FormFieldBuilderConfig {\n options?: CheckboxOption[];\n direction?: 'horizontal' | 'vertical';\n}\n\n/**\n * Checkbox Field Builder\n * Wrapper for Ant Design Checkbox component\n */\nexport class Checkbox extends FormFieldBuilder<CheckboxConfig, boolean> {\n /**\n * Set checkbox text/label\n */\n text(value: string): this {\n this._config.text = value;\n return this;\n }\n\n /**\n * Set indeterminate state\n */\n indeterminate(value: boolean = true): this {\n this._config.indeterminate = value;\n return this;\n }\n\n /**\n * Render the checkbox component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n console.log('Rendering Checkbox with value:', this._value);\n\n // Create a wrapper component with state\n const CheckboxWrapper: React.FC = () => {\n const [checked, setChecked] = React.useState(this._value || false);\n console.log('CheckboxWrapper rendering, checked:', checked);\n\n const handleChange = (e: any) => {\n console.log('Checkbox clicked:', e.target.checked);\n setChecked(e.target.checked);\n this.handleChange(e.target.checked);\n };\n\n return (\n <AntCheckbox\n disabled={this._config.disabled}\n indeterminate={this._config.indeterminate}\n checked={checked}\n onChange={handleChange}\n >\n {this._config.text}\n </AntCheckbox>\n );\n };\n\n return this.wrapWithLabel(<CheckboxWrapper />);\n }\n}\n\n/**\n * CheckboxGroup Field Builder\n * Wrapper for Ant Design Checkbox.Group component\n */\nexport class CheckboxGroup extends FormFieldBuilder<CheckboxGroupConfig, (string | number)[]> {\n /**\n * Set checkbox options\n */\n options(opts: CheckboxOption[]): this {\n this._config.options = opts;\n return this;\n }\n\n /**\n * Add a single checkbox option\n */\n option(label: string, value: string | number, disabled?: boolean): this {\n if (!this._config.options) {\n this._config.options = [];\n }\n this._config.options.push({ label, value, disabled });\n return this;\n }\n\n /**\n * Set layout direction\n */\n direction(dir: 'horizontal' | 'vertical'): this {\n this._config.direction = dir;\n return this;\n }\n\n /**\n * Render the checkbox group component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const options = this._config.options?.map(opt => ({\n label: opt.label,\n value: opt.value,\n disabled: opt.disabled,\n }));\n\n return (\n <AntCheckbox.Group\n key={this._key}\n disabled={this._config.disabled}\n options={options}\n value={this._value}\n onChange={(values) => this.handleChange(values as (string | number)[])}\n style={this._config.direction === 'vertical' ? { display: 'flex', flexDirection: 'column' } : undefined}\n />\n );\n }\n}\n","import React from 'react';\nimport { DatePicker as AntDatePicker, DatePickerProps as AntDatePickerProps } from 'antd';\nimport type { Dayjs } from 'dayjs';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface DatePickerConfig extends FormFieldBuilderConfig {\n format?: string;\n showTime?: boolean;\n showToday?: boolean;\n picker?: 'date' | 'week' | 'month' | 'quarter' | 'year';\n disabledDate?: (current: Dayjs) => boolean;\n allowClear?: boolean;\n}\n\n/**\n * DatePicker Field Builder\n * Wrapper for Ant Design DatePicker component with dayjs\n */\nexport class DatePicker extends FormFieldBuilder<DatePickerConfig, Dayjs | null> {\n /**\n * Set date format\n */\n format(fmt: string): this {\n this._config.format = fmt;\n return this;\n }\n\n /**\n * Enable time selection\n */\n showTime(value: boolean = true): this {\n this._config.showTime = value;\n return this;\n }\n\n /**\n * Show today button\n */\n showToday(value: boolean = true): this {\n this._config.showToday = value;\n return this;\n }\n\n /**\n * Set picker type (date, week, month, quarter, year)\n */\n picker(type: 'date' | 'week' | 'month' | 'quarter' | 'year'): this {\n this._config.picker = type;\n return this;\n }\n\n /**\n * Set function to disable specific dates\n */\n disabledDate(fn: (current: Dayjs) => boolean): this {\n this._config.disabledDate = fn;\n return this;\n }\n\n /**\n * Enable clear button\n */\n allowClear(value: boolean = true): this {\n this._config.allowClear = value;\n return this;\n }\n\n /**\n * Render the date picker component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: AntDatePickerProps = {\n placeholder: this._config.placeholder,\n disabled: this._config.disabled,\n format: this._config.format,\n showTime: this._config.showTime,\n showToday: this._config.showToday,\n picker: this._config.picker,\n disabledDate: this._config.disabledDate,\n allowClear: this._config.allowClear,\n onChange: (date) => this.handleChange(date as any),\n };\n\n return this.wrapWithLabel(<AntDatePicker {...props} />);\n }\n}\n\nexport interface RangePickerConfig extends FormFieldBuilderConfig {\n format?: string;\n showTime?: boolean;\n picker?: 'date' | 'week' | 'month' | 'quarter' | 'year';\n disabledDate?: (current: Dayjs) => boolean;\n allowClear?: boolean;\n}\n\n/**\n * RangePicker Field Builder\n * Wrapper for Ant Design RangePicker component\n */\nexport class RangePicker extends FormFieldBuilder<RangePickerConfig, [Dayjs | null, Dayjs | null] | null> {\n /**\n * Set date format\n */\n format(fmt: string): this {\n this._config.format = fmt;\n return this;\n }\n\n /**\n * Enable time selection\n */\n showTime(value: boolean = true): this {\n this._config.showTime = value;\n return this;\n }\n\n /**\n * Set picker type (date, week, month, quarter, year)\n */\n picker(type: 'date' | 'week' | 'month' | 'quarter' | 'year'): this {\n this._config.picker = type;\n return this;\n }\n\n /**\n * Set function to disable specific dates\n */\n disabledDate(fn: (current: Dayjs) => boolean): this {\n this._config.disabledDate = fn;\n return this;\n }\n\n /**\n * Enable clear button\n */\n allowClear(value: boolean = true): this {\n this._config.allowClear = value;\n return this;\n }\n\n /**\n * Render the range picker component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: any = {\n placeholder: this._config.placeholder ? [this._config.placeholder, this._config.placeholder] : undefined,\n disabled: this._config.disabled,\n format: this._config.format,\n showTime: this._config.showTime,\n picker: this._config.picker,\n disabledDate: this._config.disabledDate,\n allowClear: this._config.allowClear,\n value: this._value,\n onChange: (dates: any) => this.handleChange(dates),\n };\n\n return <AntDatePicker.RangePicker key={this._key} {...props} />;\n }\n}\n","import React from 'react';\nimport { Input } from 'antd';\nimport type { TextAreaProps as AntTextAreaProps } from 'antd/es/input';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nconst { TextArea: AntTextArea } = Input;\n\nexport interface TextAreaConfig extends FormFieldBuilderConfig {\n rows?: number;\n maxLength?: number;\n minLength?: number;\n autoSize?: boolean | { minRows?: number; maxRows?: number };\n showCount?: boolean;\n allowClear?: boolean;\n}\n\n/**\n * TextArea Field Builder\n * Wrapper for Ant Design TextArea component\n */\nexport class TextArea extends FormFieldBuilder<TextAreaConfig, string> {\n /**\n * Set number of rows\n */\n rows(value: number): this {\n this._config.rows = value;\n return this;\n }\n\n /**\n * Set maximum length\n */\n maxLength(value: number): this {\n this._config.maxLength = value;\n return this;\n }\n\n /**\n * Set minimum length\n */\n minLength(value: number): this {\n this._config.minLength = value;\n return this;\n }\n\n /**\n * Enable auto-size (height adjusts to content)\n */\n autoSize(value: boolean | { minRows?: number; maxRows?: number } = true): this {\n this._config.autoSize = value;\n return this;\n }\n\n /**\n * Show character count\n */\n showCount(value: boolean = true): this {\n this._config.showCount = value;\n return this;\n }\n\n /**\n * Enable clear button\n */\n allowClear(value: boolean = true): this {\n this._config.allowClear = value;\n return this;\n }\n\n /**\n * Render the textarea component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: AntTextAreaProps = {\n placeholder: this._config.placeholder,\n disabled: this._config.disabled,\n rows: this._config.rows,\n maxLength: this._config.maxLength,\n autoSize: this._config.autoSize,\n showCount: this._config.showCount,\n allowClear: this._config.allowClear,\n onChange: (e) => this.handleChange(e.target.value),\n };\n\n return this.wrapWithLabel(<AntTextArea {...props} />);\n }\n}\n","import React from 'react';\nimport { Radio as AntRadio, RadioGroupProps as AntRadioGroupProps } from 'antd';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface RadioOption<T = any> {\n label: string;\n value: T;\n disabled?: boolean;\n}\n\nexport interface RadioGroupConfig<T = any> extends FormFieldBuilderConfig {\n options?: RadioOption<T>[];\n direction?: 'horizontal' | 'vertical';\n buttonStyle?: 'outline' | 'solid';\n optionType?: 'default' | 'button';\n size?: 'large' | 'middle' | 'small';\n}\n\n/**\n * RadioGroup Field Builder\n * Wrapper for Ant Design Radio.Group component with generics\n * @template T - The type of radio option values\n */\nexport class RadioGroup<T = any> extends FormFieldBuilder<RadioGroupConfig<T>, T> {\n /**\n * Set radio options\n */\n options(opts: RadioOption<T>[]): this {\n this._config.options = opts;\n return this;\n }\n\n /**\n * Add a single radio option\n */\n option(label: string, value: T, disabled?: boolean): this {\n if (!this._config.options) {\n this._config.options = [];\n }\n this._config.options.push({ label, value, disabled });\n return this;\n }\n\n /**\n * Set layout direction\n */\n direction(dir: 'horizontal' | 'vertical'): this {\n this._config.direction = dir;\n return this;\n }\n\n /**\n * Set button style (only applies when optionType is 'button')\n */\n buttonStyle(style: 'outline' | 'solid'): this {\n this._config.buttonStyle = style;\n return this;\n }\n\n /**\n * Set option type (default radio or button style)\n */\n optionType(type: 'default' | 'button'): this {\n this._config.optionType = type;\n return this;\n }\n\n /**\n * Set size (only applies when optionType is 'button')\n */\n size(value: 'large' | 'middle' | 'small'): this {\n this._config.size = value;\n return this;\n }\n\n /**\n * Render the radio group component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n const props: AntRadioGroupProps = {\n disabled: this._config.disabled,\n buttonStyle: this._config.buttonStyle,\n optionType: this._config.optionType,\n size: this._config.size,\n value: this._value,\n onChange: (e) => this.handleChange(e.target.value as T),\n };\n\n const style = this._config.direction === 'vertical' \n ? { display: 'flex', flexDirection: 'column' as const } \n : undefined;\n\n return (\n <AntRadio.Group key={this._key} {...props} style={style}>\n {this._config.options?.map((opt, idx) => {\n const RadioComponent = this._config.optionType === 'button' \n ? AntRadio.Button \n : AntRadio;\n \n return (\n <RadioComponent \n key={idx} \n value={opt.value} \n disabled={opt.disabled}\n >\n {opt.label}\n </RadioComponent>\n );\n })}\n </AntRadio.Group>\n );\n }\n}\n\n// Alias for convenience\nexport { RadioGroup as Radio };\n","import React from 'react';\nimport { Switch as AntSwitch } from 'antd';\nimport { FormFieldBuilder, FormFieldBuilderConfig } from '../base/FormFieldBuilder';\n\nexport interface SwitchConfig extends FormFieldBuilderConfig {\n checkedChildren?: React.ReactNode;\n unCheckedChildren?: React.ReactNode;\n size?: 'default' | 'small';\n loading?: boolean;\n}\n\n/**\n * Switch Field Builder\n * Wrapper for Ant Design Switch component (toggle/boolean input)\n */\nexport class Switch extends FormFieldBuilder<SwitchConfig, boolean> {\n /**\n * Set content to display when checked\n */\n checkedChildren(content: React.ReactNode): this {\n this._config.checkedChildren = content;\n return this;\n }\n\n /**\n * Set content to display when unchecked\n */\n unCheckedChildren(content: React.ReactNode): this {\n this._config.unCheckedChildren = content;\n return this;\n }\n\n /**\n * Set switch size\n */\n size(value: 'default' | 'small'): this {\n this._config.size = value;\n return this;\n }\n\n /**\n * Set loading state\n */\n loading(value: boolean = true): this {\n this._config.loading = value;\n return this;\n }\n\n /**\n * Render the switch component\n */\n render(): React.ReactNode {\n if (this._config.hidden) {\n return null;\n }\n\n // Create a wrapper component with state\n const SwitchWrapper: React.FC = () => {\n const [checked, setChecked] = React.useState(this._value || false);\n\n const handleChange = (value: boolean) => {\n setChecked(value);\n this.handleChange(value);\n };\n\n return (\n <AntSwitch\n disabled={this._config.disabled}\n checkedChildren={this._config.checkedChildren}\n unCheckedChildren={this._config.unCheckedChildren}\n size={this._config.size}\n loading={this._config.loading}\n checked={checked}\n onChange={handleChange}\n />\n );\n };\n\n return this.wrapWithLabel(<SwitchWrapper />);\n }\n}\n"],"names":["BaseBuilder","jsx","jsxs","AntInput","AntSelect","AntCheckbox","AntDatePicker","Input","AntRadio","AntSwitch"],"mappings":"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"}