diff --git a/composer.json b/composer.json index ccde4f890e..a2911726e9 100644 --- a/composer.json +++ b/composer.json @@ -41,6 +41,8 @@ "nanasess/php8-compat": "^1.0", "pear/archive_tar": "^1.4.3", "pear/mail": "*", + "pear/net_smtp": "^1.12", + "pear/net_socket": "^1.2", "pear/pear-core-minimal": "^1.10", "pear/xml_parser": "*", "pear/xml_serializer": "*", diff --git a/composer.lock b/composer.lock index 498aadbf86..4776063e81 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "913b3fad812f8e13e42e3d0e9cbb40d3", + "content-hash": "61103d3a54c8391d2c0c246e909f46f5", "packages": [ { "name": "mobiledetect/mobiledetectlib", @@ -348,6 +348,132 @@ }, "time": "2024-01-15T21:56:23+00:00" }, + { + "name": "pear/net_smtp", + "version": "1.12.1", + "source": { + "type": "git", + "url": "https://github.com/pear/Net_SMTP.git", + "reference": "5d7ba854d75a7c207d8581de1cc6fd2895ae2518" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Net_SMTP/zipball/5d7ba854d75a7c207d8581de1cc6fd2895ae2518", + "reference": "5d7ba854d75a7c207d8581de1cc6fd2895ae2518", + "shasum": "" + }, + "require": { + "pear/net_socket": "@stable", + "pear/pear-core-minimal": "@stable", + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "pear/auth_sasl": "Install optionally via your project's composer.json" + }, + "type": "library", + "autoload": { + "psr-0": { + "Net": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "BSD-2-Clause" + ], + "authors": [ + { + "name": "Jon Parise", + "email": "jon@php.net", + "homepage": "https://www.indelible.org", + "role": "Lead" + }, + { + "name": "Chuck Hagenbuch", + "email": "chuck@horde.org", + "role": "Lead" + }, + { + "name": "Armin Graefe", + "email": "schengawegga@gmail.com", + "role": "Lead" + } + ], + "description": "An implementation of the SMTP protocol", + "homepage": "https://pear.github.io/Net_SMTP/", + "keywords": [ + "email", + "mail", + "smtp" + ], + "support": { + "issues": "https://github.com/pear/Net_SMTP/issues", + "source": "https://github.com/pear/Net_SMTP" + }, + "time": "2024-04-15T19:42:15+00:00" + }, + { + "name": "pear/net_socket", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/pear/Net_Socket.git", + "reference": "bbe6a12bb4f7059dba161f6ddd43f369c0ec8d09" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pear/Net_Socket/zipball/bbe6a12bb4f7059dba161f6ddd43f369c0ec8d09", + "reference": "bbe6a12bb4f7059dba161f6ddd43f369c0ec8d09", + "shasum": "" + }, + "require": { + "pear/pear_exception": "*" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "psr-0": { + "Net": "./" + } + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "./" + ], + "license": [ + "PHP License" + ], + "authors": [ + { + "name": "Chuck Hagenbuch", + "email": "chuck@horde.org", + "role": "Lead" + }, + { + "name": "Aleksander Machniak", + "email": "alec@php.net", + "role": "Lead" + }, + { + "name": "Stig Bakken", + "email": "stig@php.net", + "role": "Lead" + } + ], + "description": "More info available on: http://pear.php.net/package/Net_Socket", + "support": { + "issues": "http://pear.php.net/bugs/search.php?cmd=display&package_name[]=Net_Socket", + "source": "https://github.com/pear/Net_Socket" + }, + "time": "2015-03-22T15:48:19+00:00" + }, { "name": "pear/pear-core-minimal", "version": "v1.10.15", @@ -5715,5 +5841,5 @@ "platform-overrides": { "php": "7.4.0" }, - "plugin-api-version": "2.6.0" + "plugin-api-version": "2.0.0" } diff --git a/data/Smarty/templates/admin/admin_popup_header.tpl b/data/Smarty/templates/admin/admin_popup_header.tpl index b114476a55..5957f0b97f 100644 --- a/data/Smarty/templates/admin/admin_popup_header.tpl +++ b/data/Smarty/templates/admin/admin_popup_header.tpl @@ -29,8 +29,7 @@ - - + diff --git a/data/Smarty/templates/admin/contents/file_manager.tpl b/data/Smarty/templates/admin/contents/file_manager.tpl index 59eb78c539..ccbc3b6240 100644 --- a/data/Smarty/templates/admin/contents/file_manager.tpl +++ b/data/Smarty/templates/admin/contents/file_manager.tpl @@ -22,6 +22,22 @@ */ *}--> + diff --git a/data/Smarty/templates/admin/main_frame.tpl b/data/Smarty/templates/admin/main_frame.tpl index e6d83c21de..0daa8774d7 100644 --- a/data/Smarty/templates/admin/main_frame.tpl +++ b/data/Smarty/templates/admin/main_frame.tpl @@ -29,9 +29,7 @@ - - - + diff --git a/data/module/Net/SMTP.php b/data/module/Net/SMTP.php deleted file mode 100644 index cc043618c6..0000000000 --- a/data/module/Net/SMTP.php +++ /dev/null @@ -1,1210 +0,0 @@ - | -// | Jon Parise | -// | Damian Alejandro Fernandez Sosa | -// +----------------------------------------------------------------------+ -// -// $Id: SMTP.php 304535 2010-10-20 06:48:06Z jon $ - -require_once 'PEAR.php'; -require_once 'Net/Socket.php'; - -/** - * Provides an implementation of the SMTP protocol using PEAR's - * Net_Socket:: class. - * - * @author Chuck Hagenbuch - * @author Jon Parise - * @author Damian Alejandro Fernandez Sosa - * - * @example basic.php A basic implementation of the Net_SMTP package. - */ -class Net_SMTP -{ - /** - * The server to connect to. - * - * @var string - */ - public $host = 'localhost'; - - /** - * The port to connect to. - * - * @var int - */ - public $port = 25; - - /** - * The value to give when sending EHLO or HELO. - * - * @var string - */ - public $localhost = 'localhost'; - - /** - * List of supported authentication methods, in preferential order. - * - * @var array - */ - public $auth_methods = ['DIGEST-MD5', 'CRAM-MD5', 'LOGIN', 'PLAIN']; - - /** - * Use SMTP command pipelining (specified in RFC 2920) if the SMTP - * server supports it. - * - * When pipeling is enabled, rcptTo(), mailFrom(), sendFrom(), - * somlFrom() and samlFrom() do not wait for a response from the - * SMTP server but return immediately. - * - * @var bool - */ - public $pipelining = false; - - /** - * Number of pipelined commands. - * - * @var int - */ - public $_pipelined_commands = 0; - - /** - * Should debugging output be enabled? - * - * @var bool - */ - public $_debug = false; - - /** - * Debug output handler. - * - * @var callable - */ - public $_debug_handler = null; - - /** - * The socket resource being used to connect to the SMTP server. - * - * @var resource - */ - public $_socket = null; - - /** - * The most recent server response code. - * - * @var int - */ - public $_code = -1; - - /** - * The most recent server response arguments. - * - * @var array - */ - public $_arguments = []; - - /** - * Stores the SMTP server's greeting string. - * - * @var string - */ - public $_greeting = null; - - /** - * Stores detected features of the SMTP server. - * - * @var array - */ - public $_esmtp = []; - - /** - * Instantiates a new Net_SMTP object, overriding any defaults - * with parameters that are passed in. - * - * If you have SSL support in PHP, you can connect to a server - * over SSL using an 'ssl://' prefix: - * - * // 465 is a common smtps port. - * $smtp = new Net_SMTP('ssl://mail.host.com', 465); - * $smtp->connect(); - * - * @param string $host The server to connect to. - * @param int $port The port to connect to. - * @param string $localhost The value to give when sending EHLO or HELO. - * @param bool $pipeling Use SMTP command pipelining - * - * @since 1.0 - */ - public function __construct($host = null, $port = null, $localhost = null, $pipelining = false) - { - if (isset($host)) { - $this->host = $host; - } - if (isset($port)) { - $this->port = $port; - } - if (isset($localhost)) { - $this->localhost = $localhost; - } - $this->pipelining = $pipelining; - - $this->_socket = new Net_Socket(); - - /* Include the Auth_SASL package. If the package is not - * available, we disable the authentication methods that - * depend upon it. */ - if ((@include_once 'Auth/SASL.php') === false) { - $pos = array_search('DIGEST-MD5', $this->auth_methods); - unset($this->auth_methods[$pos]); - $pos = array_search('CRAM-MD5', $this->auth_methods); - unset($this->auth_methods[$pos]); - } - } - - /** - * Set the value of the debugging flag. - * - * @param bool $debug New value for the debugging flag. - * - * @since 1.1.0 - */ - public function setDebug($debug, $handler = null) - { - $this->_debug = $debug; - $this->_debug_handler = $handler; - } - - /** - * Write the given debug text to the current debug output handler. - * - * @param string $message Debug mesage text. - * - * @since 1.3.3 - */ - public function _debug($message) - { - if ($this->_debug) { - if ($this->_debug_handler) { - call_user_func_array($this->_debug_handler, - [&$this, $message]); - } else { - echo "DEBUG: $message\n"; - } - } - } - - /** - * Send the given string of data to the server. - * - * @param string $data The string of data to send. - * - * @return mixed True on success or a PEAR_Error object on failure. - * - * @since 1.1.0 - */ - public function _send($data) - { - $this->_debug("Send: $data"); - - $error = $this->_socket->write($data); - if ($error === false || PEAR::isError($error)) { - $msg = ($error) ? $error->getMessage() : 'unknown error'; - - return PEAR::raiseError("Failed to write to socket: $msg"); - } - - return true; - } - - /** - * Send a command to the server with an optional string of - * arguments. A carriage return / linefeed (CRLF) sequence will - * be appended to each command string before it is sent to the - * SMTP server - an error will be thrown if the command string - * already contains any newline characters. Use _send() for - * commands that must contain newlines. - * - * @param string $command The SMTP command to send to the server. - * @param string $args A string of optional arguments to append - * to the command. - * - * @return mixed The result of the _send() call. - * - * @since 1.1.0 - */ - public function _put($command, $args = '') - { - if (!empty($args)) { - $command .= ' '.$args; - } - - if (strcspn($command, "\r\n") !== strlen($command)) { - return PEAR::raiseError('Commands cannot contain newlines'); - } - - return $this->_send($command."\r\n"); - } - - /** - * Read a reply from the SMTP server. The reply consists of a response - * code and a response message. - * - * @param mixed $valid The set of valid response codes. These - * may be specified as an array of integer - * values or as a single integer value. - * @param bool $later Do not parse the response now, but wait - * until the last command in the pipelined - * command group - * - * @return mixed True if the server returned a valid response code or - * a PEAR_Error object is an error condition is reached. - * - * @since 1.1.0 - * @see getResponse - */ - public function _parseResponse($valid, $later = false) - { - $this->_code = -1; - $this->_arguments = []; - - if ($later) { - $this->_pipelined_commands++; - - return true; - } - - for ($i = 0; $i <= $this->_pipelined_commands; $i++) { - while ($line = $this->_socket->readLine()) { - $this->_debug("Recv: $line"); - - /* If we receive an empty line, the connection has been closed. */ - if (empty($line)) { - $this->disconnect(); - - return PEAR::raiseError('Connection was unexpectedly closed'); - } - - /* Read the code and store the rest in the arguments array. */ - $code = substr($line, 0, 3); - $this->_arguments[] = trim(substr($line, 4)); - - /* Check the syntax of the response code. */ - if (is_numeric($code)) { - $this->_code = (int) $code; - } else { - $this->_code = -1; - break; - } - - /* If this is not a multiline response, we're done. */ - if (substr($line, 3, 1) != '-') { - break; - } - } - } - - $this->_pipelined_commands = 0; - - /* Compare the server's response code with the valid code/codes. */ - if (is_int($valid) && ($this->_code === $valid)) { - return true; - } elseif (is_array($valid) && in_array($this->_code, $valid, true)) { - return true; - } - - return PEAR::raiseError('Invalid response code received from server', - $this->_code); - } - - /** - * Return a 2-tuple containing the last response from the SMTP server. - * - * @return array A two-element array: the first element contains the - * response code as an integer and the second element - * contains the response's arguments as a string. - * - * @since 1.1.0 - */ - public function getResponse() - { - return [$this->_code, implode("\n", $this->_arguments)]; - } - - /** - * Return the SMTP server's greeting string. - * - * @return string A string containing the greeting string, or null if a - * greeting has not been received. - * - * @since 1.3.3 - */ - public function getGreeting() - { - return $this->_greeting; - } - - /** - * Attempt to connect to the SMTP server. - * - * @param int $timeout The timeout value (in seconds) for the - * socket connection. - * @param bool $persistent Should a persistent socket connection - * be used? - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function connect($timeout = null, $persistent = false) - { - $this->_greeting = null; - $result = $this->_socket->connect($this->host, $this->port, - $persistent, $timeout); - if (PEAR::isError($result)) { - return PEAR::raiseError('Failed to connect socket: '. - $result->getMessage()); - } - - if (PEAR::isError($error = $this->_parseResponse(220))) { - return $error; - } - - /* Extract and store a copy of the server's greeting string. */ - list(, $this->_greeting) = $this->getResponse(); - - if (PEAR::isError($error = $this->_negotiate())) { - return $error; - } - - return true; - } - - /** - * Attempt to disconnect from the SMTP server. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function disconnect() - { - if (PEAR::isError($error = $this->_put('QUIT'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(221))) { - return $error; - } - if (PEAR::isError($error = $this->_socket->disconnect())) { - return PEAR::raiseError('Failed to disconnect socket: '. - $error->getMessage()); - } - - return true; - } - - /** - * Attempt to send the EHLO command and obtain a list of ESMTP - * extensions available, and failing that just send HELO. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.1.0 - */ - public function _negotiate() - { - if (PEAR::isError($error = $this->_put('EHLO', $this->localhost))) { - return $error; - } - - if (PEAR::isError($this->_parseResponse(250))) { - /* If we receive a 503 response, we're already authenticated. */ - if ($this->_code === 503) { - return true; - } - - /* If the EHLO failed, try the simpler HELO command. */ - if (PEAR::isError($error = $this->_put('HELO', $this->localhost))) { - return $error; - } - if (PEAR::isError($this->_parseResponse(250))) { - return PEAR::raiseError('HELO was not accepted: ', $this->_code); - } - - return true; - } - - foreach ($this->_arguments as $argument) { - $verb = strtok($argument, ' '); - $arguments = substr($argument, strlen($verb) + 1, - strlen($argument) - strlen($verb) - 1); - $this->_esmtp[$verb] = $arguments; - } - - if (!isset($this->_esmtp['PIPELINING'])) { - $this->pipelining = false; - } - - return true; - } - - /** - * Returns the name of the best authentication method that the server - * has advertised. - * - * @return mixed Returns a string containing the name of the best - * supported authentication method or a PEAR_Error object - * if a failure condition is encountered. - * - * @since 1.1.0 - */ - public function _getBestAuthMethod() - { - $available_methods = explode(' ', $this->_esmtp['AUTH']); - - foreach ($this->auth_methods as $method) { - if (in_array($method, $available_methods)) { - return $method; - } - } - - return PEAR::raiseError('No supported authentication methods'); - } - - /** - * Attempt to do SMTP authentication. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * @param string The requested authentication method. If none is - * specified, the best supported method will be used. - * @param bool Flag indicating whether or not TLS should be attempted. - * @param string An optional authorization identifier. If specified, this - * identifier will be used as the authorization proxy. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function auth($uid, $pwd, $method = '', $tls = true, $authz = '') - { - /* We can only attempt a TLS connection if one has been requested, - * we're running PHP 5.1.0 or later, have access to the OpenSSL - * extension, are connected to an SMTP server which supports the - * STARTTLS extension, and aren't already connected over a secure - * (SSL) socket connection. */ - if ($tls && version_compare(PHP_VERSION, '5.1.0', '>=') && - extension_loaded('openssl') && isset($this->_esmtp['STARTTLS']) && - strncasecmp($this->host, 'ssl://', 6) !== 0) { - /* Start the TLS connection attempt. */ - if (PEAR::isError($result = $this->_put('STARTTLS'))) { - return $result; - } - if (PEAR::isError($result = $this->_parseResponse(220))) { - return $result; - } - if (PEAR::isError($result = $this->_socket->enableCrypto(true, STREAM_CRYPTO_METHOD_TLS_CLIENT))) { - return $result; - } elseif ($result !== true) { - return PEAR::raiseError('STARTTLS failed'); - } - - /* Send EHLO again to recieve the AUTH string from the - * SMTP server. */ - $this->_negotiate(); - } - - if (empty($this->_esmtp['AUTH'])) { - return PEAR::raiseError('SMTP server does not support authentication'); - } - - /* If no method has been specified, get the name of the best - * supported method advertised by the SMTP server. */ - if (empty($method)) { - if (PEAR::isError($method = $this->_getBestAuthMethod())) { - /* Return the PEAR_Error object from _getBestAuthMethod(). */ - return $method; - } - } else { - $method = strtoupper($method); - if (!in_array($method, $this->auth_methods)) { - return PEAR::raiseError("$method is not a supported authentication method"); - } - } - - switch ($method) { - case 'DIGEST-MD5': - $result = $this->_authDigest_MD5($uid, $pwd, $authz); - break; - - case 'CRAM-MD5': - $result = $this->_authCRAM_MD5($uid, $pwd); - break; - - case 'LOGIN': - $result = $this->_authLogin($uid, $pwd); - break; - - case 'PLAIN': - $result = $this->_authPlain($uid, $pwd, $authz); - break; - - default: - $result = PEAR::raiseError("$method is not a supported authentication method"); - break; - } - - /* If an error was encountered, return the PEAR_Error object. */ - if (PEAR::isError($result)) { - return $result; - } - - return true; - } - - /** - * Authenticates the user using the DIGEST-MD5 method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * @param string The optional authorization proxy identifier. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.1.0 - * @deprecated 本体で使用されていないため非推奨 - */ - public function _authDigest_MD5($uid, $pwd, $authz = '') - { - if (PEAR::isError($error = $this->_put('AUTH', 'DIGEST-MD5'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - - return $error; - } - - $challenge = base64_decode($this->_arguments[0]); - $digest = &Auth_SASL::factory('digestmd5'); - $auth_str = base64_encode($digest->getResponse($uid, $pwd, $challenge, - $this->host, 'smtp')); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - return $error; - } - - /* We don't use the protocol's third step because SMTP doesn't - * allow subsequent authentication, so we just silently ignore - * it. */ - if (PEAR::isError($error = $this->_put(''))) { - return $error; - } - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - } - - /** - * Authenticates the user using the CRAM-MD5 method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.1.0 - * @deprecated 本体で使用されていないため非推奨 - */ - public function _authCRAM_MD5($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'CRAM-MD5'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - - return $error; - } - - $challenge = base64_decode($this->_arguments[0]); - $cram = &Auth_SASL::factory('crammd5'); - $auth_str = base64_encode($cram->getResponse($uid, $pwd, $challenge)); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - } - - /** - * Authenticates the user using the LOGIN method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.1.0 - */ - public function _authLogin($uid, $pwd) - { - if (PEAR::isError($error = $this->_put('AUTH', 'LOGIN'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - - return $error; - } - - if (PEAR::isError($error = $this->_put(base64_encode($uid)))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - return $error; - } - - if (PEAR::isError($error = $this->_put(base64_encode($pwd)))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - - return true; - } - - /** - * Authenticates the user using the PLAIN method. - * - * @param string The userid to authenticate as. - * @param string The password to authenticate with. - * @param string The optional authorization proxy identifier. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.1.0 - */ - public function _authPlain($uid, $pwd, $authz = '') - { - if (PEAR::isError($error = $this->_put('AUTH', 'PLAIN'))) { - return $error; - } - /* 334: Continue authentication request */ - if (PEAR::isError($error = $this->_parseResponse(334))) { - /* 503: Error: already authenticated */ - if ($this->_code === 503) { - return true; - } - - return $error; - } - - $auth_str = base64_encode($authz.chr(0).$uid.chr(0).$pwd); - - if (PEAR::isError($error = $this->_put($auth_str))) { - return $error; - } - - /* 235: Authentication successful */ - if (PEAR::isError($error = $this->_parseResponse(235))) { - return $error; - } - - return true; - } - - /** - * Send the HELO command. - * - * @param string The domain name to say we are. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function helo($domain) - { - if (PEAR::isError($error = $this->_put('HELO', $domain))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250))) { - return $error; - } - - return true; - } - - /** - * Return the list of SMTP service extensions advertised by the server. - * - * @return array The list of SMTP service extensions. - * - * @since 1.3 - */ - public function getServiceExtensions() - { - return $this->_esmtp; - } - - /** - * Send the MAIL FROM: command. - * - * @param string $sender The sender (reverse path) to set. - * @param string $params String containing additional MAIL parameters, - * such as the NOTIFY flags defined by RFC 1891 - * or the VERP protocol. - * - * If $params is an array, only the 'verp' option - * is supported. If 'verp' is true, the XVERP - * parameter is appended to the MAIL command. If - * the 'verp' value is a string, the full - * XVERP=value parameter is appended. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function mailFrom($sender, $params = null) - { - $args = "FROM:<$sender>"; - - /* Support the deprecated array form of $params. */ - if (is_array($params) && isset($params['verp'])) { - /* XVERP */ - if ($params['verp'] === true) { - $args .= ' XVERP'; - - /* XVERP=something */ - } elseif (trim($params['verp'])) { - $args .= ' XVERP='.$params['verp']; - } - } elseif (is_string($params)) { - $args .= ' '.$params; - } - - if (PEAR::isError($error = $this->_put('MAIL', $args))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the RCPT TO: command. - * - * @param string $recipient The recipient (forward path) to add. - * @param string $params String containing additional RCPT parameters, - * such as the NOTIFY flags defined by RFC 1891. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function rcptTo($recipient, $params = null) - { - $args = "TO:<$recipient>"; - if (is_string($params)) { - $args .= ' '.$params; - } - - if (PEAR::isError($error = $this->_put('RCPT', $args))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse([250, 251], $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Quote the data so that it meets SMTP standards. - * - * This is provided as a separate public function to facilitate - * easier overloading for the cases where it is desirable to - * customize the quoting behavior. - * - * @param string $data The message text to quote. The string must be passed - * by reference, and the text will be modified in place. - * - * @since 1.2 - */ - public function quotedata(&$data) - { - /* Change Unix (\n) and Mac (\r) linefeeds into - * Internet-standard CRLF (\r\n) linefeeds. */ - $data = preg_replace(['/(?_esmtp['SIZE'])) ? $this->_esmtp['SIZE'] : 0; - if ($limit > 0 && $size >= $limit) { - $this->disconnect(); - - return PEAR::raiseError('Message size exceeds server limit'); - } - - /* Initiate the DATA command. */ - if (PEAR::isError($error = $this->_put('DATA'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(354))) { - return $error; - } - - /* If we have a separate headers string, send it first. */ - if (!is_null($headers)) { - $this->quotedata($headers); - if (PEAR::isError($result = $this->_send($headers."\r\n\r\n"))) { - return $result; - } - } - - /* Now we can send the message body data. */ - if (is_resource($data)) { - /* Stream the contents of the file resource out over our socket - * connection, line by line. Each line must be run through the - * quoting routine. */ - while ($line = fgets($data, 1024)) { - $this->quotedata($line); - if (PEAR::isError($result = $this->_send($line))) { - return $result; - } - } - } else { - /* - * Break up the data by sending one chunk (up to 512k) at a time. - * This approach reduces our peak memory usage. - */ - for ($offset = 0; $offset < $size;) { - $end = $offset + 512000; - - /* - * Ensure we don't read beyond our data size or span multiple - * lines. quotedata() can't properly handle character data - * that's split across two line break boundaries. - */ - if ($end >= $size) { - $end = $size; - } else { - for (; $end < $size; $end++) { - if ($data[$end] != "\n") { - break; - } - } - } - - /* Extract our chunk and run it through the quoting routine. */ - $chunk = substr($data, $offset, $end - $offset); - $this->quotedata($chunk); - - /* If we run into a problem along the way, abort. */ - if (PEAR::isError($result = $this->_send($chunk))) { - return $result; - } - - /* Advance the offset to the end of this chunk. */ - $offset = $end; - } - } - - /* Finally, send the DATA terminator sequence. */ - if (PEAR::isError($result = $this->_send("\r\n.\r\n"))) { - return $result; - } - - /* Verify that the data was successfully received by the server. */ - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the SEND FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.2.6 - */ - public function sendFrom($path) - { - if (PEAR::isError($error = $this->_put('SEND', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for sendFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - * @deprecated 1.2.6 - */ - public function send_from($path) - { - return self::sendFrom($path); - } - - /** - * Send the SOML FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.2.6 - */ - public function somlFrom($path) - { - if (PEAR::isError($error = $this->_put('SOML', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for somlFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - * @deprecated 1.2.6 - */ - public function soml_from($path) - { - return self::somlFrom($path); - } - - /** - * Send the SAML FROM: command. - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.2.6 - */ - public function samlFrom($path) - { - if (PEAR::isError($error = $this->_put('SAML', "FROM:<$path>"))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility wrapper for samlFrom(). - * - * @param string The reverse path to send. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - * @deprecated 1.2.6 - */ - public function saml_from($path) - { - return self::samlFrom($path); - } - - /** - * Send the RSET command. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function rset() - { - if (PEAR::isError($error = $this->_put('RSET'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250, $this->pipelining))) { - return $error; - } - - return true; - } - - /** - * Send the VRFY command. - * - * @param string The string to verify - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function vrfy($string) - { - /* Note: 251 is also a valid response code */ - if (PEAR::isError($error = $this->_put('VRFY', $string))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse([250, 252]))) { - return $error; - } - - return true; - } - - /** - * Send the NOOP command. - * - * @return mixed Returns a PEAR_Error with an error message on any - * kind of failure, or true on success. - * - * @since 1.0 - */ - public function noop() - { - if (PEAR::isError($error = $this->_put('NOOP'))) { - return $error; - } - if (PEAR::isError($error = $this->_parseResponse(250))) { - return $error; - } - - return true; - } - - /** - * Backwards-compatibility method. identifySender()'s functionality is - * now handled internally. - * - * @return bool This method always return true. - * - * @since 1.0 - */ - public function identifySender() - { - return true; - } -} diff --git a/data/module/Net/Socket.php b/data/module/Net/Socket.php deleted file mode 100644 index 871ea7cd57..0000000000 --- a/data/module/Net/Socket.php +++ /dev/null @@ -1,657 +0,0 @@ - - * Chuck Hagenbuch - * - * @category Net - * - * @author Stig Bakken - * @author Chuck Hagenbuch - * @copyright 1997-2003 The PHP Group - * @license http://www.php.net/license/2_02.txt PHP 2.02 - * - * @version CVS: $Id$ - * - * @see http://pear.php.net/packages/Net_Socket - */ -require_once 'PEAR.php'; - -define('NET_SOCKET_READ', 1); -define('NET_SOCKET_WRITE', 2); -define('NET_SOCKET_ERROR', 4); - -/** - * Generalized Socket class. - * - * @category Net - * - * @author Stig Bakken - * @author Chuck Hagenbuch - * @copyright 1997-2003 The PHP Group - * @license http://www.php.net/license/2_02.txt PHP 2.02 - * - * @see http://pear.php.net/packages/Net_Socket - */ -class Net_Socket extends PEAR -{ - /** - * Socket file pointer. - * - * @var resource - */ - public $fp = null; - - /** - * Whether the socket is blocking. Defaults to true. - * - * @var bool - */ - public $blocking = true; - - /** - * Whether the socket is persistent. Defaults to false. - * - * @var bool - */ - public $persistent = false; - - /** - * The IP address to connect to. - * - * @var string - */ - public $addr = ''; - - /** - * The port number to connect to. - * - * @var int - */ - public $port = 0; - - /** - * Number of seconds to wait on socket connections before assuming - * there's no more data. Defaults to no timeout. - * - * @var int - */ - public $timeout = false; - - /** - * Number of bytes to read at a time in readLine() and - * readAll(). Defaults to 2048. - * - * @var int - */ - public $lineLength = 2048; - - /** - * The string to use as a newline terminator. Usually "\r\n" or "\n". - * - * @var string - */ - public $newline = "\r\n"; - - /** - * Connect to the specified port. If called when the socket is - * already connected, it disconnects and connects again. - * - * @param string $addr IP address or host name. - * @param int $port TCP port number. - * @param bool $persistent (optional) Whether the connection is - * persistent (kept open between requests - * by the web server). - * @param int $timeout (optional) How long to wait for data. - * @param array $options See options for stream_context_create. - * - * @return bool|PEAR_Error True on success or a PEAR_Error on failure. - */ - public function connect($addr, $port = 0, $persistent = null, - $timeout = null, $options = null) - { - if (is_resource($this->fp)) { - @fclose($this->fp); - $this->fp = null; - } - - if (!$addr) { - return $this->raiseError('$addr cannot be empty'); - } elseif (strspn($addr, '.0123456789') == strlen($addr) || - strstr($addr, '/') !== false) { - $this->addr = $addr; - } else { - $this->addr = @gethostbyname($addr); - } - - $this->port = $port % 65536; - - if ($persistent !== null) { - $this->persistent = $persistent; - } - - if ($timeout !== null) { - $this->timeout = $timeout; - } - - $openfunc = $this->persistent ? 'pfsockopen' : 'fsockopen'; - $errno = 0; - $errstr = ''; - - $old_track_errors = @ini_set('track_errors', 1); - - if ($options && function_exists('stream_context_create')) { - if ($this->timeout) { - $timeout = $this->timeout; - } else { - $timeout = 0; - } - $context = stream_context_create($options); - - // Since PHP 5 fsockopen doesn't allow context specification - if (function_exists('stream_socket_client')) { - $flags = STREAM_CLIENT_CONNECT; - - if ($this->persistent) { - $flags = STREAM_CLIENT_PERSISTENT; - } - - $addr = $this->addr.':'.$this->port; - $fp = stream_socket_client($addr, $errno, $errstr, - $timeout, $flags, $context); - } else { - $fp = @$openfunc($this->addr, $this->port, $errno, - $errstr, $timeout, $context); - } - } else { - if ($this->timeout) { - $fp = @$openfunc($this->addr, $this->port, $errno, - $errstr, $this->timeout); - } else { - $fp = @$openfunc($this->addr, $this->port, $errno, $errstr); - } - } - - if (!$fp) { - $error = error_get_last(); - if ($errno == 0 && !strlen($errstr) && isset($error)) { - $errstr = $error['message']; - } - @ini_set('track_errors', $old_track_errors); - - return $this->raiseError($errstr, $errno); - } - - @ini_set('track_errors', $old_track_errors); - $this->fp = $fp; - - return $this->setBlocking($this->blocking); - } - - /** - * Disconnects from the peer, closes the socket. - * - * @return mixed true on success or a PEAR_Error instance otherwise - */ - public function disconnect() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - @fclose($this->fp); - $this->fp = null; - - return true; - } - - /** - * Set the newline character/sequence to use. - * - * @param string $newline Newline character(s) - * - * @return bool True - */ - public function setNewline($newline) - { - $this->newline = $newline; - - return true; - } - - /** - * Find out if the socket is in blocking mode. - * - * @return bool The current blocking mode. - */ - public function isBlocking() - { - return $this->blocking; - } - - /** - * Sets whether the socket connection should be blocking or - * not. A read call to a non-blocking socket will return immediately - * if there is no data available, whereas it will block until there - * is data for blocking sockets. - * - * @param bool $mode True for blocking sockets, false for nonblocking. - * - * @return mixed true on success or a PEAR_Error instance otherwise - */ - public function setBlocking($mode) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $this->blocking = $mode; - stream_set_blocking($this->fp, (int) $this->blocking); - - return true; - } - - /** - * Sets the timeout value on socket descriptor, - * expressed in the sum of seconds and microseconds - * - * @param int $seconds Seconds. - * @param int $microseconds Microseconds. - * - * @return mixed true on success or a PEAR_Error instance otherwise - */ - public function setTimeout($seconds, $microseconds) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return stream_set_timeout($this->fp, $seconds, $microseconds); - } - - /** - * Sets the file buffering size on the stream. - * See php's stream_set_write_buffer for more information. - * - * @param int $size Write buffer size. - * - * @return mixed on success or an PEAR_Error object otherwise - */ - public function setWriteBuffer($size) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $returned = stream_set_write_buffer($this->fp, $size); - if ($returned == 0) { - return true; - } - - return $this->raiseError('Cannot set write buffer.'); - } - - /** - * Returns information about an existing socket resource. - * Currently returns four entries in the result array: - * - *

- * timed_out (bool) - The socket timed out waiting for data
- * blocked (bool) - The socket was blocked
- * eof (bool) - Indicates EOF event
- * unread_bytes (int) - Number of bytes left in the socket buffer
- *

- * - * @return mixed Array containing information about existing socket - * resource or a PEAR_Error instance otherwise - */ - public function getStatus() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return stream_get_meta_data($this->fp); - } - - /** - * Get a specified line of data - * - * @param int $size ?? - * - * @return $size bytes of data from the socket, or a PEAR_Error if - * not connected. - */ - public function gets($size = null) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - if (is_null($size)) { - return @fgets($this->fp); - } else { - return @fgets($this->fp, $size); - } - } - - /** - * Read a specified amount of data. This is guaranteed to return, - * and has the added benefit of getting everything in one fread() - * chunk; if you know the size of the data you're getting - * beforehand, this is definitely the way to go. - * - * @param int $size The number of bytes to read from the socket. - * - * @return $size bytes of data from the socket, or a PEAR_Error if - * not connected. - */ - public function read($size) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return @fread($this->fp, $size); - } - - /** - * Write a specified amount of data. - * - * @param string $data Data to write. - * @param int $blocksize Amount of data to write at once. - * NULL means all at once. - * - * @return mixed If the socket is not connected, returns an instance of - * PEAR_Error - * If the write succeeds, returns the number of bytes written - * If the write fails, returns false. - */ - public function write($data, $blocksize = null) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - if (is_null($blocksize) && !OS_WINDOWS) { - return @fwrite($this->fp, $data); - } else { - if (is_null($blocksize)) { - $blocksize = 1024; - } - - $pos = 0; - $size = strlen($data); - while ($pos < $size) { - $written = @fwrite($this->fp, substr($data, $pos, $blocksize)); - if (!$written) { - return $written; - } - $pos += $written; - } - - return $pos; - } - } - - /** - * Write a line of data to the socket, followed by a trailing newline. - * - * @param string $data Data to write - * - * @return mixed fputs result, or an error - */ - public function writeLine($data) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return fwrite($this->fp, $data.$this->newline); - } - - /** - * Tests for end-of-file on a socket descriptor. - * - * Also returns true if the socket is disconnected. - * - * @return bool - */ - public function eof() - { - return !is_resource($this->fp) || feof($this->fp); - } - - /** - * Reads a byte of data - * - * @return 1 byte of data from the socket, or a PEAR_Error if - * not connected. - */ - public function readByte() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - return ord(@fread($this->fp, 1)); - } - - /** - * Reads a word of data - * - * @return 1 word of data from the socket, or a PEAR_Error if - * not connected. - */ - public function readWord() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 2); - - return ord($buf[0]) + (ord($buf[1]) << 8); - } - - /** - * Reads an int of data - * - * @return int 1 int of data from the socket, or a PEAR_Error if - * not connected. - */ - public function readInt() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 4); - - return ord($buf[0]) + (ord($buf[1]) << 8) + - (ord($buf[2]) << 16) + (ord($buf[3]) << 24); - } - - /** - * Reads a zero-terminated string of data - * - * @return string, or a PEAR_Error if - * not connected. - */ - public function readString() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $string = ''; - while (($char = @fread($this->fp, 1)) != "\x00") { - $string .= $char; - } - - return $string; - } - - /** - * Reads an IP Address and returns it in a dot formatted string - * - * @return Dot formatted string, or a PEAR_Error if - * not connected. - */ - public function readIPAddress() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $buf = @fread($this->fp, 4); - - return sprintf('%d.%d.%d.%d', ord($buf[0]), ord($buf[1]), - ord($buf[2]), ord($buf[3])); - } - - /** - * Read until either the end of the socket or a newline, whichever - * comes first. Strips the trailing newline from the returned data. - * - * @return All available data up to a newline, without that - * newline, or until the end of the socket, or a PEAR_Error if - * not connected. - */ - public function readLine() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $line = ''; - - $timeout = time() + $this->timeout; - - while (!feof($this->fp) && (!$this->timeout || time() < $timeout)) { - $line .= @fgets($this->fp, $this->lineLength); - if (substr($line, -1) == "\n") { - return rtrim($line, $this->newline); - } - } - - return $line; - } - - /** - * Read until the socket closes, or until there is no more data in - * the inner PHP buffer. If the inner buffer is empty, in blocking - * mode we wait for at least 1 byte of data. Therefore, in - * blocking mode, if there is no data at all to be read, this - * function will never exit (unless the socket is closed on the - * remote end). - * - * @return string All data until the socket closes, or a PEAR_Error if - * not connected. - */ - public function readAll() - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $data = ''; - while (!feof($this->fp)) { - $data .= @fread($this->fp, $this->lineLength); - } - - return $data; - } - - /** - * Runs the equivalent of the select() system call on the socket - * with a timeout specified by tv_sec and tv_usec. - * - * @param int $state Which of read/write/error to check for. - * @param int $tv_sec Number of seconds for timeout. - * @param int $tv_usec Number of microseconds for timeout. - * - * @return false if select fails, integer describing which of read/write/error - * are ready, or PEAR_Error if not connected. - */ - public function select($state, $tv_sec, $tv_usec = 0) - { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - - $read = null; - $write = null; - $except = null; - if ($state & NET_SOCKET_READ) { - $read[] = $this->fp; - } - if ($state & NET_SOCKET_WRITE) { - $write[] = $this->fp; - } - if ($state & NET_SOCKET_ERROR) { - $except[] = $this->fp; - } - if (false === ($sr = stream_select($read, $write, $except, - $tv_sec, $tv_usec))) { - return false; - } - - $result = 0; - if (count($read)) { - $result |= NET_SOCKET_READ; - } - if (count($write)) { - $result |= NET_SOCKET_WRITE; - } - if (count($except)) { - $result |= NET_SOCKET_ERROR; - } - - return $result; - } - - /** - * Turns encryption on/off on a connected socket. - * - * @param bool $enabled Set this parameter to true to enable encryption - * and false to disable encryption. - * @param int $type Type of encryption. See stream_socket_enable_crypto() - * for values. - * - * @see http://se.php.net/manual/en/function.stream-socket-enable-crypto.php - * - * @return false on error, true on success and 0 if there isn't enough data - * and the user should try again (non-blocking sockets only). - * A PEAR_Error object is returned if the socket is not - * connected - */ - public function enableCrypto($enabled, $type) - { - if (version_compare(PHP_VERSION, '5.1.0', '>=')) { - if (!is_resource($this->fp)) { - return $this->raiseError('not connected'); - } - stream_context_set_option($this->fp, 'ssl', 'verify_peer_name', false); - - return @stream_socket_enable_crypto($this->fp, $enabled, $type); - } else { - $msg = 'Net_Socket::enableCrypto() requires php version >= 5.1.0'; - - return $this->raiseError($msg); - } - } -} diff --git a/html/admin/css/common.css b/html/admin/css/common.css deleted file mode 100644 index 739a87bbf5..0000000000 --- a/html/admin/css/common.css +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of EC-CUBE - * - * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved. - * - * http://www.ec-cube.co.jp/ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ -@charset ""; -.fs10 {font-size: 62.5%; line-height: 150%;} -.fs12 {font-size: 75%; line-height: 150%;} -.fs14 {font-size: 87.5%; line-height: 150%;} -.fs18 {font-size: 117.5%; line-height: 150%;} -.fs22 {font-size: 137.5%; line-height: 130%;} -.fs24 {font-size: 150%; line-height: 130%;} -.fs30 {font-size: 187.5%; line-height: 125%;} -.fs10n {font-size: 62.5%;} -.fs12n {font-size: 75%;} -.fs14n {font-size: 87.5%;} -.fs18n {font-size: 117.5%;} -.fs22n {font-size: 137.5%;} -.fs24n {font-size: 150%;} -.fs30n {font-size: 187.5%;} -.fs12st {font-size: 75%; line-height: 150%; font-weight: bold;} diff --git a/html/admin/css/install.css b/html/admin/css/install.css deleted file mode 100644 index 1d7ed13ebb..0000000000 --- a/html/admin/css/install.css +++ /dev/null @@ -1,123 +0,0 @@ -/* - * This file is part of EC-CUBE - * - * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved. - * - * http://www.ec-cube.co.jp/ - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - -@charset "utf-8"; - -input,select,option,textarea { - font-family:"�l�r �o�S�V�b�N","Hiragino Maru Gothic Pro","�q���M�m�ۃS Pro W4",Osaka,sans-serif; - font-size: 13px; -} - - -/*LINK*/ -a:link { color: #006699; text-decoration: none; } -a:visited { color: #006699; text-decoration: none; } -a:hover { color: #f9a406; text-decoration: underline; } - - -/*FORM*/ -.box3 { width: 33px; } /*W3*/ -.box6 { width: 54px; } /*W6*/ -.box10 { width: 82px; } /*W10*/ -.box20 { width: 152px; } /*W20*/ -.box25 { width: 187px; } /*W25*/ -.box30 { width: 222px; } /*W30*/ -.box33 { width: 243px; } /*W33*/ -.box35 { width: 257px; } /*W35*/ -.box40 { width: 292px; } /*W40*/ -.box45 { width: 341px; } /*W45*/ -.box50 { width: 362px; } /*W50*/ -.box52 { width: 376px; } /*W52*/ -.box54 { width: 390px; } /*W54*/ -.box60 { width: 432px; } /*W60*/ -.box65 { width: 467px; } /*W65*/ -.box68 { width: 488px; } /*W68*/ -.box76 { width: 544px; } /*W76*/ - -.area40 { width: 302px; height: 134px; } /*W40�~H8*/ -.area45 { width: 337px; height: 290px; } /*W40�~H20*/ -.area46 { width: 337px; height: 134px; } /*W40�~H8*/ -.area50 { width: 372px; height: 82px; } /*W50�~H4*/ -.area55 { width: 407px; height: 82px; } /*W50�~H4*/ -.area59 { width: 432px; height: 134px; } /*W59�~H8*/ -.area60 { width: 433px; height: 134px; } /*W60�~H8*/ -.area61 { width: 433px; height: 82px; } /*W60�~H4*/ -.area65 { width: 444px; height: 290px; } /*W65�~H20*/ -.area70 { width: 512px; height: 186px; } /*W70�~H12*/ -.area75 { width: 547px; height: 186px; } /*W75�~H12*/ -.area80 { width: 572px; height: 134px; } /*W80�~H8*/ -.area90 { width: 650px; height: 420px; } -.area96 { width: 694px; height: 420px; } /*W80�~H30*/ -.area96_2 { width: 694px; height: 160px; } /*W80�~H10*/ -.area99 { width: 715px; height: 523px; } /*W99�~H40*/ - -/*COLOR*/ -.ast { color: #cc0000; font-size: 90%; } -.darkred { color: #cc0000; } -.gray { color: #b6b7ba; } -.white { color: #ffffff; } -.whitest { color: #ffffff; font-weight: bold; } -.white10 { color: #ffffff; font-size: 62.5%;} -.red { color: #ff0000; } -.red10 { color:#ff0000; font-size: 10px; } -.red12 { color:#cc0000; font-size: 12px; } -.reselt { color: #ffcc00; font-size: 120%; font-weight: bold; } - - -.infodate { - color: #cccccc; font-size: 62.5%; font-weight: bold; - padding: 0 0 0 8px; -} - -.infottl { - color: #ffffff; - font-size: 62.5%; - line-height: 150%; -} - -.info { - padding: 0 4px; - display: block; -} - -.title { - padding: 0px 0px 20px 25px; - color: #ffffff; - font-weight: bold; - line-height: 120%; -} - -/*IMG*/ -img { - border: 0; -} - -#agreement{ - height: 120px; - width: 480px; - overflow: auto; - margin: 0px; - background-color : #FFFFFF; - border-style: solid; - border-color: #C0C0C0; - border-width: 1px -} diff --git a/html/user_data/packages/admin/css/admin.css b/html/user_data/packages/admin/css/admin.css new file mode 100644 index 0000000000..1e1af7a10a --- /dev/null +++ b/html/user_data/packages/admin/css/admin.css @@ -0,0 +1,1846 @@ +@charset "utf-8"; + +/************************************************ + ブラウザリセット +************************************************ */ + +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +font, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td { + margin: 0; + padding: 0; + border: 0; +} + +table, +caption, +th, +td { + margin: 0; + padding: 0; + border: 0; + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + text-align: left; + font-weight: normal; +} + +a img, +iframe { + border: none; +} + +ol, +ul, +li { + list-style: none; +} + +input, +textarea, +select, +button { + font-size: 100%; + font-family: inherit; +} + +html { + height: 100%; +} + +body { + width: 100%; + height: 100%; + background: #fff; + font-family: "MS Pゴシック", "Hiragino Maru Gothic Pro", "ヒラギノ丸ゴ Pro W4", Osaka, sans-serif; + font-size: 80%; + line-height: 120%; +} + +option { + margin-right: 3px; + font-size: 100%; +} + +input, +textarea { + margin-right: 3px; +} + +select { + font-size: 100%; + + &.top { + margin-bottom: 5px; + } +} + +input.top, +textarea.top { + margin-bottom: 5px; +} + +.page_rows { + margin-bottom: 20px; +} + +hr { + display: none; +} + +h1 { + border-top: 1px solid #b3b4bd; + border-bottom: 1px solid #d9dadf; + height: 30px; + line-height: 30px; + color: #444757; + background: url('../img/contents/subtitle_back_02.jpg') repeat-x; + font-size: 130%; + + span { + &.title { + display: block; + padding-top: 2px; + padding-left: 20px; + background: url('../img/contents/subtitle_back.gif') no-repeat; + } + + &.subtitle { + display: block; + padding-top: 2px; + padding-left: 10px; + } + } +} + +h2 { + margin: 0 0 10px 0; + padding: 5px 0; + border-bottom: 3px solid #ccc; + color: #444757; + font-size: 100%; +} + +h3 { + margin-bottom: 20px; + padding: 5px; + color: #fff; + background: #999; + font-size: 90%; +} + +/*テーブル設定*/ + +table { + margin: 0 0 20px; + border-collapse: collapse; + width: 100%; + font-size: 100%; +} + +th, +td { + padding: 5px; + border: 1px solid #ccc; +} + +th { + width: 240px; + background: url('../img/contents/table_back.png') repeat-x #f4f5f5; + font-weight: normal; + text-align: left; +} + +table { + &.list { + th { + background: url('../img/contents/table_back.png') repeat-x #b4b4b4; + text-align: center; + + &.column { + background: url('../img/contents/table_back.png') repeat-x #f4f5f5; + text-align: left; + } + } + + .edit, + .delete { + width: 10%; + } + + width: 100%; + + th { + &.left { + text-align: left; + } + + &.right { + text-align: right; + } + } + + td { + + &.id, + &.thumbnail { + text-align: center; + } + + &.menu { + vertical-align: middle; + text-align: center; + } + } + } + + &.form th { + width: 240px; + text-align: left; + } + + tr.last { + background: #ffffdf; + } +} + +#popup-container table th.column { + width: 200px; +} + +.contents-main .btn-area, +#popup .btn-area, +#form_edit .btn-area { + margin: 0 0 60px 0; + padding: 20px 0; + clear: both; + width: 100%; + background: #f5f5f5; + text-align: center; +} + +.contents-main .btn-area li, +#popup .btn-area li, +.btn-area li { + margin-right: 10px; + display: inline; +} + +.addnew { + margin-bottom: 20px; +} + +/*おすすめ商品管理*/ + +table.recommend-table { + border-collapse: collapse; + font-size: 100%; + margin: 0 0 50px; + width: 100%; +} + +.recommend-product.hidden td { + background: #C9C9C9; +} + +div.table-wrap { + margin-top: 6px; + + div { + &.table-img { + float: left; + padding-left: 6px; + } + + &.table-detail { + float: left; + text-align: left; + padding-left: 11px; + + div.detail-name { + margin-bottom: 5px; + } + } + } +} + +td.AlignLeft { + text-align: left; + padding-left: 11px; +} + +/*おすすめ商品検索画面*/ + +#recommend-search-results .hidden { + + td, + th { + background: #C9C9C9; + } +} + +/*通常ボタン*/ + +.btn-normal { + margin-right: 5px; + padding: 2px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background-image: url('../img/button/white-grad.png'); + background-attachment: scroll; + background-clip: border-box; + background-color: #eee; + font-weight: normal; + font-size: 90%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; +} + +a.btn-normal { + + &:link, + &:visited { + margin-right: 5px; + padding: 2px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background-image: url('../img/button/white-grad.png'); + background-attachment: scroll; + background-clip: border-box; + background-color: #eee; + font-weight: normal; + font-size: 90%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + } +} + +/*ツールボタン 共通部分*/ + +.btn-tool-format { + padding: 0 6px; + border: solid 1px #6b6d87; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad03.png') repeat-x #eee; + background-origin: padding-box; + background-attachment: scroll; + background-clip: border-box; + background-color: #c9cbcb; + font-weight: bold; + font-size: 90%; + text-decoration: none; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; +} + +a.btn-tool-format { + + &:link, + &:visited { + padding: 0 6px; + border: solid 1px #6b6d87; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad03.png') repeat-x #eee; + background-origin: padding-box; + background-attachment: scroll; + background-clip: border-box; + background-color: #c9cbcb; + font-weight: bold; + font-size: 90%; + text-decoration: none; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + } +} + +/*ツールボタン コンテンツ*/ + +.btn-tool { + padding: 0 6px; + border: solid 1px #999; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad.png') repeat-x #eee; + background-origin: padding-box; + background-attachment: scroll; + background-clip: border-box; + background-color: #c9cbcb; + font-size: 100%; + text-decoration: none; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; +} + +a.btn-tool { + + &:link, + &:visited { + padding: 0 6px; + border: solid 1px #999; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad.png') repeat-x #eee; + background-origin: padding-box; + background-attachment: scroll; + background-clip: border-box; + background-color: #c9cbcb; + font-size: 100%; + text-decoration: none; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 4px; + + /* Firefox radius */ + -moz-border-radius: 4px; + } +} + +/*登録する・検索するボタン*/ + +.btn-action { + padding: 5px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad04.png') top repeat-x #eee; + background-attachment: scroll; + background-clip: border-box; + font-weight: normal; + font-size: 80%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; +} + +a.btn-action { + + &:link, + &:visited { + padding: 5px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad04.png') top repeat-x #eee; + background-attachment: scroll; + background-clip: border-box; + font-weight: normal; + font-size: 80%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + } +} + +/* 商品を選択するボタン */ + +.btn-action-m { + padding: 3px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad04.png') top repeat-x #eee; + background-attachment: scroll; + background-clip: border-box; + font-weight: normal; + font-size: 90%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; +} + +a.btn-action-m { + + &:link, + &:visited { + padding: 3px 10px; + border: solid 1px #bcbecb; + display: inline-block; + color: #444757; + background: url('../img/button/white-grad04.png') top repeat-x #eee; + background-attachment: scroll; + background-clip: border-box; + font-weight: normal; + font-size: 90%; + text-decoration: none; + white-space: nowrap; + cursor: pointer; + + /* CSS3 radius */ + border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + + /* Safari, Chrome radius */ + -webkit-box-sizing: content-box; + -webkit-border-radius: 5px; + + /* Firefox radius */ + -moz-border-radius: 5px; + } +} + + +.btn-action { + + /*戻るボタン*/ + .btn-prev { + padding: 0 0 0 20px; + display: inline-block; + background: url('../img/button/ico_prev.gif') left no-repeat; + font-weight: bold; + font-size: 114%; + } + + /*進むボタン*/ + .btn-next { + padding: 0 20px 0 0; + display: inline-block; + background: url('../img/button/ico_next.gif') right no-repeat; + font-weight: bold; + font-size: 114%; + } +} + +/*LINK*/ +a { + + &.btn-normal:hover, + &.btn-action:hover, + &.btn-tool:hover { + border: solid 1px #d5d7df; + color: #6d728b; + } + + &.btn-tool-format:hover { + border: solid 1px #363a47; + color: #6b728b; + } + + &.btn:active, + &.btn-normal:active { + background-image: url('../img/button/white-grad-active.png'); + } + + &:link, + &:visited { + color: #39c; + text-decoration: none; + } + + &:link:hover, + &[href]:hover { + color: #74badc; + text-decoration: none; + } +} + +.left { + text-align: left; +} + +.center { + text-align: center; +} + +.right { + text-align: right; +} + +.attention { + color: #f00; +} + +/* ヘッダー +----------------------------------------------- */ + +#errorHeader { + color: #F00; + font-weight: bold; + font-size: 12px; + background-color: #FEB; + text-align: center; + padding: 5px; +} + +#header { + width: 100%; + height: 51px; + background: url('../img/header/header_back.jpg') 0 0 repeat-x; +} + +#header-contents { + width: 1030px; +} + +#logo { + padding: 12px 0 0 12px; + float: left; + width: 184px; +} + +#site-check { + float: right; + width: 820px; + + p.info { + padding-top: 16px; + float: left; + width: 580px; + color: #fff; + font-size: 80%; + } + + ul { + padding-top: 14px; + float: right; + + li { + margin-right: 10px; + float: left; + } + } +} + +/* ヘッダーナビ +----------------------------------------------- */ + +#navi-wrap { + width: 1030px; +} + +#navi { + z-index: 90; + background: url('../img/header/navi_back.jpg') top left repeat-x; + font-size: 100%; + line-height: 100%; + * { + box-sizing: border-box; + } + + li { + background: url('../img/header/navi_back_line.jpg') no-repeat right; + display: block; + float: left; + cursor: pointer; + position: relative; + + > div { + display: block; + cursor: pointer; + text-decoration: none; + } + } + + > li { + height: 28px; + + /* 横並びメニューのみ適用 */ + > div { + color: #2d2f39; + font-weight: bold; + height: 100%; + padding: 7px 10px 0; + + :not(:has(.sfhover)) .on > &, + .sfhover > & { + background: url('../img/header/navi_on.jpg') left 0 repeat-x; + } + } + } + + > li ul { + /* プルダウンメニュー 第1階層以下共通 */ + position: absolute; + clear: both; + display: none; + > li { + margin-left: 0; + display: block; + width: 180px; + height: 27px; + line-height: 24px; + background: url('../img/header/subnavi_bak.gif') top left no-repeat #787878; + text-indent: 8px; + &.sfhover { + background: url('../img/header/subnavi_bak_on.gif') top left no-repeat #474747; + } + a, + div { + color: #fff; + display: block; + padding: 2px 0 0 8px; + } + } + .sfhover > & { + display: block; + } + } + + > li > ul { + /* プルダウンメニュー 第1階層 */ + z-index: 91; + top: 28px; + + > li { + border: solid #888; + border-width: 0 0 1px 0; + &:has(ul) > div { + /* 既存画像を使いまわしたためトリッキー */ + background: url('../img/header/subnavi_bak_l2_on.gif') top left no-repeat; + mix-blend-mode: lighten; + } + } + + /* プルダウンメニュー 第2階層 */ + > li > ul { + z-index: 92; + top: 0; + left: 180px; + } + } +} + + +/*subnavi*/ + +.subnavi a { + padding: 6px 5px 4px 5px; + display: block; + width: 140px; + color: #fff; + background-color: #666; + text-decoration: none; + + &:visited { + color: #fff; + text-decoration: none; + } + + &:hover { + color: #000; + background-color: #666; + text-decoration: none; + } +} + +.subnavi_text { + padding: 0 0 0 8px; + font-size: 71%; +} + +.subnavi-on a { + padding: 6px 5px 4px 5px; + display: block; + width: 140px; + color: #000; + background-color: #666; + text-decoration: none; + + &:visited { + color: #000; + text-decoration: none; + } + + &:hover { + color: #000; + background-color: #666; + text-decoration: none; + } +} + +.number-on a:visited, +.number a:visited { + color: #fff; + text-decoration: none; +} + +#agreement { + margin: 0; + border-width: 1px; + border-color: #c0c0c0; + border-style: solid; + width: 480px; + height: 120px; + overflow: auto; + background-color: #fff; +} + +/* ページャ */ + +#contents .pager ul { + margin: 10px 0; + list-style-type: none; +} + +.pager li { + display: inline; + + a { + padding: 3px 5px; + border: 1px solid #999; + } + + &.on a { + background: #f4f5f5; + } + + a:hover, + &.on a:hover { + background: #f8f8f8; + border: 1px solid #ccc; + } +} + +/* コンテンツ +----------------------------------------------- */ + +* html div#container { + position: relative; + height: 100%; + min-height: 100%; +} + +body>#container { + height: auto; +} + +#container { + position: relative; + min-height: 100%; +} + +#contents { + padding: 20px 20px 100px; + width: 1000px; +} + +#footer { + margin-top: 30px; + position: fixed; + bottom: 0; + width: 100%; + height: 40px; + background: url('../img/contents/footer_back.jpg') 0 0 repeat-x; +} + +#footer-contents { + padding-top: 10px; + width: 1020px; + text-align: right; +} + +#footer { + #copyright { + margin-left: 20px; + float: left; + color: #fff; + font-size: 85%; + text-align: left; + } + + #topagetop { + float: right; + } +} + +/* ログイン +----------------------------------------------- */ + +#login { + margin: 0 auto; + padding: 0; + width: 100%; + text-align: center; +} + +#login-wrap { + margin: 150px auto 0; + padding: 0; + border: 0; + text-align: left; + width: 556px; + z-index: 2; + background: url('../img/contents/admin_login_bg.jpg') center top repeat-x; + -moz-box-shadow: 0 0 5px #000; + + /* Firefox */ + -webkit-box-shadow: 0 0 5px #000; + + /* Safari and Chrome */ +} + +#login-form h1 { + margin: 46px auto 20px; + padding-left: 50px; + padding-bottom: 40px; + border: none; + float: left; + width: 140px; + height: 150px; + background: none; +} + +#input-form { + margin-top: 40px; + padding-right: 30px; + float: right; + width: 255px; + + p { + margin-top: 10px; + color: #fff; + font-size: 100%; + } + + .btn-tool { + margin-top: 5px; + } +} + +#login #copyright { + margin: 0 auto; + padding-top: 10px; + width: 556px; + color: #000000; + font-size: 80%; + text-align: left; +} + +/* エラーメッセージ +----------------------------------------------- */ + +/*以下インストールページと共通■触るべからず*/ + +#out-wrap { + margin: 100px auto; + width: 560px; + + .logo { + padding-bottom: 5px; + float: right; + } +} + +#out { + margin: 0 auto; + width: 560px; +} + +#error { + .out-top { + clear: both; + width: 560px; + height: 10px; + background: url('../img/contents/login_back_top.jpg') bottom left no-repeat; + } + + .contents { + border-right: solid 1px #d9dadf; + border-left: solid 1px #d9dadf; + + .message { + padding: 20px 30px; + text-align: center; + } + } + + .btn-area-top { + width: 560px; + height: 10px; + background: url('../img/contents/login_back_btn_top.jpg') left no-repeat; + } + + .btn-area ul { + padding: 20px 0 10px 0; + width: 560px; + background: url('../img/contents/login_back_btn_contents.jpg') top left no-repeat #f4f5f5; + + li { + text-align: center; + } + } + + .btn-area-bottom { + width: 560px; + height: 10px; + background: url('../img/contents/login_back_btn_bottom.jpg') bottom left no-repeat #eeeff0; + } +} + +/*以上インストールページと共通■触るべからず*/ + +/* 完了メッセージ +----------------------------------------------- */ + +#complete { + margin: 40px 0 0 80px; + width: 560px; + + .complete-top { + clear: both; + width: 560px; + height: 10px; + background: url('../img/contents/login_back_top.jpg') bottom left no-repeat; + } + + .contents { + border-right: solid 1px #d9dadf; + border-left: solid 1px #d9dadf; + + .message { + padding: 20px 30px; + color: #b77615; + font-weight: bold; + text-align: center; + } + } + + .btn-area-top { + width: 560px; + height: 10px; + background: url('../img/contents/login_back_btn_top.jpg') left no-repeat; + } + + .btn-area ul { + margin: 0; + padding: 20px 0 10px 0; + width: 560px; + background: url('../img/contents/login_back_btn_contents.jpg') top left no-repeat #f4f5f5; + text-align: center; + + li { + margin-right: 10px; + display: inline; + } + } + + .btn-area-bottom { + clear: both; + width: 560px; + height: 10px; + background: url('../img/contents/login_back_btn_bottom.jpg') bottom left no-repeat #eeeff0; + } +} + +/* メインページ +----------------------------------------------- */ + +#home-main { + margin-right: 300px; + + table { + width: 100%; + } +} + +* html #home-main table { + width: 99%; +} + +#home .shop-info { + margin: 0 0 20px; + + td { + width: 60%; + text-align: right; + } +} + +#home-info { + border-left: 1px solid #ccc; + float: right; + width: 280px; +} + +.home-info-item { + margin: 0 0 15px 20px; + width: 260px; + line-height: 14px; + font-size: 85%; + + .body { + margin: 5px 0 0 0; + } + + .date { + background: #ddd; + padding: 5px 10px 0px; + } + + .title { + padding: 0 10px 5px; + background: #ddd; + } +} + +/* 基本情報管理 +----------------------------------------------- */ +/* SHOPマスター */ + +#maparea { + padding: 30px; + background: #FFFFFF; + + .btn-area { + text-align: center; + } +} + +#maps { + margin: 0 auto 1em; +} + +/* 郵便番号DB登録 */ + +.basis-zip-item { + margin-bottom: 30px; + + &.end { + margin-bottom: 60px; + } + + &.info { + padding-top: 20px; + } + + p { + margin-bottom: 10px; + } +} + +/* 商品管理 +----------------------------------------------- */ + +#products-category-left, +#products-rank-left { + float: left; + width: 285px; + min-height: 200px; +} + +#products-category-right, +#products-rank-right { + margin-left: 285px; +} + +#products-class-list .action { + width: 100px; +} + +#contents-filemanager-tree #tree { + float: left; + min-height: 200px; +} + +#products-category-left, +#products-rank-left { + min-height: 200px; + padding: 10px; + border: 3px solid #ddd; + width: 230px; + background-color: #f3f3f3; +} + +#products-category-left li ul, +#products-rank-left li ul { + margin-left: 20px; +} + +#products-category-right .now_dir { + margin-bottom: 20px; + padding: 10px; + border: 1px solid #ccc; +} + +#products { + .class-payment { + padding-top: 15px; + font-size: 88%; + } + + label { + white-space: nowrap; + } + + .class-product-type label { + white-space: normal; + } + + .list-info { + padding-top: 10px; + border-top: solid 1px #ccc; + + .btn { + float: left; + margin-right: 20px; + } + + p { + float: right; + color: #444757; + } + } +} + +/* 受注管理 +----------------------------------------------- */ +/* 対応状況管理 */ + +#order-status-list th.id { + width: 40px; +} + +/* 期間別集計 +----------------------------------------------- */ + +#graph-image { + margin: 0 0 20px 0; +} + +/* デザイン管理 +----------------------------------------------- */ +/* レイアウト設定 */ + +.design-layout { + table-layout: fixed; + + th, + td { + vertical-align: top; + text-align: center; + } +} + +#design-layout-used { + width: 525px; +} + +#design-layout-unused { + width: 175px; +} + +.design-layout { + + #LeftNavi, + #MainHead, + #RightNavi { + width: 33.33%; + } + + #TopNavi, + #HeadNavi, + #HeaderTopNavi, + #LeftNavi, + #MainHead, + #MainFoot, + #RightNavi, + #BottomNavi, + #FooterBottomNavi, + #HeaderInternalNavi, + #Unused { + padding-bottom: 20px; + height: 10px; /* IE6応急処置 */ + } + + div.sort { + margin: 5px 0; + padding: 5px 2px; + border: 1px solid #000; + color: #333; + background: #eee; + font-size: 100%; + } + + .anywherecheck { + white-space: nowrap; + } +} + +.placeholder { + border: 1px dashed #aaa; + height: 20px; +} + +#layout-header { + vertical-align: middle; +} + +/* コンテンツ管理 +----------------------------------------------- */ + +#contents-csv-sqltbl { + margin-bottom: 40px; +} + +/* システム設定 +----------------------------------------------- */ +/* プラグイン管理 */ + +td { + &.plugin_img { + border-width: 1px 0px 1px 1px; + } + + &.plugin_info { + border-width: 1px 1px 1px 0px; + + p.description { + margin: 8px 0 10px 5px; + } + + span { + &.ec_cube_version { + font-style: italic; + font-size: 80%; + } + + &.plugin_name { + font-weight: bold; + } + } + } + + &.attention_fookpoint { + background-color: #FEB; + } +} + +/* フォーム +----------------------------------------------- */ + +div.btn, +p.remark { + margin: 0 0 20px 0; +} + +/*FORM*/ +/*W3*/ +.box3 { + width: 33px; +} + + +/*W6*/ +.box6 { + width: 54px; +} + +/*W10*/ +.box10 { + width: 82px; +} + +/*W20*/ +.box20 { + width: 152px; +} + +/*W25*/ +.box25 { + width: 187px; +} + +/*W30*/ +.box30 { + width: 222px; +} + +/*W33*/ +.box33 { + width: 243px; +} + +/*W35*/ +.box35 { + width: 257px; +} + +/*W40*/ +.box40 { + width: 276px; +} + +/*W45*/ +.box45 { + width: 341px; +} + +/*W50*/ +.box50 { + width: 362px; +} + +/*W52*/ +.box52 { + width: 376px; +} + +/*W54*/ +.box54 { + width: 390px; +} + +/*W60*/ +.box60 { + width: 432px; +} + +/*W65*/ +.box65 { + width: 467px; +} + +/*W68*/ +.box68 { + width: 488px; +} + +/*W76*/ +.box76 { + width: 544px; +} + +/*W40×H8*/ +.area40 { + width: 302px; + height: 134px; +} + +/*W40×H20*/ +.area45 { + width: 337px; + height: 290px; +} + +/*W40×H8*/ +.area46 { + width: 337px; + height: 134px; +} + +/*W50?H4*/ +.area50 { + width: 372px; + height: 82px; +} + +/*W50?H4*/ +.area55 { + width: 407px; + height: 82px; +} + +/*W59×H8*/ +.area59 { + width: 432px; + height: 134px; +} + +/*W60?H8*/ +.area60 { + width: 433px; + height: 134px; +} + +/*W60?H4*/ +.area61 { + width: 433px; + height: 82px; +} + +/*W65×H20*/ +.area65 { + width: 444px; + height: 290px; +} + +/*W70?H12*/ +.area70 { + width: 512px; + height: 186px; +} + +/*W75?H12*/ +.area75 { + width: 547px; + height: 186px; +} + +/*W80×H8*/ +.area80 { + width: 572px; + height: 134px; +} + +.area90 { + width: 650px; + height: 420px; +} + +/*W80×H30*/ +.area96 { + width: 694px; + height: 420px; +} + +/*W80×H10*/ +.area96_2 { + width: 694px; + height: 160px; +} + +/*W99?H40*/ +.area99 { + width: 715px; + height: 523px; +} + +/*COLOR*/ + +.red { + color: #f00; +} + +/*FONT*/ + +.bold { + font-weight: bold; +} + +/* フロート解除 */ + +.clearfix:after { + display: block; + clear: both; + height: 0; + line-height: 0; + visibility: hidden; + content: "."; +} + +/* 権限 */ + +x-dummy { + /* display: none; --- IE で不具合 */ + border: none; + width: 0; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.authority_1 { + + #navi-basis-masterdata, + #navi-contents-file, + #navi-design-bloc, + #navi-design-template, + #navi-design-add, + #navi-system, + #navi-ownersstore { + /* display: none; --- IE で不具合 */ + border: none; + width: 0; + height: 0; + overflow: hidden; + visibility: hidden; + } +} + +/* DnD並び替え系の設定 */ + +tr.movingHandle td { + background-color: #eee; +} + +/* ハンドルの設定 */ + +.dragHandle { + font-weight: bold; + text-align: center; + cursor: n-resize; +} + +/* アクティブハンドルの設定 */ + +.activeHandle { + color: #f9a406; +} + +table.layout { + margin: 0; + padding: 0; + border: none; + width: auto; + vertical-align: top; + + th, + td { + margin: 0; + padding: 0; + border: none; + width: auto; + vertical-align: top; + } +} + +/* ログ表示用 */ + +.log { + td { + padding-top: 0; + padding-bottom: 0; + vertical-align: top; + } + + .date { + white-space: nowrap; + } +} + +/* ポップアップ画面用 */ + +body#popup { + width: 100%; +} + +#popup-header { + margin-bottom: 30px; + width: 100%; + height: 35px; + background: url('../img/header/popup_back.jpg') repeat-x; + text-align: right; +} + +#popup-logo { + padding: 10px 10px 0 0; +} + +#popup-container { + margin: 0 auto; + padding: 0 20px; + width: 560px; +} + +/*以下インストールページと共通■触るべからず*/ + +#outside { + margin: 0 auto; + padding: 0; + text-align: center; + width: 100%; +} + +/*以上インストールページと共通■触るべからず*/ diff --git a/html/user_data/packages/admin/css/admin_contents.css b/html/user_data/packages/admin/css/admin_contents.css deleted file mode 100644 index f037a366c7..0000000000 --- a/html/user_data/packages/admin/css/admin_contents.css +++ /dev/null @@ -1,1610 +0,0 @@ -@charset "utf-8"; - -html { - height: 100%; -} - -body { - width: 100%; - height: 100%; - background: #fff; - font-family: "MS Pゴシック","Hiragino Maru Gothic Pro","ヒラギノ丸ゴ Pro W4",Osaka,sans-serif; - font-size: 80%; - line-height: 120%; -} - -option { - margin-right: 3px; - font-size: 100%; -} - -input, -textarea { - margin-right: 3px; -} - -select { - font-size: 100%; -} -select.top, -input.top, -textarea.top { - margin-bottom: 5px; -} - -.page_rows { - margin-bottom: 20px; -} - -hr { - display: none; -} - -h1 { - border-top: 1px solid #b3b4bd; - border-bottom: 1px solid #d9dadf; - height: 30px; - line-height: 30px; - color: #444757; - background: url('../img/contents/subtitle_back_02.jpg') repeat-x; - font-size: 130%; -} - -h1 span.title { - display: block; - padding-top: 2px; - padding-left: 20px; - background: url('../img/contents/subtitle_back.gif') no-repeat; -} - -h1 span.subtitle { - display: block; - padding-top: 2px; - padding-left: 10px; -} - -h2 { - margin: 0 0 10px 0; - padding: 5px 0; - border-bottom: 3px solid #ccc; - color: #444757; - font-size: 100%; -} - -h3 { - margin-bottom: 20px; - padding: 5px; - color : #fff; - background: #999; - font-size: 90%; -} - - -/*テーブル設定*/ -table { - margin: 0 0 20px; - border-collapse: collapse; - width: 100%; - font-size: 100%; -} - -th, -td { - padding: 5px; - border: 1px solid #ccc; -} - -th { - width: 240px; - background: url('../img/contents/table_back.png') repeat-x #f4f5f5; - font-weight: normal; - text-align: left; -} - -table.list th { - background: url('../img/contents/table_back.png') repeat-x #b4b4b4; - text-align: center; -} - -table.list th.column { - background: url('../img/contents/table_back.png') repeat-x #f4f5f5; - text-align: left; -} - -table.list .edit, -table.list .delete { - width: 10%; -} - -table.list { - width: 100%; -} - -table.list th.left { - text-align: left; -} - -table.list th.right { - text-align: right; -} - -table.list td.id, -table.list td.thumbnail { - text-align: center; -} - -table.list td.menu { - vertical-align: middle; - text-align: center; -} - -table.form th { - width: 240px; - text-align: left; -} - -table tr.last { - background: #ffffdf; -} - -#popup-container table th.column { - width: 200px; -} - -.contents-main .btn-area, -#popup .btn-area, -#form_edit .btn-area { - margin : 0 0 60px 0; - padding: 20px 0; - clear: both; - width: 100%; - background: #f5f5f5; - text-align: center; -} - -.contents-main .btn-area li, -#popup .btn-area li, -.btn-area li { - margin-right: 10px; - display: inline; -} - -.addnew { - margin-bottom: 20px; -} - - -/*おすすめ商品管理*/ - -table.recommend-table { - border-collapse: collapse; - font-size: 100%; - margin: 0 0 50px; - width: 100%; -} - -.recommend-product.hidden td{ - background: #C9C9C9; -} - -div.table-wrap { - margin-top: 6px; -} - -div.table-wrap div.table-img { - float: left; - padding-left: 6px; -} - -div.table-wrap div.table-detail { - float: left; - text-align: left; - padding-left: 11px; -} - -div.table-wrap div.table-detail div.detail-name { - margin-bottom: 5px; -} - -td.AlignLeft { - text-align: left; - padding-left: 11px; -} - -/*おすすめ商品検索画面*/ - -#recommend-search-results .hidden td, -#recommend-search-results .hidden th{ - background: #C9C9C9; -} - -/*通常ボタン*/ -.btn-normal, -a.btn-normal:link, -a.btn-normal:visited { - margin-right: 5px; - padding: 2px 10px; - border: solid 1px #bcbecb; - display: inline-block; - color: #444757; - background-image: url('../img/button/white-grad.png'); - background-attachment: scroll; - background-clip: border-box; - background-color: #eee; - font-weight: normal; - font-size: 90%; - text-decoration: none; - white-space: nowrap; - cursor: pointer; - - /* CSS3 radius */ - border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; -} - - -/*ツールボタン 共通部分*/ -.btn-tool-format, -a.btn-tool-format:link, -a.btn-tool-format:visited { - padding: 0 6px; - border: solid 1px #6b6d87; - display: inline-block; - color: #444757; - background: url('../img/button/white-grad03.png') repeat-x #eee; - background-origin: padding-box; - background-attachment: scroll; - background-clip: border-box; - background-color: #c9cbcb; - font-weight: bold; - font-size: 90%; - text-decoration: none; - cursor: pointer; - - /* CSS3 radius */ - border-radius: 4px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 4px; - /* Firefox radius */ - -moz-border-radius: 4px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 4px; - /* Firefox radius */ - -moz-border-radius: 4px; -} - - -/*ツールボタン コンテンツ*/ -.btn-tool, -a.btn-tool:link, -a.btn-tool:visited { - padding: 0 6px; - border: solid 1px #999; - display: inline-block; - color: #444757; - background: url('../img/button/white-grad.png') repeat-x #eee; - background-origin: padding-box; - background-attachment: scroll; - background-clip: border-box; - background-color: #c9cbcb; - font-size: 100%; - text-decoration: none; - cursor: pointer; - - /* CSS3 radius */ - border-radius: 4px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 4px; - /* Firefox radius */ - -moz-border-radius: 4px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 4px; - /* Firefox radius */ - -moz-border-radius: 4px; -} - - -/*登録する・検索するボタン*/ -.btn-action, -a.btn-action:link, -a.btn-action:visited { - padding: 5px 10px; - border: solid 1px #bcbecb; - display: inline-block; - color: #444757; - background: url('../img/button/white-grad04.png') top repeat-x #eee; - background-attachment: scroll; - background-clip: border-box; - font-weight: normal; - font-size: 80%; - text-decoration: none; - white-space: nowrap; - cursor: pointer; - - /* CSS3 radius */ - border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; -} - -/*商品を選択するボタン(2/18追加)*/ -.btn-action-m, -a.btn-action-m:link, -a.btn-action-m:visited { - padding: 3px 10px; - border: solid 1px #bcbecb; - display: inline-block; - color: #444757; - background: url('../img/button/white-grad04.png') top repeat-x #eee; - background-attachment: scroll; - background-clip: border-box; - font-weight: normal; - font-size: 90%; - text-decoration: none; - white-space: nowrap; - cursor: pointer; - - /* CSS3 radius */ - border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; - /* Safari, Chrome radius */ - -webkit-box-sizing: content-box; - -webkit-border-radius: 5px; - /* Firefox radius */ - -moz-border-radius: 5px; -} - - -/*戻るボタン*/ -.btn-action .btn-prev { - padding: 0 0 0 20px; - display: inline-block; - background: url('../img/button/ico_prev.gif') left no-repeat; - font-weight: bold; - font-size: 114%; -} - - -/*進むボタン*/ -.btn-action .btn-next { - padding: 0 20px 0 0; - display: inline-block; - background: url('../img/button/ico_next.gif') right no-repeat; - font-weight: bold; - font-size: 114%; -} - -a.btn-normal:hover, -a.btn-action:hover, -a.btn-tool:hover { - border: solid 1px #d5d7df; - color: #6d728b; -} - -a.btn-tool-format:hover { - border: solid 1px #363a47; - color: #6b728b; -} - -a.btn:active, -a.btn-normal:active { - background-image: url('../img/button/white-grad-active.png'); -} - - -/*LINK*/ -a:link, -a:visited { - color: #39c; - text-decoration: none; -} - -a:link:hover, -a[href]:hover { - color: #74badc; - text-decoration: none; -} - -.left { - text-align: left; -} - -.center { - text-align: center; -} - -.right { - text-align: right; -} - -.attention { - color: #f00; -} - - -/* ヘッダー ------------------------------------------------ */ -#errorHeader { - color: #F00; - font-weight: bold; - font-size: 12px; - background-color: #FEB; - text-align: center; - padding: 5px; -} -#header { - width: 100%; - height: 51px; - background: url('../img/header/header_back.jpg') 0 0 repeat-x; -} - -#header-contents { - width: 1030px; -} - -#logo { - padding: 12px 0 0 12px; - float: left; - width: 184px; -} - -#site-check { - float: right; - width: 820px; -} -#site-check p.info { - padding-top: 16px; - float: left; - width: 580px; - color: #fff; - font-size: 80%; -} - -#site-check ul { - padding-top: 14px; - float: right; -} - -#site-check ul li { - margin-right: 10px; - float: left; -} - - -/* ヘッダーナビ ------------------------------------------------ */ -#navi-wrap { - width: 1030px; -} -#navi { - z-index: 90; - height: 28px; - background: url('../img/header/navi_back.jpg') top left repeat-x; - font-size: 100%; - line-height: 100%; -} - -#navi li { - background: url('../img/header/navi_back_line.jpg') no-repeat right; - display: block; - float: left; - cursor: pointer; - height: 28px; - position: relative; -} - -#navi li div, -#navi li div span { - display: block; - _float: left;/*IE6対策*/ - cursor: pointer; -} - -#navi li div { - color: #2d2f39; - height: 28px; - font-weight: bold; - text-decoration: none; -} - -#navi li div span { - padding: 7px 10px; - _padding: 9px 10px 5px;/*IE6対策*/ - height: 15px; - _height: 13px;/*IE6対策*/ -} - -#navi li div:hover { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li div:hover span { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li.on div { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li.on div span { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li.sfhover div { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li.sfhover div span { - background: url('../img/header/navi_on.jpg') left 0 repeat-x; -} - -#navi li ul { - position: absolute; - top: 26px; - left: -9999px; - width: 14px; - font-weight: normal; - clear: both; -} - - -/*プルダウンメニュー 第1階層*/ -#navi li li { - display: block; - top: 2px; - width: 180px; - height: 27px; - line-height: 24px; - color: #fff; - background: url('../img/header/subnavi_bak.gif') top left no-repeat #787878; - font-weight: normal; -} - -#navi li li a, -#navi li li div { - display: block; - top: 2px; - width: 180px; - height: 27px; - line-height: 24px; - color: #fff; - background: url('../img/header/subnavi_bak.gif') top left no-repeat #787878; - font-weight: normal; -} - -#navi li li a span, -#navi li li div span { - display: block; - top: 2px; - width: 180px; - height: 27px; - line-height: 24px; - color: #fff; - background: url('../img/header/subnavi_bak.gif') top left no-repeat #787878; - font-weight: normal; -} - -#navi li li { - border: solid #888; - border-width: 0 0 1px 0; -} - -#navi li li a span, -#navi li li div span { - padding: 2px 0 0 8px; - text-indent: 8px; -} - -#navi li li a:hover, -#navi li li div:hover { - background: url('../img/header/subnavi_bak_on.gif') top left no-repeat #474747; -} - -#navi li li a:hover span, -#navi li li div:hover span { - background: #666; -} - -#navi li.on li a, -#navi li.on li a span, -#navi li li.on a, -#navi li li.on a span, -#navi li.on li div, -#navi li.on li div span, -#navi li li.on div, -#navi li li.on div span { - background: transparent; -} - -#navi li.sfhover li a, -#navi li.sfhover li a span, -#navi li li.sfhover a, -#navi li li.sfhover a span, -#navi li.sfhover li div, -#navi li.sfhover li div span, -#navi li li.sfhover div, -#navi li li.sfhover div span { - background: transparent; -} - -#navi li.sfhover li a:hover, -#navi li.sfhover li div:hover { - background: url('../img/header/subnavi_bak_on.gif') top left no-repeat #474747; -} - -#navi li li.sfhover a:hover, -#navi li li.sfhover div:hover { - background: url('../img/header/subnavi_bak_on.gif') top left no-repeat #474747; -} - - -/*プルダウンメニュー 第2階層*/ -#navi li ul.level2 { - position: absolute; - top: 27px; - left: -9999px; - width: 14px; - font-weight: normal; -} - -#navi li li li, -#navi li li a, -#navi li li li a span, -#navi li li div, -#navi li li li div span { - margin-left: 0; - display: block; - width: 180px; - top: 1px; - height: 27px; - line-height: 24px; - color: #fff; - background: #787878; - font-weight: normal; - background: url('../img/header/subnavi_bak.gif') top left no-repeat #787878; -} - -#navi li li li.sfhover div:hover, -#navi li li li.sfhover a:hover { - width: 180px; - top: 1px; - height: 27px; - color: #fff; - background: url('../img/header/ico_sub_navi.gif') no-repeat left #474747; -} - -#navi li ul ul { - margin: -28px 0 0 180px; - _margin: -28px 0 0 187px;/*IE6応急 */ -} - -#navi li.sfhover ul ul, -#navi li.sfhover ul ul ul { - left: -9999px; -} - -#navi li.sfhover ul, -#navi li li.sfhover ul, -#navi li li li.sfhover ul { - left: auto; -} - -#navi ul.level1 li.on_level2 { - background: url('../img/header/subnavi_bak_l2.gif') top left no-repeat #787878; -} - -#navi ul.level1 li.on_level2 a:hover, -#navi ul.level1 li.on_level2 div:hover { - background: url('../img/header/subnavi_bak_l2_on.gif') top left no-repeat #787878; -} - -#navi ul.level1 li.on_level2 ul.level2 li a:hover, -#navi ul.level1 li.on_level2 ul.level2 li div:hover { - background: url('../img/header/subnavi_bak_on.gif') top left no-repeat #474747; -} - -/*subnavi*/ -.subnavi a { - padding: 6px 5px 4px 5px; - display: block; - width: 140px; - color: #fff; - background-color: #666; - text-decoration: none; -} -.subnavi a:visited { - color: #fff; - text-decoration: none; -} -.subnavi a:hover { - color: #000; - background-color: #666; - text-decoration: none; -} -.subnavi_text { - padding: 0 0 0 8px; - font-size: 71%; -} -.subnavi-on a { - padding: 6px 5px 4px 5px; - display: block; - width: 140px; - color: #000; - background-color: #666; - text-decoration: none; -} -.subnavi-on a:visited { - color: #000; - text-decoration: none; -} -.subnavi-on a:hover { - color: #000; - background-color: #666; - text-decoration: none; -} -.number-on a:visited { - color: #fff; - text-decoration: none; -} -.number a:visited { - color: #fff; - text-decoration: none; -} - -#agreement { - margin: 0; - border-width: 1px; - border-color: #c0c0c0; - border-style: solid; - width: 480px; - height: 120px; - overflow: auto; - background-color : #fff; -} - - -/* ページャ */ -#contents .pager ul { - margin: 10px 0; - list-style-type: none; -} - -.pager li { - display: inline; -} - -.pager li a { - padding: 3px 5px; - border: 1px solid #999; -} - -.pager li.on a { - background: #f4f5f5; -} - -.pager li a:hover, -.pager li.on a:hover { - background: #f8f8f8; - border: 1px solid #ccc; -} - - -/* コンテンツ ------------------------------------------------ */ -* html div#container { - position: relative; - height: 100%; - min-height: 100%; -} - -body > #container { - height: auto; -} - -#container { - position: relative; - min-height: 100%; -} - -#contents { - padding: 20px 20px 100px; - width: 1000px; -} - -#footer { - margin-top: 30px; - position: fixed; - bottom: 0; - width: 100%; - height: 40px; - background: url('../img/contents/footer_back.jpg') 0 0 repeat-x; -} - -#footer-contents { - padding-top: 10px; - width: 1020px; - text-align: right; -} - -#footer #copyright { - margin-left: 20px; - float: left; - color: #fff; - font-size: 85%; - text-align: left; -} - -#footer #topagetop { - float: right; -} - - -/* ログイン ------------------------------------------------ */ -#login { - margin: 0 auto; - padding: 0; - width: 100%; - text-align: center; -} - -#login-wrap { - margin: 150px auto 0; - padding: 0; - border: 0; - text-align: left; - width: 556px; - z-index: 2; - background: url('../img/contents/admin_login_bg.jpg') center top repeat-x; - -moz-box-shadow: 0 0 5px #000;/* Firefox */ - -webkit-box-shadow: 0 0 5px #000;/* Safari and Chrome */ -} - -#login-form h1 { - margin: 46px auto 20px; - padding-left: 50px; - padding-bottom: 40px; - border: none; - float: left; - width: 140px; - height: 150px; - background: none; -} - -#input-form { - margin-top: 40px; - padding-right: 30px; - float: right; - width: 255px; -} - -#input-form p { - margin-top: 10px; - color: #fff; - font-size: 100%; -} - -#input-form .btn-tool { - margin-top: 5px; -} - -#login #copyright { - margin: 0 auto; - padding-top: 10px; - width: 556px; - color: #000000; - font-size: 80%; - text-align: left; -} - - -/* エラーメッセージ ------------------------------------------------ */ - - -/*以下インストールページと共通■触るべからず*/ - -#out-wrap { - margin: 100px auto; - width: 560px; -} - -#out-wrap .logo { - padding-bottom: 5px; - float: right; -} - -#out { - margin: 0 auto; - width: 560px; -} - -#error .out-top { - clear: both; - width: 560px; - height: 10px; - background: url('../img/contents/login_back_top.jpg') bottom left no-repeat; -} - -/*以上インストールページと共通■触るべからず*/ - - -#error .contents { - border-right: solid 1px #d9dadf; - border-left: solid 1px #d9dadf; -} - -#error .contents .message { - padding: 20px 30px; - text-align: center; -} - -#error .btn-area-top { - width: 560px; - height: 10px; - background: url('../img/contents/login_back_btn_top.jpg') left no-repeat; -} - -#error .btn-area ul { - padding: 20px 0 10px 0; - width: 560px; - background: url('../img/contents/login_back_btn_contents.jpg') top left no-repeat #f4f5f5; -} - -#error .btn-area ul li { - text-align: center; -} - -#error .btn-area-bottom { - width: 560px; - height: 10px; - background: url('../img/contents/login_back_btn_bottom.jpg') bottom left no-repeat #eeeff0; -} - - -/* 完了メッセージ ------------------------------------------------ */ -#complete { - margin: 40px 0 0 80px; - width: 560px; -} - -#complete .complete-top { - clear: both; - width: 560px; - height: 10px; - background: url('../img/contents/login_back_top.jpg') bottom left no-repeat; -} - -#complete .contents { - border-right: solid 1px #d9dadf; - border-left: solid 1px #d9dadf; -} - -#complete .contents .message { - padding: 20px 30px; - color: #b77615; - font-weight: bold; - text-align: center; -} - -#complete .btn-area-top { - width: 560px; - height: 10px; - background: url('../img/contents/login_back_btn_top.jpg') left no-repeat; -} - -#complete .btn-area ul { - margin: 0; - padding: 20px 0 10px 0; - width: 560px; - background: url('../img/contents/login_back_btn_contents.jpg') top left no-repeat #f4f5f5; - text-align: center; -} - -#complete .btn-area ul li { - margin-right: 10px; - display: inline; -} - -#complete .btn-area-bottom { - clear: both; - width: 560px; - height: 10px; - background: url('../img/contents/login_back_btn_bottom.jpg') bottom left no-repeat #eeeff0; -} - - -/* メインページ ------------------------------------------------ */ -#home-main { - margin-right: 300px; -} - -#home-main table { - width: 100%; -} - -* html #home-main table { - width: 99%; -} - -#home .shop-info { - margin: 0 0 20px; -} - -#home .shop-info td { - width: 60%; - text-align: right; -} - -#home-info { - border-left: 1px solid #ccc; - float: right; - width: 280px; -} - -.home-info-item { - margin: 0 0 15px 20px; - width: 260px; - line-height: 14px; - font-size: 85%; -} - -.home-info-item .body { - margin: 5px 0 0 0; -} - -.home-info-item .date { - background: #ddd; - padding: 5px 10px 0px; -} - -.home-info-item .title { - padding: 0 10px 5px; - background: #ddd; -} - - -/* 基本情報管理 ------------------------------------------------ */ -/* SHOPマスター */ -#maparea { - padding: 30px; - background: #FFFFFF; -} -#maparea .btn-area { - text-align: center; -} -#maps { - margin: 0 auto 1em; -} - -/* 郵便番号DB登録 */ -.basis-zip-item { - margin-bottom: 30px; -} - -.basis-zip-item.end { - margin-bottom: 60px; -} - -.basis-zip-item.info { - padding-top: 20px; -} - -.basis-zip-item p { - margin-bottom: 10px; -} - - -/* 商品管理 ------------------------------------------------ */ -#products-category-left, -#products-rank-left { - float: left; - width: 285px; - min-height: 200px; -} - -#products-category-right, -#products-rank-right { - margin-left: 285px; -} - -#products-class-list .action { - width: 100px; -} - -#contents-filemanager-tree #tree { - float: left; - min-height: 200px; -} - -#products-category-left, -#products-rank-left { - min-height: 200px; - padding: 10px; - border: 3px solid #ddd; - width: 230px; - background-color: #f3f3f3; -} - -#products-category-left li ul, -#products-rank-left li ul { - margin-left: 20px; -} - -#products-category-right .now_dir { - margin-bottom: 20px; - padding: 10px; - border: 1px solid #ccc; -} - -#products .class-payment { - padding-top: 15px; - font-size: 88%; -} -#products label { - white-space: nowrap; -} -#products .class-product-type label { - white-space: normal; -} -#products .list-info { - padding-top: 10px; - border-top: solid 1px #ccc; -} -#products .list-info .btn { - float: left; - margin-right: 20px; -} -#products .list-info p { - float: right; - color: #444757; -} - - -/* 受注管理 ------------------------------------------------ */ -/* 対応状況管理 */ -#order-status-list th.id { - width: 40px; -} - - -/* 期間別集計 ------------------------------------------------ */ -#graph-image { - margin: 0 0 20px 0; -} - - -/* デザイン管理 ------------------------------------------------ */ -/* レイアウト設定 */ -.design-layout { - table-layout: fixed; -} - -.design-layout th, -.design-layout td { - vertical-align: top; - text-align: center; -} - -#design-layout-used { - width: 525px; -} - -#design-layout-unused { - width: 175px; -} - -.design-layout #LeftNavi, -.design-layout #MainHead, -.design-layout #RightNavi { - width: 33.33%; -} - -.design-layout #TopNavi, -.design-layout #HeadNavi, -.design-layout #HeaderTopNavi, -.design-layout #LeftNavi, -.design-layout #MainHead, -.design-layout #MainFoot, -.design-layout #RightNavi, -.design-layout #BottomNavi, -.design-layout #FooterBottomNavi, -.design-layout #HeaderInternalNavi, -.design-layout #Unused { - padding-bottom: 20px; - height: 10px; /*IE6応急処置 */ -} - -.design-layout div.sort { - margin: 5px 0; - padding: 5px 2px; - border: 1px solid #000; - color: #333; - background: #eee; - font-size: 100%; -} - -.design-layout .anywherecheck { - white-space: nowrap; -} - -.placeholder { - border: 1px dashed #aaa; - height: 20px; -} - -#layout-header { - vertical-align: middle; -} - - -/* コンテンツ管理 ------------------------------------------------ */ -#contents-csv-sqltbl { - margin-bottom: 40px; -} - -/* システム設定 ------------------------------------------------ */ -/* プラグイン管理 */ -td.plugin_img { - border-width: 1px 0px 1px 1px; -} -td.plugin_info { - border-width: 1px 1px 1px 0px; -} -td.plugin_info p.description { - margin: 8px 0 10px 5px; -} - -td.plugin_info span.ec_cube_version { - font-style: italic; - font-size: 80%; -} - -td.plugin_info span.plugin_name { - font-weight: bold; -} - -td.attention_fookpoint { - background-color: #FEB; -} - -/* フォーム ------------------------------------------------ */ -div.btn, -p.remark { - margin: 0 0 20px 0; -} - -/*FORM*/ -.box3 { - width: 33px; -} -/*W3*/ - -.box6 { - width: 54px; -} -/*W6*/ - -.box10 { - width: 82px; -} -/*W10*/ - -.box20 { - width: 152px; -} -/*W20*/ - -.box25 { - width: 187px; -} -/*W25*/ - -.box30 { - width: 222px; -} -/*W30*/ - -.box33 { - width: 243px; -} -/*W33*/ - -.box35 { - width: 257px; -} -/*W35*/ - -.box40 { - width: 276px; -} -/*W40*/ - -.box45 { - width: 341px; -} -/*W45*/ - -.box50 { - width: 362px; -} -/*W50*/ - -.box52 { - width: 376px; -} -/*W52*/ - -.box54 { - width: 390px; -} -/*W54*/ - -.box60 { - width: 432px; -} -/*W60*/ - -.box65 { - width: 467px; -} -/*W65*/ - -.box68 { - width: 488px; -} -/*W68*/ - -.box76 { - width: 544px; -} -/*W76*/ - -.area40 { - width: 302px; - height: 134px; -} -/*W40×H8*/ - -.area45 { - width: 337px; - height: 290px; -} -/*W40×H20*/ - -.area46 { - width: 337px; - height: 134px; -} -/*W40×H8*/ - -.area50 { - width: 372px; - height: 82px; -} -/*W50?H4*/ - -.area55 { - width: 407px; - height: 82px; -} -/*W50?H4*/ - -.area59 { - width: 432px; - height: 134px; -} -/*W59×H8*/ - -.area60 { - width: 433px; - height: 134px; -} -/*W60?H8*/ - -.area61 { - width: 433px; - height: 82px; -} -/*W60?H4*/ - -.area65 { - width: 444px; - height: 290px; -} -/*W65×H20*/ - -.area70 { - width: 512px; - height: 186px; -} -/*W70?H12*/ - -.area75 { - width: 547px; - height: 186px; -} -/*W75?H12*/ - -.area80 { - width: 572px; - height: 134px; -} -/*W80×H8*/ - -.area90 { - width: 650px; - height: 420px; -} - -.area96 { - width: 694px; - height: 420px; -} -/*W80×H30*/ - -.area96_2 { - width: 694px; - height: 160px; -} -/*W80×H10*/ - -.area99 { - width: 715px; - height: 523px; -} -/*W99?H40*/ - -/*COLOR*/ -.red { - color: #f00; -} - - -/*FONT*/ -.bold { - font-weight: bold; -} - - -/* フロート解除 */ -.clearfix:after { - display: block; - clear: both; - height: 0; - line-height: 0; - visibility: hidden; - content: "."; -} - - -/* 権限 */ -x-dummy, -.authority_1 #navi-basis-masterdata, -.authority_1 #navi-contents-file, -.authority_1 #navi-design-bloc, -.authority_1 #navi-design-template, -.authority_1 #navi-design-add, -.authority_1 #navi-system, -.authority_1 #navi-ownersstore { - /* display: none; --- IE で不具合 */ - border: none; - width: 0; - height: 0; - overflow: hidden; - visibility: hidden; -} - - -/* DnD並び替え系の設定 */ -tr.movingHandle td { - background-color: #eee; -} - - -/* ハンドルの設定 */ -.dragHandle { - font-weight: bold; - text-align: center; - cursor: n-resize; -} - - -/* アクティブハンドルの設定 */ -.activeHandle { - color: #f9a406; -} - - -table.layout, -table.layout th, -table.layout td { - margin: 0; - padding: 0; - border: none; - width: auto; - vertical-align: top; -} - - -/* ログ表示用 */ -.log td { - padding-top: 0; - padding-bottom: 0; - vertical-align: top; -} - -.log .date { - white-space: nowrap; -} - - -/* ポップアップ画面用 */ -body#popup { - width: 100%; -} - -#popup-header { - margin-bottom: 30px; - width: 100%; - height: 35px; - background: url('../img/header/popup_back.jpg') repeat-x; - text-align: right; -} - -#popup-logo { - padding: 10px 10px 0 0; -} - -#popup-container { - margin: 0 auto; - padding: 0 20px; - width: 560px; -} - - -/*以下インストールページと共通■触るべからず*/ - -#outside { - margin: 0 auto; - padding: 0; - text-align: center; - width: 100%; -} - -/*以上インストールページと共通■触るべからず*/ diff --git a/html/user_data/packages/admin/css/admin_file_manager.css b/html/user_data/packages/admin/css/admin_file_manager.css deleted file mode 100644 index 0434dcfbd8..0000000000 --- a/html/user_data/packages/admin/css/admin_file_manager.css +++ /dev/null @@ -1,35 +0,0 @@ -#contents-filemanager-tree { - float: left; - height: 430px; -} -#contents-filemanager-right { - width: 720px; - float: right; -} - -#tree { - width: 230px; - border: 3px solid #ddd; - padding: 10px; - background-color: #F3F3F3; -} -#contents-filemanager-nowdir { - margin: 0 0 20px 0; -} -#file_view { - overflow: auto; -} -#file_view td.file-name { - cursor: pointer; -} -#now_dir { - height: 20px; - width: 300px; - padding-left: 3px; - margin: 0 0 10px 0; - overflow: hidden; - background-color : #FFFFFF; - border-style: solid; - border-color: #C0C0C0; - border-width: 1px -} diff --git a/html/user_data/packages/admin/css/reset.css b/html/user_data/packages/admin/css/reset.css deleted file mode 100644 index 0e974c9bcc..0000000000 --- a/html/user_data/packages/admin/css/reset.css +++ /dev/null @@ -1,99 +0,0 @@ -@charset "utf-8"; - -/************************************************ - ブラウザリセット -************************************************ */ -html, -body, -div, -span, -applet, -object, -iframe, -h1, -h2, -h3, -h4, -h5, -h6, -p, -blockquote, -pre, -a, -abbr, -acronym, -address, -big, -cite, -code, -del, -dfn, -em, -font, -img, -ins, -kbd, -q, -s, -samp, -small, -strike, -strong, -sub, -sup, -tt, -var, -dl, -dt, -dd, -ol, -ul, -li, -fieldset, -form, -label, -legend, -table, -caption, -tbody, -tfoot, -thead, -tr, -th, -td { - margin: 0; - padding: 0; - border: 0; -} - -table, -caption, -th, -td { - margin: 0; - padding: 0; - border: 0; - border-collapse : collapse ; - border-spacing: 0px; - empty-cells: show; - text-align: left; - font-weight: normal; -} - -a img, -iframe { - border: none; -} -ol, -ul, -li { - list-style: none; -} - -input, -textarea, -select, -button { - font-size: 100%; - font-family: inherit; -} diff --git a/package.json b/package.json index beda93c7e8..a9f20820e0 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "slick-carousel": "^1.8.1", "style-loader": "^4.0.0", "url-loader": "^4.1.1", - "webpack": "^5.95.0" + "webpack": "^5.97.1" }, "devDependencies": { "@babel/core": "^7.26.0", @@ -37,7 +37,7 @@ "eslint-plugin-import": "^2.31.0", "expose-loader": "^5.0.0", "tar": "^7.4.3", - "typescript": "^5.6.3", + "typescript": "^5.7.2", "webpack-cli": "^5.1.4", "zaproxy": "^1.0.1" }, diff --git a/phpstan.neon.dist b/phpstan.neon.dist index fedf1b2161..b3f856b60f 100644 --- a/phpstan.neon.dist +++ b/phpstan.neon.dist @@ -19,16 +19,9 @@ parameters: message: "#^Call to an undefined static method PEAR\\:\\:raiseError\\(\\)\\.$#" paths: - data/module/HTTP/Request.php - - data/module/Net/SMTP.php - data/module/Calendar/Calendar.php - data/module/Calendar/Decorator.php - data/module/Calendar/Factory.php - - - message: "#^Call to an undefined method Net_Socket\\:\\:raiseError\\(\\)\\.$#" - path: data/module/Net/Socket.php - - - message: "#^Call to static method factory\\(\\) on an unknown class Auth_SASL\\.$#" - path: data/module/Net/SMTP.php - message: "#^Call to static method dayOfWeek\\(\\) on an unknown class Date_Calc\\.#" path: data/module/Calendar/Util/Textual.php @@ -38,9 +31,6 @@ parameters: - message: "#^Variable \\$SJIS_widths might not be defined\\.$#" path: data/class/helper/SC_Helper_FPDI.php - - - message: '#^Path in include_once\(\) "Auth/SASL.php" is not a file or it does not exist.#' - path: data/module/Net/SMTP.php - message: '#^Path in require_once\(\) ".*\.php" is not a file or it does not exist\.$#' paths: diff --git a/yarn.lock b/yarn.lock index 611be1bf87..5312d922f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -990,7 +990,23 @@ dependencies: date-fns "*" -"@types/estree@^1.0.5": +"@types/eslint-scope@^3.7.7": + version "3.7.7" + resolved "https://registry.yarnpkg.com/@types/eslint-scope/-/eslint-scope-3.7.7.tgz#3108bd5f18b0cdb277c867b3dd449c9ed7079ac5" + integrity sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg== + dependencies: + "@types/eslint" "*" + "@types/estree" "*" + +"@types/eslint@*": + version "9.6.1" + resolved "https://registry.yarnpkg.com/@types/eslint/-/eslint-9.6.1.tgz#d5795ad732ce81715f27f75da913004a56751584" + integrity sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag== + dependencies: + "@types/estree" "*" + "@types/json-schema" "*" + +"@types/estree@*", "@types/estree@^1.0.6": version "1.0.6" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== @@ -1002,7 +1018,7 @@ dependencies: faker "*" -"@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -1121,125 +1137,125 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" - integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== +"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" + integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== dependencies: - "@webassemblyjs/helper-numbers" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" + "@webassemblyjs/helper-numbers" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" -"@webassemblyjs/floating-point-hex-parser@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz#dacbcb95aff135c8260f77fa3b4c5fea600a6431" - integrity sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw== +"@webassemblyjs/floating-point-hex-parser@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz#fcca1eeddb1cc4e7b6eed4fc7956d6813b21b9fb" + integrity sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA== -"@webassemblyjs/helper-api-error@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" - integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== +"@webassemblyjs/helper-api-error@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz#e0a16152248bc38daee76dd7e21f15c5ef3ab1e7" + integrity sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ== -"@webassemblyjs/helper-buffer@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" - integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== +"@webassemblyjs/helper-buffer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz#822a9bc603166531f7d5df84e67b5bf99b72b96b" + integrity sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA== -"@webassemblyjs/helper-numbers@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz#cbce5e7e0c1bd32cf4905ae444ef64cea919f1b5" - integrity sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g== +"@webassemblyjs/helper-numbers@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz#dbd932548e7119f4b8a7877fd5a8d20e63490b2d" + integrity sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA== dependencies: - "@webassemblyjs/floating-point-hex-parser" "1.11.6" - "@webassemblyjs/helper-api-error" "1.11.6" + "@webassemblyjs/floating-point-hex-parser" "1.13.2" + "@webassemblyjs/helper-api-error" "1.13.2" "@xtuc/long" "4.2.2" -"@webassemblyjs/helper-wasm-bytecode@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" - integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== +"@webassemblyjs/helper-wasm-bytecode@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz#e556108758f448aae84c850e593ce18a0eb31e0b" + integrity sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA== -"@webassemblyjs/helper-wasm-section@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" - integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== +"@webassemblyjs/helper-wasm-section@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz#9629dda9c4430eab54b591053d6dc6f3ba050348" + integrity sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw== dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/wasm-gen" "1.14.1" -"@webassemblyjs/ieee754@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz#bb665c91d0b14fffceb0e38298c329af043c6e3a" - integrity sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg== +"@webassemblyjs/ieee754@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz#1c5eaace1d606ada2c7fd7045ea9356c59ee0dba" + integrity sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.11.6.tgz#70e60e5e82f9ac81118bc25381a0b283893240d7" - integrity sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ== +"@webassemblyjs/leb128@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.13.2.tgz#57c5c3deb0105d02ce25fa3fd74f4ebc9fd0bbb0" + integrity sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.11.6": - version "1.11.6" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" - integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== - -"@webassemblyjs/wasm-edit@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" - integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-opt" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - "@webassemblyjs/wast-printer" "1.12.1" - -"@webassemblyjs/wasm-gen@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" - integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wasm-opt@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" - integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-buffer" "1.12.1" - "@webassemblyjs/wasm-gen" "1.12.1" - "@webassemblyjs/wasm-parser" "1.12.1" - -"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" - integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== - dependencies: - "@webassemblyjs/ast" "1.12.1" - "@webassemblyjs/helper-api-error" "1.11.6" - "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/ieee754" "1.11.6" - "@webassemblyjs/leb128" "1.11.6" - "@webassemblyjs/utf8" "1.11.6" - -"@webassemblyjs/wast-printer@1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" - integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== - dependencies: - "@webassemblyjs/ast" "1.12.1" +"@webassemblyjs/utf8@1.13.2": + version "1.13.2" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.13.2.tgz#917a20e93f71ad5602966c2d685ae0c6c21f60f1" + integrity sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ== + +"@webassemblyjs/wasm-edit@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz#ac6689f502219b59198ddec42dcd496b1004d597" + integrity sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/helper-wasm-section" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-opt" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + "@webassemblyjs/wast-printer" "1.14.1" + +"@webassemblyjs/wasm-gen@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz#991e7f0c090cb0bb62bbac882076e3d219da9570" + integrity sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wasm-opt@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz#e6f71ed7ccae46781c206017d3c14c50efa8106b" + integrity sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-buffer" "1.14.1" + "@webassemblyjs/wasm-gen" "1.14.1" + "@webassemblyjs/wasm-parser" "1.14.1" + +"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz#b3e13f1893605ca78b52c68e54cf6a865f90b9fb" + integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== + dependencies: + "@webassemblyjs/ast" "1.14.1" + "@webassemblyjs/helper-api-error" "1.13.2" + "@webassemblyjs/helper-wasm-bytecode" "1.13.2" + "@webassemblyjs/ieee754" "1.13.2" + "@webassemblyjs/leb128" "1.13.2" + "@webassemblyjs/utf8" "1.13.2" + +"@webassemblyjs/wast-printer@1.14.1": + version "1.14.1" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz#3bb3e9638a8ae5fdaf9610e7a06b4d9f9aa6fe07" + integrity sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw== + dependencies: + "@webassemblyjs/ast" "1.14.1" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^2.1.1": @@ -1267,20 +1283,15 @@ resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== -acorn-import-attributes@^1.9.5: - version "1.9.5" - resolved "https://registry.yarnpkg.com/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz#7eb1557b1ba05ef18b5ed0ec67591bfab04688ef" - integrity sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ== - acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.7.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.13.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.13.0.tgz#2a30d670818ad16ddd6a35d3842dacec9e5d7ca3" - integrity sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w== +acorn@^8.14.0, acorn@^8.8.2, acorn@^8.9.0: + version "8.14.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.0.tgz#063e2c70cac5fb4f6467f0b11152e04c682795b0" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== ajv-formats@^2.1.1: version "2.1.1" @@ -1543,7 +1554,7 @@ browser-sync-webpack-plugin@^2.3.0: dependencies: lodash "^4" -browserslist@^4.21.10, browserslist@^4.23.3, browserslist@^4.24.0: +browserslist@^4.23.3, browserslist@^4.24.0: version "4.24.2" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.2.tgz#f5845bc91069dbd55ee89faf9822e1d885d16580" integrity sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg== @@ -3928,10 +3939,10 @@ typed-array-length@^1.0.6: is-typed-array "^1.1.13" possible-typed-array-names "^1.0.0" -typescript@^5.6.3: - version "5.6.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.3.tgz#5f3449e31c9d94febb17de03cc081dd56d81db5b" - integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== +typescript@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6" + integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg== unbox-primitive@^1.0.2: version "1.0.2" @@ -4055,18 +4066,18 @@ webpack-sources@^3.2.3: resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.95.0: - version "5.95.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.95.0.tgz#8fd8c454fa60dad186fbe36c400a55848307b4c0" - integrity sha512-2t3XstrKULz41MNMBF+cJ97TyHdyQ8HCt//pqErqDvNjU9YQBnZxIHa11VXsi7F3mb5/aO2tuDxdeTPdU7xu9Q== - dependencies: - "@types/estree" "^1.0.5" - "@webassemblyjs/ast" "^1.12.1" - "@webassemblyjs/wasm-edit" "^1.12.1" - "@webassemblyjs/wasm-parser" "^1.12.1" - acorn "^8.7.1" - acorn-import-attributes "^1.9.5" - browserslist "^4.21.10" +webpack@^5.97.1: + version "5.97.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.97.1.tgz#972a8320a438b56ff0f1d94ade9e82eac155fa58" + integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== + dependencies: + "@types/eslint-scope" "^3.7.7" + "@types/estree" "^1.0.6" + "@webassemblyjs/ast" "^1.14.1" + "@webassemblyjs/wasm-edit" "^1.14.1" + "@webassemblyjs/wasm-parser" "^1.14.1" + acorn "^8.14.0" + browserslist "^4.24.0" chrome-trace-event "^1.0.2" enhanced-resolve "^5.17.1" es-module-lexer "^1.2.1"