'use client'; import type { Demo, Page } from '@/types'; import { AutoComplete, AutoCompleteCompleteEvent } from 'primereact/autocomplete'; import { Button } from 'primereact/button'; import { Calendar } from 'primereact/calendar'; import { Checkbox, CheckboxChangeEvent } from 'primereact/checkbox'; import { Chips } from 'primereact/chips'; import { ColorPicker, ColorPickerHSBType, ColorPickerRGBType } from 'primereact/colorpicker'; import { Dropdown } from 'primereact/dropdown'; import { InputNumber } from 'primereact/inputnumber'; import { InputSwitch } from 'primereact/inputswitch'; import { InputText } from 'primereact/inputtext'; import { InputTextarea } from 'primereact/inputtextarea'; import { Knob } from 'primereact/knob'; import { ListBox } from 'primereact/listbox'; import { MultiSelect } from 'primereact/multiselect'; import { RadioButton } from 'primereact/radiobutton'; import { Rating } from 'primereact/rating'; import { SelectButton } from 'primereact/selectbutton'; import { Slider } from 'primereact/slider'; import { ToggleButton } from 'primereact/togglebutton'; import { useEffect, useState } from 'react'; import { CountryService } from '../../../../demo/service/CountryService'; interface InputValue { name: string; code: string; } const InputDemo: Page = () => { const [floatValue, setFloatValue] = useState(''); const [autoValue, setAutoValue] = useState([]); const [selectedAutoValue, setSelectedAutoValue] = useState(null); const [autoFilteredValue, setAutoFilteredValue] = useState([]); const [calendarValue, setCalendarValue] = useState(null); const [inputNumberValue, setInputNumberValue] = useState(null); const [chipsValue, setChipsValue] = useState([]); const [sliderValue, setSliderValue] = useState(''); const [ratingValue, setRatingValue] = useState(null); const [colorValue, setColorValue] = useState('1976D2'); const [knobValue, setKnobValue] = useState(20); const [radioValue, setRadioValue] = useState(null); const [checkboxValue, setCheckboxValue] = useState([]); const [switchValue, setSwitchValue] = useState(false); const [listboxValue, setListboxValue] = useState(null); const [dropdownValue, setDropdownValue] = useState(null); const [multiselectValue, setMultiselectValue] = useState(null); const [toggleValue, setToggleValue] = useState(false); const [selectButtonValue1, setSelectButtonValue1] = useState(null); const [selectButtonValue2, setSelectButtonValue2] = useState(null); const [inputGroupValue, setInputGroupValue] = useState(false); const listboxValues: InputValue[] = [ { name: 'New York', code: 'NY' }, { name: 'Rome', code: 'RM' }, { name: 'London', code: 'LDN' }, { name: 'Istanbul', code: 'IST' }, { name: 'Paris', code: 'PRS' } ]; const dropdownValues: InputValue[] = [ { name: 'New York', code: 'NY' }, { name: 'Rome', code: 'RM' }, { name: 'London', code: 'LDN' }, { name: 'Istanbul', code: 'IST' }, { name: 'Paris', code: 'PRS' } ]; const multiselectValues: InputValue[] = [ { name: 'Australia', code: 'AU' }, { name: 'Brazil', code: 'BR' }, { name: 'China', code: 'CN' }, { name: 'Egypt', code: 'EG' }, { name: 'France', code: 'FR' }, { name: 'Germany', code: 'DE' }, { name: 'India', code: 'IN' }, { name: 'Japan', code: 'JP' }, { name: 'Spain', code: 'ES' }, { name: 'United States', code: 'US' } ]; const selectButtonValues1: InputValue[] = [ { name: 'Option 1', code: 'O1' }, { name: 'Option 2', code: 'O2' }, { name: 'Option 3', code: 'O3' } ]; const selectButtonValues2: InputValue[] = [ { name: 'Option 1', code: 'O1' }, { name: 'Option 2', code: 'O2' }, { name: 'Option 3', code: 'O3' } ]; useEffect(() => { CountryService.getCountries().then((data) => setAutoValue(data)); }, []); const searchCountry = (event: AutoCompleteCompleteEvent) => { setTimeout(() => { if (!event.query.trim().length) { setAutoFilteredValue([...autoValue]); } else { setAutoFilteredValue( autoValue.filter((country) => { return country.name.toLowerCase().startsWith(event.query.toLowerCase()); }) ); } }, 250); }; const onCheckboxChange = (e: CheckboxChangeEvent) => { let selectedValue = [...checkboxValue]; if (e.checked) selectedValue.push(e.value); else selectedValue.splice(selectedValue.indexOf(e.value), 1); setCheckboxValue(selectedValue); }; const itemTemplate = (option: InputValue) => { return (
{option.name} (e.currentTarget.src = 'https://www.primefaces.org/wp-content/uploads/2020/05/placeholder.png')} className={`flag flag-${option.code.toLowerCase()}`} style={{ width: '21px' }} /> {option.name}
); }; return (
InputText
Icons
Float Label
setFloatValue(e.target.value)} />
Textarea
AutoComplete
setSelectedAutoValue(e.value)} suggestions={autoFilteredValue} completeMethod={searchCountry} field="name" />
Calendar
setCalendarValue(e.value ?? null)} />
InputNumber
setInputNumberValue(e.value ?? null)} showButtons mode="decimal">
Chips
setChipsValue(e.value ?? [])} />
Slider
setSliderValue(parseInt(e.target.value, 10))} /> setSliderValue(e.value as number)} />
Rating
setRatingValue(e.value ?? 0)} />
ColorPicker
setColorValue(e.value ?? '')} style={{ width: '2rem' }} />
Knob
setKnobValue(e.value)} step={10} min={-50} max={50} />
RadioButton
setRadioValue(e.value)} />
setRadioValue(e.value)} />
setRadioValue(e.value)} />
Checkbox
Input Switch
setSwitchValue(e.value ?? false)} />
Listbox
setListboxValue(e.value)} options={listboxValues} optionLabel="name" filter />
Dropdown
setDropdownValue(e.value)} options={dropdownValues} optionLabel="name" placeholder="Select" />
MultiSelect
setMultiselectValue(e.value)} options={multiselectValues} itemTemplate={itemTemplate} optionLabel="name" placeholder="Select Countries" filter className="multiselect-custom" display="chip" />
ToggleButton
setToggleValue(e.value)} onLabel="Yes" offLabel="No" />
SelectButton
setSelectButtonValue1(e.value)} options={selectButtonValues1} optionLabel="name" />
SelectButton - Multiple
setSelectButtonValue2(e.value)} options={selectButtonValues2} optionLabel="name" multiple />
Input Groups
$ .00
setInputGroupValue(e.checked ?? false)} />
); }; export default InputDemo;