$85 GRAYBYTE WORDPRESS FILE MANAGER $32

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 172.67.217.254 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/var/softaculous/sitepad/editor/site-data/plugins/pagelayer/js/react/src/components/

HOME
Current File : /var/softaculous/sitepad/editor/site-data/plugins/pagelayer/js/react/src/components//multiselect.js
import { useState, useEffect } from '@wordpress/element';
import { LabelControl } from './label';

export const MultiSelectControl = (props) => {
	
	const { prop, label, value, setAttributes } = props;
	const { name } = prop['c'];
	
	var selection = pagelayer_empty(value) ? [] : value;
	
	if(pagelayer_is_string(selection)){
		selection = selection.split(',');
	}
	
	const [isSelectorOpen, setIsSelectorOpen] = useState(false);

	const option = (val, lang) => {
		const itemSelected = selection.includes(val) ? 'selected' : '';
		return (
			<li
				className="pagelayer-elp-multiselect-option"
				data-val={val}
				data-selected={itemSelected}
				onClick={ () => handleOptionClick(val)}
			>{ lang }</li>
		);
	};

	const showSelected = () => {
		return selection.map((value) => (
			<span className="pagelayer-elp-multiselect-selected" data-val={value}>
				{prop['list'][value]}{' '}
				<span className="pagelayer-elp-multiselect-remove" onClick={() => handleRemove(value)}>
					x
				</span>
			</span>
		));
	};

	const handleRemove = (value) => {
		const updatedSelection = selection.filter((val) => val !== value);
		setAttributes({[name]: updatedSelection.join(',') });
	};

	const handleOptionClick = (val) => {
		
		if (selection.includes(val)) {
			const updatedSelection = selection.filter((value) => value !== val);
			setAttributes({[name]: updatedSelection.join(',') });
		} else {
			const updatedSelection = [...selection, val];
			setAttributes({[name]: updatedSelection.join(',')});
		}
		
	};

	return (
		<div className="components-base-control pagelayer-base-control">
			<LabelControl {...props}/>
			<div className="pagelayer-elp-multiselect-div pagelayer-elp-pos-rel">
				<div 
					className="pagelayer-elp-multiselect" 
					onClick={ () => setIsSelectorOpen(!isSelectorOpen) }
				>{showSelected()}</div>
				{ isSelectorOpen && (
					<ul className={`pagelayer-elp-multiselect-ul ${isSelectorOpen ? 'open' : ''}`} name={name}>
						{Object.keys(prop['list']).map((key) => option(key, prop['list'][key]))}
					</ul>
				)}
			</div>
		</div>
	);
}


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
21 Feb 2026 2.55 AM
root / root
0755
access.js
1.263 KB
18 Feb 2026 11.32 PM
root / root
0644
box-shadow.js
5.699 KB
18 Feb 2026 11.32 PM
root / root
0644
checkbox.js
0.638 KB
18 Feb 2026 11.32 PM
root / root
0644
color.js
4.903 KB
18 Feb 2026 11.32 PM
root / root
0644
datetime.js
0.977 KB
18 Feb 2026 11.32 PM
root / root
0644
dimension.js
1.818 KB
18 Feb 2026 11.32 PM
root / root
0644
filter.js
2.293 KB
18 Feb 2026 11.32 PM
root / root
0644
font_family.js
1.529 KB
18 Feb 2026 11.32 PM
root / root
0644
gradient.js
4.01 KB
18 Feb 2026 11.32 PM
root / root
0644
html-to-react.js
0.231 KB
18 Feb 2026 11.32 PM
root / root
0644
icon.js
5.162 KB
18 Feb 2026 11.32 PM
root / root
0644
image.js
2.26 KB
18 Feb 2026 11.32 PM
root / root
0644
label.js
1.317 KB
18 Feb 2026 11.32 PM
root / root
0644
link.js
7.388 KB
18 Feb 2026 11.32 PM
root / root
0644
media.js
1.905 KB
18 Feb 2026 11.32 PM
root / root
0644
modal.js
1.811 KB
18 Feb 2026 11.32 PM
root / root
0644
multi-image.js
2.964 KB
18 Feb 2026 11.32 PM
root / root
0644
multiselect.js
2.107 KB
18 Feb 2026 11.32 PM
root / root
0644
padding.js
2.134 KB
18 Feb 2026 11.32 PM
root / root
0644
radio.js
0.753 KB
18 Feb 2026 11.32 PM
root / root
0644
rich_text.js
4.202 KB
18 Feb 2026 11.32 PM
root / root
0644
screen-icon.js
1.081 KB
18 Feb 2026 11.32 PM
root / root
0644
select.js
2.181 KB
18 Feb 2026 11.32 PM
root / root
0644
setting-tabs-control.js
1.946 KB
18 Feb 2026 11.32 PM
root / root
0644
slider.js
1.472 KB
18 Feb 2026 11.32 PM
root / root
0644
spinner.js
0.826 KB
18 Feb 2026 11.32 PM
root / root
0644
text-shadow.js
7.212 KB
18 Feb 2026 11.32 PM
root / root
0644
textarea.js
0.677 KB
18 Feb 2026 11.32 PM
root / root
0644
typography.js
17.443 KB
18 Feb 2026 11.32 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF