From 14a65e8678fed1f7dda6e2b22c65ce334b94b764 Mon Sep 17 00:00:00 2001 From: Darwin Correa Date: Mon, 7 Sep 2015 19:58:52 -0500 Subject: [PATCH 1/2] update ui, version complete ui redesign, elimination of some dependencies --- .gitignore | 3 +- bower.json | 16 +- filemanager/ajax_calls.php | 983 +- filemanager/config/config.php | 645 +- filemanager/dialog.php | 2082 +-- filemanager/fonts/metro.eot | Bin 0 -> 98248 bytes filemanager/fonts/metro.svg | 482 + filemanager/fonts/metro.ttf | Bin 0 -> 98092 bytes filemanager/fonts/metro.woff | Bin 0 -> 98168 bytes filemanager/lang/en_EN.php | 193 +- filemanager/plugin.min.js | 1 + gulpfile.js | 125 +- nbproject/project.properties | 9 + nbproject/project.xml | 9 + package.json | 6 +- resources/assets/css/metro.css | 10731 ++++++++++++++++ resources/assets/js/custom.js | 213 + resources/assets/js/include.js | 3872 +++--- resources/assets/js/metro.js | 796 ++ resources/assets/less/style.less | 2001 +-- source/source.txt | 2 +- .../responsivefilemanager/plugin.min.js | 1 + 22 files changed, 17334 insertions(+), 4836 deletions(-) mode change 100755 => 100644 filemanager/ajax_calls.php mode change 100755 => 100644 filemanager/config/config.php mode change 100755 => 100644 filemanager/dialog.php create mode 100644 filemanager/fonts/metro.eot create mode 100644 filemanager/fonts/metro.svg create mode 100644 filemanager/fonts/metro.ttf create mode 100644 filemanager/fonts/metro.woff mode change 100755 => 100644 filemanager/lang/en_EN.php create mode 100644 filemanager/plugin.min.js create mode 100644 nbproject/project.properties create mode 100644 nbproject/project.xml create mode 100644 resources/assets/css/metro.css create mode 100644 resources/assets/js/custom.js mode change 100755 => 100644 resources/assets/js/include.js create mode 100644 resources/assets/js/metro.js mode change 100755 => 100644 resources/assets/less/style.less mode change 100755 => 100644 source/source.txt create mode 100644 tinymce/plugins/responsivefilemanager/plugin.min.js diff --git a/.gitignore b/.gitignore index 5c1561b7..d7da868b 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,5 @@ node_modules #Exclude compiled scripts and styles from repository filemanager/js/* filemanager/css/* -resources/tmp/* \ No newline at end of file +resources/tmp/* +/nbproject/private/ \ No newline at end of file diff --git a/bower.json b/bower.json index 42f54447..6ddb48da 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "ResponsiveFilemanager", - "version": "9.9.0", + "version": "9.9.7", "homepage": "http://www.responsivefilemanager.com/", "authors": [ "tr1pp0 " @@ -15,16 +15,11 @@ ], "dependencies": { "jquery": "1.9.1", - "jquery_lazyload": "git@github.com:tuupola/jquery_lazyload.git", - "jquery-scrollstop": "git@github.com:ssorallen/jquery-scrollstop.git", - "jQuery-contextMenu": "~1.6.6", - "bootbox.js": "git@github.com:makeusabrew/bootbox.git#3.3.0", + "jquery_lazyload": "git@github.com:tuupola/jquery_lazyload.git", + "jQuery-contextMenu": "~1.6.6", "jquery-touchswipe": "~1.6.8", "dropzone": "~4.0.1", - "zeroclipboard": "2.1.6", - "bootstrap": "2.3.1", - "bootstrap-modal": "~2.2.5", - "bootstrap-lightbox": "git@github.com:jbutz/bootstrap-lightbox.git#0.6.0", + "zeroclipboard": "2.1.6", "jquery-ui": "1.10.4", "jqueryui-touch-punch": "*", "jPlayer": "git@github.com:happyworm/jPlayer.git#2.4.0", @@ -32,7 +27,6 @@ "viewerjs": "~0.5.5" }, "resolutions": { - "jquery": "1.9.1", - "bootstrap": "2.3.1" + "jquery": "1.9.1" } } diff --git a/filemanager/ajax_calls.php b/filemanager/ajax_calls.php old mode 100755 new mode 100644 index 9f3fe755..5bae7f1f --- a/filemanager/ajax_calls.php +++ b/filemanager/ajax_calls.php @@ -1,575 +1,478 @@ send(); - exit; +if ($_SESSION['RF']["verify"] != "RESPONSIVEfilemanager") { + response('forbiden', 403)->send(); + exit; } -if (isset($_SESSION['RF']['language_file']) && file_exists($_SESSION['RF']['language_file'])) -{ - include $_SESSION['RF']['language_file']; -} -else -{ - response('Language file is missing!', 500)->send(); - exit; +if (isset($_SESSION['RF']['language_file']) && file_exists($_SESSION['RF']['language_file'])) { + include $_SESSION['RF']['language_file']; +} else { + response('Language file is missing!', 500)->send(); + exit; } -if(isset($_GET['action'])) -{ - switch($_GET['action']) - { - case 'view': - if(isset($_GET['type'])) - { - $_SESSION['RF']["view_type"] = $_GET['type']; - } - else - { - response('view type number missing', 400)->send(); - exit; - } - break; - case 'filter': - if (isset($_GET['type'])) - { - if (isset($remember_text_filter) && $remember_text_filter) - { - $_SESSION['RF']["filter"] = $_GET['type']; - } - } - else { - response('view type number missing', 400); - exit; - } - break; - case 'sort': - if (isset($_GET['sort_by'])) - { - $_SESSION['RF']["sort_by"] = $_GET['sort_by']; - } - - if (isset($_GET['descending'])) - { - $_SESSION['RF']["descending"] = $_GET['descending'] === "TRUE"; - } - break; - case 'image_size': // not used - $pos = strpos($_POST['path'], $upload_dir); - if ($pos !== false) - { - $info = getimagesize(substr_replace($_POST['path'], $current_path, $pos, strlen($upload_dir))); - response($info)->send(); - exit; - } - break; - case 'save_img': - $info = pathinfo($_POST['name']); - - if ( - strpos($_POST['path'], '/') === 0 - || strpos($_POST['path'], '../') !== false - || strpos($_POST['path'], './') === 0 - || (strpos($_POST['url'], 'http://s3.amazonaws.com/feather') !== 0 - && strpos($_POST['url'], 'https://s3.amazonaws.com/feather') !== 0) - || $_POST['name'] != fix_filename($_POST['name'], $transliteration, $convert_spaces, $replace_with) - || ! in_array(strtolower($info['extension']), array( 'jpg', 'jpeg', 'png' )) - ) - { - response('wrong data', 400)->send(); - exit; - } - $image_data = file_get_contents($_POST['url']); - if ($image_data === false) - { - response(trans('Aviary_No_Save'), 400)->send(); - exit; - } - require_once('include/php_image_magician.php'); - $magicianObj = new imageLib($_POST['url']); - $magicianObj->saveImage($current_path . $_POST['path'] . $_POST['name']); - create_img($current_path . $_POST['path'] . $_POST['name'], $thumbs_base_path.$_POST['path'].$_POST['name'], 122, 91); - // TODO something with this function cause its blowing my mind - new_thumbnails_creation( - $current_path.$_POST['path'], - $current_path.$_POST['path'].$_POST['name'], - $_POST['name'], - $current_path, - $relative_image_creation, - $relative_path_from_current_pos, - $relative_image_creation_name_to_prepend, - $relative_image_creation_name_to_append, - $relative_image_creation_width, - $relative_image_creation_height, - $relative_image_creation_option, - $fixed_image_creation, - $fixed_path_from_filemanager, - $fixed_image_creation_name_to_prepend, - $fixed_image_creation_to_append, - $fixed_image_creation_width, - $fixed_image_creation_height, - $fixed_image_creation_option - ); - break; - case 'extract': - if (strpos($_POST['path'], '/') === 0 || strpos($_POST['path'], '../') !== false || strpos($_POST['path'], './') === 0) - { - response('wrong path', 400)->send(); - exit; - } - - $path = $current_path . $_POST['path']; - $info = pathinfo($path); - $base_folder = $current_path . fix_dirname($_POST['path']) . "/"; - - switch ($info['extension']) - { - case "zip": - $zip = new ZipArchive; - if ($zip->open($path) === true) - { - //make all the folders - for ($i = 0; $i < $zip->numFiles; $i++) - { - $OnlyFileName = $zip->getNameIndex($i); - $FullFileName = $zip->statIndex($i); - if (substr($FullFileName['name'], -1, 1) == "/") - { - create_folder($base_folder . $FullFileName['name']); - } - } - //unzip into the folders - for ($i = 0; $i < $zip->numFiles; $i++) - { - $OnlyFileName = $zip->getNameIndex($i); - $FullFileName = $zip->statIndex($i); - - if ( ! (substr($FullFileName['name'], -1, 1) == "/")) - { - $fileinfo = pathinfo($OnlyFileName); - if (in_array(strtolower($fileinfo['extension']), $ext)) - { - copy('zip://' . $path . '#' . $OnlyFileName, $base_folder . $FullFileName['name']); - } - } - } - $zip->close(); - } - else - { - response(trans('Zip_No_Extract'), 500)->send(); - exit; - } - - break; - - case "gz": - $p = new PharData($path); - $p->decompress(); // creates files.tar - - break; - - case "tar": - // unarchive from the tar - $phar = new PharData($path); - $phar->decompressFiles(); - $files = array(); - check_files_extensions_on_phar($phar, $files, '', $ext); - $phar->extractTo($current_path . fix_dirname($_POST['path']) . "/", $files, true); - - break; - - default: - response(trans('Zip_Invalid'), 400)->send(); - exit; - } - break; - case 'media_preview': - $preview_file = $current_path . $_GET["file"]; - $info = pathinfo($preview_file); - ob_start(); - ?> - - - - - - - - - - send(); - exit; - - break; - case 'copy_cut': - if ($_POST['sub_action'] != 'copy' && $_POST['sub_action'] != 'cut') - { - response('wrong sub-action', 400)->send(); - exit; - } - - if (trim($_POST['path']) == '') - { - response('no path', 400)->send(); - exit; - } - - $path = $current_path . $_POST['path']; - - if (is_dir($path)) - { - // can't copy/cut dirs - if ($copy_cut_dirs === false) - { - response(sprintf(trans('Copy_Cut_Not_Allowed'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), trans('Folders')), 403)->send(); - exit; - } - - // size over limit - if ($copy_cut_max_size !== false && is_int($copy_cut_max_size)) - { - if (($copy_cut_max_size * 1024 * 1024) < foldersize($path)) - { - response(sprintf(trans('Copy_Cut_Size_Limit'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), $copy_cut_max_size), 400)->send(); - exit; - } - } - - // file count over limit - if ($copy_cut_max_count !== false && is_int($copy_cut_max_count)) - { - if ($copy_cut_max_count < filescount($path)) - { - response(sprintf(trans('Copy_Cut_Count_Limit'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), $copy_cut_max_count), 400)->send(); - exit; - } - } - } - else - { - // can't copy/cut files - if ($copy_cut_files === false) - { - response(sprintf(trans('Copy_Cut_Not_Allowed'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), trans('Files')), 403)->send(); - exit; - } - } - - $_SESSION['RF']['clipboard']['path'] = $_POST['path']; - $_SESSION['RF']['clipboard_action'] = $_POST['sub_action']; - break; - case 'clear_clipboard': - $_SESSION['RF']['clipboard'] = null; - $_SESSION['RF']['clipboard_action'] = null; - break; - case 'chmod': - $path = $current_path . $_POST['path']; - if ( - (is_dir($path) && $chmod_dirs === false) - || (is_file($path) && $chmod_files === false) - || (is_function_callable("chmod") === false) ) - { - response(sprintf(trans('File_Permission_Not_Allowed'), (is_dir($path) ? lcfirst(trans('Folders')) : lcfirst(trans('Files'))), 403), 400)->send(); - exit; - } - else - { - $perm = decoct(fileperms($path) & 0777); - $perm_user = substr($perm, 0, 1); - $perm_group = substr($perm, 1, 1); - $perm_all = substr($perm, 2, 1); - - $ret = '
+if (isset($_GET['action'])) { + switch ($_GET['action']) { + case 'view': + if (isset($_GET['type'])) { + $_SESSION['RF']["view_type"] = $_GET['type']; + } else { + response('view type number missing', 400)->send(); + exit; + } + break; + case 'filter': + if (isset($_GET['type'])) { + if (isset($remember_text_filter) && $remember_text_filter) { + $_SESSION['RF']["filter"] = $_GET['type']; + } + } else { + response('view type number missing', 400); + exit; + } + break; + case 'sort': + if (isset($_GET['sort_by'])) { + $_SESSION['RF']["sort_by"] = $_GET['sort_by']; + } + + if (isset($_GET['descending'])) { + $_SESSION['RF']["descending"] = $_GET['descending'] === "TRUE"; + } + break; + case 'image_size': // not used + $pos = strpos($_POST['path'], $upload_dir); + if ($pos !== false) { + $info = getimagesize(substr_replace($_POST['path'], $current_path, $pos, strlen($upload_dir))); + response($info)->send(); + exit; + } + break; + case 'save_img': + $info = pathinfo($_POST['name']); + + if ( + strpos($_POST['path'], '/') === 0 || strpos($_POST['path'], '../') !== false || strpos($_POST['path'], './') === 0 || (strpos($_POST['url'], 'http://s3.amazonaws.com/feather') !== 0 && strpos($_POST['url'], 'https://s3.amazonaws.com/feather') !== 0) || $_POST['name'] != fix_filename($_POST['name'], $transliteration, $convert_spaces, $replace_with) || !in_array(strtolower($info['extension']), array('jpg', 'jpeg', 'png')) + ) { + response('wrong data', 400)->send(); + exit; + } + $image_data = file_get_contents($_POST['url']); + if ($image_data === false) { + response(trans('Aviary_No_Save'), 400)->send(); + exit; + } + require_once('include/php_image_magician.php'); + $magicianObj = new imageLib($_POST['url']); + $magicianObj->saveImage($current_path . $_POST['path'] . $_POST['name']); + create_img($current_path . $_POST['path'] . $_POST['name'], $thumbs_base_path . $_POST['path'] . $_POST['name'], 122, 91); + // TODO something with this function cause its blowing my mind + new_thumbnails_creation( + $current_path . $_POST['path'], $current_path . $_POST['path'] . $_POST['name'], $_POST['name'], $current_path, $relative_image_creation, $relative_path_from_current_pos, $relative_image_creation_name_to_prepend, $relative_image_creation_name_to_append, $relative_image_creation_width, $relative_image_creation_height, $relative_image_creation_option, $fixed_image_creation, $fixed_path_from_filemanager, $fixed_image_creation_name_to_prepend, $fixed_image_creation_to_append, $fixed_image_creation_width, $fixed_image_creation_height, $fixed_image_creation_option + ); + break; + case 'extract': + if (strpos($_POST['path'], '/') === 0 || strpos($_POST['path'], '../') !== false || strpos($_POST['path'], './') === 0) { + response('wrong path', 400)->send(); + exit; + } + + $path = $current_path . $_POST['path']; + $info = pathinfo($path); + $base_folder = $current_path . fix_dirname($_POST['path']) . "/"; + + switch ($info['extension']) { + case "zip": + $zip = new ZipArchive; + if ($zip->open($path) === true) { + //make all the folders + for ($i = 0; $i < $zip->numFiles; $i++) { + $OnlyFileName = $zip->getNameIndex($i); + $FullFileName = $zip->statIndex($i); + if (substr($FullFileName['name'], -1, 1) == "/") { + create_folder($base_folder . $FullFileName['name']); + } + } + //unzip into the folders + for ($i = 0; $i < $zip->numFiles; $i++) { + $OnlyFileName = $zip->getNameIndex($i); + $FullFileName = $zip->statIndex($i); + + if (!(substr($FullFileName['name'], -1, 1) == "/")) { + $fileinfo = pathinfo($OnlyFileName); + if (in_array(strtolower($fileinfo['extension']), $ext)) { + copy('zip://' . $path . '#' . $OnlyFileName, $base_folder . $FullFileName['name']); + } + } + } + $zip->close(); + } else { + response(trans('Zip_No_Extract'), 500)->send(); + exit; + } + + break; + + case "gz": + $p = new PharData($path); + $p->decompress(); // creates files.tar + + break; + + case "tar": + // unarchive from the tar + $phar = new PharData($path); + $phar->decompressFiles(); + $files = array(); + check_files_extensions_on_phar($phar, $files, '', $ext); + $phar->extractTo($current_path . fix_dirname($_POST['path']) . "/", $files, true); + + break; + + default: + response(trans('Zip_Invalid'), 400)->send(); + exit; + } + break; + case 'media_preview': + $preview_file = $current_path . $_GET["file"]; + $info = pathinfo($preview_file); + ob_start(); + ?> + + + + + + + + + + send(); + exit; + + break; + case 'copy_cut': + if ($_POST['sub_action'] != 'copy' && $_POST['sub_action'] != 'cut') { + response('wrong sub-action', 400)->send(); + exit; + } + + if (trim($_POST['path']) == '') { + response('no path', 400)->send(); + exit; + } + + $path = $current_path . $_POST['path']; + + if (is_dir($path)) { + // can't copy/cut dirs + if ($copy_cut_dirs === false) { + response(sprintf(trans('Copy_Cut_Not_Allowed'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), trans('Folders')), 403)->send(); + exit; + } + + // size over limit + if ($copy_cut_max_size !== false && is_int($copy_cut_max_size)) { + if (($copy_cut_max_size * 1024 * 1024) < foldersize($path)) { + response(sprintf(trans('Copy_Cut_Size_Limit'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), $copy_cut_max_size), 400)->send(); + exit; + } + } + + // file count over limit + if ($copy_cut_max_count !== false && is_int($copy_cut_max_count)) { + if ($copy_cut_max_count < filescount($path)) { + response(sprintf(trans('Copy_Cut_Count_Limit'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), $copy_cut_max_count), 400)->send(); + exit; + } + } + } else { + // can't copy/cut files + if ($copy_cut_files === false) { + response(sprintf(trans('Copy_Cut_Not_Allowed'), ($_POST['sub_action'] == 'copy' ? lcfirst(trans('Copy')) : lcfirst(trans('Cut'))), trans('Files')), 403)->send(); + exit; + } + } + + $_SESSION['RF']['clipboard']['path'] = $_POST['path']; + $_SESSION['RF']['clipboard_action'] = $_POST['sub_action']; + break; + case 'clear_clipboard': + $_SESSION['RF']['clipboard'] = null; + $_SESSION['RF']['clipboard_action'] = null; + break; + case 'chmod': + $path = $current_path . $_POST['path']; + if ( + (is_dir($path) && $chmod_dirs === false) || (is_file($path) && $chmod_files === false) || (is_function_callable("chmod") === false)) { + response(sprintf(trans('File_Permission_Not_Allowed'), (is_dir($path) ? lcfirst(trans('Folders')) : lcfirst(trans('Files'))), 403), 400)->send(); + exit; + } else { + $perm = decoct(fileperms($path) & 0777); + $perm_user = substr($perm, 0, 1); + $perm_group = substr($perm, 1, 1); + $perm_all = substr($perm, 2, 1); + + $ret = '
- +
- - - + + + - - - - + + + + - - - - + + + + - - - - + + + + - +
r  w  x  rwx
'.trans('User').' ' . trans('User') . '
'.trans('Group').' ' . trans('Group') . '
'.trans('All').' ' . trans('All') . '
'; - if (is_dir($path)) - { - $ret .= '
'.trans('File_Permission_Recursive').'

+ if (is_dir($path)) { + $ret .= '
' . trans('File_Permission_Recursive') . '

    -
  • -
  • -
  • -
  • +
  • +
  • +
  • +
'; - } - - $ret .= '
'; - - response($ret)->send(); - exit; - } - break; - case 'get_lang': - if ( ! file_exists('lang/languages.php')) - { - response(trans('Lang_Not_Found'), 404)->send(); - exit; - } - - $languages = include 'lang/languages.php'; - if ( ! isset($languages) || ! is_array($languages)) - { - response(trans('Lang_Not_Found'), 404)->send(); - exit; - } - - $curr = $_SESSION['RF']['language']; - - $ret = ''; - - response($ret)->send(); - exit; - - break; - case 'change_lang': - $choosen_lang = $_POST['choosen_lang']; - - if ( ! file_exists('lang/' . $choosen_lang . '.php')) - { - response(trans('Lang_Not_Found'), 404)->send(); - exit; - } - - $_SESSION['RF']['language'] = $choosen_lang; - $_SESSION['RF']['language_file'] = 'lang/' . $choosen_lang . '.php'; - - break; - case 'get_file': // preview or edit - $sub_action = $_GET['sub_action']; - $preview_mode = $_GET["preview_mode"]; - - if ($sub_action != 'preview' && $sub_action != 'edit') - { - response("wrong action")->send(); - exit; - } - - $selected_file = ($sub_action == 'preview' ? $current_path . $_GET['file'] : $current_path . $_POST['path']); - $info = pathinfo($selected_file); - - if ( ! file_exists($selected_file)) - { - response(trans('File_Not_Found'), 404)->send(); - exit; - } - - if ($preview_mode == 'text') - { - $is_allowed = ($sub_action == 'preview' ? $preview_text_files : $edit_text_files); - $allowed_file_exts = ($sub_action == 'preview' ? $previewable_text_file_exts : $editable_text_file_exts); - } - elseif ($preview_mode == 'viewerjs') - { - $is_allowed = $viewerjs_enabled; - $allowed_file_exts = $viewerjs_file_exts; - } - elseif ($preview_mode == 'google') - { - $is_allowed = $googledoc_enabled; - $allowed_file_exts = $googledoc_file_exts; - } - - if ( ! isset($allowed_file_exts) || ! is_array($allowed_file_exts)) - { - $allowed_file_exts = array(); - } - - if ( ! in_array($info['extension'], $allowed_file_exts) - || ! isset($is_allowed) - || $is_allowed === false - || ! is_readable($selected_file) - ) - { - response(sprintf(trans('File_Open_Edit_Not_Allowed'), ($sub_action == 'preview' ? strtolower(trans('Open')) : strtolower(trans('Edit')))), 403)->send(); - exit; - } - - if ($sub_action == 'preview') - { - if ($preview_mode == 'text') - { - // get and sanities - $data = stripslashes(htmlspecialchars(file_get_contents($selected_file))); - - $ret = ''; - - if ( ! in_array($info['extension'],$previewable_text_file_exts_no_prettify)) - { - $ret .= ''; - $ret .= '
'.$info['basename'].'
'.$data.'
'; - } - else - { - $ret .= '
'.$info['basename'].'
'.$data.'
'; - } - - } - elseif ($preview_mode == 'viewerjs') - { - $ret = ''; - - } - elseif ($preview_mode == 'google') - { - $url_file = $base_url . $upload_dir . str_replace($current_path, '', $_GET["file"]); - $googledoc_url = urlencode($url_file); - $googledoc_html = ""; - $ret = '
' . $info['basename'] . '
' . $googledoc_html . ''; - } - } - else - { - $data = stripslashes(htmlspecialchars(file_get_contents($selected_file))); - $ret = ''; - } - - response($ret)->send(); - exit; - - break; - default: response('no action passed', 400)->send(); - exit; + } + + $ret .= '
'; + + response($ret)->send(); + exit; + } + break; + case 'get_lang': + if (!file_exists('lang/languages.php')) { + response(trans('Lang_Not_Found'), 404)->send(); + exit; + } + + $languages = include 'lang/languages.php'; + if (!isset($languages) || !is_array($languages)) { + response(trans('Lang_Not_Found'), 404)->send(); + exit; + } + + $curr = $_SESSION['RF']['language']; + + $ret = ''; + + response($ret)->send(); + exit; + + break; + case 'change_lang': + $choosen_lang = $_POST['choosen_lang']; + + if (!file_exists('lang/' . $choosen_lang . '.php')) { + response(trans('Lang_Not_Found'), 404)->send(); + exit; + } + + $_SESSION['RF']['language'] = $choosen_lang; + $_SESSION['RF']['language_file'] = 'lang/' . $choosen_lang . '.php'; + + break; + case 'get_file': // preview or edit + $sub_action = $_GET['sub_action']; + $preview_mode = $_GET["preview_mode"]; + + if ($sub_action != 'preview' && $sub_action != 'edit') { + response("wrong action")->send(); + exit; + } + + $selected_file = ($sub_action == 'preview' ? $current_path . $_GET['file'] : $current_path . $_POST['path']); + $info = pathinfo($selected_file); + + if (!file_exists($selected_file)) { + response(trans('File_Not_Found'), 404)->send(); + exit; + } + + if ($preview_mode == 'text') { + $is_allowed = ($sub_action == 'preview' ? $preview_text_files : $edit_text_files); + $allowed_file_exts = ($sub_action == 'preview' ? $previewable_text_file_exts : $editable_text_file_exts); + } elseif ($preview_mode == 'viewerjs') { + $is_allowed = $viewerjs_enabled; + $allowed_file_exts = $viewerjs_file_exts; + } elseif ($preview_mode == 'google') { + $is_allowed = $googledoc_enabled; + $allowed_file_exts = $googledoc_file_exts; + } + + if (!isset($allowed_file_exts) || !is_array($allowed_file_exts)) { + $allowed_file_exts = array(); + } + + if (!in_array($info['extension'], $allowed_file_exts) || !isset($is_allowed) || $is_allowed === false || !is_readable($selected_file) + ) { + response(sprintf(trans('File_Open_Edit_Not_Allowed'), ($sub_action == 'preview' ? strtolower(trans('Open')) : strtolower(trans('Edit')))), 403)->send(); + exit; + } + + if ($sub_action == 'preview') { + if ($preview_mode == 'text') { + // get and sanities + $data = stripslashes(htmlspecialchars(file_get_contents($selected_file))); + + $ret = ''; + + if (!in_array($info['extension'], $previewable_text_file_exts_no_prettify)) { + //$ret .= ''; + $ret .= ''; + $ret .= '
' . $info['basename'] . '
' . $data . '
'; + } else { + $ret .= '
' . $info['basename'] . '
' . $data . '
'; + } + } elseif ($preview_mode == 'viewerjs') { + $ret = ''; + } elseif ($preview_mode == 'google') { + $url_file = $base_url . $upload_dir . str_replace($current_path, '', $_GET["file"]); + $googledoc_url = urlencode($url_file); + $googledoc_html = ""; + $ret = '
' . $info['basename'] . '
' . $googledoc_html . ''; + } + } else { + $data = stripslashes(htmlspecialchars(file_get_contents($selected_file))); + $ret = ''; + } + + response($ret)->send(); + exit; + + break; + default: response('no action passed', 400)->send(); + exit; } -} -else -{ - response('no action passed', 400)->send(); - exit; +} else { + response('no action passed', 400)->send(); + exit; } diff --git a/filemanager/config/config.php b/filemanager/config/config.php old mode 100755 new mode 100644 index 1e8638cd..db7edca5 --- a/filemanager/config/config.php +++ b/filemanager/config/config.php @@ -1,363 +1,322 @@ -| in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" -| example tinymce config: -| -| tiny init ... -| external_filemanager_path:"../filemanager/", -| filemanager_title:"Filemanager" , -| filemanager_access_key:"myPrivateKey" , -| ... -| -*/ + |-------------------------------------------------------------------------- + | Optional security + |-------------------------------------------------------------------------- + | + | if set to true only those will access RF whose url contains the access key(akey) like: + | + | in tinymce a new parameter added: filemanager_access_key:"myPrivateKey" + | example tinymce config: + | + | tiny init ... + | external_filemanager_path:"../filemanager/", + | filemanager_title:"Filemanager" , + | filemanager_access_key:"myPrivateKey" , + | ... + | + */ define('USE_ACCESS_KEYS', false); // TRUE or FALSE /* -|-------------------------------------------------------------------------- -| DON'T COPY THIS VARIABLES IN FOLDERS config.php FILES -|-------------------------------------------------------------------------- -*/ + |-------------------------------------------------------------------------- + | DON'T COPY THIS VARIABLES IN FOLDERS config.php FILES + |-------------------------------------------------------------------------- + */ /* -|-------------------------------------------------------------------------- -| Path configuration -|-------------------------------------------------------------------------- -| In this configuration the folder tree is -| root -| |- source <- upload folder -| |- thumbs <- thumbnail folder [must have write permission (755)] -| |- filemanager -| |- js -| | |- tinymce -| | | |- plugins -| | | | |- responsivefilemanager -| | | | | |- plugin.min.js -*/ + |-------------------------------------------------------------------------- + | Path configuration + |-------------------------------------------------------------------------- + | In this configuration the folder tree is + | root + | |- source <- upload folder + | |- thumbs <- thumbnail folder [must have write permission (755)] + | |- filemanager + | |- js + | | |- tinymce + | | | |- plugins + | | | | |- responsivefilemanager + | | | | | |- plugin.min.js + */ $config = array( - - /* - |-------------------------------------------------------------------------- - | DON'T TOUCH (base url (only domain) of site). - |-------------------------------------------------------------------------- - | - | without final / - | - */ - - 'base_url' => ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && ! in_array(strtolower($_SERVER['HTTPS']), array( 'off', 'no' ))) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'], - - /* - |-------------------------------------------------------------------------- - | path from base_url to base of upload folder - |-------------------------------------------------------------------------- - | - | with start and final / - | - */ - 'upload_dir' => '/source/', - - /* - |-------------------------------------------------------------------------- - | relative path from filemanager folder to upload folder - |-------------------------------------------------------------------------- - | - | with final / - | - */ - 'current_path' => '../source/', - - /* - |-------------------------------------------------------------------------- - | relative path from filemanager folder to thumbs folder - |-------------------------------------------------------------------------- - | - | with final / - | DO NOT put inside upload folder - | - */ - 'thumbs_base_path' => '../thumbs/', - - /* - |-------------------------------------------------------------------------- - | Access keys - |-------------------------------------------------------------------------- - | - | add access keys eg: array('myPrivateKey', 'someoneElseKey'); - | keys should only containt (a-z A-Z 0-9 \ . _ -) characters - | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: - | $username = 'Admin'; - | $salt = 'dsflFWR9u2xQa' (a hard coded string) - | $akey = md5($username.$salt); - | DO NOT use 'key' as access key! - | Keys are CASE SENSITIVE! - | - */ - - 'access_keys' => array(), - - //-------------------------------------------------------------------------------------------------------- - // YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS - //-------------------------------------------------------------------------------------------------------- - - /* - |-------------------------------------------------------------------------- - | Maximum upload size - |-------------------------------------------------------------------------- - | - | in Megabytes - | - */ - 'MaxSizeUpload' => 100, - - - /* - |-------------------------------------------------------------------------- - | default language file name - |-------------------------------------------------------------------------- - */ - 'default_language' => "en_EN", - - /* - |-------------------------------------------------------------------------- - | Icon theme - |-------------------------------------------------------------------------- - | - | Default available: ico and ico_dark - | Can be set to custom icon inside filemanager/img - | - */ - 'icon_theme' => "ico", - - - //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) - 'show_folder_size' => true, - //Show or not show sorting feature in filemanager - 'show_sorting_bar' => true, - //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) - 'transliteration' => false, - //convert all spaces on files name and folders name with $replace_with variable - 'convert_spaces' => false, - //convert all spaces on files name and folders name this value - 'replace_with' => "_", - - // -1: There is no lazy loading at all, 0: Always lazy-load images, 0+: The minimum number of the files in a directory - // when lazy loading should be turned on. - 'lazy_loading_file_number_threshold' => 0, - - - //******************************************* - //Images limit and resizing configuration - //******************************************* - - // set maximum pixel width and/or maximum pixel height for all images - // If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected - // if you don't need a limit set both to 0 - 'image_max_width' => 0, - 'image_max_height' => 0, - 'image_max_mode' => 'auto', - /* - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - */ - - //Automatic resizing // - // If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension - // If you set width or height to 0 the script automatically calculates the other dimension - // Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit - 'image_resizing' => false, - 'image_resizing_width' => 0, - 'image_resizing_height' => 0, - 'image_resizing_mode' => 'auto', // same as $image_max_mode - 'image_resizing_override' => false, - // If set to TRUE then you can specify bigger images than $image_max_width & height otherwise if image_resizing is - // bigger than $image_max_width or height then it will be converted to those values - - //****************** - // Default layout setting - // + /* + |-------------------------------------------------------------------------- + | DON'T TOUCH (base url (only domain) of site). + |-------------------------------------------------------------------------- + | + | without final / + | + */ + + 'base_url' => ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && !in_array(strtolower($_SERVER['HTTPS']), array('off', 'no'))) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'], + /* + |-------------------------------------------------------------------------- + | path from base_url to base of upload folder + |-------------------------------------------------------------------------- + | + | with start and final / + | + */ + 'upload_dir' => '/source/', + //'upload_dir' => '/filemanager/ResponsiveFilemanager/source/', + /* + |-------------------------------------------------------------------------- + | relative path from filemanager folder to upload folder + |-------------------------------------------------------------------------- + | + | with final / + | + */ + 'current_path' => '../source/', + /* + |-------------------------------------------------------------------------- + | relative path from filemanager folder to thumbs folder + |-------------------------------------------------------------------------- + | + | with final / + | DO NOT put inside upload folder + | + */ + 'thumbs_base_path' => '../thumbs/', + /* + |-------------------------------------------------------------------------- + | Access keys + |-------------------------------------------------------------------------- + | + | add access keys eg: array('myPrivateKey', 'someoneElseKey'); + | keys should only containt (a-z A-Z 0-9 \ . _ -) characters + | if you are integrating lets say to a cms for admins, i recommend making keys randomized something like this: + | $username = 'Admin'; + | $salt = 'dsflFWR9u2xQa' (a hard coded string) + | $akey = md5($username.$salt); + | DO NOT use 'key' as access key! + | Keys are CASE SENSITIVE! + | + */ + 'access_keys' => array(), + //-------------------------------------------------------------------------------------------------------- + // YOU CAN COPY AND CHANGE THESE VARIABLES INTO FOLDERS config.php FILES TO CUSTOMIZE EACH FOLDER OPTIONS + //-------------------------------------------------------------------------------------------------------- + + /* + |-------------------------------------------------------------------------- + | Maximum upload size + |-------------------------------------------------------------------------- + | + | in Megabytes + | + */ + 'MaxSizeUpload' => 100, + /* + |-------------------------------------------------------------------------- + | default language file name + |-------------------------------------------------------------------------- + */ + 'default_language' => "en_EN", + /* + |-------------------------------------------------------------------------- + | Icon theme + |-------------------------------------------------------------------------- + | + | Default available: ico and ico_dark + | Can be set to custom icon inside filemanager/img + | + */ + 'icon_theme' => "ico", + //Show or not show folder size in list view feature in filemanager (is possible, if there is a large folder, to greatly increase the calculations) + 'show_folder_size' => true, + //Show or not show sorting feature in filemanager + 'show_sorting_bar' => true, + //active or deactive the transliteration (mean convert all strange characters in A..Za..z0..9 characters) + 'transliteration' => false, + //convert all spaces on files name and folders name with $replace_with variable + 'convert_spaces' => false, + //convert all spaces on files name and folders name this value + 'replace_with' => "_", + // -1: There is no lazy loading at all, 0: Always lazy-load images, 0+: The minimum number of the files in a directory + // when lazy loading should be turned on. + 'lazy_loading_file_number_threshold' => 0, + //******************************************* + //Images limit and resizing configuration + //******************************************* + // set maximum pixel width and/or maximum pixel height for all images + // If you set a maximum width or height, oversized images are converted to those limits. Images smaller than the limit(s) are unaffected + // if you don't need a limit set both to 0 + 'image_max_width' => 0, + 'image_max_height' => 0, + 'image_max_mode' => 'auto', + /* + # $option: 0 / exact = defined size; + # 1 / portrait = keep aspect set height; + # 2 / landscape = keep aspect set width; + # 3 / auto = auto; + # 4 / crop= resize and crop; + */ + + //Automatic resizing // + // If you set $image_resizing to TRUE the script converts all uploaded images exactly to image_resizing_width x image_resizing_height dimension + // If you set width or height to 0 the script automatically calculates the other dimension + // Is possible that if you upload very big images the script not work to overcome this increase the php configuration of memory and time limit + 'image_resizing' => false, + 'image_resizing_width' => 0, + 'image_resizing_height' => 0, + 'image_resizing_mode' => 'auto', // same as $image_max_mode + 'image_resizing_override' => false, + // If set to TRUE then you can specify bigger images than $image_max_width & height otherwise if image_resizing is + // bigger than $image_max_width or height then it will be converted to those values + //****************** + // Default layout setting + // // 0 => boxes - // 1 => detailed list (1 column) - // 2 => columns list (multiple columns depending on the width of the page) - // YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= - // + // 1 => detailed list (1 column) + // 2 => columns list (multiple columns depending on the width of the page) + // YOU CAN ALSO PASS THIS PARAMETERS USING SESSION VAR => $_SESSION['RF']["VIEW"]= + // //****************** - 'default_view' => 0, - - //set if the filename is truncated when overflow first row - 'ellipsis_title_after_first_row' => true, - - //************************* - //Permissions configuration - //****************** - 'delete_files' => true, - 'create_folders' => true, - 'delete_folders' => true, - 'upload_files' => true, - 'rename_files' => true, - 'rename_folders' => true, - 'duplicate_files' => true, - 'copy_cut_files' => true, // for copy/cut files - 'copy_cut_dirs' => true, // for copy/cut directories - 'chmod_files' => false, // change file permissions - 'chmod_dirs' => false, // change folder permissions - 'preview_text_files' => true, // eg.: txt, log etc. - 'edit_text_files' => true, // eg.: txt, log etc. - 'create_text_files' => true, // only create files with exts. defined in $editable_text_file_exts - - // you can preview these type of files if $preview_text_files is true - 'previewable_text_file_exts' => array( 'txt', 'log', 'xml', 'html', 'css', 'htm', 'js' ), - 'previewable_text_file_exts_no_prettify' => array( 'txt', 'log' ), - - // you can edit these type of files if $edit_text_files is true (only text based files) - // you can create these type of files if $create_text_files is true (only text based files) - // if you want you can add html,css etc. - // but for security reasons it's NOT RECOMMENDED! - 'editable_text_file_exts' => array( 'txt', 'log', 'xml', 'html', 'css', 'htm', 'js' ), - - // Preview with Google Documents - 'googledoc_enabled' => true, - 'googledoc_file_exts' => array( 'doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx' ), - - // Preview with Viewer.js - 'viewerjs_enabled' => true, - 'viewerjs_file_exts' => array( 'pdf', 'odt', 'odp', 'ods' ), - - // defines size limit for paste in MB / operation - // set 'FALSE' for no limit - 'copy_cut_max_size' => 100, - // defines file count limit for paste / operation - // set 'FALSE' for no limit - 'copy_cut_max_count' => 200, - //IF any of these limits reached, operation won't start and generate warning - - //********************** - //Allowed extensions (lowercase insert) - //********************** - 'ext_img' => array( 'jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg' ), //Images - 'ext_file' => array( 'doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai' ), //Files - 'ext_video' => array( 'mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm" ), //Video - 'ext_music' => array( 'mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav' ), //Audio - 'ext_misc' => array( 'zip', 'rar', 'gz', 'tar', 'iso', 'dmg' ), //Archives - - /****************** - * AVIARY config - *******************/ - 'aviary_active' => true, - 'aviary_apiKey' => "2444282ef4344e3dacdedc7a78f8877d", - 'aviary_language' => "en", - 'aviary_theme' => "light", - 'aviary_tools' => "all", - 'aviary_maxSize' => "1400", - // Add or modify the Aviary options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed - - //The filter and sorter are managed through both javascript and php scripts because if you have a lot of - //file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. - //The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number - 'file_number_limit_js' => 500, - - //********************** - // Hidden files and folders - //********************** - // set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) - 'hidden_folders' => array(), - // set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) - 'hidden_files' => array( 'config.php' ), - - /******************* - * JAVA upload - *******************/ - 'java_upload' => true, - 'JAVAMaxSizeUpload' => 200, //Gb - - - //************************************ - //Thumbnail for external use creation - //************************************ - - - // New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) - // If you want create images resized out of upload folder for use with external script you can choose this method, - // You can create also more than one image at a time just simply add a value in the array - // Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at - // path_from_filemanager/test/test1/ - // PS if there isn't write permission in your destination folder you must set it - // - 'fixed_image_creation' => false, //activate or not the creation of one or more image resized with fixed path from filemanager folder - 'fixed_path_from_filemanager' => array( '../test/', '../test1/' ), //fixed path of the image folder from the current position on upload folder - 'fixed_image_creation_name_to_prepend' => array( '', 'test_' ), //name to prepend on filename - 'fixed_image_creation_to_append' => array( '_test', '' ), //name to appendon filename - 'fixed_image_creation_width' => array( 300, 400 ), //width of image (you can leave empty if you set height) - 'fixed_image_creation_height' => array( 200, '' ), //height of image (you can leave empty if you set width) - /* - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - */ - 'fixed_image_creation_option' => array( 'crop', 'auto' ), //set the type of the crop - - - // New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) - // With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time - // just simply add a value in the array - // The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here - // - 'relative_image_creation' => false, //activate or not the creation of one or more image resized with relative path from upload folder - 'relative_path_from_current_pos' => array( './', './' ), //relative path of the image folder from the current position on upload folder - 'relative_image_creation_name_to_prepend' => array( '', '' ), //name to prepend on filename - 'relative_image_creation_name_to_append' => array( '_thumb', '_thumb1' ), //name to append on filename - 'relative_image_creation_width' => array( 300, 400 ), //width of image (you can leave empty if you set height) - 'relative_image_creation_height' => array( 200, '' ), //height of image (you can leave empty if you set width) - /* - # $option: 0 / exact = defined size; - # 1 / portrait = keep aspect set height; - # 2 / landscape = keep aspect set width; - # 3 / auto = auto; - # 4 / crop= resize and crop; - */ - 'relative_image_creation_option' => array( 'crop', 'crop' ), //set the type of the crop - - - // Remember text filter after close filemanager for future session - 'remember_text_filter' => false, - + 'default_view' => 0, + //set if the filename is truncated when overflow first row + 'ellipsis_title_after_first_row' => true, + //************************* + //Permissions configuration + //****************** + 'delete_files' => true, + 'create_folders' => true, + 'delete_folders' => true, + 'upload_files' => true, + 'rename_files' => true, + 'rename_folders' => true, + 'duplicate_files' => true, + 'copy_cut_files' => true, // for copy/cut files + 'copy_cut_dirs' => true, // for copy/cut directories + 'chmod_files' => true, // change file permissions + 'chmod_dirs' => true, // change folder permissions + 'preview_text_files' => true, // eg.: txt, log etc. + 'edit_text_files' => true, // eg.: txt, log etc. + 'create_text_files' => true, // only create files with exts. defined in $editable_text_file_exts + // you can preview these type of files if $preview_text_files is true + 'previewable_text_file_exts' => array('txt', 'log', 'xml', 'html', 'css', 'htm', 'js'), + 'previewable_text_file_exts_no_prettify' => array('txt', 'log'), + // you can edit these type of files if $edit_text_files is true (only text based files) + // you can create these type of files if $create_text_files is true (only text based files) + // if you want you can add html,css etc. + // but for security reasons it's NOT RECOMMENDED! + 'editable_text_file_exts' => array('txt', 'log', 'xml', 'html', 'css', 'htm', 'js'), + // Preview with Google Documents + 'googledoc_enabled' => true, + 'googledoc_file_exts' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx'), + // Preview with Viewer.js + 'viewerjs_enabled' => true, + 'viewerjs_file_exts' => array('pdf', 'odt', 'odp', 'ods'), + // defines size limit for paste in MB / operation + // set 'FALSE' for no limit + 'copy_cut_max_size' => 100, + // defines file count limit for paste / operation + // set 'FALSE' for no limit + 'copy_cut_max_count' => 200, + //IF any of these limits reached, operation won't start and generate warning + //********************** + //Allowed extensions (lowercase insert) + //********************** + 'ext_img' => array('jpg', 'jpeg', 'png', 'gif', 'bmp', 'tiff', 'svg'), //Images + 'ext_file' => array('doc', 'docx', 'rtf', 'pdf', 'xls', 'xlsx', 'txt', 'csv', 'html', 'xhtml', 'psd', 'sql', 'log', 'fla', 'xml', 'ade', 'adp', 'mdb', 'accdb', 'ppt', 'pptx', 'odt', 'ots', 'ott', 'odb', 'odg', 'otp', 'otg', 'odf', 'ods', 'odp', 'css', 'ai'), //Files + 'ext_video' => array('mov', 'mpeg', 'm4v', 'mp4', 'avi', 'mpg', 'wma', "flv", "webm"), //Video + 'ext_music' => array('mp3', 'm4a', 'ac3', 'aiff', 'mid', 'ogg', 'wav'), //Audio + 'ext_misc' => array('zip', 'rar', 'gz', 'tar', 'iso', 'dmg'), //Archives + + /* * **************** + * AVIARY config + * ***************** */ + 'aviary_active' => true, + 'aviary_apiKey' => "2444282ef4344e3dacdedc7a78f8877d", + 'aviary_language' => "en", + 'aviary_theme' => "light", + 'aviary_tools' => "all", + 'aviary_maxSize' => "1400", + // Add or modify the Aviary options below as needed - they will be json encoded when added to the configuration so arrays can be utilized as needed + //The filter and sorter are managed through both javascript and php scripts because if you have a lot of + //file in a folder the javascript script can't sort all or filter all, so the filemanager switch to php script. + //The plugin automatic swich javascript to php when the current folder exceeds the below limit of files number + 'file_number_limit_js' => 500, + //********************** + // Hidden files and folders + //********************** + // set the names of any folders you want hidden (eg "hidden_folder1", "hidden_folder2" ) Remember all folders with these names will be hidden (you can set any exceptions in config.php files on folders) + 'hidden_folders' => array(), + // set the names of any files you want hidden. Remember these names will be hidden in all folders (eg "this_document.pdf", "that_image.jpg" ) + 'hidden_files' => array('config.php'), + /* * ***************** + * JAVA upload + * ***************** */ + 'java_upload' => true, + 'JAVAMaxSizeUpload' => 200, //Gb + //************************************ + //Thumbnail for external use creation + //************************************ + // New image resized creation with fixed path from filemanager folder after uploading (thumbnails in fixed mode) + // If you want create images resized out of upload folder for use with external script you can choose this method, + // You can create also more than one image at a time just simply add a value in the array + // Remember than the image creation respect the folder hierarchy so if you are inside source/test/test1/ the new image will create at + // path_from_filemanager/test/test1/ + // PS if there isn't write permission in your destination folder you must set it + // + 'fixed_image_creation' => false, //activate or not the creation of one or more image resized with fixed path from filemanager folder + 'fixed_path_from_filemanager' => array('../test/', '../test1/'), //fixed path of the image folder from the current position on upload folder + 'fixed_image_creation_name_to_prepend' => array('', 'test_'), //name to prepend on filename + 'fixed_image_creation_to_append' => array('_test', ''), //name to appendon filename + 'fixed_image_creation_width' => array(300, 400), //width of image (you can leave empty if you set height) + 'fixed_image_creation_height' => array(200, ''), //height of image (you can leave empty if you set width) + /* + # $option: 0 / exact = defined size; + # 1 / portrait = keep aspect set height; + # 2 / landscape = keep aspect set width; + # 3 / auto = auto; + # 4 / crop= resize and crop; + */ + 'fixed_image_creation_option' => array('crop', 'auto'), //set the type of the crop + // New image resized creation with relative path inside to upload folder after uploading (thumbnails in relative mode) + // With Responsive filemanager you can create automatically resized image inside the upload folder, also more than one at a time + // just simply add a value in the array + // The image creation path is always relative so if i'm inside source/test/test1 and I upload an image, the path start from here + // + 'relative_image_creation' => false, //activate or not the creation of one or more image resized with relative path from upload folder + 'relative_path_from_current_pos' => array('./', './'), //relative path of the image folder from the current position on upload folder + 'relative_image_creation_name_to_prepend' => array('', ''), //name to prepend on filename + 'relative_image_creation_name_to_append' => array('_thumb', '_thumb1'), //name to append on filename + 'relative_image_creation_width' => array(300, 400), //width of image (you can leave empty if you set height) + 'relative_image_creation_height' => array(200, ''), //height of image (you can leave empty if you set width) + /* + # $option: 0 / exact = defined size; + # 1 / portrait = keep aspect set height; + # 2 / landscape = keep aspect set width; + # 3 / auto = auto; + # 4 / crop= resize and crop; + */ + 'relative_image_creation_option' => array('crop', 'crop'), //set the type of the crop + // Remember text filter after close filemanager for future session + 'remember_text_filter' => false, ); return array_merge( - $config, - array( - 'MaxSizeUpload' => ((int)(ini_get('post_max_size')) < $config['MaxSizeUpload']) - ? (int)(ini_get('post_max_size')) : $config['MaxSizeUpload'], - 'ext'=> array_merge( - $config['ext_img'], - $config['ext_file'], - $config['ext_misc'], - $config['ext_video'], - $config['ext_music'] - ), - // For a list of options see: https://developers.aviary.com/docs/web/setup-guide#constructor-config - 'aviary_defaults_config' => array( - 'apiKey' => $config['aviary_apiKey'], - 'language' => $config['aviary_language'], - 'theme' => $config['aviary_theme'], - 'tools' => $config['aviary_tools'], - 'maxSize' => $config['aviary_maxSize'] - ), - ) + $config, array( + 'MaxSizeUpload' => ((int) (ini_get('post_max_size')) < $config['MaxSizeUpload']) ? (int) (ini_get('post_max_size')) : $config['MaxSizeUpload'], + 'ext' => array_merge( + $config['ext_img'], $config['ext_file'], $config['ext_misc'], $config['ext_video'], $config['ext_music'] + ), + // For a list of options see: https://developers.aviary.com/docs/web/setup-guide#constructor-config + 'aviary_defaults_config' => array( + 'apiKey' => $config['aviary_apiKey'], + 'language' => $config['aviary_language'], + 'theme' => $config['aviary_theme'], + 'tools' => $config['aviary_tools'], + 'maxSize' => $config['aviary_maxSize'] + ), + ) ); diff --git a/filemanager/dialog.php b/filemanager/dialog.php old mode 100755 new mode 100644 index 52e12c6c..98f76c52 --- a/filemanager/dialog.php +++ b/filemanager/dialog.php @@ -3,993 +3,1197 @@ //TODO switch to array extract($config, EXTR_OVERWRITE); -if (USE_ACCESS_KEYS == TRUE){ - if (!isset($_GET['akey'], $access_keys) || empty($access_keys)){ - die('Access Denied!'); - } +if (USE_ACCESS_KEYS == TRUE) { + if (!isset($_GET['akey'], $access_keys) || empty($access_keys)) { + die('Access Denied!'); + } - $_GET['akey'] = strip_tags(preg_replace( "/[^a-zA-Z0-9\._-]/", '', $_GET['akey'])); + $_GET['akey'] = strip_tags(preg_replace("/[^a-zA-Z0-9\._-]/", '', $_GET['akey'])); - if (!in_array($_GET['akey'], $access_keys)){ - die('Access Denied!'); - } + if (!in_array($_GET['akey'], $access_keys)) { + die('Access Denied!'); + } } $_SESSION['RF']["verify"] = "RESPONSIVEfilemanager"; -if(isset($_POST['submit'])){ +if (isset($_POST['submit'])) { - include 'upload.php'; + include 'upload.php'; +} else { + include 'include/utils.php'; -} -else { -include 'include/utils.php'; - -if (isset($_GET['fldr']) - && !empty($_GET['fldr']) - && strpos($_GET['fldr'],'../') === FALSE - && strpos($_GET['fldr'],'./') === FALSE) -{ - $subdir = urldecode(trim(strip_tags($_GET['fldr']),"/") ."/"); - $_SESSION['RF']["filter"]=''; -} -else { $subdir = ''; } + if (isset($_GET['fldr']) && !empty($_GET['fldr']) && strpos($_GET['fldr'], '../') === FALSE && strpos($_GET['fldr'], './') === FALSE) { + $subdir = urldecode(trim(strip_tags($_GET['fldr']), "/") . "/"); + $_SESSION['RF']["filter"] = ''; + } else { + $subdir = ''; + } -if($subdir == "") -{ - if(!empty($_COOKIE['last_position']) - && strpos($_COOKIE['last_position'],'.') === FALSE) - $subdir= trim($_COOKIE['last_position']); -} + if ($subdir == "") { + if (!empty($_COOKIE['last_position']) && strpos($_COOKIE['last_position'], '.') === FALSE) + $subdir = trim($_COOKIE['last_position']); + } //remember last position -setcookie('last_position',$subdir,time() + (86400 * 7)); + setcookie('last_position', $subdir, time() + (86400 * 7)); -if ($subdir == "/") { $subdir = ""; } + if ($subdir == "/") { + $subdir = ""; + } // If hidden folders are specified -if(count($hidden_folders)){ - // If hidden folder appears in the path specified in URL parameter "fldr" - $dirs = explode('/', $subdir); - foreach($dirs as $dir){ - if($dir !== '' && in_array($dir, $hidden_folders)){ - // Ignore the path - $subdir = ""; - break; - } - } -} - -/*** - *SUB-DIR CODE - ***/ + if (count($hidden_folders)) { + // If hidden folder appears in the path specified in URL parameter "fldr" + $dirs = explode('/', $subdir); + foreach ($dirs as $dir) { + if ($dir !== '' && in_array($dir, $hidden_folders)) { + // Ignore the path + $subdir = ""; + break; + } + } + } -if (!isset($_SESSION['RF']["subfolder"])) -{ - $_SESSION['RF']["subfolder"] = ''; -} -$rfm_subfolder = ''; + /* * * + * SUB-DIR CODE + * * */ -if (!empty($_SESSION['RF']["subfolder"]) && strpos($_SESSION['RF']["subfolder"],'../') === FALSE - && strpos($_SESSION['RF']["subfolder"],'./') === FALSE && strpos($_SESSION['RF']["subfolder"],"/") !== 0 - && strpos($_SESSION['RF']["subfolder"],'.') === FALSE) -{ - $rfm_subfolder = $_SESSION['RF']['subfolder']; -} + if (!isset($_SESSION['RF']["subfolder"])) { + $_SESSION['RF']["subfolder"] = ''; + } + $rfm_subfolder = ''; -if ($rfm_subfolder != "" && $rfm_subfolder[strlen($rfm_subfolder)-1] != "/") { $rfm_subfolder .= "/"; } + if (!empty($_SESSION['RF']["subfolder"]) && strpos($_SESSION['RF']["subfolder"], '../') === FALSE && strpos($_SESSION['RF']["subfolder"], './') === FALSE && strpos($_SESSION['RF']["subfolder"], "/") !== 0 && strpos($_SESSION['RF']["subfolder"], '.') === FALSE) { + $rfm_subfolder = $_SESSION['RF']['subfolder']; + } -if (!file_exists($current_path.$rfm_subfolder.$subdir)) -{ - $subdir = ''; - if (!file_exists($current_path.$rfm_subfolder.$subdir)) - { - $rfm_subfolder = ""; + if ($rfm_subfolder != "" && $rfm_subfolder[strlen($rfm_subfolder) - 1] != "/") { + $rfm_subfolder .= "/"; } -} -if (trim($rfm_subfolder) == "") -{ - $cur_dir = $upload_dir . $subdir; - $cur_path = $current_path . $subdir; - $thumbs_path = $thumbs_base_path; - $parent = $subdir; -} -else -{ - $cur_dir = $upload_dir . $rfm_subfolder.$subdir; - $cur_path = $current_path . $rfm_subfolder.$subdir; - $thumbs_path = $thumbs_base_path. $rfm_subfolder; - $parent = $rfm_subfolder.$subdir; -} + if (!file_exists($current_path . $rfm_subfolder . $subdir)) { + $subdir = ''; + if (!file_exists($current_path . $rfm_subfolder . $subdir)) { + $rfm_subfolder = ""; + } + } -$cycle = TRUE; -$max_cycles = 50; -$i = 0; -while($cycle && $i < $max_cycles){ - $i++; - if ($parent=="./") $parent=""; - - if (file_exists($current_path.$parent."config.php")) - { - require_once $current_path.$parent."config.php"; - $cycle = FALSE; + if (trim($rfm_subfolder) == "") { + $cur_dir = $upload_dir . $subdir; + $cur_path = $current_path . $subdir; + $thumbs_path = $thumbs_base_path; + $parent = $subdir; + } else { + $cur_dir = $upload_dir . $rfm_subfolder . $subdir; + $cur_path = $current_path . $rfm_subfolder . $subdir; + $thumbs_path = $thumbs_base_path . $rfm_subfolder; + $parent = $rfm_subfolder . $subdir; } - if ($parent == "") $cycle = FALSE; - else $parent = fix_dirname($parent)."/"; -} + $cycle = TRUE; + $max_cycles = 50; + $i = 0; + while ($cycle && $i < $max_cycles) { + $i++; + if ($parent == "./") + $parent = ""; + + if (file_exists($current_path . $parent . "config.php")) { + require_once $current_path . $parent . "config.php"; + $cycle = FALSE; + } + + if ($parent == "") + $cycle = FALSE; + else + $parent = fix_dirname($parent) . "/"; + } -if (!is_dir($thumbs_path.$subdir)) -{ - create_folder(FALSE, $thumbs_path.$subdir); -} + if (!is_dir($thumbs_path . $subdir)) { + create_folder(FALSE, $thumbs_path . $subdir); + } -if (isset($_GET['popup'])) -{ - $popup = strip_tags($_GET['popup']); -} -else $popup=0; + if (isset($_GET['popup'])) { + $popup = strip_tags($_GET['popup']); + } else + $popup = 0; //Sanitize popup -$popup=!!$popup; + $popup = !!$popup; -if (isset($_GET['crossdomain'])) -{ - $crossdomain = strip_tags($_GET['crossdomain']); -} -else $crossdomain=0; + if (isset($_GET['crossdomain'])) { + $crossdomain = strip_tags($_GET['crossdomain']); + } else + $crossdomain = 0; //Sanitize crossdomain -$crossdomain=!!$crossdomain; + $crossdomain = !!$crossdomain; //view type -if(!isset($_SESSION['RF']["view_type"])) -{ - $view = $default_view; - $_SESSION['RF']["view_type"] = $view; -} + if (!isset($_SESSION['RF']["view_type"])) { + $view = $default_view; + $_SESSION['RF']["view_type"] = $view; + } -if (isset($_GET['view'])) -{ - $view = fix_get_params($_GET['view']); - $_SESSION['RF']["view_type"] = $view; -} + if (isset($_GET['view'])) { + $view = fix_get_params($_GET['view']); + $_SESSION['RF']["view_type"] = $view; + } -$view = $_SESSION['RF']["view_type"]; + $view = $_SESSION['RF']["view_type"]; //filter -$filter = ""; -if(isset($_SESSION['RF']["filter"])) -{ - $filter = $_SESSION['RF']["filter"]; -} - -if(isset($_GET["filter"])) -{ - $filter = fix_get_params($_GET["filter"]); -} - -if (!isset($_SESSION['RF']['sort_by'])) -{ - $_SESSION['RF']['sort_by'] = 'name'; -} - -if (isset($_GET["sort_by"])) -{ - $sort_by = $_SESSION['RF']['sort_by'] = fix_get_params($_GET["sort_by"]); -} -else $sort_by = $_SESSION['RF']['sort_by']; + $filter = ""; + if (isset($_SESSION['RF']["filter"])) { + $filter = $_SESSION['RF']["filter"]; + } + if (isset($_GET["filter"])) { + $filter = fix_get_params($_GET["filter"]); + } -if (!isset($_SESSION['RF']['descending'])) -{ - $_SESSION['RF']['descending'] = TRUE; -} + if (!isset($_SESSION['RF']['sort_by'])) { + $_SESSION['RF']['sort_by'] = 'name'; + } -if (isset($_GET["descending"])) -{ - $descending = $_SESSION['RF']['descending'] = fix_get_params($_GET["descending"])==1; -} -else{ - $descending = $_SESSION['RF']['descending']; -} + if (isset($_GET["sort_by"])) { + $sort_by = $_SESSION['RF']['sort_by'] = fix_get_params($_GET["sort_by"]); + } else + $sort_by = $_SESSION['RF']['sort_by']; -$boolarray = Array(false => 'false', true => 'true'); -$return_relative_url = isset($_GET['relative_url']) && $_GET['relative_url'] == "1" ? true : false; + if (!isset($_SESSION['RF']['descending'])) { + $_SESSION['RF']['descending'] = TRUE; + } -if (!isset($_GET['type'])) $_GET['type'] = 0; + if (isset($_GET["descending"])) { + $descending = $_SESSION['RF']['descending'] = fix_get_params($_GET["descending"]) == 1; + } else { + $descending = $_SESSION['RF']['descending']; + } -if (isset($_GET['editor'])) -{ - $editor = strip_tags($_GET['editor']); -} -else{ - if($_GET['type']==0){ - $editor=false; - }else{ - $editor='tinymce'; - } -} + $boolarray = Array(false => 'false', true => 'true'); -if (!isset($_GET['field_id'])) $_GET['field_id'] = ''; - -$field_id = isset($_GET['field_id']) ? fix_get_params($_GET['field_id']) : ''; -$type_param = fix_get_params($_GET['type']); - -if ($type_param==1) $apply = 'apply_img'; -elseif($type_param==2) $apply = 'apply_link'; -elseif($type_param==0 && $_GET['field_id']=='') $apply = 'apply_none'; -elseif($type_param==3) $apply = 'apply_video'; -else $apply = 'apply'; - -$get_params = array( - 'editor' => $editor, - 'type' => $type_param, - 'lang' => $lang, - 'popup' => $popup, - 'crossdomain' => $crossdomain, - 'field_id' => $field_id, - 'relative_url' => $return_relative_url, - 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key') -); -if(isset($_GET['CKEditorFuncNum'])){ - $get_params['CKEditorFuncNum'] = $_GET['CKEditorFuncNum']; - $get_params['CKEditor'] = (isset($_GET['CKEditor'])? $_GET['CKEditor'] : ''); -} -$get_params['fldr'] =''; - -$get_params = http_build_query($get_params); - -?> - - - - - - - - Responsive FileManager - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - " /> - " /> - " /> - - -
-
- -
-
-
- - -
-
- -
- - -
-

:


- - - - - - - - - - - -
-
- -
-
-
-
- -
-
-
- -
- - - -
+ $return_relative_url = isset($_GET['relative_url']) && $_GET['relative_url'] == "1" ? true : false; - $editor, + 'type' => $type_param, + 'lang' => $lang, + 'popup' => $popup, + 'crossdomain' => $crossdomain, + 'field_id' => $field_id, + 'relative_url' => $return_relative_url, + 'akey' => (isset($_GET['akey']) && $_GET['akey'] != '' ? $_GET['akey'] : 'key') + ); + if (isset($_GET['CKEditorFuncNum'])) { + $get_params['CKEditorFuncNum'] = $_GET['CKEditorFuncNum']; + $get_params['CKEditor'] = (isset($_GET['CKEditor']) ? $_GET['CKEditor'] : ''); + } + $get_params['fldr'] = ''; + + $get_params = http_build_query($get_params); + ?> + + + + + + + + Responsive FileManager + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " /> + " /> + " /> + + + + +
+ + $file){ - if($file==".") $current_folder=array('file'=>$file); - elseif($file=="..") $prev_folder=array('file'=>$file); - elseif(is_dir($current_path.$rfm_subfolder.$subdir.$file)){ - $date=filemtime($current_path.$rfm_subfolder.$subdir. $file); - if($show_folder_size){ - list($size,$nfiles,$nfolders) = folder_info($current_path.$rfm_subfolder.$subdir. $file); - $current_folders_number++; - } else { - $size=0; - } - $file_ext=trans('Type_dir'); - $sorted[$k]=array( - 'file'=>$file, - 'file_lcase'=>strtolower($file), - 'date'=>$date, - 'size'=>$size, - 'nfiles'=>$nfiles, - 'nfolders'=>$nfolders, - 'extension'=>$file_ext, - 'extension_lcase'=>strtolower($file_ext)); - }else{ - $current_files_number++; - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - $date=filemtime($file_path); - $size=filesize($file_path); - $file_ext = substr(strrchr($file,'.'),1); - $sorted[$k]=array('file'=>$file,'file_lcase'=>strtolower($file),'date'=>$date,'size'=>$size,'extension'=>$file_ext,'extension_lcase'=>strtolower($file_ext)); - } -} + $sorted = array(); + $current_folder = array(); + $prev_folder = array(); + $current_files_number = 0; + $current_folders_number = 0; + foreach ($files as $k => $file) { + if ($file == ".") + $current_folder = array('file' => $file); + elseif ($file == "..") + $prev_folder = array('file' => $file); + elseif (is_dir($current_path . $rfm_subfolder . $subdir . $file)) { + $date = filemtime($current_path . $rfm_subfolder . $subdir . $file); + if ($show_folder_size) { + list($size, $nfiles, $nfolders) = folder_info($current_path . $rfm_subfolder . $subdir . $file); + $current_folders_number++; + } else { + $size = 0; + } + $file_ext = trans('Type_dir'); + $sorted[$k] = array( + 'file' => $file, + 'file_lcase' => strtolower($file), + 'date' => $date, + 'size' => $size, + 'nfiles' => $nfiles, + 'nfolders' => $nfolders, + 'extension' => $file_ext, + 'extension_lcase' => strtolower($file_ext)); + } else { + $current_files_number++; + $file_path = $current_path . $rfm_subfolder . $subdir . $file; + $date = filemtime($file_path); + $size = filesize($file_path); + $file_ext = substr(strrchr($file, '.'), 1); + $sorted[$k] = array('file' => $file, 'file_lcase' => strtolower($file), 'date' => $date, 'size' => $size, 'extension' => $file_ext, 'extension_lcase' => strtolower($file_ext)); + } + } // Should lazy loading be enabled -$lazy_loading_enabled= ($lazy_loading_file_number_threshold == 0 || $lazy_loading_file_number_threshold != -1 && $n_files > $lazy_loading_file_number_threshold) ? true : false; - -function filenameSort($x, $y) { - return $x['file_lcase'] < $y['file_lcase']; -} -function dateSort($x, $y) { - return $x['date'] < $y['date']; -} -function sizeSort($x, $y) { - return $x['size'] < $y['size']; -} -function extensionSort($x, $y) { - return $x['extension_lcase'] < $y['extension_lcase']; -} - -switch($sort_by){ - case 'date': - usort($sorted, 'dateSort'); - break; - case 'size': - usort($sorted, 'sizeSort'); - break; - case 'extension': - usort($sorted, 'extensionSort'); - break; - default: - usort($sorted, 'filenameSort'); - break; -} - -if(!$descending){ - $sorted=array_reverse($sorted); -} - -$files=array_merge(array($prev_folder),array($current_folder),$sorted); -?> - - - - - - - -
- - -
- -
-
- -
-
There is an error! The upload folder there isn't. Check your config.php file.
- -

- -
- - - - - - - - -
    " id="main-item-container"> - $file_number_limit_js && $file!=".." && stripos($file,$filter)===false)) - continue; - $new_name=fix_filename($file,$transliteration); - if($file!='..' && $file!=$new_name){ - //rename - rename_folder($current_path.$subdir.$file,$new_name,$transliteration); - $file=$new_name; - } - //add in thumbs folder if not exist - if (!file_exists($thumbs_path.$subdir.$file)) create_folder(false,$thumbs_path.$subdir.$file); - $class_ext = 3; - if($file=='..' && trim($subdir) != '' ){ - $src = explode("/",$subdir); - unset($src[count($src)-2]); - $src=implode("/",$src); - if($src=='') $src="/"; - } - elseif ($file!='..') { - $src = $subdir . $file."/"; - } - - ?> - - $file_array) { - $file=$file_array['file']; - - if($file == '.' || $file == '..' || is_dir($current_path.$rfm_subfolder.$subdir.$file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter!='' && $n_files>$file_number_limit_js && stripos($file,$filter)===false)) - continue; - - $file_path=$current_path.$rfm_subfolder.$subdir.$file; - //check if file have illegal caracter - - $filename=substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); - - if($file!=fix_filename($file,$transliteration)){ - $file1=fix_filename($file,$transliteration); - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - if(file_exists($file_path1)){ - $i = 1; - $info=pathinfo($file1); - while(file_exists($current_path.$rfm_subfolder.$subdir.$info['filename'].".[".$i."].".$info['extension'])) { - $i++; - } - $file1=$info['filename'].".[".$i."].".$info['extension']; - $file_path1=($current_path.$rfm_subfolder.$subdir.$file1); - } - - $filename=substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); - rename_file($file_path,fix_filename($filename,$transliteration),$transliteration); - $file=$file1; - $file_array['extension']=fix_filename($file_array['extension'],$transliteration); - $file_path=$file_path1; - } - - $is_img=false; - $is_video=false; - $is_audio=false; - $show_original=false; - $show_original_mini=false; - $mini_src=""; - $src_thumb=""; - $extension_lower=fix_strtolower($file_array['extension']); - if(in_array($extension_lower, $ext_img)){ - $src = $base_url . $cur_dir . rawurlencode($file); - $mini_src = $src_thumb = $thumbs_path.$subdir. $file; - //add in thumbs folder if not exist - if(!file_exists($src_thumb)){ - try { - if(!create_img($file_path, $src_thumb, 122, 91)){ - $src_thumb=$mini_src=""; - }else{ - new_thumbnails_creation($current_path.$rfm_subfolder.$subdir,$file_path,$file,$current_path,'','','','','','','',$fixed_image_creation,$fixed_path_from_filemanager,$fixed_image_creation_name_to_prepend,$fixed_image_creation_to_append,$fixed_image_creation_width,$fixed_image_creation_height,$fixed_image_creation_option); - } - } catch (Exception $e) { - $src_thumb=$mini_src=""; - } - } - $is_img=true; - //check if is smaller than thumb - list($img_width, $img_height, $img_type, $attr)=@getimagesize($file_path); - if($img_width<122 && $img_height<91){ - $src_thumb=$current_path.$rfm_subfolder.$subdir.$file; - $show_original=true; - } - - if($img_width<45 && $img_height<38){ - $mini_src=$current_path.$rfm_subfolder.$subdir.$file; - $show_original_mini=true; - } - } - $is_icon_thumb=false; - $is_icon_thumb_mini=false; - $no_thumb=false; - if($src_thumb==""){ - $no_thumb=true; - if(file_exists('img/'.$icon_theme.'/'.$extension_lower.".jpg")){ - $src_thumb ='img/'.$icon_theme.'/'.$extension_lower.".jpg"; - }else{ - $src_thumb = "img/".$icon_theme."/default.jpg"; - } - $is_icon_thumb=true; - } - if($mini_src==""){ - $is_icon_thumb_mini=false; - } - - $class_ext=0; - if (in_array($extension_lower, $ext_video)) { - $class_ext = 4; - $is_video=true; - }elseif (in_array($extension_lower, $ext_img)) { - $class_ext = 2; - }elseif (in_array($extension_lower, $ext_music)) { - $class_ext = 5; - $is_audio=true; - }elseif (in_array($extension_lower, $ext_misc)) { - $class_ext = 3; - }else{ - $class_ext = 1; - } - if((!($_GET['type']==1 && !$is_img) && !(($_GET['type']==3 && !$is_video) && ($_GET['type']==3 && !$is_audio))) && $class_ext>0){ -?> - -
- - -
-
-
- - - - - - - - - - - - - - - - + $lazy_loading_enabled = ($lazy_loading_file_number_threshold == 0 || $lazy_loading_file_number_threshold != -1 && $n_files > $lazy_loading_file_number_threshold) ? true : false; + + function filenameSort($x, $y) { + return $x['file_lcase'] < $y['file_lcase']; + } + + function dateSort($x, $y) { + return $x['date'] < $y['date']; + } + + function sizeSort($x, $y) { + return $x['size'] < $y['size']; + } + + function extensionSort($x, $y) { + return $x['extension_lcase'] < $y['extension_lcase']; + } + + switch ($sort_by) { + case 'date': + usort($sorted, 'dateSort'); + break; + case 'size': + usort($sorted, 'sizeSort'); + break; + case 'extension': + usort($sorted, 'extensionSort'); + break; + default: + usort($sorted, 'filenameSort'); + break; + } + + if (!$descending) { + $sorted = array_reverse($sorted); + } + + $files = array_merge(array($prev_folder), array($current_folder), $sorted); + ?> + + + + + + + +
+
+ + + +
+
+ + +
+
+ +
+
There is an error! The upload folder there isn't. Check your config.php file.
+ +

+ +
+ + + + + + + + +
    " id="main-item-container"> + $file_number_limit_js && $file != ".." && stripos($file, $filter) === false)) + continue; + $new_name = fix_filename($file, $transliteration); + if ($file != '..' && $file != $new_name) { + //rename + rename_folder($current_path . $subdir . $file, $new_name, $transliteration); + $file = $new_name; + } + //add in thumbs folder if not exist + if (!file_exists($thumbs_path . $subdir . $file)) + create_folder(false, $thumbs_path . $subdir . $file); + $class_ext = 3; + if ($file == '..' && trim($subdir) != '') { + $src = explode("/", $subdir); + unset($src[count($src) - 2]); + $src = implode("/", $src); + if ($src == '') + $src = "/"; + } + elseif ($file != '..') { + $src = $subdir . $file . "/"; + } + ?> + + $file_array) { + $file = $file_array['file']; + + if ($file == '.' || $file == '..' || is_dir($current_path . $rfm_subfolder . $subdir . $file) || in_array($file, $hidden_files) || !in_array(fix_strtolower($file_array['extension']), $ext) || ($filter != '' && $n_files > $file_number_limit_js && stripos($file, $filter) === false)) + continue; + + $file_path = $current_path . $rfm_subfolder . $subdir . $file; + //check if file have illegal caracter + + $filename = substr($file, 0, '-' . (strlen($file_array['extension']) + 1)); + + if ($file != fix_filename($file, $transliteration)) { + $file1 = fix_filename($file, $transliteration); + $file_path1 = ($current_path . $rfm_subfolder . $subdir . $file1); + if (file_exists($file_path1)) { + $i = 1; + $info = pathinfo($file1); + while (file_exists($current_path . $rfm_subfolder . $subdir . $info['filename'] . ".[" . $i . "]." . $info['extension'])) { + $i++; + } + $file1 = $info['filename'] . ".[" . $i . "]." . $info['extension']; + $file_path1 = ($current_path . $rfm_subfolder . $subdir . $file1); + } + + $filename = substr($file1, 0, '-' . (strlen($file_array['extension']) + 1)); + rename_file($file_path, fix_filename($filename, $transliteration), $transliteration); + $file = $file1; + $file_array['extension'] = fix_filename($file_array['extension'], $transliteration); + $file_path = $file_path1; + } + + $is_img = false; + $is_video = false; + $is_audio = false; + $show_original = false; + $show_original_mini = false; + $mini_src = ""; + $src_thumb = ""; + $extension_lower = fix_strtolower($file_array['extension']); + if (in_array($extension_lower, $ext_img)) { + $src = $base_url . $cur_dir . rawurlencode($file); + $mini_src = $src_thumb = $thumbs_path . $subdir . $file; + //add in thumbs folder if not exist + if (!file_exists($src_thumb)) { + try { + if (!create_img($file_path, $src_thumb, 122, 91)) { + $src_thumb = $mini_src = ""; + } else { + new_thumbnails_creation($current_path . $rfm_subfolder . $subdir, $file_path, $file, $current_path, '', '', '', '', '', '', '', $fixed_image_creation, $fixed_path_from_filemanager, $fixed_image_creation_name_to_prepend, $fixed_image_creation_to_append, $fixed_image_creation_width, $fixed_image_creation_height, $fixed_image_creation_option); + } + } catch (Exception $e) { + $src_thumb = $mini_src = ""; + } + } + $is_img = true; + //check if is smaller than thumb + list($img_width, $img_height, $img_type, $attr) = @getimagesize($file_path); + if ($img_width < 122 && $img_height < 91) { + $src_thumb = $current_path . $rfm_subfolder . $subdir . $file; + $show_original = true; + } + + if ($img_width < 45 && $img_height < 38) { + $mini_src = $current_path . $rfm_subfolder . $subdir . $file; + $show_original_mini = true; + } + } + $is_icon_thumb = false; + $is_icon_thumb_mini = false; + $no_thumb = false; + if ($src_thumb == "") { + $no_thumb = true; + if (file_exists('img/' . $icon_theme . '/' . $extension_lower . ".jpg")) { + $src_thumb = 'img/' . $icon_theme . '/' . $extension_lower . ".jpg"; + } else { + $src_thumb = "img/" . $icon_theme . "/default.jpg"; + } + $is_icon_thumb = true; + } + if ($mini_src == "") { + $is_icon_thumb_mini = false; + } + + $class_ext = 0; + if (in_array($extension_lower, $ext_video)) { + $class_ext = 4; + $is_video = true; + } elseif (in_array($extension_lower, $ext_img)) { + $class_ext = 2; + } elseif (in_array($extension_lower, $ext_music)) { + $class_ext = 5; + $is_audio = true; + } elseif (in_array($extension_lower, $ext_misc)) { + $class_ext = 3; + } else { + $class_ext = 1; + } + if ((!($_GET['type'] == 1 && !$is_img) && !(($_GET['type'] == 3 && !$is_video) && ($_GET['type'] == 3 && !$is_audio))) && $class_ext > 0) { + ?> + +
+ + +
+
+ - - - - + +
+
+

+
+
+ +
+ +
+ +
    +
  • + +
  • + +
+
+
+ +
+ + +
+

:


+ + + + + + + + + + + +
+ +
+ +

+
+ + +
+
+
+
+ + +
+
+
+
+ + + + + + +
+
+ +
+
+ + + +
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + + + + + + + +
+
+
+
+
+

+
+
+
+
+
+
+ +
+
+ +
+
+
+ +
+ + + + + + + + + +1bZ-M&&wUV$** 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 + + + + + +{ + "fontFamily": "metro", + "majorVersion": 1, + "minorVersion": 0, + "fontURL": "http://metroui.org.ua/font.html", + "description": "Metro Icon Font\nFont generated by IcoMoon.", + "copyright": "2012-2015 Metro UI CSS", + "license": "MIT", + "licenseURL": "http://metroui.org.ua/license.html", + "version": "Version 1.0", + "fontId": "metro", + "psName": "metro", + "subFamily": "Regular", + "fullName": "metro" +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/filemanager/fonts/metro.ttf b/filemanager/fonts/metro.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4650d7af995d175acf8430be3ca45dcfbf843649 GIT binary patch literal 98092 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 'Select', - 'Erase' => 'Erase', - 'Open' => 'Open', - 'Confirm_del' => 'Are you sure you want to delete this file?', - 'All' => 'All', - 'Files' => 'Files', - 'Images' => 'Images', - 'Archives' => 'Archives', - 'Error_Upload' => 'The uploaded file exceeds the max size allowed.', - 'Error_extension' => 'File extension is not allowed.', - 'Upload_file' => 'Upload', - 'Filters' => 'Filters', - 'Videos' => 'Videos', - 'Music' => 'Music', - 'New_Folder' => 'New Folder', - 'Folder_Created' => 'Folder correctly created', - 'Existing_Folder' => 'Existing folder', - 'Confirm_Folder_del' => 'Are you sure to delete the folder and all the elements in it?', - 'Return_Files_List' => 'Return to files list', - 'Preview' => 'Preview', - 'Download' => 'Download', - 'Insert_Folder_Name' => 'Insert folder name:', - 'Root' => 'root', - 'Rename' => 'Rename', - 'Back' => 'back', - 'View' => 'View', - 'View_list' => 'List view', - 'View_columns_list' => 'Columns list view', - 'View_boxes' => 'Box view', - 'Toolbar' => 'Toolbar', - 'Actions' => 'Actions', - 'Rename_existing_file' => 'The file is already existing', - 'Rename_existing_folder' => 'The folder is already existing', - 'Empty_name' => 'The name is empty', - 'Text_filter' => 'text filter', - 'Swipe_help' => 'Swipe the name of file/folder to show options', - 'Upload_base' => 'Base upload', - 'Upload_java' => 'JAVA upload (big size files)', - 'Upload_java_help' => "If the Java Applet doesn't load, 1. make sure you have Java installed, otherwise [download link] 2. make sure nothing is blocked by your firewall", - 'Upload_base_help' => "Drag & Drop files or click in the area above (modern browsers) and select the file(s). When the upload is complete, click the 'Return to files list' button.", - 'Type_dir' => 'dir', - 'Type' => 'Type', - 'Dimension' => 'Dimension', - 'Size' => 'Size', - 'Date' => 'Date', - 'Filename' => 'Filename', - 'Operations' => 'Operations', - 'Date_type' => 'y-m-d', - 'OK' => 'OK', - 'Cancel' => 'Cancel', - 'Sorting' => 'sorting', - 'Show_url' => 'Show URL', - 'Extract' => 'Extract here', - 'File_info' => 'file info', - 'Edit_image' => 'Edit image', - 'Duplicate' => 'Duplicate', - 'Folders' => 'Folders', - 'Copy' => 'Copy', - 'Cut' => 'Cut', - 'Paste' => 'Paste', - 'CB' => 'CB', // clipboard - 'Paste_Here' => 'Paste to this directory', - 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', - 'Paste_Failed' => 'Failed to paste file(s)', - 'Clear_Clipboard' => 'Clear clipboard', - 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', - 'Files_ON_Clipboard' => 'There are files on the clipboard.', - 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy - 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy - 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders - 'Aviary_No_Save' => 'Could not save image', - 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', - 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', - 'Dir_No_Write' => 'The directory you selected is not writable.', - 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy - 'File_Permission' => 'File permission', - 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders - 'File_Permission_Recursive' => 'Apply recursively?', - 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", - 'User' => 'User', - 'Group' => 'Group', - 'Yes' => 'Yes', - 'No' => 'No', - 'Lang_Not_Found' => 'Could not find the language.', - 'Lang_Change' => 'Change the language', - 'File_Not_Found' => 'Could not find the file.', - 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit - 'Edit' => 'Edit', - 'Edit_File' => "Edit file's content", - 'File_Save_OK' => "File successfully saved.", - 'File_Save_Error' => "There was an error while saving the file.", - 'New_File' => 'New File', - 'No_Extension' => 'You have to add a file extension.', - 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. - + 'Select' => 'Select', + 'Erase' => 'Erase', + 'Open' => 'Open', + 'Confirm_del' => 'Are you sure you want to delete this file?', + 'All' => 'All', + 'Files' => 'Files', + 'Images' => 'Images', + 'Archives' => 'Archives', + 'Error_Upload' => 'The uploaded file exceeds the max size allowed.', + 'Error_extension' => 'File extension is not allowed.', + 'Upload_file' => 'Upload', + 'Filters' => 'Filters', + 'Videos' => 'Videos', + 'Music' => 'Music', + 'New_Folder' => 'New Folder', + 'Folder_Created' => 'Folder correctly created', + 'Existing_Folder' => 'Existing folder', + 'Confirm_Folder_del' => 'Are you sure to delete the folder and all the elements in it?', + 'Return_Files_List' => 'Return to files list', + 'Preview' => 'Preview', + 'Download' => 'Download', + 'Insert_Folder_Name' => 'Insert folder name:', + 'Root' => 'root', + 'Rename' => 'Rename', + 'Back' => 'back', + 'View' => 'View', + 'View_list' => 'List view', + 'View_columns_list' => 'Columns list view', + 'View_boxes' => 'Box view', + 'Toolbar' => 'Toolbar', + 'Actions' => 'Actions', + 'Rename_existing_file' => 'The file is already existing', + 'Rename_existing_folder' => 'The folder is already existing', + 'Empty_name' => 'The name is empty', + 'Text_filter' => 'text filter', + 'Swipe_help' => 'Swipe the name of file/folder to show options', + 'Upload_base' => 'Base upload', + 'Upload_java' => 'JAVA upload (big size files)', + 'Upload_java_help' => "If the Java Applet doesn't load, 1. make sure you have Java installed, otherwise [download link] 2. make sure nothing is blocked by your firewall", + 'Upload_base_help' => "Drag & Drop files or click in the area above (modern browsers) and select the file(s). When the upload is complete, click the 'Return to files list' button.", + 'Type_dir' => 'dir', + 'Type' => 'Type', + 'Dimension' => 'Dimension', + 'Size' => 'Size', + 'Date' => 'Date', + 'Filename' => 'Filename', + 'Operations' => 'Operations', + 'Date_type' => 'y-m-d', + 'OK' => 'OK', + 'Cancel' => 'Cancel', + 'Sorting' => 'sorting', + 'Show_url' => 'Show URL', + 'Extract' => 'Extract here', + 'File_info' => 'file info', + 'Edit_image' => 'Edit image', + 'Duplicate' => 'Duplicate', + 'Folders' => 'Folders', + 'Copy' => 'Copy', + 'Cut' => 'Cut', + 'Paste' => 'Paste', + 'CB' => 'CB', // clipboard + 'Paste_Here' => 'Paste to this directory', + 'Paste_Confirm' => 'Are you sure you want to paste to this directory? This will overwrite existing files/folders if encountered any.', + 'Paste_Failed' => 'Failed to paste file(s)', + 'Clear_Clipboard' => 'Clear clipboard', + 'Clear_Clipboard_Confirm' => 'Are you sure you want to clear the clipboard?', + 'Files_ON_Clipboard' => 'There are files on the clipboard.', + 'Copy_Cut_Size_Limit' => 'The selected files/folders are too big to %s. Limit: %d MB/operation', // %s = cut or copy + 'Copy_Cut_Count_Limit' => 'You selected too many files/folders to %s. Limit: %d files/operation', // %s = cut or copy + 'Copy_Cut_Not_Allowed' => 'You are not allowed to %s files.', // %s(1) = cut or copy, %s(2) = files or folders + 'Aviary_No_Save' => 'Could not save image', + 'Zip_No_Extract' => 'Could not extract. File might be corrupt.', + 'Zip_Invalid' => 'This extension is not supported. Valid: zip, gz, tar.', + 'Dir_No_Write' => 'The directory you selected is not writable.', + 'Function_Disabled' => 'The %s function has been disabled by the server.', // %s = cut or copy + 'File_Permission' => 'File permission', + 'File_Permission_Not_Allowed' => 'Changing %s permissions are not allowed.', // %s = files or folders + 'File_Permission_Recursive' => 'Apply recursively?', + 'File_Permission_Wrong_Mode' => "The supplied permission mode is incorrect.", + 'User' => 'User', + 'Group' => 'Group', + 'Yes' => 'Yes', + 'No' => 'No', + 'Lang_Not_Found' => 'Could not find the language.', + 'Lang_Change' => 'Change the language', + 'File_Not_Found' => 'Could not find the file.', + 'File_Open_Edit_Not_Allowed' => 'You are not allowed to %s this file.', // %s = open or edit + 'Edit' => 'Edit', + 'Edit_File' => "Edit file's content", + 'File_Save_OK' => "File successfully saved.", + 'File_Save_Error' => "There was an error while saving the file.", + 'New_File' => 'New File', + 'No_Extension' => 'You have to add a file extension.', + 'Valid_Extensions' => 'Valid extensions: %s', // %s = txt,log etc. + 'Close' => 'Close', + 'Info' => 'Info', + 'About' => 'About' ); diff --git a/filemanager/plugin.min.js b/filemanager/plugin.min.js new file mode 100644 index 00000000..81238cc0 --- /dev/null +++ b/filemanager/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("filemanager",function(e){function n(t){0===e.settings.external_filemanager_path.toLowerCase().indexOf(t.origin.toLowerCase())&&"responsivefilemanager"===t.data.sender&&(tinymce.activeEditor.windowManager.getParams().setUrl(t.data.url),tinymce.activeEditor.windowManager.close(),window.removeEventListener?window.removeEventListener("message",n,!1):window.detachEvent("onmessage",n))}function t(t,i,a,s){var r=window.innerWidth-30,g=window.innerHeight-60;if(r>1800&&(r=1800),g>1200&&(g=1200),r>600){var d=(r-20)%138;r=r-d+10}urltype=2,"image"==a&&(urltype=1),"media"==a&&(urltype=3);var o="RESPONSIVE FileManager";"undefined"!=typeof e.settings.filemanager_title&&e.settings.filemanager_title&&(o=e.settings.filemanager_title);var l="key";"undefined"!=typeof e.settings.filemanager_access_key&&e.settings.filemanager_access_key&&(l=e.settings.filemanager_access_key);var f="";"undefined"!=typeof e.settings.filemanager_sort_by&&e.settings.filemanager_sort_by&&(f="&sort_by="+e.settings.filemanager_sort_by);var m="false";"undefined"!=typeof e.settings.filemanager_descending&&e.settings.filemanager_descending&&(m=e.settings.filemanager_descending);var c="";"undefined"!=typeof e.settings.filemanager_subfolder&&e.settings.filemanager_subfolder&&(c="&fldr="+e.settings.filemanager_subfolder);var v="";"undefined"!=typeof e.settings.filemanager_crossdomain&&e.settings.filemanager_crossdomain&&(v="&crossdomain=1",window.addEventListener?window.addEventListener("message",n,!1):window.attachEvent("onmessage",n)),tinymce.activeEditor.windowManager.open({title:o,file:e.settings.external_filemanager_path+"dialog.php?type="+urltype+"&descending="+m+f+c+v+"&lang="+e.settings.language+"&akey="+l,width:r,height:g,resizable:!0,maximizable:!0,inline:1},{setUrl:function(n){var i=s.document.getElementById(t);if(i.value=e.convertURL(n),"fireEvent"in i)i.fireEvent("onchange");else{var a=document.createEvent("HTMLEvents");a.initEvent("change",!1,!0),i.dispatchEvent(a)}}})}return tinymce.activeEditor.settings.file_browser_callback=t,!1}); \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index e30fd119..a528f5cb 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,85 +1,62 @@ var elixir = require('laravel-elixir'); elixir.config.sourcemaps = false; elixir(function(mix) { - mix.less( - [ - 'style.less', - "../../../bower_components/bootstrap/less/bootstrap.less", - //"../../../bower_components/bootstrap/less/responsive.less", - "../../../bower_components/bootstrap-lightbox/less/bootstrap-lightbox.less" - ], - 'resources/tmp/css'); + mix.less( + [ + 'style.less' + ], + 'resources/tmp/css/app2.css'); - mix.styles( - [ - "bootstrap.css", - "responsive.css", - "bootstrap-lightbox.css", - "../../../bower_components/bootstrap-modal/css/bootstrap-modal.css", - "../../../bower_components/dropzone/dist/dropzone.css", - "../../../bower_components/jQuery-contextMenu/src/jquery.contextMenu.css", - "style.css" - ], - 'filemanager/css/style.css', - 'resources/tmp/css' - ); + mix.styles( + [ + "../../../bower_components/dropzone/dist/dropzone.css", + "../../../bower_components/jQuery-contextMenu/src/jquery.contextMenu.css", + "../../assets/css/metro.css", + "app2.css" + ], + 'filemanager/css/style.css', + 'resources/tmp/css' + ); - mix.scripts( - [ - "jquery/jquery.js", - "bootstrap/js/bootstrap-transition.js", - "bootstrap/js/bootstrap-affix.js", - "bootstrap/js/bootstrap-dropdown.js", - "bootstrap/js/bootstrap-alert.js", - "bootstrap/js/bootstrap-button.js", - "bootstrap/js/bootstrap-collapse.js", - "bootstrap/js/bootstrap-dropdown.js", - "bootstrap/js/bootstrap-modal.js", - "bootstrap/js/bootstrap-tooltip.js", - "bootstrap/js/bootstrap-popover.js", - "bootstrap/js/bootstrap-scrollspy.js", - "bootstrap/js/bootstrap-tab.js", - "bootstrap/js/bootstrap-typeahead.js", - "bootstrap-lightbox/js/bootstrap-lightbox.js", - "jQuery-contextMenu/src/jquery.contextMenu.js", - "jquery_lazyload/jquery.lazyload.js", - "jquery-scrollstop/jquery.scrollstop.js", - "bootbox.js/bootbox.js", - "dropzone/dist/dropzone.js", - "jquery-touchswipe/jquery.touchSwipe.js", - "bootstrap-modal/js/bootstrap-modalmanager.js", - "bootstrap-modal/js/bootstrap-modal.js", - "zeroclipboard/dist/ZeroClipboard.js", - "jquery-ui/ui/jquery.ui.core.js", - "jquery-ui/ui/jquery.ui.position.js", - "jquery-ui/ui/jquery.ui.widget.js", - "jquery-ui/ui/jquery.ui.mouse.js", - "jquery-ui/ui/jquery.ui.draggable.js", - "jquery-ui/ui/jquery.ui.droppable.js", - "jqueryui-touch-punch/jquery.ui.touch-punch.js", - ], - 'filemanager/js/plugins.js', - 'bower_components' - ); + mix.scripts( + [ + "jquery/jquery.js", + "jQuery-contextMenu/src/jquery.contextMenu.js", + "jquery_lazyload/jquery.lazyload.js", + "dropzone/dist/dropzone.js", + "jquery-touchswipe/jquery.touchSwipe.js", + "zeroclipboard/dist/ZeroClipboard.js", + "jquery-ui/ui/jquery.ui.core.js", + "jquery-ui/ui/jquery.ui.position.js", + "jquery-ui/ui/jquery.ui.widget.js", + "jquery-ui/ui/jquery.ui.mouse.js", + "jquery-ui/ui/jquery.ui.draggable.js", + "jquery-ui/ui/jquery.ui.droppable.js", + "jqueryui-touch-punch/jquery.ui.touch-punch.js", + "../resources/assets/js/metro.js" + ], + 'filemanager/js/plugins.js', + 'bower_components' + ); - mix.scripts( - ['include.js'], - 'filemanager/js/include.js'); + mix.scripts( + ['include.js', 'custom.js'], + 'filemanager/js/include.js'); - mix.scripts( - ['plugin.js'], - 'filemanager/plugin.min.js'); + mix.scripts( + ['plugin.js'], + 'filemanager/plugin.min.js'); - mix.scripts( - ['plugin_responsivefilemanager_plugin.js'], - 'tinymce/plugins/responsivefilemanager/plugin.min.js'); + mix.scripts( + ['plugin_responsivefilemanager_plugin.js'], + 'tinymce/plugins/responsivefilemanager/plugin.min.js'); - mix.scripts( - ['modernizr.custom.js'], - 'filemanager/js/modernizr.custom.js' - ); + mix.scripts( + ['modernizr.custom.js'], + 'filemanager/js/modernizr.custom.js' + ); - mix.copy('bower_components/jPlayer', 'filemanager/js/jPlayer/'); - mix.copy('bower_components/viewerjs/ViewerJS', 'filemanager/js/ViewerJS/'); - mix.copy('bower_components/zeroclipboard/dist/ZeroClipboard.swf', 'filemanager/js/ZeroClipboard.swf'); + mix.copy('bower_components/jPlayer', 'filemanager/js/jPlayer/'); + mix.copy('bower_components/viewerjs/ViewerJS', 'filemanager/js/ViewerJS/'); + mix.copy('bower_components/zeroclipboard/dist/ZeroClipboard.swf', 'filemanager/js/ZeroClipboard.swf'); }); \ No newline at end of file diff --git a/nbproject/project.properties b/nbproject/project.properties new file mode 100644 index 00000000..25c96714 --- /dev/null +++ b/nbproject/project.properties @@ -0,0 +1,9 @@ +auxiliary.org-netbeans-modules-css-prep.less_2e_configured=true +browser.reload.on.save=true +include.path=${php.global.include.path} +php.version=PHP_55 +source.encoding=UTF-8 +src.dir=. +tags.asp=false +tags.short=false +web.root=. diff --git a/nbproject/project.xml b/nbproject/project.xml new file mode 100644 index 00000000..b0347974 --- /dev/null +++ b/nbproject/project.xml @@ -0,0 +1,9 @@ + + + org.netbeans.modules.php.project + + + ResponsiveFilemanager + + + diff --git a/package.json b/package.json index 0eb21c64..082893d9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ResponsiveFilemanager", - "version": "10.0.0", + "version": "9.9.7", "author": { "name": "Alberto Peripolli", "email": "info@albertoperipolli.com" @@ -9,7 +9,7 @@ "github": "https://github.com/trippo/ResponsiveFilemanager", "homepage": "http://www.responsivefilemanager.com/", "devDependencies": { - "gulp": "^3.8.8", + "gulp": "^3.9.0", "laravel-elixir": "*" } -} \ No newline at end of file +} diff --git a/resources/assets/css/metro.css b/resources/assets/css/metro.css new file mode 100644 index 00000000..0aeff2ca --- /dev/null +++ b/resources/assets/css/metro.css @@ -0,0 +1,10731 @@ +html, +body { + padding: 0; + margin: 0; + height: 100%; +} +html, +body, +* { + -ms-box-sizing: border-box; + -o-box-sizing: border-box; + box-sizing: border-box; +} +article, +aside, +details, +figcaption, +figure, +footer, +header, +nav, +section { + display: block; +} +audio, +canvas, +video { + display: inline-block; +} +audio:not([controls]) { + display: none; +} +a:hover, +a:active, +.tile:active { + outline: 0; +} +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} +sup { + top: -0.5em; +} +sub { + bottom: -0.25em; +} +img { + max-width: 100%; + height: auto; + vertical-align: middle; + border: 0; + -ms-interpolation-mode: bicubic; +} +#map_canvas img, +.google-maps img { + max-width: none; +} +button, +input, +select, +textarea { + margin: 0; + font-size: 100%; + vertical-align: middle; +} +button, +input { + line-height: normal; +} +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; + cursor: pointer; +} +label, +select, +button, +input[type="button"], +input[type="reset"], +input[type="submit"], +input[type="radio"], +input[type="checkbox"] { + cursor: pointer; +} +input[type="search"] { + -webkit-appearance: textfield; + -ms-box-sizing: content-box; + -o-box-sizing: content-box; + box-sizing: content-box; +} +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} +textarea { + overflow: auto; + vertical-align: top; +} +input[type=text]::-ms-clear, +input[type=email]::-ms-clear, +input[type=url]::-ms-clear, +input[type=tel]::-ms-clear, +input[type=number]::-ms-clear, +input[type=time]::-ms-clear { + display: none; +} +input[type=password]::-ms-reveal { + display: none; +} +* { + border-collapse: collapse; +} +a { + text-decoration: none; +} +div, +p, +span { + position: relative; +} +@media print { + * { + text-shadow: none !important; + color: #000 !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + +.bg-black { + background: #000000 !important; +} +.bg-white { + background: #ffffff !important; +} +.bg-lime { + background: #a4c400 !important; +} +.bg-green { + background: #60a917 !important; +} +.bg-emerald { + background: #008a00 !important; +} +.bg-teal { + background: #00aba9 !important; +} +.bg-cyan { + background: #1ba1e2 !important; +} +.bg-cobalt { + background: #0050ef !important; +} +.bg-indigo { + background: #6a00ff !important; +} +.bg-violet { + background: #aa00ff !important; +} +.bg-pink { + background: #dc4fad !important; +} +.bg-magenta { + background: #d80073 !important; +} +.bg-crimson { + background: #a20025 !important; +} +.bg-red { + background: #ce352c !important; +} +.bg-orange { + background: #fa6800 !important; +} +.bg-amber { + background: #f0a30a !important; +} +.bg-yellow { + background: #e3c800 !important; +} +.bg-brown { + background: #825a2c !important; +} +.bg-olive { + background: #6d8764 !important; +} +.bg-steel { + background: #647687 !important; +} +.bg-mauve { + background: #76608a !important; +} +.bg-taupe { + background: #87794e !important; +} +.bg-gray { + background: #555555 !important; +} +.bg-dark { + background: #333333 !important; +} +.bg-darker { + background: #222222 !important; +} +.bg-transparent { + background: transparent !important; +} +.bg-darkBrown { + background: #63362f !important; +} +.bg-darkCrimson { + background: #640024 !important; +} +.bg-darkMagenta { + background: #81003c !important; +} +.bg-darkIndigo { + background: #4b0096 !important; +} +.bg-darkCyan { + background: #1b6eae !important; +} +.bg-darkCobalt { + background: #00356a !important; +} +.bg-darkTeal { + background: #004050 !important; +} +.bg-darkEmerald { + background: #003e00 !important; +} +.bg-darkGreen { + background: #128023 !important; +} +.bg-darkOrange { + background: #bf5a15 !important; +} +.bg-darkRed { + background: #9a1616 !important; +} +.bg-darkPink { + background: #9a165a !important; +} +.bg-darkViolet { + background: #57169a !important; +} +.bg-darkBlue { + background: #16499a !important; +} +.bg-lightBlue { + background: #4390df !important; +} +.bg-lightRed { + background: #da5a53 !important; +} +.bg-lightGreen { + background: #7ad61d !important; +} +.bg-lighterBlue { + background: #00ccff !important; +} +.bg-lightTeal { + background: #45fffd !important; +} +.bg-lightOlive { + background: #78aa1c !important; +} +.bg-lightOrange { + background: #c29008 !important; +} +.bg-lightPink { + background: #f472d0 !important; +} +.bg-grayDark { + background: #333333 !important; +} +.bg-grayDarker { + background: #222222 !important; +} +.bg-grayLight { + background: #999999 !important; +} +.bg-grayLighter { + background: #eeeeee !important; +} +.bg-blue { + background: #00aff0 !important; +} +.fg-black { + color: #000000 !important; +} +.fg-white { + color: #ffffff !important; +} +.fg-lime { + color: #a4c400 !important; +} +.fg-green { + color: #60a917 !important; +} +.fg-emerald { + color: #008a00 !important; +} +.fg-teal { + color: #00aba9 !important; +} +.fg-cyan { + color: #1ba1e2 !important; +} +.fg-cobalt { + color: #0050ef !important; +} +.fg-indigo { + color: #6a00ff !important; +} +.fg-violet { + color: #aa00ff !important; +} +.fg-pink { + color: #dc4fad !important; +} +.fg-magenta { + color: #d80073 !important; +} +.fg-crimson { + color: #a20025 !important; +} +.fg-red { + color: #ce352c !important; +} +.fg-orange { + color: #fa6800 !important; +} +.fg-amber { + color: #f0a30a !important; +} +.fg-yellow { + color: #e3c800 !important; +} +.fg-brown { + color: #825a2c !important; +} +.fg-olive { + color: #6d8764 !important; +} +.fg-steel { + color: #647687 !important; +} +.fg-mauve { + color: #76608a !important; +} +.fg-taupe { + color: #87794e !important; +} +.fg-gray { + color: #555555 !important; +} +.fg-dark { + color: #333333 !important; +} +.fg-darker { + color: #222222 !important; +} +.fg-transparent { + color: transparent !important; +} +.fg-darkBrown { + color: #63362f !important; +} +.fg-darkCrimson { + color: #640024 !important; +} +.fg-darkMagenta { + color: #81003c !important; +} +.fg-darkIndigo { + color: #4b0096 !important; +} +.fg-darkCyan { + color: #1b6eae !important; +} +.fg-darkCobalt { + color: #00356a !important; +} +.fg-darkTeal { + color: #004050 !important; +} +.fg-darkEmerald { + color: #003e00 !important; +} +.fg-darkGreen { + color: #128023 !important; +} +.fg-darkOrange { + color: #bf5a15 !important; +} +.fg-darkRed { + color: #9a1616 !important; +} +.fg-darkPink { + color: #9a165a !important; +} +.fg-darkViolet { + color: #57169a !important; +} +.fg-darkBlue { + color: #16499a !important; +} +.fg-lightBlue { + color: #4390df !important; +} +.fg-lighterBlue { + color: #00ccff !important; +} +.fg-lightTeal { + color: #45fffd !important; +} +.fg-lightOlive { + color: #78aa1c !important; +} +.fg-lightOrange { + color: #c29008 !important; +} +.fg-lightPink { + color: #f472d0 !important; +} +.fg-lightRed { + color: #da5a53 !important; +} +.fg-lightGreen { + color: #7ad61d !important; +} +.fg-grayDark { + color: #333333 !important; +} +.fg-grayDarker { + color: #222222 !important; +} +.fg-grayLight { + color: #999999 !important; +} +.fg-grayLighter { + color: #eeeeee !important; +} +.fg-blue { + color: #00aff0 !important; +} +.ol-black { + outline-color: #000000 !important; +} +.ol-white { + outline-color: #ffffff !important; +} +.ol-lime { + outline-color: #a4c400 !important; +} +.ol-green { + outline-color: #60a917 !important; +} +.ol-emerald { + outline-color: #008a00 !important; +} +.ol-teal { + outline-color: #00aba9 !important; +} +.ol-cyan { + outline-color: #1ba1e2 !important; +} +.ol-cobalt { + outline-color: #0050ef !important; +} +.ol-indigo { + outline-color: #6a00ff !important; +} +.ol-violet { + outline-color: #aa00ff !important; +} +.ol-pink { + outline-color: #dc4fad !important; +} +.ol-magenta { + outline-color: #d80073 !important; +} +.ol-crimson { + outline-color: #a20025 !important; +} +.ol-red { + outline-color: #ce352c !important; +} +.ol-orange { + outline-color: #fa6800 !important; +} +.ol-amber { + outline-color: #f0a30a !important; +} +.ol-yellow { + outline-color: #e3c800 !important; +} +.ol-brown { + outline-color: #825a2c !important; +} +.ol-olive { + outline-color: #6d8764 !important; +} +.ol-steel { + outline-color: #647687 !important; +} +.ol-mauve { + outline-color: #76608a !important; +} +.ol-taupe { + outline-color: #87794e !important; +} +.ol-gray { + outline-color: #555555 !important; +} +.ol-dark { + outline-color: #333333 !important; +} +.ol-darker { + outline-color: #222222 !important; +} +.ol-transparent { + outline-color: transparent !important; +} +.ol-darkBrown { + outline-color: #63362f !important; +} +.ol-darkCrimson { + outline-color: #640024 !important; +} +.ol-darkMagenta { + outline-color: #81003c !important; +} +.ol-darkIndigo { + outline-color: #4b0096 !important; +} +.ol-darkCyan { + outline-color: #1b6eae !important; +} +.ol-darkCobalt { + outline-color: #00356a !important; +} +.ol-darkTeal { + outline-color: #004050 !important; +} +.ol-darkEmerald { + outline-color: #003e00 !important; +} +.ol-darkGreen { + outline-color: #128023 !important; +} +.ol-darkOrange { + outline-color: #bf5a15 !important; +} +.ol-darkRed { + outline-color: #9a1616 !important; +} +.ol-darkPink { + outline-color: #9a165a !important; +} +.ol-darkViolet { + outline-color: #57169a !important; +} +.ol-darkBlue { + outline-color: #16499a !important; +} +.ol-lightBlue { + outline-color: #4390df !important; +} +.ol-lighterBlue { + outline-color: #00ccff !important; +} +.ol-lightTeal { + outline-color: #45fffd !important; +} +.ol-lightOlive { + outline-color: #78aa1c !important; +} +.ol-lightOrange { + outline-color: #c29008 !important; +} +.ol-lightPink { + outline-color: #f472d0 !important; +} +.ol-lightRed { + outline-color: #da5a53 !important; +} +.ol-lightGreen { + outline-color: #7ad61d !important; +} +.ol-grayDark { + outline-color: #333333 !important; +} +.ol-grayDarker { + outline-color: #222222 !important; +} +.ol-grayLight { + outline-color: #999999 !important; +} +.ol-grayLighter { + outline-color: #eeeeee !important; +} +.ol-blue { + outline-color: #00aff0 !important; +} +.bd-black { + border-color: #000000 !important; +} +.bd-white { + border-color: #ffffff !important; +} +.bd-lime { + border-color: #a4c400 !important; +} +.bd-green { + border-color: #60a917 !important; +} +.bd-emerald { + border-color: #008a00 !important; +} +.bd-teal { + border-color: #00aba9 !important; +} +.bd-cyan { + border-color: #1ba1e2 !important; +} +.bd-cobalt { + border-color: #0050ef !important; +} +.bd-indigo { + border-color: #6a00ff !important; +} +.bd-violet { + border-color: #aa00ff !important; +} +.bd-pink { + border-color: #dc4fad !important; +} +.bd-magenta { + border-color: #d80073 !important; +} +.bd-crimson { + border-color: #a20025 !important; +} +.bd-red { + border-color: #ce352c !important; +} +.bd-orange { + border-color: #fa6800 !important; +} +.bd-amber { + border-color: #f0a30a !important; +} +.bd-yellow { + border-color: #e3c800 !important; +} +.bd-brown { + border-color: #825a2c !important; +} +.bd-olive { + border-color: #6d8764 !important; +} +.bd-steel { + border-color: #647687 !important; +} +.bd-mauve { + border-color: #76608a !important; +} +.bd-taupe { + border-color: #87794e !important; +} +.bd-gray { + border-color: #555555 !important; +} +.bd-dark { + border-color: #333333 !important; +} +.bd-darker { + border-color: #222222 !important; +} +.bd-transparent { + border-color: transparent !important; +} +.bd-darkBrown { + border-color: #63362f !important; +} +.bd-darkCrimson { + border-color: #640024 !important; +} +.bd-darkMagenta { + border-color: #81003c !important; +} +.bd-darkIndigo { + border-color: #4b0096 !important; +} +.bd-darkCyan { + border-color: #1b6eae !important; +} +.bd-darkCobalt { + border-color: #00356a !important; +} +.bd-darkTeal { + border-color: #004050 !important; +} +.bd-darkEmerald { + border-color: #003e00 !important; +} +.bd-darkGreen { + border-color: #128023 !important; +} +.bd-darkOrange { + border-color: #bf5a15 !important; +} +.bd-darkRed { + border-color: #9a1616 !important; +} +.bd-darkPink { + border-color: #9a165a !important; +} +.bd-darkViolet { + border-color: #57169a !important; +} +.bd-darkBlue { + border-color: #16499a !important; +} +.bd-lightBlue { + border-color: #4390df !important; +} +.bd-lightTeal { + border-color: #45fffd !important; +} +.bd-lightOlive { + border-color: #78aa1c !important; +} +.bd-lightOrange { + border-color: #c29008 !important; +} +.bd-lightPink { + border-color: #f472d0 !important; +} +.bd-lightRed { + border-color: #da5a53 !important; +} +.bd-lightGreen { + border-color: #7ad61d !important; +} +.bd-grayDark { + border-color: #333333 !important; +} +.bd-grayDarker { + border-color: #222222 !important; +} +.bd-grayLight { + border-color: #999999 !important; +} +.bd-grayLighter { + border-color: #eeeeee !important; +} +.bd-blue { + border-color: #00aff0 !important; +} +.bg-hover-black:hover { + background: #000000 !important; +} +.bg-hover-white:hover { + background: #ffffff !important; +} +.bg-hover-lime:hover { + background: #a4c400 !important; +} +.bg-hover-green:hover { + background: #60a917 !important; +} +.bg-hover-emerald:hover { + background: #008a00 !important; +} +.bg-hover-teal:hover { + background: #00aba9 !important; +} +.bg-hover-cyan:hover { + background: #1ba1e2 !important; +} +.bg-hover-cobalt:hover { + background: #0050ef !important; +} +.bg-hover-indigo:hover { + background: #6a00ff !important; +} +.bg-hover-violet:hover { + background: #aa00ff !important; +} +.bg-hover-pink:hover { + background: #dc4fad !important; +} +.bg-hover-magenta:hover { + background: #d80073 !important; +} +.bg-hover-crimson:hover { + background: #a20025 !important; +} +.bg-hover-red:hover { + background: #ce352c !important; +} +.bg-hover-orange:hover { + background: #fa6800 !important; +} +.bg-hover-amber:hover { + background: #f0a30a !important; +} +.bg-hover-yellow:hover { + background: #e3c800 !important; +} +.bg-hover-brown:hover { + background: #825a2c !important; +} +.bg-hover-olive:hover { + background: #6d8764 !important; +} +.bg-hover-steel:hover { + background: #647687 !important; +} +.bg-hover-mauve:hover { + background: #76608a !important; +} +.bg-hover-taupe:hover { + background: #87794e !important; +} +.bg-hover-gray:hover { + background: #555555 !important; +} +.bg-hover-dark:hover { + background: #333333 !important; +} +.bg-hover-darker:hover { + background: #222222 !important; +} +.bg-hover-transparent:hover { + background: transparent !important; +} +.bg-hover-darkBrown:hover { + background: #63362f !important; +} +.bg-hover-darkCrimson:hover { + background: #640024 !important; +} +.bg-hover-darkMagenta:hover { + background: #81003c !important; +} +.bg-hover-darkIndigo:hover { + background: #4b0096 !important; +} +.bg-hover-darkCyan:hover { + background: #1b6eae !important; +} +.bg-hover-darkCobalt:hover { + background: #00356a !important; +} +.bg-hover-darkTeal:hover { + background: #004050 !important; +} +.bg-hover-darkEmerald:hover { + background: #003e00 !important; +} +.bg-hover-darkGreen:hover { + background: #128023 !important; +} +.bg-hover-darkOrange:hover { + background: #bf5a15 !important; +} +.bg-hover-darkRed:hover { + background: #9a1616 !important; +} +.bg-hover-darkPink:hover { + background: #9a165a !important; +} +.bg-hover-darkViolet:hover { + background: #57169a !important; +} +.bg-hover-darkBlue:hover { + background: #16499a !important; +} +.bg-hover-lightBlue:hover { + background: #4390df !important; +} +.bg-hover-lightTeal:hover { + background: #45fffd !important; +} +.bg-hover-lightOlive:hover { + background: #78aa1c !important; +} +.bg-hover-lightOrange:hover { + background: #c29008 !important; +} +.bg-hover-lightPink:hover { + background: #f472d0 !important; +} +.bg-hover-lightRed:hover { + background: #da5a53 !important; +} +.bg-hover-lightGreen:hover { + background: #7ad61d !important; +} +.bg-hover-grayDark:hover { + background: #333333 !important; +} +.bg-hover-grayDarker:hover { + background: #222222 !important; +} +.bg-hover-grayLight:hover { + background: #999999 !important; +} +.bg-hover-grayLighter:hover { + background: #eeeeee !important; +} +.bg-hover-blue:hover { + background: #00aff0 !important; +} +.fg-hover-black:hover { + color: #000000 !important; +} +.fg-hover-white:hover { + color: #ffffff !important; +} +.fg-hover-lime:hover { + color: #a4c400 !important; +} +.fg-hover-green:hover { + color: #60a917 !important; +} +.fg-hover-emerald:hover { + color: #008a00 !important; +} +.fg-hover-teal:hover { + color: #00aba9 !important; +} +.fg-hover-cyan:hover { + color: #1ba1e2 !important; +} +.fg-hover-cobalt:hover { + color: #0050ef !important; +} +.fg-hover-indigo:hover { + color: #6a00ff !important; +} +.fg-hover-violet:hover { + color: #aa00ff !important; +} +.fg-hover-pink:hover { + color: #dc4fad !important; +} +.fg-hover-magenta:hover { + color: #d80073 !important; +} +.fg-hover-crimson:hover { + color: #a20025 !important; +} +.fg-hover-red:hover { + color: #ce352c !important; +} +.fg-hover-orange:hover { + color: #fa6800 !important; +} +.fg-hover-amber:hover { + color: #f0a30a !important; +} +.fg-hover-yellow:hover { + color: #e3c800 !important; +} +.fg-hover-brown:hover { + color: #825a2c !important; +} +.fg-hover-olive:hover { + color: #6d8764 !important; +} +.fg-hover-steel:hover { + color: #647687 !important; +} +.fg-hover-mauve:hover { + color: #76608a !important; +} +.fg-hover-taupe:hover { + color: #87794e !important; +} +.fg-hover-gray:hover { + color: #555555 !important; +} +.fg-hover-dark:hover { + color: #333333 !important; +} +.fg-hover-darker:hover { + color: #222222 !important; +} +.fg-hover-transparent:hover { + color: transparent !important; +} +.fg-hover-darkBrown:hover { + color: #63362f !important; +} +.fg-hover-darkCrimson:hover { + color: #640024 !important; +} +.fg-hover-darkMagenta:hover { + color: #81003c !important; +} +.fg-hover-darkIndigo:hover { + color: #4b0096 !important; +} +.fg-hover-darkCyan:hover { + color: #1b6eae !important; +} +.fg-hover-darkCobalt:hover { + color: #00356a !important; +} +.fg-hover-darkTeal:hover { + color: #004050 !important; +} +.fg-hover-darkEmerald:hover { + color: #003e00 !important; +} +.fg-hover-darkGreen:hover { + color: #128023 !important; +} +.fg-hover-darkOrange:hover { + color: #bf5a15 !important; +} +.fg-hover-darkRed:hover { + color: #9a1616 !important; +} +.fg-hover-darkPink:hover { + color: #9a165a !important; +} +.fg-hover-darkViolet:hover { + color: #57169a !important; +} +.fg-hover-darkBlue:hover { + color: #16499a !important; +} +.fg-hover-lightBlue:hover { + color: #4390df !important; +} +.fg-hover-lightTeal:hover { + color: #45fffd !important; +} +.fg-hover-lightOlive:hover { + color: #78aa1c !important; +} +.fg-hover-lightOrange:hover { + color: #c29008 !important; +} +.fg-hover-lightPink:hover { + color: #f472d0 !important; +} +.fg-hover-lightRed:hover { + color: #da5a53 !important; +} +.fg-hover-lightGreen:hover { + color: #7ad61d !important; +} +.fg-hover-grayDark:hover { + color: #333333 !important; +} +.fg-hover-grayDarker:hover { + color: #222222 !important; +} +.fg-hover-grayLight:hover { + color: #999999 !important; +} +.fg-hover-grayLighter:hover { + color: #eeeeee !important; +} +.fg-hover-blue:hover { + color: #00aff0 !important; +} +.bg-active-black:active { + background: #000000 !important; +} +.bg-active-white:active { + background: #ffffff !important; +} +.bg-active-lime:active { + background: #a4c400 !important; +} +.bg-active-green:active { + background: #60a917 !important; +} +.bg-active-emerald:active { + background: #008a00 !important; +} +.bg-active-teal:active { + background: #00aba9 !important; +} +.bg-active-cyan:active { + background: #1ba1e2 !important; +} +.bg-active-cobalt:active { + background: #0050ef !important; +} +.bg-active-indigo:active { + background: #6a00ff !important; +} +.bg-active-violet:active { + background: #aa00ff !important; +} +.bg-active-pink:active { + background: #dc4fad !important; +} +.bg-active-magenta:active { + background: #d80073 !important; +} +.bg-active-crimson:active { + background: #a20025 !important; +} +.bg-active-red:active { + background: #ce352c !important; +} +.bg-active-orange:active { + background: #fa6800 !important; +} +.bg-active-amber:active { + background: #f0a30a !important; +} +.bg-active-yellow:active { + background: #e3c800 !important; +} +.bg-active-brown:active { + background: #825a2c !important; +} +.bg-active-olive:active { + background: #6d8764 !important; +} +.bg-active-steel:active { + background: #647687 !important; +} +.bg-active-mauve:active { + background: #76608a !important; +} +.bg-active-taupe:active { + background: #87794e !important; +} +.bg-active-gray:active { + background: #555555 !important; +} +.bg-active-dark:active { + background: #333333 !important; +} +.bg-active-darker:active { + background: #222222 !important; +} +.bg-active-transparent:active { + background: transparent !important; +} +.bg-active-darkBrown:active { + background: #63362f !important; +} +.bg-active-darkCrimson:active { + background: #640024 !important; +} +.bg-active-darkMagenta:active { + background: #81003c !important; +} +.bg-active-darkIndigo:active { + background: #4b0096 !important; +} +.bg-active-darkCyan:active { + background: #1b6eae !important; +} +.bg-active-darkCobalt:active { + background: #00356a !important; +} +.bg-active-darkTeal:active { + background: #004050 !important; +} +.bg-active-darkEmerald:active { + background: #003e00 !important; +} +.bg-active-darkGreen:active { + background: #128023 !important; +} +.bg-active-darkOrange:active { + background: #bf5a15 !important; +} +.bg-active-darkRed:active { + background: #9a1616 !important; +} +.bg-active-darkPink:active { + background: #9a165a !important; +} +.bg-active-darkViolet:active { + background: #57169a !important; +} +.bg-active-darkBlue:active { + background: #16499a !important; +} +.bg-active-lightBlue:active { + background: #4390df !important; +} +.bg-active-lightTeal:active { + background: #45fffd !important; +} +.bg-active-lightOlive:active { + background: #78aa1c !important; +} +.bg-active-lightOrange:active { + background: #c29008 !important; +} +.bg-active-lightPink:active { + background: #f472d0 !important; +} +.bg-active-lightRed:active { + background: #da5a53 !important; +} +.bg-active-lightGreen:active { + background: #7ad61d !important; +} +.bg-active-grayDark:active { + background: #333333 !important; +} +.bg-active-grayDarker:active { + background: #222222 !important; +} +.bg-active-grayLight:active { + background: #999999 !important; +} +.bg-active-grayLighter:active { + background: #eeeeee !important; +} +.bg-active-blue:active { + background: #00aff0 !important; +} +.fg-active-black:active { + color: #000000 !important; +} +.fg-active-white:active { + color: #ffffff !important; +} +.fg-active-lime:active { + color: #a4c400 !important; +} +.fg-active-green:active { + color: #60a917 !important; +} +.fg-active-emerald:active { + color: #008a00 !important; +} +.fg-active-teal:active { + color: #00aba9 !important; +} +.fg-active-cyan:active { + color: #1ba1e2 !important; +} +.fg-active-cobalt:active { + color: #0050ef !important; +} +.fg-active-indigo:active { + color: #6a00ff !important; +} +.fg-active-violet:active { + color: #aa00ff !important; +} +.fg-active-pink:active { + color: #dc4fad !important; +} +.fg-active-magenta:active { + color: #d80073 !important; +} +.fg-active-crimson:active { + color: #a20025 !important; +} +.fg-active-red:active { + color: #ce352c !important; +} +.fg-active-orange:active { + color: #fa6800 !important; +} +.fg-active-amber:active { + color: #f0a30a !important; +} +.fg-active-yellow:active { + color: #e3c800 !important; +} +.fg-active-brown:active { + color: #825a2c !important; +} +.fg-active-olive:active { + color: #6d8764 !important; +} +.fg-active-steel:active { + color: #647687 !important; +} +.fg-active-mauve:active { + color: #76608a !important; +} +.fg-active-taupe:active { + color: #87794e !important; +} +.fg-active-gray:active { + color: #555555 !important; +} +.fg-active-dark:active { + color: #333333 !important; +} +.fg-active-darker:active { + color: #222222 !important; +} +.fg-active-transparent:active { + color: transparent !important; +} +.fg-active-darkBrown:active { + color: #63362f !important; +} +.fg-active-darkCrimson:active { + color: #640024 !important; +} +.fg-active-darkMagenta:active { + color: #81003c !important; +} +.fg-active-darkIndigo:active { + color: #4b0096 !important; +} +.fg-active-darkCyan:active { + color: #1b6eae !important; +} +.fg-active-darkCobalt:active { + color: #00356a !important; +} +.fg-active-darkTeal:active { + color: #004050 !important; +} +.fg-active-darkEmerald:active { + color: #003e00 !important; +} +.fg-active-darkGreen:active { + color: #128023 !important; +} +.fg-active-darkOrange:active { + color: #bf5a15 !important; +} +.fg-active-darkRed:active { + color: #9a1616 !important; +} +.fg-active-darkPink:active { + color: #9a165a !important; +} +.fg-active-darkViolet:active { + color: #57169a !important; +} +.fg-active-darkBlue:active { + color: #16499a !important; +} +.fg-active-lightBlue:active { + color: #4390df !important; +} +.fg-active-lightTeal:active { + color: #45fffd !important; +} +.fg-active-lightOlive:active { + color: #78aa1c !important; +} +.fg-active-lightOrange:active { + color: #c29008 !important; +} +.fg-active-lightPink:active { + color: #f472d0 !important; +} +.fg-active-lightRed:active { + color: #da5a53 !important; +} +.fg-active-lightGreen:active { + color: #7ad61d !important; +} +.fg-active-grayDark:active { + color: #333333 !important; +} +.fg-active-grayDarker:active { + color: #222222 !important; +} +.fg-active-grayLight:active { + color: #999999 !important; +} +.fg-active-grayLighter:active { + color: #eeeeee !important; +} +.fg-active-blue:active { + color: #00aff0 !important; +} +.bg-focus-black:focus { + background: #000000 !important; +} +.bg-focus-white:focus { + background: #ffffff !important; +} +.bg-focus-lime:focus { + background: #a4c400 !important; +} +.bg-focus-green:focus { + background: #60a917 !important; +} +.bg-focus-emerald:focus { + background: #008a00 !important; +} +.bg-focus-teal:focus { + background: #00aba9 !important; +} +.bg-focus-cyan:focus { + background: #1ba1e2 !important; +} +.bg-focus-cobalt:focus { + background: #0050ef !important; +} +.bg-focus-indigo:focus { + background: #6a00ff !important; +} +.bg-focus-violet:focus { + background: #aa00ff !important; +} +.bg-focus-pink:focus { + background: #dc4fad !important; +} +.bg-focus-magenta:focus { + background: #d80073 !important; +} +.bg-focus-crimson:focus { + background: #a20025 !important; +} +.bg-focus-red:focus { + background: #ce352c !important; +} +.bg-focus-orange:focus { + background: #fa6800 !important; +} +.bg-focus-amber:focus { + background: #f0a30a !important; +} +.bg-focus-yellow:focus { + background: #e3c800 !important; +} +.bg-focus-brown:focus { + background: #825a2c !important; +} +.bg-focus-olive:focus { + background: #6d8764 !important; +} +.bg-focus-steel:focus { + background: #647687 !important; +} +.bg-focus-mauve:focus { + background: #76608a !important; +} +.bg-focus-taupe:focus { + background: #87794e !important; +} +.bg-focus-gray:focus { + background: #555555 !important; +} +.bg-focus-dark:focus { + background: #333333 !important; +} +.bg-focus-darker:focus { + background: #222222 !important; +} +.bg-focus-transparent:focus { + background: transparent !important; +} +.bg-focus-darkBrown:focus { + background: #63362f !important; +} +.bg-focus-darkCrimson:focus { + background: #640024 !important; +} +.bg-focus-darkMagenta:focus { + background: #81003c !important; +} +.bg-focus-darkIndigo:focus { + background: #4b0096 !important; +} +.bg-focus-darkCyan:focus { + background: #1b6eae !important; +} +.bg-focus-darkCobalt:focus { + background: #00356a !important; +} +.bg-focus-darkTeal:focus { + background: #004050 !important; +} +.bg-focus-darkEmerald:focus { + background: #003e00 !important; +} +.bg-focus-darkGreen:focus { + background: #128023 !important; +} +.bg-focus-darkOrange:focus { + background: #bf5a15 !important; +} +.bg-focus-darkRed:focus { + background: #9a1616 !important; +} +.bg-focus-darkPink:focus { + background: #9a165a !important; +} +.bg-focus-darkViolet:focus { + background: #57169a !important; +} +.bg-focus-darkBlue:focus { + background: #16499a !important; +} +.bg-focus-lightBlue:focus { + background: #4390df !important; +} +.bg-focus-lightTeal:focus { + background: #45fffd !important; +} +.bg-focus-lightOlive:focus { + background: #78aa1c !important; +} +.bg-focus-lightOrange:focus { + background: #c29008 !important; +} +.bg-focus-lightPink:focus { + background: #f472d0 !important; +} +.bg-focus-lightRed:focus { + background: #da5a53 !important; +} +.bg-focus-lightGreen:focus { + background: #7ad61d !important; +} +.bg-focus-grayDark:focus { + background: #333333 !important; +} +.bg-focus-grayDarker:focus { + background: #222222 !important; +} +.bg-focus-grayLight:focus { + background: #999999 !important; +} +.bg-focus-grayLighter:focus { + background: #eeeeee !important; +} +.bg-focus-blue:focus { + background: #00aff0 !important; +} +.fg-focus-black:focus { + color: #000000 !important; +} +.fg-focus-white:focus { + color: #ffffff !important; +} +.fg-focus-lime:focus { + color: #a4c400 !important; +} +.fg-focus-green:focus { + color: #60a917 !important; +} +.fg-focus-emerald:focus { + color: #008a00 !important; +} +.fg-focus-teal:focus { + color: #00aba9 !important; +} +.fg-focus-cyan:focus { + color: #1ba1e2 !important; +} +.fg-focus-cobalt:focus { + color: #0050ef !important; +} +.fg-focus-indigo:focus { + color: #6a00ff !important; +} +.fg-focus-violet:focus { + color: #aa00ff !important; +} +.fg-focus-pink:focus { + color: #dc4fad !important; +} +.fg-focus-magenta:focus { + color: #d80073 !important; +} +.fg-focus-crimson:focus { + color: #a20025 !important; +} +.fg-focus-red:focus { + color: #ce352c !important; +} +.fg-focus-orange:focus { + color: #fa6800 !important; +} +.fg-focus-amber:focus { + color: #f0a30a !important; +} +.fg-focus-yellow:focus { + color: #e3c800 !important; +} +.fg-focus-brown:focus { + color: #825a2c !important; +} +.fg-focus-olive:focus { + color: #6d8764 !important; +} +.fg-focus-steel:focus { + color: #647687 !important; +} +.fg-focus-mauve:focus { + color: #76608a !important; +} +.fg-focus-taupe:focus { + color: #87794e !important; +} +.fg-focus-gray:focus { + color: #555555 !important; +} +.fg-focus-dark:focus { + color: #333333 !important; +} +.fg-focus-darker:focus { + color: #222222 !important; +} +.fg-focus-transparent:focus { + color: transparent !important; +} +.fg-focus-darkBrown:focus { + color: #63362f !important; +} +.fg-focus-darkCrimson:focus { + color: #640024 !important; +} +.fg-focus-darkMagenta:focus { + color: #81003c !important; +} +.fg-focus-darkIndigo:focus { + color: #4b0096 !important; +} +.fg-focus-darkCyan:focus { + color: #1b6eae !important; +} +.fg-focus-darkCobalt:focus { + color: #00356a !important; +} +.fg-focus-darkTeal:focus { + color: #004050 !important; +} +.fg-focus-darkEmerald:focus { + color: #003e00 !important; +} +.fg-focus-darkGreen:focus { + color: #128023 !important; +} +.fg-focus-darkOrange:focus { + color: #bf5a15 !important; +} +.fg-focus-darkRed:focus { + color: #9a1616 !important; +} +.fg-focus-darkPink:focus { + color: #9a165a !important; +} +.fg-focus-darkViolet:focus { + color: #57169a !important; +} +.fg-focus-darkBlue:focus { + color: #16499a !important; +} +.fg-focus-lightBlue:focus { + color: #4390df !important; +} +.fg-focus-lightTeal:focus { + color: #45fffd !important; +} +.fg-focus-lightOlive:focus { + color: #78aa1c !important; +} +.fg-focus-lightOrange:focus { + color: #c29008 !important; +} +.fg-focus-lightPink:focus { + color: #f472d0 !important; +} +.fg-focus-lightRed:focus { + color: #da5a53 !important; +} +.fg-focus-lightGreen:focus { + color: #7ad61d !important; +} +.fg-focus-grayDark:focus { + color: #333333 !important; +} +.fg-focus-grayDarker:focus { + color: #222222 !important; +} +.fg-focus-grayLight:focus { + color: #999999 !important; +} +.fg-focus-grayLighter:focus { + color: #eeeeee !important; +} +.fg-focus-blue:focus { + color: #00aff0 !important; +} + +.dropdown-toggle { + position: relative; + cursor: pointer; +} +.dropdown-toggle:before { + display: block; + position: absolute; + vertical-align: middle; + color: transparent; + font-size: 0; + content: ""; + height: 5px; + width: 5px; + background-color: transparent !important; + border-left: 1px solid; + border-bottom: 1px solid; + border-color: #1d1d1d; + top: 50%; + left: 100%; + margin-left: -1rem; + margin-top: -0.1625rem; + z-index: 2; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.dropdown-toggle.drop-marker-light:before { + border-color: #ffffff; +} +*.dropdown-toggle { + padding-right: 1.625rem; +} +.flush-list { + padding: 0; + margin: 0; + list-style: none inside none; +} +.shadow { + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35); +} +.block-shadow { + box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} +.block-shadow-success { + box-shadow: 0 0 25px 0 rgba(0, 128, 0, 0.7); +} +.block-shadow-error { + box-shadow: 0 0 25px 0 rgba(128, 0, 0, 0.7); +} +.block-shadow-danger { + box-shadow: 0 0 25px 0 rgba(128, 0, 0, 0.7); +} +.block-shadow-warning { + box-shadow: 0 0 25px 0 rgba(255, 165, 0, 0.7); +} +.block-shadow-info { + box-shadow: 0 0 25px 0 rgba(89, 205, 226, 0.7); +} +.block-shadow-impact { + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2); +} +.bottom-shadow { + box-shadow: -1px 6px 6px -6px rgba(0, 0, 0, 0.35); +} +.text-shadow { + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); +} +.no-shadow { + box-shadow: none !important; +} +.full-size { + width: 100% !important; +} +.block { + display: block !important; +} +.inline-block { + display: inline-block !important; +} +.no-display { + display: none !important; +} +.no-margin { + margin: 0 !important; +} +.no-margin-right { + margin-right: 0 !important; +} +.no-margin-left { + margin-left: 0 !important; +} +.no-margin-top { + margin-top: 0 !important; +} +.no-margin-bottom { + margin-bottom: 0 !important; +} +.no-padding { + padding: 0 !important; +} +.no-padding-left { + padding-left: 0 !important; +} +.no-padding-right { + padding-right: 0 !important; +} +.no-padding-top { + padding-top: 0 !important; +} +.no-padding-bottom { + padding-bottom: 0 !important; +} +.no-float { + float: none !important; +} +.no-visible { + visibility: hidden !important; +} +.no-border { + border: 0 !important; +} +.no-overflow { + overflow: hidden !important; +} +.place-right { + float: right !important; +} +.place-left { + float: left !important; +} +.clear-float:before, +.clear-float:after { + display: table; + content: ""; +} +.clear-float:after { + clear: both; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} +.no-user-select { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.no-appearance { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; +} +.debug { + border: 1px dashed red; +} +.example { + padding: .625rem 1.825rem .625rem 2.5rem; + border: 1px #ccc dashed; + position: relative; + margin: 0 0 .625rem 0; + background-color: #ffffff; +} +.example:before, +.example:after { + display: table; + content: ""; +} +.example:after { + clear: both; +} +.example:before { + position: absolute; + content: attr(data-text); + text-transform: lowercase; + left: 1.5rem; + top: 11.875rem; + color: gray; + display: block; + font-size: 1rem; + line-height: 1rem; + height: 1rem; + text-align: right; + white-space: nowrap; + direction: ltr; + width: 12.5rem; + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); + -webkit-transform-origin: 0 100%; + transform-origin: 0 100%; +} +.video-container { + position: relative; + padding-bottom: 56.25%; + padding-top: 30px; + height: 0; + overflow: hidden; +} +.video-container iframe, +.video-container object, +.video-container embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.padding10 { + padding: 0.625rem; +} +.padding20 { + padding: 1.25rem; +} +.padding30 { + padding: 1.875rem; +} +.padding40 { + padding: 2.5rem; +} +.padding50 { + padding: 3.125rem; +} +.padding60 { + padding: 3.75rem; +} +.padding70 { + padding: 4.375rem; +} +.padding80 { + padding: 5rem; +} +.padding90 { + padding: 5.625rem; +} +.padding100 { + padding: 6.25rem; +} +.padding5 { + padding: 5px; +} +.margin5 { + margin: 5px; +} +.margin10 { + margin: 0.625rem; +} +.margin20 { + margin: 1.25rem; +} +.margin30 { + margin: 1.875rem; +} +.margin40 { + margin: 2.5rem; +} +.margin50 { + margin: 3.125rem; +} +.margin60 { + margin: 3.75rem; +} +.margin70 { + margin: 4.375rem; +} +.margin80 { + margin: 5rem; +} +.margin90 { + margin: 5.625rem; +} +.margin100 { + margin: 6.25rem; +} +.opacity { + opacity: .9; +} +.half-opacity { + opacity: .5; +} +.hi-opacity { + opacity: .2; +} +.element-selected { + border: 4px #4390df solid !important; +} +.element-selected:after { + position: absolute; + display: block; + border-top: 28px solid #4390df; + border-left: 28px solid transparent; + right: 0; + content: ""; + top: 0; + z-index: 101; +} +.element-selected:before { + position: absolute; + display: block; + content: ""; + background-color: transparent; + border-color: #ffffff !important; + border-left: 2px solid; + border-bottom: 2px solid; + height: .25rem; + width: .5rem; + right: 0; + top: 0; + z-index: 102; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +/* Block function */ +.set-border { + border: 1px #eeeeee solid; +} +.set-border.medium-border { + border-width: 8px; +} +.set-border.large-border { + border-width: 16px; +} +.no-border { + border: none !important; +} +.no-border-left { + border-left: none !important; +} +.no-border-right { + border-right: none !important; +} +.no-border-top { + border-top: none !important; +} +.no-border-bottom { + border-bottom: none !important; +} +.transparent-border { + border-color: transparent !important; +} +/* transform functions */ +.rotate45 { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.rotate90 { + -webkit-transform: rotate(90deg); + transform: rotate(90deg); +} +.rotate135 { + -webkit-transform: rotate(135deg); + transform: rotate(135deg); +} +.rotate180 { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} +.rotate225 { + -webkit-transform: rotate(225deg); + transform: rotate(225deg); +} +.rotate270 { + -webkit-transform: rotate(270deg); + transform: rotate(270deg); +} +.rotate360 { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); +} +.rotate-45 { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.rotate-90 { + -webkit-transform: rotate(-90deg); + transform: rotate(-90deg); +} +.rotate-135 { + -webkit-transform: rotate(-135deg); + transform: rotate(-135deg); +} +.rotate-180 { + -webkit-transform: rotate(-180deg); + transform: rotate(-180deg); +} +.rotate-225 { + -webkit-transform: rotate(-225deg); + transform: rotate(-225deg); +} +.rotate-270 { + -webkit-transform: rotate(-270deg); + transform: rotate(-270deg); +} +.rotate-360 { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); +} +.rotateX45 { + -webkit-transform: rotateX(45deg); + transform: rotateX(45deg); +} +.rotateX90 { + -webkit-transform: rotateX(90deg); + transform: rotateX(90deg); +} +.rotateX135 { + -webkit-transform: rotateX(135deg); + transform: rotateX(135deg); +} +.rotateX180 { + -webkit-transform: rotateX(180deg); + transform: rotateX(180deg); +} +.rotateX225 { + -webkit-transform: rotateX(225deg); + transform: rotateX(225deg); +} +.rotateX270 { + -webkit-transform: rotateX(270deg); + transform: rotateX(270deg); +} +.rotateX360 { + -webkit-transform: rotateX(360deg); + transform: rotateX(360deg); +} +.rotateX-45 { + -webkit-transform: rotateX(-45deg); + transform: rotateX(-45deg); +} +.rotateX-90 { + -webkit-transform: rotateX(-90deg); + transform: rotateX(-90deg); +} +.rotateX-135 { + -webkit-transform: rotateX(-135deg); + transform: rotateX(-135deg); +} +.rotateX-180 { + -webkit-transform: rotateX(-180deg); + transform: rotateX(-180deg); +} +.rotateX-225 { + -webkit-transform: rotateX(-225deg); + transform: rotateX(-225deg); +} +.rotateX-270 { + -webkit-transform: rotateX(-270deg); + transform: rotateX(-270deg); +} +.rotateX-360 { + -webkit-transform: rotateX(-360deg); + transform: rotateX(-360deg); +} +.rotateY45 { + -webkit-transform: rotateY(45deg); + transform: rotateY(45deg); +} +.rotateY90 { + -webkit-transform: rotateY(90deg); + transform: rotateY(90deg); +} +.rotateY135 { + -webkit-transform: rotateY(135deg); + transform: rotateY(135deg); +} +.rotateY180 { + -webkit-transform: rotateY(180deg); + transform: rotateY(180deg); +} +.rotateY225 { + -webkit-transform: rotateY(225deg); + transform: rotateY(225deg); +} +.rotateY270 { + -webkit-transform: rotateY(270deg); + transform: rotateY(270deg); +} +.rotateY360 { + -webkit-transform: rotateY(360deg); + transform: rotateY(360deg); +} +.rotateY-45 { + -webkit-transform: rotateY(-45deg); + transform: rotateY(-45deg); +} +.rotateY-90 { + -webkit-transform: rotateY(-90deg); + transform: rotateY(-90deg); +} +.rotateY-135 { + -webkit-transform: rotateY(-135deg); + transform: rotateY(-135deg); +} +.rotateY-180 { + -webkit-transform: rotateY(-180deg); + transform: rotateY(-180deg); +} +.rotateY-225 { + -webkit-transform: rotateY(-225deg); + transform: rotateY(-225deg); +} +.rotateY-270 { + -webkit-transform: rotateY(-270deg); + transform: rotateY(-270deg); +} +.rotateY-360 { + -webkit-transform: rotateY(-360deg); + transform: rotateY(-360deg); +} +@font-face { + font-family: "PT Serif Caption"; + font-style: normal; + font-weight: 400; + src: local("Cambria"), local("PT Serif Caption"), local("PTSerif-Caption"), url(https://themes.googleusercontent.com/static/fonts/ptserifcaption/v6/7xkFOeTxxO1GMC1suOUYWWhBabBbEjGd1iRmpyoZukE.woff) format('woff'); +} +@font-face { + font-family: "Open Sans Light"; + font-style: normal; + font-weight: 300; + src: local("Segoe UI Light"), local("Open Sans Light"), local("OpenSans-Light"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/DXI1ORHCpsQm3Vp6mXoaTZ1r3JsPcQLi8jytr04NNhU.woff) format('woff'); +} +@font-face { + font-family: "Open Sans"; + font-style: normal; + font-weight: 400; + src: local("Segoe UI"), local("Open Sans"), local("OpenSans"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/K88pR3goAWT7BTt32Z01mz8E0i7KZn-EPnyo3HZu7kw.woff) format('woff'); +} +@font-face { + font-family: "Open Sans Bold"; + font-style: normal; + font-weight: 700; + src: local("Segoe UI Bold"), local("Open Sans Bold"), local("OpenSans-Bold"), url(https://themes.googleusercontent.com/static/fonts/opensans/v8/k3k702ZOKiLJc3WVjuplzJ1r3JsPcQLi8jytr04NNhU.woff) format('woff'); +} +html { + font-size: 100%; +} +@media screen and (min-width: 1401px) { + html { + font-size: 120%; + } +} +@media screen and (max-width: 1400px) { + html { + font-size: 110%; + } +} +@media screen and (max-width: 1200px) { + html { + font-size: 100%; + } +} +@media screen and (max-width: 768px) { + html { + font-size: 100%; + } +} +@media screen and (max-width: 640px) { + html { + font-size: 90%; + } +} +@media screen and (max-width: 320px) { + html { + font-size: 80%; + } +} +body { + font-family: "Segoe UI", "Open Sans", serif; + font-size: 0.875rem; + line-height: 1.1; + font-weight: 400; + font-style: normal; +} +#font .light { + font-weight: 300; + font-style: normal; +} +#font .normal { + font-weight: 400; + font-style: normal; +} +#font .bold { + font-style: normal; + font-weight: 700; +} +#font .italic { + font-style: italic; +} +.leader { + font: 400 2.25rem/1.1 "Segoe UI", "Open Sans", serif; +} +.sub-leader { + font: 500 1.875rem/1.1 "Segoe UI", "Open Sans", serif; +} +.header { + font: 500 1.5rem/1.1 "Segoe UI", "Open Sans", serif; +} +.sub-header { + font: 500 1.125rem/1.1 "Segoe UI", "Open Sans", serif; +} +.alt-header { + font: 500 1rem/1.1 "Segoe UI", "Open Sans", serif; +} +.sub-alt-header { + font: 500 0.875rem/1.1 "Segoe UI", "Open Sans", serif; +} +.minor-header { + font: 500 0.75rem/1.1 "Segoe UI", "Open Sans", serif; +} +@media screen and (max-width: 800px) { + h1, + h2, + h3, + h4, + h5, + h6, + p { + margin: .625rem 0 .625rem .625rem; + } +} +h1 { + font: 400 2.25rem/1.1 "Segoe UI", "Open Sans", serif; +} +h2 { + font: 500 1.875rem/1.1 "Segoe UI", "Open Sans", serif; +} +h3 { + font: 500 1.5rem/1.1 "Segoe UI", "Open Sans", serif; +} +h4 { + font: 500 1.125rem/1.1 "Segoe UI", "Open Sans", serif; +} +h5 { + font: 500 0.875rem/1.1 "Segoe UI", "Open Sans", serif; +} +h6 { + font: 500 0.75rem/1.1 "Segoe UI", "Open Sans", serif; +} +h1, +h2, +h3, +h4, +h5, +h6 { + margin: .625rem 0; + font-weight: 300!important; +} +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +h1 .small, +h2 .small, +h3 .small, +h4 .small, +h5 .small, +h6 .small { + font-weight: 400; + font-size: .7em; + line-height: 1; + color: #777; +} +.text-light { + font-weight: 300; + font-style: normal; +} +.text-normal { + font-weight: 400; + font-style: normal; +} +.text-bold { + font-style: normal; + font-weight: 700; +} +.text-italic { + font-style: italic; +} +.uppercase { + text-transform: uppercase; +} +.lowercase { + text-transform: lowercase; +} +.capital { + text-transform: capitalize; +} +.align-left { + text-align: left; +} +.align-right { + text-align: right; +} +.align-center { + text-align: center; +} +.align-justify { + text-align: justify; +} +.v-align-top { + vertical-align: top; +} +.v-align-bottom { + vertical-align: bottom; +} +.v-align-baseline { + vertical-align: baseline; +} +.v-align-middle { + vertical-align: middle; +} +.v-align-sub { + vertical-align: sub; +} +.v-align-super { + vertical-align: super; +} +.v-align-top-text { + vertical-align: text-top; +} +.v-align-bottom-text { + vertical-align: text-bottom; +} +.text-dashed { + border: 0; + border-bottom: 1px gray dashed; + display: inline; +} +.indent-paragraph:first-letter { + margin-left: 2.5rem; +} +.text-secondary { + font-size: 0.75rem; +} +.text-accent, +.text-enlarged { + font-size: 1.1rem; +} +.text-default { + font-size: 0.875rem; +} +.text-small { + font-size: 0.625rem; +} +.text-light { + font-weight: 300; +} +.text-ellipsis { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.no-wrap { + white-space: nowrap !important; +} +abbr { + text-decoration: none; + border-bottom: 1px #999999 dotted; + cursor: help; + display: inline; +} +address { + font-weight: 400; + font-style: normal; + margin: .625rem 0; +} +blockquote { + margin: .625rem 0; + padding: 0 0 0 .625rem; + border-left: 0.25rem #999999 solid; +} +blockquote small { + color: #999999; +} +blockquote small:before { + content: "\2014 \00A0"; +} +blockquote.place-right { + border: 0; + border-right: 4px #999999 solid; + padding-right: .625rem; + text-align: right; +} +blockquote.place-right small:before { + content: ""; +} +blockquote.place-right small:after { + content: " \00A0 \2014"; +} +.unstyled-list { + padding-left: 0; + list-style: none; +} +.unstyled-list li ul, +.unstyled-list li ol { + list-style: none; + padding-left: 1.5625rem; +} +.inline-list { + list-style: none; + padding-left: 0; +} +.inline-list li { + display: inline-block; + margin-right: .625rem; +} +.inline-list li:last-child { + margin-right: 0; +} +ul, +ol { + margin-left: .3125rem; +} +ul li, +ol li { + line-height: 1.25rem; +} +ul li ul, +ol li ul, +ul li ol, +ol li ol { + padding-left: 1.5625rem; +} +dl dt, +dl dd { + line-height: 1.25rem; +} +dl dt { + font-style: normal; + font-weight: 700; +} +dl dd { + margin-left: .9375rem; +} +dl.horizontal dt { + float: left; + width: 10rem; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; +} +dl.horizontal dd { + margin-left: 11.25rem; +} +a { + color: #2086bf; +} +a:visited { + color: #2086bf; +} +hr { + border: 0; + height: 2px; + background-color: #88b9e3; +} +hr.thin { + height: 1px; +} +hr.fat { + height: 3px; +} + +.container { + width: 960px; + margin: 0 auto; +} +@media screen and (min-width: 1401px) { + .container:not(.no-responsive-future) { + width: 1200px; + } +} +@media screen and (max-width: 992px) { + .container:not(.no-responsive-future) { + width: 100%; + padding: 0; + } +} +@media screen and (max-width: 768px) { + .container:not(.no-responsive-future) { + width: 100%; + padding: 0; + } +} +@media screen and (max-width: 640px) { + .container:not(.no-responsive-future) { + width: 100%; + padding: 0; + } +} +.grid { + display: block; + position: relative; + margin: .625rem 0; +} +.grid:before, +.grid:after { + display: table; + content: ""; +} +.grid:after { + clear: both; +} +.grid .row { + width: 100%; + display: block; + margin: 0 0 2.12765% 0; +} +.grid .row:before, +.grid .row:after { + display: table; + content: ""; +} +.grid .row:after { + clear: both; +} +.grid .row:last-child { + margin-bottom: 0; +} +.grid .row > .cell { + display: block; + float: left; + width: 100%; + min-height: 10px; + margin: 0 0 0 2.12765%; +} +.grid .row > .cell:first-child { + margin-left: 0; +} +.grid .row.cells2 > .cell { + width: 48.936175%; +} +.grid .row.cells2 > .cell.colspan2 { + width: 100%; +} +.grid .row.cells3 > .cell { + width: 31.9149%; +} +.grid .row.cells3 > .cell.colspan2 { + width: 65.95745%; +} +.grid .row.cells3 > .cell.colspan3 { + width: 100%; +} +.grid .row.cells4 > .cell { + width: 23.4042625%; +} +.grid .row.cells4 > .cell.colspan2 { + width: 48.936175%; +} +.grid .row.cells4 > .cell.colspan3 { + width: 74.4680875%; +} +.grid .row.cells4 > .cell.colspan4 { + width: 100%; +} +.grid .row.cells5 > .cell { + width: 18.29788%; +} +.grid .row.cells5 > .cell.colspan2 { + width: 38.72341%; +} +.grid .row.cells5 > .cell.colspan3 { + width: 59.14894%; +} +.grid .row.cells5 > .cell.colspan4 { + width: 79.57447%; +} +.grid .row.cells5 > .cell.colspan5 { + width: 100%; +} +.grid .row.cells6 > .cell { + width: 14.893625%; +} +.grid .row.cells6 > .cell.colspan2 { + width: 31.9149%; +} +.grid .row.cells6 > .cell.colspan3 { + width: 48.936175%; +} +.grid .row.cells6 > .cell.colspan4 { + width: 65.95745%; +} +.grid .row.cells6 > .cell.colspan5 { + width: 82.978725%; +} +.grid .row.cells6 > .cell.colspan6 { + width: 100%; +} +.grid .row.cells7 > .cell { + width: 12.46201429%; +} +.grid .row.cells7 > .cell.colspan2 { + width: 27.05167857%; +} +.grid .row.cells7 > .cell.colspan3 { + width: 41.64134286%; +} +.grid .row.cells7 > .cell.colspan4 { + width: 56.23100714%; +} +.grid .row.cells7 > .cell.colspan5 { + width: 70.82067143%; +} +.grid .row.cells7 > .cell.colspan6 { + width: 85.41033571%; +} +.grid .row.cells7 > .cell.colspan7 { + width: 100%; +} +.grid .row.cells8 > .cell { + width: 10.63830625%; +} +.grid .row.cells8 > .cell.colspan2 { + width: 23.4042625%; +} +.grid .row.cells8 > .cell.colspan3 { + width: 36.17021875%; +} +.grid .row.cells8 > .cell.colspan4 { + width: 48.936175%; +} +.grid .row.cells8 > .cell.colspan5 { + width: 61.70213125%; +} +.grid .row.cells8 > .cell.colspan6 { + width: 74.4680875%; +} +.grid .row.cells8 > .cell.colspan7 { + width: 87.23404375%; +} +.grid .row.cells8 > .cell.colspan8 { + width: 100%; +} +.grid .row.cells9 > .cell { + width: 9.21986667%; +} +.grid .row.cells9 > .cell.colspan2 { + width: 20.56738333%; +} +.grid .row.cells9 > .cell.colspan3 { + width: 31.9149%; +} +.grid .row.cells9 > .cell.colspan4 { + width: 43.26241667%; +} +.grid .row.cells9 > .cell.colspan5 { + width: 54.60993333%; +} +.grid .row.cells9 > .cell.colspan6 { + width: 65.95745%; +} +.grid .row.cells9 > .cell.colspan7 { + width: 77.30496667%; +} +.grid .row.cells9 > .cell.colspan8 { + width: 88.65248333%; +} +.grid .row.cells9 > .cell.colspan9 { + width: 100%; +} +.grid .row.cells10 > .cell { + width: 8.085115%; +} +.grid .row.cells10 > .cell.colspan2 { + width: 18.29788%; +} +.grid .row.cells10 > .cell.colspan3 { + width: 28.510645%; +} +.grid .row.cells10 > .cell.colspan4 { + width: 38.72341%; +} +.grid .row.cells10 > .cell.colspan5 { + width: 48.936175%; +} +.grid .row.cells10 > .cell.colspan6 { + width: 59.14894%; +} +.grid .row.cells10 > .cell.colspan7 { + width: 69.361705%; +} +.grid .row.cells10 > .cell.colspan8 { + width: 79.57447%; +} +.grid .row.cells10 > .cell.colspan9 { + width: 89.787235%; +} +.grid .row.cells10 > .cell.colspan10 { + width: 100%; +} +.grid .row.cells11 > .cell { + width: 7.15668182%; +} +.grid .row.cells11 > .cell.colspan2 { + width: 16.44101364%; +} +.grid .row.cells11 > .cell.colspan3 { + width: 25.72534545%; +} +.grid .row.cells11 > .cell.colspan4 { + width: 35.00967727%; +} +.grid .row.cells11 > .cell.colspan5 { + width: 44.29400909%; +} +.grid .row.cells11 > .cell.colspan6 { + width: 53.57834091%; +} +.grid .row.cells11 > .cell.colspan7 { + width: 62.86267273%; +} +.grid .row.cells11 > .cell.colspan8 { + width: 72.14700455%; +} +.grid .row.cells11 > .cell.colspan9 { + width: 81.43133636%; +} +.grid .row.cells11 > .cell.colspan10 { + width: 90.71566818%; +} +.grid .row.cells11 > .cell.colspan11 { + width: 100%; +} +.grid .row.cells12 > .cell { + width: 6.3829875%; +} +.grid .row.cells12 > .cell.colspan2 { + width: 14.893625%; +} +.grid .row.cells12 > .cell.colspan3 { + width: 23.4042625%; +} +.grid .row.cells12 > .cell.colspan4 { + width: 31.9149%; +} +.grid .row.cells12 > .cell.colspan5 { + width: 40.4255375%; +} +.grid .row.cells12 > .cell.colspan6 { + width: 48.936175%; +} +.grid .row.cells12 > .cell.colspan7 { + width: 57.4468125%; +} +.grid .row.cells12 > .cell.colspan8 { + width: 65.95745%; +} +.grid .row.cells12 > .cell.colspan9 { + width: 74.4680875%; +} +.grid .row.cells12 > .cell.colspan10 { + width: 82.978725%; +} +.grid .row.cells12 > .cell.colspan11 { + width: 91.4893625%; +} +.grid .row.cells12 > .cell.colspan12 { + width: 100%; +} +.grid .row:empty { + display: none; +} +@media screen and (max-width: 768px) { + .grid:not(.no-responsive-future) .row { + margin: 0; + } + .grid:not(.no-responsive-future) .row > .cell, + .grid:not(.no-responsive-future) .row > .cell[class*=colspan] { + width: 48.936175% ; + margin-bottom: 10px; + } + .grid:not(.no-responsive-future) .row > .cell:nth-child(odd), + .grid:not(.no-responsive-future) .row > .cell[class*=colspan]:nth-child(odd) { + margin-left: 0; + } +} +@media only screen and (max-width: 640px) { + .grid:not(.no-responsive-future) .row { + margin: 0; + } + .grid:not(.no-responsive-future) .row > .cell, + .grid:not(.no-responsive-future) .row > .cell[class*=colspan] { + width: 100%; + margin: .3125rem 0; + } +} +.grid.condensed { + display: block; + position: relative; + margin: .625rem 0; +} +.grid.condensed:before, +.grid.condensed:after { + display: table; + content: ""; +} +.grid.condensed:after { + clear: both; +} +.grid.condensed .row { + width: 100%; + display: block; + margin: 0 0 0 0; +} +.grid.condensed .row:before, +.grid.condensed .row:after { + display: table; + content: ""; +} +.grid.condensed .row:after { + clear: both; +} +.grid.condensed .row:last-child { + margin-bottom: 0; +} +.grid.condensed .row > .cell { + display: block; + float: left; + width: 100%; + min-height: 10px; + margin: 0 0 0 0; +} +.grid.condensed .row > .cell:first-child { + margin-left: 0; +} +.grid.condensed .row.cells2 > .cell { + width: 50%; +} +.grid.condensed .row.cells2 > .cell.colspan2 { + width: 100%; +} +.grid.condensed .row.cells3 > .cell { + width: 33.33333333%; +} +.grid.condensed .row.cells3 > .cell.colspan2 { + width: 66.66666667%; +} +.grid.condensed .row.cells3 > .cell.colspan3 { + width: 100%; +} +.grid.condensed .row.cells4 > .cell { + width: 25%; +} +.grid.condensed .row.cells4 > .cell.colspan2 { + width: 50%; +} +.grid.condensed .row.cells4 > .cell.colspan3 { + width: 75%; +} +.grid.condensed .row.cells4 > .cell.colspan4 { + width: 100%; +} +.grid.condensed .row.cells5 > .cell { + width: 20%; +} +.grid.condensed .row.cells5 > .cell.colspan2 { + width: 40%; +} +.grid.condensed .row.cells5 > .cell.colspan3 { + width: 60%; +} +.grid.condensed .row.cells5 > .cell.colspan4 { + width: 80%; +} +.grid.condensed .row.cells5 > .cell.colspan5 { + width: 100%; +} +.grid.condensed .row.cells6 > .cell { + width: 16.66666667%; +} +.grid.condensed .row.cells6 > .cell.colspan2 { + width: 33.33333333%; +} +.grid.condensed .row.cells6 > .cell.colspan3 { + width: 50%; +} +.grid.condensed .row.cells6 > .cell.colspan4 { + width: 66.66666667%; +} +.grid.condensed .row.cells6 > .cell.colspan5 { + width: 83.33333333%; +} +.grid.condensed .row.cells6 > .cell.colspan6 { + width: 100%; +} +.grid.condensed .row.cells7 > .cell { + width: 14.28571429%; +} +.grid.condensed .row.cells7 > .cell.colspan2 { + width: 28.57142857%; +} +.grid.condensed .row.cells7 > .cell.colspan3 { + width: 42.85714286%; +} +.grid.condensed .row.cells7 > .cell.colspan4 { + width: 57.14285714%; +} +.grid.condensed .row.cells7 > .cell.colspan5 { + width: 71.42857143%; +} +.grid.condensed .row.cells7 > .cell.colspan6 { + width: 85.71428571%; +} +.grid.condensed .row.cells7 > .cell.colspan7 { + width: 100%; +} +.grid.condensed .row.cells8 > .cell { + width: 12.5%; +} +.grid.condensed .row.cells8 > .cell.colspan2 { + width: 25%; +} +.grid.condensed .row.cells8 > .cell.colspan3 { + width: 37.5%; +} +.grid.condensed .row.cells8 > .cell.colspan4 { + width: 50%; +} +.grid.condensed .row.cells8 > .cell.colspan5 { + width: 62.5%; +} +.grid.condensed .row.cells8 > .cell.colspan6 { + width: 75%; +} +.grid.condensed .row.cells8 > .cell.colspan7 { + width: 87.5%; +} +.grid.condensed .row.cells8 > .cell.colspan8 { + width: 100%; +} +.grid.condensed .row.cells9 > .cell { + width: 11.11111111%; +} +.grid.condensed .row.cells9 > .cell.colspan2 { + width: 22.22222222%; +} +.grid.condensed .row.cells9 > .cell.colspan3 { + width: 33.33333333%; +} +.grid.condensed .row.cells9 > .cell.colspan4 { + width: 44.44444444%; +} +.grid.condensed .row.cells9 > .cell.colspan5 { + width: 55.55555556%; +} +.grid.condensed .row.cells9 > .cell.colspan6 { + width: 66.66666667%; +} +.grid.condensed .row.cells9 > .cell.colspan7 { + width: 77.77777778%; +} +.grid.condensed .row.cells9 > .cell.colspan8 { + width: 88.88888889%; +} +.grid.condensed .row.cells9 > .cell.colspan9 { + width: 100%; +} +.grid.condensed .row.cells10 > .cell { + width: 10%; +} +.grid.condensed .row.cells10 > .cell.colspan2 { + width: 20%; +} +.grid.condensed .row.cells10 > .cell.colspan3 { + width: 30%; +} +.grid.condensed .row.cells10 > .cell.colspan4 { + width: 40%; +} +.grid.condensed .row.cells10 > .cell.colspan5 { + width: 50%; +} +.grid.condensed .row.cells10 > .cell.colspan6 { + width: 60%; +} +.grid.condensed .row.cells10 > .cell.colspan7 { + width: 70%; +} +.grid.condensed .row.cells10 > .cell.colspan8 { + width: 80%; +} +.grid.condensed .row.cells10 > .cell.colspan9 { + width: 90%; +} +.grid.condensed .row.cells10 > .cell.colspan10 { + width: 100%; +} +.grid.condensed .row.cells11 > .cell { + width: 9.09090909%; +} +.grid.condensed .row.cells11 > .cell.colspan2 { + width: 18.18181818%; +} +.grid.condensed .row.cells11 > .cell.colspan3 { + width: 27.27272727%; +} +.grid.condensed .row.cells11 > .cell.colspan4 { + width: 36.36363636%; +} +.grid.condensed .row.cells11 > .cell.colspan5 { + width: 45.45454545%; +} +.grid.condensed .row.cells11 > .cell.colspan6 { + width: 54.54545455%; +} +.grid.condensed .row.cells11 > .cell.colspan7 { + width: 63.63636364%; +} +.grid.condensed .row.cells11 > .cell.colspan8 { + width: 72.72727273%; +} +.grid.condensed .row.cells11 > .cell.colspan9 { + width: 81.81818182%; +} +.grid.condensed .row.cells11 > .cell.colspan10 { + width: 90.90909091%; +} +.grid.condensed .row.cells11 > .cell.colspan11 { + width: 100%; +} +.grid.condensed .row.cells12 > .cell { + width: 8.33333333%; +} +.grid.condensed .row.cells12 > .cell.colspan2 { + width: 16.66666667%; +} +.grid.condensed .row.cells12 > .cell.colspan3 { + width: 25%; +} +.grid.condensed .row.cells12 > .cell.colspan4 { + width: 33.33333333%; +} +.grid.condensed .row.cells12 > .cell.colspan5 { + width: 41.66666667%; +} +.grid.condensed .row.cells12 > .cell.colspan6 { + width: 50%; +} +.grid.condensed .row.cells12 > .cell.colspan7 { + width: 58.33333333%; +} +.grid.condensed .row.cells12 > .cell.colspan8 { + width: 66.66666667%; +} +.grid.condensed .row.cells12 > .cell.colspan9 { + width: 75%; +} +.grid.condensed .row.cells12 > .cell.colspan10 { + width: 83.33333333%; +} +.grid.condensed .row.cells12 > .cell.colspan11 { + width: 91.66666667%; +} +.grid.condensed .row.cells12 > .cell.colspan12 { + width: 100%; +} +@media screen and (max-width: 768px) { + .grid.condensed:not(.no-responsive-future) .row { + margin: 0; + } + .grid.condensed:not(.no-responsive-future) .row > .cell, + .grid.condensed:not(.no-responsive-future) .row > .cell[class*=colspan] { + width: 50% ; + margin-bottom: 10px ; + } + .grid.condensed:not(.no-responsive-future) .row > .cell:nth-child(odd), + .grid.condensed:not(.no-responsive-future) .row > .cell[class*=colspan]:nth-child(odd) { + margin-left: 0; + } +} +@media only screen and (max-width: 640px) { + .grid.condensed:not(.no-responsive-future) .row { + margin: 0; + } + .grid.condensed:not(.no-responsive-future) .row > .cell, + .grid.condensed:not(.no-responsive-future) .row > .cell[class*=colspan] { + width: 100%; + margin: .3125rem 0; + } +} +.table { + width: 100%; + margin: .625rem 0; +} +.table th, +.table td { + padding: 0.625rem; +} +.table thead { + border-bottom: 4px solid #999999; +} +.table thead th, +.table thead td { + cursor: default; + color: #52677a; + border-color: transparent; + text-align: left; + font-style: normal; + font-weight: 700; + line-height: 100%; +} +.table tfoot { + border-top: 4px solid #999999; +} +.table tfoot th, +.table tfoot td { + cursor: default; + color: #52677a; + border-color: transparent; + text-align: left; + font-style: normal; + font-weight: 700; + line-height: 100%; +} +.table tbody td { + padding: 0.625rem 0.85rem; +} +.table .sortable-column { + position: relative; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.table .sortable-column:after { + position: absolute; + content: ""; + width: 1rem; + height: 1rem; + left: 100%; + margin-left: -20px; + top: 50%; + margin-top: -0.5rem; + color: inherit; + font-size: 1rem; + line-height: 1; +} +.table .sortable-column.sort-asc, +.table .sortable-column.sort-desc { + background-color: #eeeeee; +} +.table .sortable-column.sort-asc:after, +.table .sortable-column.sort-desc:after { + color: #1d1d1d; +} +.table .sortable-column.sort-asc:after { + content: "\2191"; +} +.table .sortable-column.sort-desc:after { + content: "\2193"; +} +.table.sortable-markers-on-left .sortable-column { + padding-left: 30px; +} +.table.sortable-markers-on-left .sortable-column:before, +.table.sortable-markers-on-left .sortable-column:after { + left: 0; + margin-left: 10px; +} +.table tr.selected td { + background-color: rgba(28, 183, 236, 0.1); +} +.table td.selected { + background-color: rgba(28, 183, 236, 0.3); +} +.table.striped tbody tr:nth-child(odd) { + background: #eeeeee; +} +.table.hovered tbody tr:hover { + background-color: rgba(28, 183, 236, 0.1); +} +.table.cell-hovered tbody td:hover { + background-color: rgba(28, 183, 236, 0.3); +} +.table.border { + border: 1px #999999 solid; +} +.table.bordered th, +.table.bordered td { + border: 1px #999999 solid; +} +.table.bordered thead tr:first-child th, +.table.bordered thead tr:first-child td { + border-top: none; +} +.table.bordered thead tr:first-child th:first-child, +.table.bordered thead tr:first-child td:first-child { + border-left: none; +} +.table.bordered thead tr:first-child th:last-child, +.table.bordered thead tr:first-child td:last-child { + border-right: none; +} +.table.bordered tbody tr:first-child td { + border-top: none; +} +.table.bordered tbody tr td:first-child { + border-left: none; +} +.table.bordered tbody tr td:last-child { + border-right: none; +} +.table.bordered tbody tr:last-child td { + border-bottom: none; +} +.table .condensed th, +.table .condensed td { + padding: .3125rem; +} +.table .super-condensed th, +.table .super-condensed td { + padding: .125rem; +} +.app-bar { + display: block; + width: 100%; + position: relative; + background-color: #0072c6; + color: #ffffff; + height: 3.125rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.app-bar:before, +.app-bar:after { + display: table; + content: ""; +} +.app-bar:after { + clear: both; +} +.app-bar .app-bar-element { + line-height: 3.125rem; + padding: 0 .625rem; + font-size: 1rem; + cursor: pointer; + color: inherit; + display: block; + float: left; + position: relative; + vertical-align: middle !important; + height: 3.125rem; +} +.app-bar .app-bar-element:hover, +.app-bar .app-bar-element:active { + background-color: #005696; +} +.app-bar .app-bar-element.branding { + padding-left: 1rem; + padding-right: 1rem; +} +.app-bar .app-bar-divider { + display: block; + float: left; + line-height: 3.125rem; + height: 3.125rem; + width: 1px; + background-color: #4c9cd7; + padding: 0; +} +.app-bar .dropdown-toggle { + padding-right: 1.5rem !important; +} +.app-bar .dropdown-toggle:before { + border-color: #ffffff; +} +.app-bar .app-bar-menu { + display: block; + float: left; + margin: 0; + padding: 0; +} +.app-bar .app-bar-menu > li, +.app-bar .app-bar-menu > li > a { + line-height: 3.125rem; + padding: 0 .625rem; + font-size: 1rem; + cursor: pointer; + color: inherit; + display: block; + float: left; + position: relative; + vertical-align: middle !important; + height: 3.125rem; +} +.app-bar .app-bar-menu > li:hover, +.app-bar .app-bar-menu > li > a:hover, +.app-bar .app-bar-menu > li:active, +.app-bar .app-bar-menu > li > a:active { + background-color: #005696; +} +.app-bar .app-bar-menu > li.branding, +.app-bar .app-bar-menu > li > a.branding { + padding-left: 1rem; + padding-right: 1rem; +} +.app-bar .app-bar-menu > li:before, +.app-bar .app-bar-menu > li > a:before, +.app-bar .app-bar-menu > li:after, +.app-bar .app-bar-menu > li > a:after { + display: table; + content: ""; +} +.app-bar .app-bar-menu > li:after, +.app-bar .app-bar-menu > li > a:after { + clear: both; +} +.app-bar .app-bar-menu > li > .input-control.text, +.app-bar .app-bar-menu > li > a > .input-control.text { + margin-top: .55rem; + font-size: .875rem; + line-height: 1.8rem; + display: block; +} +.app-bar .app-bar-menu > li > .input-control.text input, +.app-bar .app-bar-menu > li > a > .input-control.text input { + border-color: transparent !important; +} +.app-bar .app-bar-menu > li > .button, +.app-bar .app-bar-menu > li > a > .button { + margin-top: -0.15rem; +} +.app-bar .app-bar-menu > li > .image-button, +.app-bar .app-bar-menu > li > a > .image-button { + margin: 0; + background-color: transparent; + color: #ffffff; + font-size: inherit; +} +.app-bar .app-bar-menu > li > .image-button img.icon, +.app-bar .app-bar-menu > li > a > .image-button img.icon { + padding: 0; +} +.app-bar .app-bar-menu > li .d-menu { + top: 100%; + border: 2px solid #005696; +} +.app-bar .app-bar-menu > li .d-menu li:not(.disabled):hover { + background-color: #eee; +} +.app-bar .app-bar-menu > li .d-menu li:not(.disabled):hover > a { + color: #1d1d1d; +} +.app-bar .app-bar-menu > li .d-menu .d-menu { + top: -0.625rem; + left: 100%; +} +.app-bar .app-bar-menu > li .d-menu .dropdown-toggle:before { + border-color: #1d1d1d; +} +.app-bar .app-bar-pull { + display: none; + float: right !important; + color: #fff; + cursor: pointer; + font: 2rem sans-serif; + position: absolute; + top: 0; + right: 0; + height: 3.125rem; + width: 3.125rem; + line-height: 1.25rem; + vertical-align: middle; + text-align: center; + margin: 0; +} +.app-bar .app-bar-pull:before { + content: "\2261"; + position: absolute; + top: .875rem; + left: .875rem; +} +.app-bar .app-bar-drop-container { + position: absolute; + top: 100%; + left: 0; + margin-top: 10px; + border: 2px solid #005696; +} +.app-bar .app-bar-drop-container:before { + content: ''; + position: absolute; + background-color: #ffffff; + width: 10px; + height: 10px; + border: 2px #005696 solid; + top: 1px; + left: 1rem; + margin: -8px 0; + border-bottom: none; + border-right: none; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.app-bar .app-bar-drop-container:before { + z-index: 0; +} +.app-bar .app-bar-drop-container.place-right { + right: 0; + left: auto; +} +.app-bar .app-bar-drop-container.place-right:before { + left: auto; + right: 1rem; +} +.app-bar .app-bar-element:before, +.app-bar .app-bar-element:after { + display: table; + content: ""; +} +.app-bar .app-bar-element:after { + clear: both; +} +.app-bar .app-bar-element > .input-control.text { + margin-top: .55rem; + font-size: .875rem; + line-height: 1.8rem; + display: block; +} +.app-bar .app-bar-element > .input-control.text input { + border-color: transparent !important; +} +.app-bar .app-bar-element > .button { + margin-top: -0.15rem; +} +.app-bar .app-bar-element > .image-button { + margin: 0; + background-color: transparent; + color: #ffffff; + font-size: inherit; +} +.app-bar .app-bar-element > .image-button img.icon { + padding: 0; +} +.app-bar.drop-up .app-bar-drop-container { + top: auto; + bottom: 3.75rem; +} +.app-bar.drop-up .app-bar-drop-container:before { + top: auto; + bottom: 1px; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); +} +.app-bar.drop-up .app-bar-menu > li > .d-menu { + top: auto; + bottom: 3.125rem; +} +.app-bar.drop-up .d-menu .d-menu { + top: auto !important; + bottom: 0 !important; +} +.app-bar.fixed-top, +.app-bar.fixed-bottom { + z-index: 1030; + position: fixed; +} +.app-bar.fixed-top { + top: 0; +} +.app-bar.fixed-bottom { + bottom: 0; +} +@media screen and (max-width: 800px) { + .app-bar:not(.no-responsive-future) { + overflow: visible; + height: auto; + } + .app-bar:not(.no-responsive-future) .app-bar-pull { + display: block !important; + } + .app-bar:not(.no-responsive-future) .app-bar-menu { + width: 100%; + border-top: 1px solid #4c9cd7; + position: relative; + float: none; + z-index: 1000; + background-color: #005696; + display: none; + clear: both; + } + .app-bar:not(.no-responsive-future) .app-bar-menu > li, + .app-bar:not(.no-responsive-future) .app-bar-menu > li > a { + float: none; + } + .app-bar:not(.no-responsive-future) .app-bar-menu > li { + height: auto; + } + .app-bar:not(.no-responsive-future) .app-bar-menu li:hover { + background-color: #0072c6 !important; + } + .app-bar:not(.no-responsive-future) .app-bar-menu li:hover a { + background-color: #0072c6 !important; + color: #ffffff !important; + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu { + border: 0 !important; + border-top: 1px solid #4c9cd7 !important; + clear: both; + float: none !important; + width: 100% !important; + position: relative !important; + left: 0 !important; + box-shadow: none; + max-width: 100%; + background-color: #005696 !important; + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu li { + width: 100% !important; + background-color: inherit; + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu li a { + padding-left: 20px; + padding-right: 0; + background-color: inherit; + width: 100%; + color: #ffffff; + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu .dropdown-toggle:before { + border-color: #ffffff !important; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu .divider { + background-color: #4c9cd7; + } + .app-bar:not(.no-responsive-future) .app-bar-menu .d-menu .d-menu { + top: 0 !important; + } +} +.h-menu li:hover > .dropdown-toggle:before, +.v-menu li:hover > .dropdown-toggle:before, +.d-menu li:hover > .dropdown-toggle:before, +.m-menu li:hover > .dropdown-toggle:before { + border-color: #ffffff; +} +.h-menu { + text-align: left; + display: block; + height: auto !important; + list-style: none inside none; + margin: 0; + padding: 0; +} +.h-menu:before, +.h-menu:after { + display: table; + content: ""; +} +.h-menu:after { + clear: both; +} +.h-menu > li { + display: block; + float: left; + position: relative; +} +.h-menu > li:hover { + background-color: #59cde2; + color: #ffffff; +} +.h-menu > li:hover > a { + color: #ffffff; +} +.h-menu > li.no-hovered { + background-color: inherit; + color: inherit; +} +.h-menu > li:first-child { + margin-left: 0; +} +.h-menu > li > a { + display: block; + float: left; + position: relative; + font-weight: normal; + color: #727272; + font-size: .875rem; + outline: none; + text-decoration: none; + padding: 1.125rem 1.625rem; + border: 0 !important; + border: none !important; +} +.h-menu > li > a:hover { + background-color: #59cde2; + color: #ffffff; +} +.h-menu > li.active a { + background-color: #59cde2; + color: #ffffff; +} +.h-menu > li > .d-menu { + left: 0; + top: 100%; +} +.v-menu { + text-align: left; + background: #ffffff; + max-width: 15.625rem; + list-style: none inside none; + margin: 0; + padding: 0; + position: relative; + width: auto; + float: left; +} +.v-menu li { + display: block; + float: none; + position: relative; +} +.v-menu li:before, +.v-menu li:after { + display: table; + content: ""; +} +.v-menu li:after { + clear: both; +} +.v-menu li a { + color: #727272; + font-size: .875rem; + display: block; + float: none; + padding: .75rem 2rem .75rem 2.5rem; + text-decoration: none; + vertical-align: middle; + position: relative; + white-space: nowrap; + min-width: 12.5rem; + border: 0 !important; + border: none !important; +} +.v-menu li a img, +.v-menu li a .icon { + position: absolute; + left: .875rem; + top: 50%; + margin-top: -0.5625rem; + color: #262626; + max-height: 1.125rem; + font-size: 1.125rem; + display: inline-block; + margin-right: .3125rem; + vertical-align: middle; + text-align: center; +} +.v-menu li.active { + border-left: 2px solid; + border-color: #1ba1e2; +} +.v-menu li.active > a { + background-color: #59cde2; + color: #ffffff; + font-weight: bold; +} +.v-menu li:hover { + text-decoration: none; + background: #59cde2; +} +.v-menu li:hover > a, +.v-menu li:hover .icon { + color: #ffffff; +} +.v-menu .divider { + padding: 0; + height: 1px; + margin: 0 1px; + overflow: hidden; + background-color: #f2f2f2; +} +.v-menu .divider:hover { + background-color: #f2f2f2; +} +.v-menu.subdown .d-menu { + min-width: 0 !important; + position: relative; + width: 100%; + left: 0 !important; + right: 0 !important; + top: 100%; + box-shadow: none; +} +.v-menu .item-block { + display: block; + padding: .625rem; + background-color: #eeeeee; +} +.v-menu .d-menu { + left: 100%; + top: -10%; +} +.v-menu .menu-title { + background-color: #f6f7f8; + font-size: 12px; + line-height: 14px; + padding: 4px 8px; + border: 0; + color: #646464; +} +.v-menu .menu-title:first-child { + margin: 0; + border-top-width: 0; +} +.v-menu .menu-title:first-child:hover { + border-top-width: 0; +} +.v-menu .menu-title:hover { + background-color: #f6f7f8; + cursor: default; + border: 0; +} +.v-menu .dropdown-toggle:before { + -webkit-transform: rotate(-135deg); + transform: rotate(-135deg); + margin-top: -2px; +} +.v-menu.subdown .dropdown-toggle:before { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + margin-left: -1.25rem; +} +.v-menu li.disabled a { + color: #eeeeee; +} +.v-menu li.disabled:hover { + background-color: inherit; + cursor: default !important; + border: 0; +} +.v-menu li.disabled:hover a { + cursor: inherit; +} +.d-menu { + text-align: left; + background: #ffffff; + max-width: 15.625rem; + list-style: none inside none; + margin: 0; + padding: 0; + position: relative; + width: auto; + float: left; + position: absolute; + display: none; + z-index: 1000; + left: 0; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2); +} +.d-menu li:hover > .dropdown-toggle:before { + border-color: #ffffff; +} +.d-menu li { + display: block; + float: none; + position: relative; +} +.d-menu li:before, +.d-menu li:after { + display: table; + content: ""; +} +.d-menu li:after { + clear: both; +} +.d-menu li a { + color: #727272; + font-size: .875rem; + display: block; + float: none; + padding: .75rem 2rem .75rem 2.5rem; + text-decoration: none; + vertical-align: middle; + position: relative; + white-space: nowrap; + min-width: 12.5rem; + border: 0 !important; + border: none !important; +} +.d-menu li a img, +.d-menu li a .icon { + position: absolute; + left: .875rem; + top: 50%; + margin-top: -0.5625rem; + color: #262626; + max-height: 1.125rem; + font-size: 1.125rem; + display: inline-block; + margin-right: .3125rem; + vertical-align: middle; + text-align: center; +} +.d-menu li.active { + border-left: 2px solid; + border-color: #1ba1e2; +} +.d-menu li.active > a { + background-color: #59cde2; + color: #ffffff; + font-weight: bold; +} +.d-menu li:hover { + text-decoration: none; + background: #59cde2; +} +.d-menu li:hover > a, +.d-menu li:hover .icon { + color: #ffffff; +} +.d-menu .divider { + padding: 0; + height: 1px; + margin: 0 1px; + overflow: hidden; + background-color: #f2f2f2; +} +.d-menu .divider:hover { + background-color: #f2f2f2; +} +.d-menu.subdown .d-menu { + min-width: 0 !important; + position: relative; + width: 100%; + left: 0 !important; + right: 0 !important; + top: 100%; + box-shadow: none; +} +.d-menu .item-block { + display: block; + padding: .625rem; + background-color: #eeeeee; +} +.d-menu .d-menu { + left: 100%; + top: -10%; +} +.d-menu .menu-title { + background-color: #f6f7f8; + font-size: 12px; + line-height: 14px; + padding: 4px 8px; + border: 0; + color: #646464; +} +.d-menu .menu-title:first-child { + margin: 0; + border-top-width: 0; +} +.d-menu .menu-title:first-child:hover { + border-top-width: 0; +} +.d-menu .menu-title:hover { + background-color: #f6f7f8; + cursor: default; + border: 0; +} +.d-menu .dropdown-toggle:before { + -webkit-transform: rotate(-135deg); + transform: rotate(-135deg); + margin-top: -2px; +} +.d-menu.subdown .dropdown-toggle:before { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + margin-left: -1.25rem; +} +.d-menu li.disabled a { + color: #eeeeee; +} +.d-menu li.disabled:hover { + background-color: inherit; + cursor: default !important; + border: 0; +} +.d-menu li.disabled:hover a { + cursor: inherit; +} +.d-menu.context li a { + font-size: .75rem; + padding: .3125rem 2rem .3125rem 2.5rem; +} +.d-menu.context li a .icon { + margin-top: -0.4375rem; + font-size: .825rem; + color: inherit; +} +.d-menu.no-min-size li a { + min-width: 0; +} +.d-menu.full-size li a { + min-width: 0; + width: 100%; +} +.d-menu .d-menu { + left: 100%; + top: -10%; +} +.d-menu.open { + display: block !important; +} +.d-menu.drop-left { + left: -100%; +} +.d-menu.drop-up { + top: auto; + bottom: 0; +} +.d-menu.context li a { + font-size: .75rem; + padding: .3125rem 2rem .3125rem 2.5rem; +} +.d-menu.context li a .icon { + margin-top: -0.4375rem; +} +.d-menu.place-right { + left: auto !important; + right: 0; + width: auto; +} +.m-menu { + text-align: left; + display: block; + height: auto !important; + position: relative; + background-color: #ffffff; + color: #1d1d1d; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2); + list-style: none inside none; + margin: 0; + padding: 0; +} +.m-menu:before, +.m-menu:after { + display: table; + content: ""; +} +.m-menu:after { + clear: both; +} +.m-menu > li, +.m-menu .m-menu-item { + display: block; + float: left; + background-color: #ffffff; +} +.m-menu > li:hover, +.m-menu .m-menu-item:hover { + background-color: #59cde2; +} +.m-menu > li:hover > a, +.m-menu .m-menu-item:hover > a { + color: #ffffff; +} +.m-menu > li.no-hovered, +.m-menu .m-menu-item.no-hovered { + background-color: inherit; + color: inherit; +} +.m-menu > li:first-child, +.m-menu .m-menu-item:first-child { + margin-left: 0; +} +.m-menu > li > a, +.m-menu .m-menu-item > a { + display: block; + float: left; + position: relative; + font-weight: normal; + color: inherit; + font-size: .875rem; + outline: none; + text-decoration: none; + padding: 1rem 1.625rem; + border: 0 !important; + border: none !important; +} +.m-menu > li > a:hover, +.m-menu .m-menu-item > a:hover { + background-color: inherit; +} +.m-menu > li > a.dropdown-toggle, +.m-menu .m-menu-item > a.dropdown-toggle { + padding: 1rem 1.625rem 1rem 1.125rem; +} +.m-menu > li.active-container, +.m-menu .m-menu-item.active-container { + background-color: #59cde2; +} +.m-menu > li.active-container a, +.m-menu .m-menu-item.active-container a { + color: #ffffff; +} +.m-menu > li.active-container a.dropdown-toggle:before, +.m-menu .m-menu-item.active-container a.dropdown-toggle:before { + border-color: #ffffff; +} +.m-menu > li .d-menu, +.m-menu .m-menu-item .d-menu { + left: 0; + top: 100%; +} +.m-menu .m-menu-container { + position: absolute; + left: 0; + right: 0; + top: 100%; + padding: .3125rem; + font-size: .75rem; + z-index: 1000; + background-color: inherit; +} +.m-menu .m-menu-container li, +.m-menu .m-menu-container a { + color: #ffffff; +} +.m-menu .m-menu-container a { + text-decoration: underline; +} +.m-menu .m-menu-container li:hover > a, +.m-menu .m-menu-container li.active > a { + text-decoration: none; +} +.m-menu .m-menu-container { + display: none; +} +.m-menu .m-menu-container.open { + display: block; +} +.v-menu.context li a, +.d-menu.context li a { + font-size: .75rem; + padding: .3125rem 2rem .3125rem 2.5rem; +} +.v-menu.context li a .icon, +.d-menu.context li a .icon { + margin-top: -0.4375rem; + font-size: .825rem; + color: inherit; +} +.v-menu.no-min-size li a, +.d-menu.no-min-size li a { + min-width: 0; +} +.v-menu.full-size li a, +.d-menu.full-size li a { + min-width: 0; + width: 100%; +} +.horizontal-menu { + display: block; + width: 100%; + color: #1d1d1d; + position: relative; + padding: 0; + margin: 0; + list-style: none inside none; +} +.horizontal-menu:before, +.horizontal-menu:after { + display: table; + content: ""; +} +.horizontal-menu:after { + clear: both; +} +.horizontal-menu > li { + display: block; + float: left; + color: inherit; + background-color: inherit; + position: relative; +} +.horizontal-menu > li > a { + position: relative; + display: block; + float: left; + font-size: 1.4rem; + color: inherit; + background-color: inherit; + padding: .625rem 1.625rem; + line-height: 1.4rem; +} +.horizontal-menu > li > .d-menu { + left: 0; + top: 100%; +} +.horizontal-menu.compact > li > a { + font-size: .9rem; + line-height: .9rem; +} +.vertical-menu { + display: block; + width: 100%; + color: #1d1d1d; + padding: 0; + margin: 0; + list-style: none inside none; + position: relative; + width: auto; + float: left; +} +.vertical-menu:before, +.vertical-menu:after { + display: table; + content: ""; +} +.vertical-menu:after { + clear: both; +} +.vertical-menu > li { + display: block; + float: left; + color: inherit; + background-color: inherit; + position: relative; +} +.vertical-menu > li > a { + position: relative; + display: block; + float: left; + font-size: 1.4rem; + color: inherit; + background-color: inherit; + padding: .625rem 1.625rem; + line-height: 1.4rem; +} +.vertical-menu > li > .d-menu { + left: 0; + top: 100%; +} +.vertical-menu.compact > li > a { + font-size: .9rem; + line-height: .9rem; +} +.vertical-menu > li { + float: none; +} +.vertical-menu > li > a { + float: none; +} +.vertical-menu > li > .d-menu { + left: 100%; + top: 0; +} +.vertical-menu.compact > li > a { + padding-top: .325rem; + padding-bottom: .325rem; +} +.vertical-menu .dropdown-toggle:before { + margin-top: -2px; + -webkit-transform: rotate(-135deg); + transform: rotate(-135deg); +} +.t-menu { + list-style: none inside none; + margin: 0; + padding: 0; + position: relative; + width: auto; + float: left; + background-color: #ffffff; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2); +} +.t-menu > li { + position: relative; +} +.t-menu > li > a { + display: block; + padding: 1rem 1.2rem; + border-bottom: 1px #eeeeee solid; + position: relative; +} +.t-menu > li > a .icon { + width: 1.5rem; + height: 1.5rem; + font-size: 1.5rem; +} +.t-menu > li:hover > a { + background-color: #1ba1e2; + color: #ffffff; +} +.t-menu > li:last-child a { + border-bottom: 0; +} +.t-menu.compact > li > a { + padding: .5rem .7rem; +} +.t-menu.compact > li > a .icon { + width: 1rem; + height: 1rem; + font-size: 1rem; +} +.t-menu .t-menu { + position: absolute; + left: 100%; + margin-left: .3125rem !important; + top: 0; + float: none; +} +.t-menu .t-menu > li { + float: left; + display: block; +} +.t-menu .t-menu > li > a { + float: left; + display: block; +} +.t-menu .t-menu.horizontal .t-menu { + left: 0 !important; + top: 100% !important; + margin-top: .3125rem !important; + margin-left: 0 !important; +} +.t-menu .dropdown-toggle:after { + content: ""; + background-color: transparent; + position: absolute; + left: auto; + top: auto; + bottom: 0; + right: 0; + width: 0; + height: 0; + border-style: solid; + border-width: 0 0 8px 8px; + border-color: transparent transparent #1ba1e2 transparent; + -webkit-transform: rotate(0); + transform: rotate(0); +} +.t-menu .dropdown-toggle:before { + display: none; +} +.t-menu > li:hover > .dropdown-toggle:after { + border-color: transparent transparent #1b6eae transparent; +} +.t-menu.horizontal { + list-style: none inside none; + margin: 0; + padding: 0; + position: relative; + width: auto; + float: left; + background-color: #ffffff; + box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.2); +} +.t-menu.horizontal > li { + position: relative; +} +.t-menu.horizontal > li > a { + display: block; + padding: 1rem 1.2rem; + border-bottom: 1px #eeeeee solid; + position: relative; +} +.t-menu.horizontal > li > a .icon { + width: 1.5rem; + height: 1.5rem; + font-size: 1.5rem; +} +.t-menu.horizontal > li:hover > a { + background-color: #1ba1e2; + color: #ffffff; +} +.t-menu.horizontal > li:last-child a { + border-bottom: 0; +} +.t-menu.horizontal.compact > li > a { + padding: .5rem .7rem; +} +.t-menu.horizontal.compact > li > a .icon { + width: 1rem; + height: 1rem; + font-size: 1rem; +} +.t-menu.horizontal .t-menu { + position: absolute; + left: 100%; + margin-left: .3125rem !important; + top: 0; + float: none; +} +.t-menu.horizontal .t-menu > li { + float: left; + display: block; +} +.t-menu.horizontal .t-menu > li > a { + float: left; + display: block; +} +.t-menu.horizontal .t-menu.horizontal .t-menu { + left: 0 !important; + top: 100% !important; + margin-top: .3125rem !important; + margin-left: 0 !important; +} +.t-menu.horizontal .dropdown-toggle:after { + content: ""; + background-color: transparent; + position: absolute; + left: auto; + top: auto; + bottom: 0; + right: 0; + width: 0; + height: 0; + border-style: solid; + border-width: 0 0 8px 8px; + border-color: transparent transparent #1ba1e2 transparent; + -webkit-transform: rotate(0); + transform: rotate(0); +} +.t-menu.horizontal .dropdown-toggle:before { + display: none; +} +.t-menu.horizontal > li:hover > .dropdown-toggle:after { + border-color: transparent transparent #1b6eae transparent; +} +.t-menu.horizontal > li { + display: block; + float: left; +} +.t-menu.horizontal > li > a { + display: block; + float: left; + border-right: 1px #eeeeee solid; + border-bottom: 0; +} +.t-menu.horizontal > li:last-child > a { + border-right: 0; +} +.t-menu.horizontal .t-menu:not(.horizontal) { + left: 0 !important; + top: 100% !important; + margin-top: .3125rem !important; + margin-left: 0 !important; +} +.t-menu.horizontal .t-menu:not(.horizontal) .t-menu.horizontal { + left: 100% !important; + margin-left: .3125rem !important; + top: 0 !important; + float: left !important; +} +[data-role="dropdown"]:not(.open), +[data-role="dropdown"]:not(.keep-open) { + display: none; + position: absolute; + z-index: 1000; +} +.button { + padding: 0 1rem; + height: 2.125rem; + text-align: center; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; +} +.button.default { + background-color: #008287; + color: #fff; +} +.button:hover { + border-color: #787878; +} +.button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.button:focus { + outline: 0; +} +.button:disabled, +.button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.button * { + color: inherit; +} +.button *:hover { + color: inherit; +} +.button.rounded { + border-radius: .325rem; +} +.button.no-border { + border: 0 !important; +} +.button > [class*=mif-] { + vertical-align: middle !important; +} +.button.button-shadow { + box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.3); +} +.button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.round-button, +.cycle-button, +.square-button { + padding: 0 1rem; + height: 2.125rem; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + width: 2.125rem; + min-width: 2.125rem; + padding: 0 !important; + border-radius: 50% !important; + text-align: center; + text-decoration: none; + vertical-align: middle; +} +.round-button.default, +.cycle-button.default, +.square-button.default { + background-color: #008287; + color: #fff; +} +.round-button:hover, +.cycle-button:hover, +.square-button:hover { + border-color: #787878; +} +.round-button:active, +.cycle-button:active, +.square-button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.round-button:focus, +.cycle-button:focus, +.square-button:focus { + outline: 0; +} +.round-button:disabled, +.cycle-button:disabled, +.square-button:disabled, +.round-button.disabled, +.cycle-button.disabled, +.square-button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.round-button *, +.cycle-button *, +.square-button * { + color: inherit; +} +.round-button *:hover, +.cycle-button *:hover, +.square-button *:hover { + color: inherit; +} +.round-button.rounded, +.cycle-button.rounded, +.square-button.rounded { + border-radius: .325rem; +} +.round-button.no-border, +.cycle-button.no-border, +.square-button.no-border { + border: 0 !important; +} +.round-button > [class*=mif-], +.cycle-button > [class*=mif-], +.square-button > [class*=mif-] { + vertical-align: middle !important; +} +.round-button img, +.cycle-button img, +.square-button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.round-button.loading-pulse, +.cycle-button.loading-pulse, +.square-button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.round-button.loading-pulse:before, +.cycle-button.loading-pulse:before, +.square-button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.round-button.loading-pulse.lighten:before, +.cycle-button.loading-pulse.lighten:before, +.square-button.loading-pulse.lighten:before { + background-color: #fff; +} +.round-button.loading-cube, +.cycle-button.loading-cube, +.square-button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.round-button.loading-cube:before, +.cycle-button.loading-cube:before, +.square-button.loading-cube:before, +.round-button.loading-cube:after, +.cycle-button.loading-cube:after, +.square-button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.round-button.loading-cube:after, +.cycle-button.loading-cube:after, +.square-button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.round-button.loading-cube.lighten:before, +.cycle-button.loading-cube.lighten:before, +.square-button.loading-cube.lighten:before, +.round-button.loading-cube.lighten:after, +.cycle-button.loading-cube.lighten:after, +.square-button.loading-cube.lighten:after { + background-color: #fff; +} +.round-button.dropdown-toggle, +.cycle-button.dropdown-toggle, +.square-button.dropdown-toggle { + padding-right: 1.625rem; +} +.round-button.dropdown-toggle.drop-marker-light:before, +.cycle-button.dropdown-toggle.drop-marker-light:before, +.square-button.dropdown-toggle.drop-marker-light:before, +.round-button.dropdown-toggle.drop-marker-light:after, +.cycle-button.dropdown-toggle.drop-marker-light:after, +.square-button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.round-button.big-button, +.cycle-button.big-button, +.square-button.big-button { + width: 3.125rem; + height: 3.125rem; + line-height: 1.1; +} +.round-button.mini-button, +.cycle-button.mini-button, +.square-button.mini-button { + width: 1.5rem; + height: 1.5rem; +} +.round-button.small-button, +.cycle-button.small-button, +.square-button.small-button { + width: 1.7rem; + height: 1.7rem; +} +.round-button.large-button, +.cycle-button.large-button, +.square-button.large-button { + width: 2.55rem; + height: 2.55rem; +} +.square-button { + border-radius: 0 !important; +} +a.button, +a.round-button, +a.square-button { + color: inherit; +} +a.button:hover, +a.round-button:hover, +a.square-button:hover { + text-decoration: none; +} +.button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.button.loading-pulse.lighten:before { + background-color: #fff; +} +.button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.button.loading-cube:before, +.button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.button.loading-cube.lighten:before, +.button.loading-cube.lighten:after { + background-color: #fff; +} +.command-button { + padding: 0 1rem; + height: 2.125rem; + text-align: center; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + height: auto; + text-align: left; + font-size: 1.325rem; + padding-left: 4rem; + padding-top: 8px; + padding-bottom: 4px; +} +.command-button.default { + background-color: #008287; + color: #fff; +} +.command-button:hover { + border-color: #787878; +} +.command-button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.command-button:focus { + outline: 0; +} +.command-button:disabled, +.command-button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.command-button * { + color: inherit; +} +.command-button *:hover { + color: inherit; +} +.command-button.rounded { + border-radius: .325rem; +} +.command-button.no-border { + border: 0 !important; +} +.command-button > [class*=mif-] { + vertical-align: middle !important; +} +.command-button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.command-button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.command-button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.command-button.loading-pulse.lighten:before { + background-color: #fff; +} +.command-button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.command-button.loading-cube:before, +.command-button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.command-button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.command-button.loading-cube.lighten:before, +.command-button.loading-cube.lighten:after { + background-color: #fff; +} +.command-button.dropdown-toggle { + padding-right: 1.625rem; +} +.command-button.dropdown-toggle.drop-marker-light:before, +.command-button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.command-button small { + display: block; + font-size: .8rem; + line-height: 1.625rem; + margin-top: -0.3125rem; +} +.command-button .icon { + left: 1rem; + top: 50%; + margin-top: -1rem; + position: absolute; + font-size: 2rem; + height: 2rem; + width: 2rem; + margin-right: .625rem; +} +.command-button.icon-right { + padding-left: 1rem; + padding-right: 4rem; +} +.command-button.icon-right .icon { + left: auto; + right: 0; +} +.image-button { + padding: 0 1rem; + height: 2.125rem; + text-align: center; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + border: 0; + padding-left: 2.75rem; + background-color: #eeeeee; +} +.image-button.default { + background-color: #008287; + color: #fff; +} +.image-button:hover { + border-color: #787878; +} +.image-button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.image-button:focus { + outline: 0; +} +.image-button:disabled, +.image-button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.image-button * { + color: inherit; +} +.image-button *:hover { + color: inherit; +} +.image-button.rounded { + border-radius: .325rem; +} +.image-button.no-border { + border: 0 !important; +} +.image-button > [class*=mif-] { + vertical-align: middle !important; +} +.image-button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.image-button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.image-button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.image-button.loading-pulse.lighten:before { + background-color: #fff; +} +.image-button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.image-button.loading-cube:before, +.image-button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.image-button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.image-button.loading-cube.lighten:before, +.image-button.loading-cube.lighten:after { + background-color: #fff; +} +.image-button.dropdown-toggle { + padding-right: 1.625rem; +} +.image-button.dropdown-toggle.drop-marker-light:before, +.image-button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.image-button:active { + background-color: #e1e1e1; +} +.image-button .icon { + position: absolute; + left: 0; + top: 0; + height: 100%; + width: 2.125rem; + padding: .525rem; + font-size: 1rem; + background-color: #999999; + text-align: center; + vertical-align: middle; +} +.image-button img.icon { + padding-top: .525rem; +} +.image-button.icon-right { + padding-left: 1rem; + padding-right: 2.75rem; +} +.image-button.icon-right .icon { + right: 0; + left: auto !important; +} +a.image-button { + padding-top: 10px; +} +.image-button.small-button { + padding-left: 2rem; + padding-right: 1rem; + padding-top: 0; +} +.image-button.small-button .icon { + width: 1.625rem; + font-size: .875rem; + height: 100%; + padding: .4rem; +} +.image-button.small-button.icon-right { + padding-left: .625rem; + padding-right: 2rem; +} +.shortcut-button { + padding: 0 1rem; + height: 2.125rem; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + width: 5.75rem; + height: 5.75rem; + text-align: center; +} +.shortcut-button.default { + background-color: #008287; + color: #fff; +} +.shortcut-button:hover { + border-color: #787878; +} +.shortcut-button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.shortcut-button:focus { + outline: 0; +} +.shortcut-button:disabled, +.shortcut-button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.shortcut-button * { + color: inherit; +} +.shortcut-button *:hover { + color: inherit; +} +.shortcut-button.rounded { + border-radius: .325rem; +} +.shortcut-button.no-border { + border: 0 !important; +} +.shortcut-button > [class*=mif-] { + vertical-align: middle !important; +} +.shortcut-button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.shortcut-button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.shortcut-button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.shortcut-button.loading-pulse.lighten:before { + background-color: #fff; +} +.shortcut-button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.shortcut-button.loading-cube:before, +.shortcut-button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.shortcut-button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.shortcut-button.loading-cube.lighten:before, +.shortcut-button.loading-cube.lighten:after { + background-color: #fff; +} +.shortcut-button.dropdown-toggle { + padding-right: 1.625rem; +} +.shortcut-button.dropdown-toggle.drop-marker-light:before, +.shortcut-button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.shortcut-button .icon, +.shortcut-button .title { + display: block; + color: inherit; +} +.shortcut-button .icon { + font-size: 1.7rem; + height: 1.7rem; + width: 1.7rem; + margin: .875rem auto; +} +.shortcut-button .badge { + color: inherit; + position: absolute; + top: 0; + right: 0; + font-size: .7rem; + line-height: 1rem; + padding: 0 .225rem; +} +a.shortcut-button { + padding-top: 10px; +} +.button.dropdown-toggle { + padding-right: 1.625rem; +} +.button.dropdown-toggle.drop-marker-light:before, +.button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.nav-button { + width: 2rem; + height: 2rem; + background-size: 1rem 1rem; + background: center center no-repeat; + text-indent: -9999px; + border: 0; + display: inline-block; + cursor: pointer; + z-index: 2; + position: relative; +} +.nav-button:active, +.nav-button:focus { + outline: 1px #eeeeee solid; +} +.nav-button span { + position: absolute; + top: 1.2rem; + left: .5rem; + width: 1.2rem; + height: 2px; + margin: 0 0 0; + background: #1d1d1d; + -webkit-transform: rotate(0); + transform: rotate(0); + transition: all 0.3s linear; +} +.nav-button span:before, +.nav-button span:after { + content: ''; + position: absolute; + top: -0.5rem; + right: 0; + width: 1.2rem; + height: 2px; + background: #1d1d1d; + -webkit-transform: rotate(0); + transform: rotate(0); + transition: all 0.3s linear; +} +.nav-button span:after { + top: .5rem; +} +.nav-button.transform span { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); + background: #1d1d1d; +} +.nav-button.transform span:before, +.nav-button.transform span:after { + content: ''; + top: -5px; + right: 0; + width: .75rem; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.nav-button.transform span:after { + top: 5px; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.group-of-buttons .button.active, +.group-of-buttons .toolbar-button.active { + background-color: #00ccff; + color: #ffffff; +} +.group-of-buttons .button:active, +.group-of-buttons .toolbar-button:active { + background-color: #1ba1e2; + color: #ffffff; +} +.split-button { + display: inline-block; + position: relative; +} +.split-button:before, +.split-button:after { + display: table; + content: ""; +} +.split-button:after { + clear: both; +} +.split-button .button, +.split-button .split { + display: block; + float: left; +} +.split-button .split { + padding: 0 1rem 0 .625rem; + height: 2.125rem; + text-align: center; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + outline: none; + font-size: .875rem; + line-height: 2.1rem; + position: relative; + margin: .15625rem 0; +} +.split-button .split:hover { + background-color: #eeeeee; + border-color: #787878; +} +.split-button .split-content { + position: absolute; + top: 100%; +} +.split.primary { + background: #2086bf; + color: #ffffff; + border-color: #2086bf; +} +.split.primary:active { + background: #1b6eae; +} +.split.primary:hover { + background: #59cde2; + border-color: #59cde2; +} +.split.primary.dropdown-toggle:before { + border-color: #ffffff; +} +.split.success { + background: #60a917; + color: #ffffff; + border-color: #60a917; +} +.split.success:active { + background: #128023; +} +.split.success:hover { + background: #7ad61d; + border-color: #7ad61d; +} +.split.success.dropdown-toggle:before { + border-color: #ffffff; +} +.split.danger { + background: #ce352c; + color: #ffffff; + border-color: #ce352c; +} +.split.danger:active { + background: #9a1616; +} +.split.danger:hover { + background: #da5a53; + border-color: #da5a53; +} +.split.danger.dropdown-toggle:before { + border-color: #ffffff; +} +.split.info { + background: #59cde2; + color: #ffffff; + border-color: #59cde2; +} +.split.info:active { + background: #1ba1e2; +} +.split.info:hover { + background: #4390df; + border-color: #4390df; +} +.split.info.dropdown-toggle:before { + border-color: #ffffff; +} +.split.warning { + background: #fa6800; + color: #ffffff; + border-color: #fa6800; +} +.split.warning:active { + background: #bf5a15; +} +.split.warning:hover { + background: #c29008; + border-color: #c29008; +} +.split.warning.dropdown-toggle:before { + border-color: #ffffff; +} +.mini-button { + font-size: .6rem; + line-height: 1.3; + padding: .2rem .625rem; + height: 1.4rem; +} +.small-button { + font-size: .7rem; + line-height: 1.68rem; + padding: 0 .625rem; + height: 1.7rem; +} +.large-button { + height: 2.55rem; + font-size: 1.05rem; + line-height: 2.52rem; +} +.big-button { + height: 3.125rem; + font-size: 1.2rem; + line-height: 1; +} +.primary { + background: #2086bf; + color: #ffffff; + border-color: #2086bf; +} +.primary:active { + background: #1b6eae; + color: #ffffff; +} +.success { + background: #60a917; + color: #ffffff; + border-color: #60a917; +} +.success:active { + background: #128023; + color: #ffffff; +} +.danger, +.alert { + background: #ce352c; + color: #ffffff; + border-color: #ce352c; +} +.danger:active, +.alert:active { + background: #9a1616; + color: #ffffff; +} +.info { + background: #59cde2; + color: #ffffff; + border-color: #59cde2; +} +.info:active { + background: #1ba1e2; + color: #ffffff; +} +.warning { + background: #fa6800; + color: #ffffff; + border-color: #fa6800; +} +.warning:active { + background: #bf5a15; + color: #ffffff; +} +.link { + background: transparent; + color: #2086bf; + border-color: transparent; + text-decoration: underline; +} +.link:hover, +.link:active { + background: transparent; + color: #114968; + border-color: transparent; +} +a.button, +span.button, +div.button, +a.round-button, +span.round-button, +div.round-button, +a.cycle-button, +span.cycle-button, +div.cycle-button, +a.square-button, +span.square-button, +div.square-button { + padding-top: .53125rem !important; +} +a.button.big-button, +span.button.big-button, +div.button.big-button, +a.round-button.big-button, +span.round-button.big-button, +div.round-button.big-button, +a.cycle-button.big-button, +span.cycle-button.big-button, +div.cycle-button.big-button, +a.square-button.big-button, +span.square-button.big-button, +div.square-button.big-button { + padding-top: .78125rem !important; +} +.toolbar { + position: relative; +} +.toolbar:before, +.toolbar:after { + display: table; + content: ""; +} +.toolbar:after { + clear: both; +} +.toolbar-section { + position: relative; + padding-left: .5725rem; + margin: .125rem; + float: left; + width: auto; +} +.toolbar-section.no-divider:before { + display: none; +} +.toolbar-section:before { + position: absolute; + content: ""; + width: .325rem; + height: 100%; + left: 0; + background: #eeeeee linear-gradient(90deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent) !important; + background-size: 0.325rem 0.325rem !important; + cursor: move; +} +.toolbar-button { + padding: 0 1rem; + height: 2.125rem; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + width: 2.125rem; + min-width: 2.125rem; + padding: 0 !important; + border-radius: 50% !important; + text-align: center; + text-decoration: none; + vertical-align: middle; + border-radius: 0 !important; + margin: 0; +} +.toolbar-button.default { + background-color: #008287; + color: #fff; +} +.toolbar-button:hover { + border-color: #787878; +} +.toolbar-button:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +.toolbar-button:focus { + outline: 0; +} +.toolbar-button:disabled, +.toolbar-button.disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +.toolbar-button * { + color: inherit; +} +.toolbar-button *:hover { + color: inherit; +} +.toolbar-button.rounded { + border-radius: .325rem; +} +.toolbar-button.no-border { + border: 0 !important; +} +.toolbar-button > [class*=mif-] { + vertical-align: middle !important; +} +.toolbar-button img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +.toolbar-button.loading-pulse { + position: relative; + padding: 0 1.325rem; +} +.toolbar-button.loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +.toolbar-button.loading-pulse.lighten:before { + background-color: #fff; +} +.toolbar-button.loading-cube { + position: relative; + padding: 0 1.325rem; +} +.toolbar-button.loading-cube:before, +.toolbar-button.loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +.toolbar-button.loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +.toolbar-button.loading-cube.lighten:before, +.toolbar-button.loading-cube.lighten:after { + background-color: #fff; +} +.toolbar-button.dropdown-toggle { + padding-right: 1.625rem; +} +.toolbar-button.dropdown-toggle.drop-marker-light:before, +.toolbar-button.dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.toolbar-button.big-button { + width: 3.125rem; + height: 3.125rem; + line-height: 1.1; +} +.toolbar-button.mini-button { + width: 1.5rem; + height: 1.5rem; +} +.toolbar-button.small-button { + width: 1.7rem; + height: 1.7rem; +} +.toolbar-button.large-button { + width: 2.55rem; + height: 2.55rem; +} +.toolbar-group, +.toolbar-section { + display: inline-block; +} +.toolbar-group.condensed:before, +.toolbar-section.condensed:before, +.toolbar-group.condensed:after, +.toolbar-section.condensed:after { + display: table; + content: ""; +} +.toolbar-group.condensed:after, +.toolbar-section.condensed:after { + clear: both; +} +.toolbar-group.condensed .button, +.toolbar-section.condensed .button, +.toolbar-group.condensed .toolbar-button, +.toolbar-section.condensed .toolbar-button { + display: block; + float: left; +} +.toolbar-group-check .toolbar-button.checked { + background-color: #59cde2; + color: #ffffff; + border-color: #59cde2; +} +.toolbar-group-radio .toolbar-button.checked { + background-color: #59cde2; + color: #ffffff; + border-color: #59cde2; +} +.toolbar.rounded .toolbar-button { + border-radius: .3125rem !important; +} +.toolbar.rounded .toolbar-section:before { + border-radius: .3125rem !important; +} +.v-toolbar { + position: relative; + float: left; +} +.v-toolbar:before, +.v-toolbar:after { + display: table; + content: ""; +} +.v-toolbar:after { + clear: both; +} +.v-toolbar.rounded .toolbar-button { + border-radius: .3125rem !important; +} +.v-toolbar.rounded .toolbar-section:before { + border-radius: .3125rem !important; +} +.v-toolbar .toolbar-section { + padding-left: 0; + padding-top: .5725rem; +} +.v-toolbar .toolbar-section:before { + width: 100%; + top: 0; + height: .325rem; +} +.v-toolbar .toolbar-button { + display: block; + margin-bottom: .25rem; +} +.v-toolbar.no-divider .toolbar-section:before { + display: none; +} +.pagination { + display: block; + margin: .625rem 0; +} +.pagination:before, +.pagination:after { + display: table; + content: ""; +} +.pagination:after { + clear: both; +} +.pagination > .item { + display: block; + float: left; + margin-left: .0652rem; + padding: 0.25rem .625rem; + background-color: #ffffff; + cursor: pointer; + border: 1px #eeeeee solid; + text-align: center; + font-size: .875rem; +} +.pagination > .item:first-child { + margin-left: 0 !important; +} +.pagination > .item.current, +.pagination > .item.active { + background-color: #1ba1e2; + border-color: #59cde2; + color: #ffffff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); +} +.pagination > .item:hover { + background-color: #75c7ee; + border-color: #75c7ee; + color: #ffffff; +} +.pagination > .item:disabled, +.pagination > .item.disabled { + cursor: default; + background-color: #eeeeee; + border-color: #eeeeee; + color: #999999; +} +.pagination > .item.spaces { + border: 0; + cursor: default; +} +.pagination > .item.spaces:hover { + background-color: inherit !important; + color: inherit !important; +} +.pagination.rounded > .item { + border-radius: .3125rem; +} +.pagination.cycle > .item { + width: 28px; + height: 28px; + border-radius: 50%; + font-size: .7rem; + padding: .4375rem 0; +} +.pagination.no-border > .item { + border: 0; +} +.pagination.no-border > .item:hover { + color: #59cde2; + background-color: transparent !important; +} +.pagination.no-border > .item:disabled, +.pagination.no-border > .item.disabled { + cursor: default; + background-color: transparent; + border-color: transparent; + color: #999999; +} +.pagination.no-border > .item.current:hover, +.pagination.no-border > .item.active:hover { + background-color: #75c7ee !important; + border-color: #75c7ee !important; + color: #ffffff !important; +} +.breadcrumbs { + padding: 0; + margin: 0; + list-style: none inside none; + background-color: #ffffff; + color: #999; + padding: 1rem; +} +.breadcrumbs > li { + display: inline-block; + color: inherit; + margin: 0 1rem 0 0; + position: relative; + vertical-align: middle; +} +.breadcrumbs > li:before, +.breadcrumbs > li:after { + display: block; + position: absolute; + vertical-align: middle; + color: transparent; + font-size: 0; + content: ""; + height: 1px; + width: .375rem; + background-color: #1d1d1d; + top: 50%; + left: 100%; + margin-left: .5rem; +} +.breadcrumbs > li:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + margin-top: -0.125rem; +} +.breadcrumbs > li:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + margin-top: .125rem; +} +.breadcrumbs > li > a { + color: inherit; + display: inline-block; + line-height: 1; +} +.breadcrumbs > li:last-child { + color: #1d1d1d; + font-weight: bolder; +} +.breadcrumbs > li:last-child a { + cursor: default; +} +.breadcrumbs > li:last-child:before, +.breadcrumbs > li:last-child:after { + background-color: transparent; +} +.breadcrumbs > li:hover { + color: #1d1d1d; +} +.breadcrumbs img, +.breadcrumbs .icon { + display: inline-block; + line-height: .8; + height: 1rem; + width: 1rem; + font-size: 1rem; + vertical-align: -15%; +} +.breadcrumbs.dark { + background-color: #393832; +} +.breadcrumbs.dark > li:hover, +.breadcrumbs.dark > li:last-child { + color: #ffffff; +} +.breadcrumbs.dark > li:before, +.breadcrumbs.dark > li:after { + background-color: #ffffff; +} +.input-control { + display: inline-block; + min-height: 2.125rem; + height: 2.125rem; + position: relative; + min-width: 10.875rem; + vertical-align: middle; + margin: .325rem 0; + line-height: 1; +} +.input-control[data-role=select] { + height: auto; +} +.input-control.text .button, +.input-control.select .button, +.input-control.file .button, +.input-control.password .button, +.input-control.number .button, +.input-control.email .button, +.input-control.tel .button { + position: absolute; + top: 0; + right: 0; + z-index: 2; + margin: 0; +} +.input-control.text > label, +.input-control.select > label, +.input-control.file > label, +.input-control.password > label, +.input-control.number > label, +.input-control.email > label, +.input-control.tel > label, +.input-control.text > .label, +.input-control.select > .label, +.input-control.file > .label, +.input-control.password > .label, +.input-control.number > .label, +.input-control.email > .label, +.input-control.tel > .label { + position: absolute; + left: 0; + top: -1rem; + font-size: .875rem; +} +.input-control.text > input:disabled + .button, +.input-control.select > input:disabled + .button, +.input-control.file > input:disabled + .button, +.input-control.password > input:disabled + .button, +.input-control.number > input:disabled + .button, +.input-control.email > input:disabled + .button, +.input-control.tel > input:disabled + .button { + display: none; +} +.input-control.text .prepend-icon, +.input-control.select .prepend-icon, +.input-control.file .prepend-icon, +.input-control.password .prepend-icon, +.input-control.number .prepend-icon, +.input-control.email .prepend-icon, +.input-control.tel .prepend-icon { + width: 24px; + height: 24px; + font-size: 24px; + line-height: 1; + position: absolute; + top: 4px; + left: 4px; + z-index: 2; + color: #555555; +} +.input-control.text .prepend-icon ~ input, +.input-control.select .prepend-icon ~ input, +.input-control.file .prepend-icon ~ input, +.input-control.password .prepend-icon ~ input, +.input-control.number .prepend-icon ~ input, +.input-control.email .prepend-icon ~ input, +.input-control.tel .prepend-icon ~ input { + padding-left: 30px !important; +} +.input-control input, +.input-control textarea, +.input-control select { + -moz-appearance: none; + -webkit-appearance: none; + appearance: none; + position: relative; + border: 1px #d9d9d9 solid; + width: 100%; + height: 100%; + padding: .3125rem; + z-index: 0; +} +.input-control input:focus, +.input-control textarea:focus, +.input-control select:focus { + outline: none; +} +.input-control input:disabled, +.input-control textarea:disabled, +.input-control select:disabled { + background-color: #EBEBE4; +} +.input-control input:focus, +.input-control textarea:focus, +.input-control select:focus, +.input-control input:hover, +.input-control textarea:hover, +.input-control select:hover { + border-color: #787878; +} +.input-control textarea { + position: relative !important; + min-height: 6.25rem; + font-family: "Segoe UI", "Open Sans", serif; +} +.input-control.textarea { + height: auto; +} +.input-control.select { + position: relative; +} +.input-control.select select { + padding-right: 20px !important; +} +.input-control.rounded input, +.input-control.rounded textarea, +.input-control.rounded select { + border-radius: 0.3125rem; +} +.input-control.big-input { + height: 4.125rem; +} +.input-control.big-input input { + font-size: 1.875rem; + padding-left: 1.25rem !important; +} +.input-control.big-input .button { + height: 3.25rem; + top: 50%; + margin-top: -1.625rem; + right: 0.3125rem !important; + font-size: 1.125rem; + font-weight: bold; + padding-left: 1.875rem; + padding-right: 1.875rem; +} +.input-control.error input, +.input-control.error textarea, +.input-control.error select { + border-color: #ce352c !important; +} +.input-control.error.neon input, +.input-control.error.neon textarea, +.input-control.error.neon select { + box-shadow: 0 0 25px 0 rgba(128, 0, 0, 0.7); +} +.input-control.warning input, +.input-control.warning textarea, +.input-control.warning select { + border-color: #e3c800 !important; +} +.input-control.warning.neon input, +.input-control.warning.neon textarea, +.input-control.warning.neon select { + box-shadow: 0 0 25px 0 rgba(255, 165, 0, 0.7); +} +.input-control.success input, +.input-control.success textarea, +.input-control.success select { + border-color: #60a917 !important; +} +.input-control.success.neon input, +.input-control.success.neon textarea, +.input-control.success.neon select { + box-shadow: 0 0 25px 0 rgba(0, 128, 0, 0.7); +} +.input-control.info input, +.input-control.info textarea, +.input-control.info select { + border-color: #1ba1e2 !important; +} +.input-control.info.neon input, +.input-control.info.neon textarea, +.input-control.info.neon select { + box-shadow: 0 0 25px 0 rgba(89, 205, 226, 0.7); +} +.input-control.required input, +.input-control.required textarea, +.input-control.required select { + border: 1px dashed #1ba1e2 !important; +} +.input-control.required.neon input, +.input-control.required.neon textarea, +.input-control.required.neon select { + box-shadow: 0 0 25px 0 rgba(89, 205, 226, 0.7); +} +.input-control.file input[type=file] { + position: absolute; + opacity: 0; + width: 0.0625rem; + height: 0.0625rem; +} +.input-control.file input[type=file]:disabled ~ input[type=text], +.input-control.file input[type=file]:disabled ~ .button { + background-color: #EBEBE4; +} +.input-control.file:hover input[type=text], +.input-control.file:hover button { + border-color: #787878; +} +.input-control .button-group { + position: absolute; + right: 0; + top: 0; + margin: 0; + padding: 0; + z-index: 2; +} +.input-control .button-group:before, +.input-control .button-group:after { + display: table; + content: ""; +} +.input-control .button-group:after { + clear: both; +} +.input-control .button-group .button { + position: relative; + float: left; + margin: 0; +} +.input-control > [class*=helper-button], +.input-control > .button-group > [class*=helper-button] { + visibility: hidden; + margin: 0; + border: 0; + height: 1.875rem; + padding: 0 .6rem; + z-index: 100; + font-size: .75rem; +} +.input-control > .helper-button { + margin: 2px 2px 0 !important; +} +.input-control > .button-group > .helper-button { + margin: 2px 0 !important; +} +.input-control > .button-group > .helper-button:last-child { + margin-right: 2px !important; +} +.input-control input:focus ~ [class*=helper-button], +.input-control input:focus ~ .button-group > [class*=helper-button] { + visibility: visible; +} +.input-control input ~ [class*=helper-button]:active, +.input-control input ~ .button-group > [class*=helper-button]:active { + visibility: visible; +} +.input-control input:disabled ~ [class*=helper-button], +.input-control input:disabled ~ .button-group > [class*=helper-button] { + display: none !important; +} +.input-control.modern { + position: relative; + width: 12.25rem; + height: 3rem; + display: inline-block; + margin: .625rem 0; +} +.input-control.modern input { + position: absolute; + top: 1rem; + left: 0; + right: 0; + bottom: .5rem; + border: 0; + border-bottom: 2px #DDDDDD solid; + background-color: transparent; + outline: none; + font-size: 1rem; + padding-bottom: .5rem; + padding-left: 0; + width: 100%; + z-index: 2; + height: 1.75rem; +} +.input-control.modern input:focus { + border-bottom-color: #1d1d1d; +} +.input-control.modern .label, +.input-control.modern .informer { + position: absolute; + display: block; + z-index: 1; + color: #1d1d1d; +} +.input-control.modern .label { + opacity: 0; + top: 16px; + left: 0; + transition: all 0.3s linear; +} +.input-control.modern .informer { + opacity: 0; + bottom: .75rem; + color: #C8C8C8; + font-size: .8rem; + transition: all 0.3s linear; +} +.input-control.modern .placeholder { + font-size: 1rem; + color: #C8C8C8; + position: absolute; + top: 1rem; + left: 0; + z-index: 1; + opacity: 1; + transition: all 0.3s linear; +} +.input-control.modern .helper-button { + top: 8px; +} +.input-control.modern.iconic { + margin-left: 2rem; +} +.input-control.modern.iconic .icon { + width: 1.5rem; + height: 1.5rem; + font-size: 1.5rem; + line-height: 100%; + position: absolute; + left: -32px; + top: 50%; + margin-top: -0.5rem; + display: block; + opacity: .2; + transition: all 0.3s linear; +} +.input-control.modern.iconic .icon img { + width: 100%; + max-width: 100%; + height: 100%; + max-height: 100%; +} +.input-control.modern input:focus ~ .label { + opacity: 1; + -webkit-transform: translateY(-18px); + transform: translateY(-18px); + transition: all 0.3s linear; +} +.input-control.modern input:focus ~ .placeholder { + opacity: 0; + -webkit-transform: translateX(200px); + transform: translateX(200px); + transition: all 0.3s linear; +} +.input-control.modern input:focus ~ .informer { + opacity: 1; + color: #1d1d1d; + bottom: -0.75rem; + transition: all 0.3s linear; +} +.input-control.modern input:focus ~ .icon { + opacity: 1; + transition: all 0.3s linear; +} +.input-control.modern.error input { + border-bottom-color: #ce352c; +} +.input-control.modern.error .informer, +.input-control.modern.error .label { + color: #ce352c !important; +} +.input-control.modern.success input { + border-bottom-color: #60a917; +} +.input-control.modern.success .informer, +.input-control.modern.success .label { + color: #60a917 !important; +} +.input-control.modern.warning input { + border-bottom-color: #e3c800; +} +.input-control.modern.warning .informer, +.input-control.modern.warning .label { + color: #e3c800 !important; +} +.input-control.modern.info input { + border-bottom-color: #1ba1e2; +} +.input-control.modern.info .informer, +.input-control.modern.info .label { + color: #1ba1e2 !important; +} +.input-control.modern input:disabled { + border-bottom-style: dotted; + color: #BCBCBC; +} +.input-control.checkbox, +.input-control.radio { + line-height: 1.875rem; + min-width: 1rem; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.input-control.checkbox input[type="checkbox"], +.input-control.radio input[type="checkbox"], +.input-control.checkbox input[type="radio"], +.input-control.radio input[type="radio"] { + position: absolute; + opacity: 0; + width: 0.0625rem; + height: 0.0625rem; +} +.input-control.checkbox .caption, +.input-control.radio .caption { + margin: 0 .125rem; + vertical-align: middle; +} +.input-control.checkbox .check, +.input-control.radio .check { + width: 1.625rem; + height: 1.625rem; + background-color: #ffffff; + border: 1px #999999 solid; + padding: 0; + position: relative; + display: inline-block; + vertical-align: middle; +} +.input-control.checkbox.text-left .check, +.input-control.radio.text-left .check { + margin: 0 0 0 .3125rem; +} +.input-control.checkbox .check:focus, +.input-control.radio .check:focus { + border-color: #bcd9e2; +} +.input-control.checkbox .check:before, +.input-control.radio .check:before { + position: absolute; + vertical-align: middle; + color: transparent; + font-size: 0; + content: ""; + height: .3125rem; + width: .565rem; + background-color: transparent; + border-left: .1875rem solid; + border-bottom: .1875rem solid; + border-color: transparent; + left: 50%; + top: 50%; + margin-left: -0.325rem; + margin-top: -0.365rem; + display: block; + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); + transition: all 0.2s linear; +} +.input-control.checkbox input[type=radio] ~ .check:before, +.input-control.radio input[type=radio] ~ .check:before { + border-color: transparent !important; +} +.input-control.checkbox input[type="checkbox"]:checked ~ .check:before, +.input-control.radio input[type="checkbox"]:checked ~ .check:before, +.input-control.checkbox input[type="radio"]:checked ~ .check:before, +.input-control.radio input[type="radio"]:checked ~ .check:before { + border-color: #555555; + transition: all 0.2s linear; +} +.input-control.checkbox input[type="checkbox"]:disabled ~ .caption, +.input-control.radio input[type="checkbox"]:disabled ~ .caption, +.input-control.checkbox input[type="radio"]:disabled ~ .caption, +.input-control.radio input[type="radio"]:disabled ~ .caption { + color: #cacaca; + cursor: default; +} +.input-control.checkbox input[type="checkbox"]:disabled ~ .check, +.input-control.radio input[type="checkbox"]:disabled ~ .check, +.input-control.checkbox input[type="radio"]:disabled ~ .check, +.input-control.radio input[type="radio"]:disabled ~ .check { + border-color: #cacaca; + cursor: default; +} +.input-control.checkbox input[type="checkbox"]:disabled:checked ~ .check:before, +.input-control.radio input[type="checkbox"]:disabled:checked ~ .check:before { + border-color: #cacaca; +} +.input-control.checkbox input[type="radio"]:disabled:checked ~ .check:before, +.input-control.radio input[type="radio"]:disabled:checked ~ .check:before { + background-color: #cacaca; +} +.input-control.checkbox input[data-show="indeterminate"] ~ .check:before, +.input-control.radio input[data-show="indeterminate"] ~ .check:before, +.input-control.checkbox input[data-show="indeterminate"]:checked ~ .check:before, +.input-control.radio input[data-show="indeterminate"]:checked ~ .check:before, +.input-control.checkbox input.indeterminate:checked ~ .check:before, +.input-control.radio input.indeterminate:checked ~ .check:before, +.input-control.checkbox input[type="checkbox"]:indeterminate ~ .check:before, +.input-control.radio input[type="checkbox"]:indeterminate ~ .check:before { + display: none; +} +.input-control.checkbox input[data-show="indeterminate"] ~ .check:after, +.input-control.radio input[data-show="indeterminate"] ~ .check:after, +.input-control.checkbox input[data-show="indeterminate"]:checked ~ .check:after, +.input-control.radio input[data-show="indeterminate"]:checked ~ .check:after, +.input-control.checkbox input.indeterminate:checked ~ .check:after, +.input-control.radio input.indeterminate:checked ~ .check:after, +.input-control.checkbox input[type="checkbox"]:indeterminate ~ .check:after, +.input-control.radio input[type="checkbox"]:indeterminate ~ .check:after { + position: absolute; + display: block; + content: "" !important; + background-color: #1d1d1d; + height: .875rem; + width: .875rem; + left: 50%; + top: 50%; + margin-left: -0.4375rem; + margin-top: -0.4375rem; +} +.input-control.checkbox input[data-show="indeterminate"]:not(:checked) ~ .check:after, +.input-control.radio input[data-show="indeterminate"]:not(:checked) ~ .check:after { + background-color: transparent; +} +.input-control.checkbox input[data-show="indeterminate"]:disabled ~ .check:after, +.input-control.radio input[data-show="indeterminate"]:disabled ~ .check:after { + background-color: #cacaca; +} +.input-control.radio .check { + border: 1px #999999 solid; + border-radius: 50%; +} +.input-control.radio .check:before { + position: absolute; + display: block; + content: "" !important; + background-color: #1d1d1d; + height: .5624rem; + width: .5624rem; + left: 50%; + top: 50%; + margin-left: -0.375rem; + margin-top: -0.375rem; + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + border-radius: 50%; +} +.input-control.radio input[type="radio"]:not(:checked) ~ .check:before { + background-color: transparent; +} +.input-control.small-check .check { + width: 1rem !important; + height: 1rem !important; +} +.input-control.small-check .check:before { + width: 6px; + height: 3px; + margin-left: -4px; + margin-top: -4px; + border-width: 2px; +} +.input-control.small-check.radio .check:before { + height: .375rem; + width: .375rem; + left: 50%; + top: 50%; + margin-left: -0.25rem; + margin-top: -0.25rem; +} +.input-control.small-check input[data-show="indeterminate"] ~ .check:after, +.input-control.small-check input[data-show="indeterminate"]:checked ~ .check:after, +.input-control.small-check input.indeterminate:checked ~ .check:after, +.input-control.small-check input[type="checkbox"]:indeterminate ~ .check:after { + height: .375rem; + width: .375rem; + left: 50%; + top: 50%; + margin-left: -0.1875rem; + margin-top: -0.1875rem; +} +input[type="button"], +input[type="reset"], +input[type="submit"] { + padding: 0 1rem; + height: 2.125rem; + text-align: center; + vertical-align: middle !important; + background-color: #ffffff; + border: 1px #d9d9d9 solid; + color: #262626; + cursor: pointer; + display: inline-block; + outline: none; + font-size: .875rem; + line-height: 1; + margin: .15625rem 0; + position: relative; + vertical-align: middle; +} +input[type="button"].default, +input[type="reset"].default, +input[type="submit"].default { + background-color: #008287; + color: #fff; +} +input[type="button"]:hover, +input[type="reset"]:hover, +input[type="submit"]:hover { + border-color: #787878; +} +input[type="button"]:active, +input[type="reset"]:active, +input[type="submit"]:active { + background: #eeeeee; + color: #262626; + box-shadow: none !important; +} +input[type="button"]:focus, +input[type="reset"]:focus, +input[type="submit"]:focus { + outline: 0; +} +input[type="button"]:disabled, +input[type="reset"]:disabled, +input[type="submit"]:disabled, +input[type="button"].disabled, +input[type="reset"].disabled, +input[type="submit"].disabled { + background-color: #eaeaea !important; + color: #bebebe !important; + cursor: default !important; + border-color: transparent; +} +input[type="button"] *, +input[type="reset"] *, +input[type="submit"] * { + color: inherit; +} +input[type="button"] *:hover, +input[type="reset"] *:hover, +input[type="submit"] *:hover { + color: inherit; +} +input[type="button"].rounded, +input[type="reset"].rounded, +input[type="submit"].rounded { + border-radius: .325rem; +} +input[type="button"].no-border, +input[type="reset"].no-border, +input[type="submit"].no-border { + border: 0 !important; +} +input[type="button"] > [class*=mif-], +input[type="reset"] > [class*=mif-], +input[type="submit"] > [class*=mif-] { + vertical-align: middle !important; +} +input[type="button"] img, +input[type="reset"] img, +input[type="submit"] img { + height: .875rem; + vertical-align: middle; + margin: 0; +} +input[type="button"].loading-pulse, +input[type="reset"].loading-pulse, +input[type="submit"].loading-pulse { + position: relative; + padding: 0 1.325rem; +} +input[type="button"].loading-pulse:before, +input[type="reset"].loading-pulse:before, +input[type="submit"].loading-pulse:before { + position: absolute; + content: ""; + left: 0; + top: 50%; + margin-top: -10px; + width: 20px; + height: 20px; + background-color: #333; + border-radius: 100%; + -webkit-animation: scaleout 1s infinite ease-in-out; + animation: scaleout 1s infinite ease-in-out; +} +input[type="button"].loading-pulse.lighten:before, +input[type="reset"].loading-pulse.lighten:before, +input[type="submit"].loading-pulse.lighten:before { + background-color: #fff; +} +input[type="button"].loading-cube, +input[type="reset"].loading-cube, +input[type="submit"].loading-cube { + position: relative; + padding: 0 1.325rem; +} +input[type="button"].loading-cube:before, +input[type="reset"].loading-cube:before, +input[type="submit"].loading-cube:before, +input[type="button"].loading-cube:after, +input[type="reset"].loading-cube:after, +input[type="submit"].loading-cube:after { + content: ""; + background-color: #333; + width: 5px; + height: 5px; + position: absolute; + top: 50%; + left: 3px; + margin-top: -8px; + -webkit-animation: cubemove 1.8s infinite ease-in-out; + animation: cubemove 1.8s infinite ease-in-out; +} +input[type="button"].loading-cube:after, +input[type="reset"].loading-cube:after, +input[type="submit"].loading-cube:after { + -webkit-animation-delay: -0.9s; + animation-delay: -0.9s; +} +input[type="button"].loading-cube.lighten:before, +input[type="reset"].loading-cube.lighten:before, +input[type="submit"].loading-cube.lighten:before, +input[type="button"].loading-cube.lighten:after, +input[type="reset"].loading-cube.lighten:after, +input[type="submit"].loading-cube.lighten:after { + background-color: #fff; +} +input[type="button"].dropdown-toggle, +input[type="reset"].dropdown-toggle, +input[type="submit"].dropdown-toggle { + padding-right: 1.625rem; +} +input[type="button"].dropdown-toggle.drop-marker-light:before, +input[type="reset"].dropdown-toggle.drop-marker-light:before, +input[type="submit"].dropdown-toggle.drop-marker-light:before, +input[type="button"].dropdown-toggle.drop-marker-light:after, +input[type="reset"].dropdown-toggle.drop-marker-light:after, +input[type="submit"].dropdown-toggle.drop-marker-light:after { + background-color: #ffffff; +} +.switch, +.switch-original { + display: inline-block; + margin: 0 .625rem 0 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.switch input, +.switch-original input { + position: absolute; + opacity: 0; + width: 0.0625rem; + height: 0.0625rem; +} +.switch .check, +.switch-original .check, +.switch .caption, +.switch-original .caption { + display: inline-block; + vertical-align: middle; + line-height: 18px; +} +.switch .check { + width: 36px; + height: 16px; + background-color: #929292; + border-radius: 8px; + overflow: visible; + position: relative; +} +.switch .check:before { + position: absolute; + display: block; + content: ""; + width: 22px; + height: 22px; + z-index: 2; + margin-top: -4px; + margin-left: -3px; + border-radius: 50%; + background-color: #ffffff; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35); +} +.switch input:checked ~ .check { + background-color: #008287; +} +.switch input:not(:checked) ~ .check:before { + background-color: #ffffff; + transition: all 0.2s linear; +} +.switch input:checked ~ .check { + background-color: #008287; +} +.switch input:checked ~ .check:before { + -webkit-transform: translateX(22px); + transform: translateX(22px); + transition: all 0.2s linear; +} +.switch input:disabled ~ .check { + background-color: #D5D5D5; +} +.switch input:disabled ~ .check:before { + background-color: #BDBDBD; +} +.switch-original .caption { + margin: 0 5px; +} +.switch-original .check { + position: relative; + height: 1.125rem; + width: 2.8125rem; + outline: 2px #a6a6a6 solid; + border: 1px #fff solid; + cursor: pointer; + background: #A6A6A6; + z-index: 1; + display: inline-block; + vertical-align: middle; +} +.switch-original .check:after { + position: absolute; + left: -1px; + top: -1px; + display: block; + content: ""; + height: 1rem; + width: .5625rem; + outline: 2px #333 solid; + border: 1px #333 solid; + cursor: pointer; + background: #333; + z-index: 2; + transition: all 0.2s linear; +} +.switch-original input[type="checkbox"]:focus ~ .check { + outline: 1px #999999 dotted !important; +} +.switch-original input[type="checkbox"]:checked ~ .check { + background: #008287; +} +.switch-original input[type="checkbox"]:checked ~ .check:after { + left: auto; + -webkit-transform: translateX(2rem); + transform: translateX(2rem); + transition: all 0.2s linear; +} +.switch-original input[type="checkbox"]:disabled ~ .check { + background-color: #e6e6e6; + border-color: #ffffff; +} +.switch-original input[type="checkbox"]:disabled ~ .check:after { + background-color: #8a8a8a; + outline-color: #8a8a8a; + border-color: #8a8a8a; +} +.progress, +.progress-bar { + display: block; + position: relative; + width: 100%; + height: auto; + margin: .625rem 0; + background: #eeeeee; + overflow: hidden; +} +.progress:before, +.progress-bar:before, +.progress:after, +.progress-bar:after { + display: table; + content: ""; +} +.progress:after, +.progress-bar:after { + clear: both; +} +.progress .bar, +.progress-bar .bar { + position: relative; + display: block; + float: left; + width: 0; + background-color: #1ba1e2; + z-index: 1; + text-align: center; + height: .625rem; + line-height: .625rem; + color: #ffffff; +} +.progress.small > .bar, +.progress-bar.small > .bar { + height: .3125rem; +} +.progress.large > .bar, +.progress-bar.large > .bar { + height: 1rem; +} +.progress.gradient-bar .bar, +.progress-bar.gradient-bar .bar { + background: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55); +} +.popover { + display: block; + min-width: 12.5rem; + height: auto; + position: relative; + background-color: #eeeeee; + padding: 1.25rem; +} +.popover * { + color: inherit; +} +.popover.popover-shadow { + box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.4); +} +.popover:before { + content: ""; + width: .625rem; + height: .625rem; + display: block; + position: absolute; + background-color: inherit; + left: -0.3125rem; + top: 50%; + margin-top: -0.3125rem; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.popover.marker-on-top:before { + top: 0; + left: 50%; + margin-left: -0.3125rem; +} +.popover.marker-on-right:before { + top: 50%; + margin-top: -0.3125rem; + left: 100%; + margin-left: -0.3125rem; +} +.popover.marker-on-bottom:before { + top: 100%; + margin-left: -0.3125rem; + left: 50%; + margin-top: -0.3125rem; +} +.overlay { + position: fixed; + left: 0; + top: 0; + right: 0; + bottom: 0; + background-color: rgba(255, 255, 255, 0.5); + z-index: 1049; +} +.overlay.transparent { + background-color: rgba(255, 255, 255, 0); +} +.window { + display: block; + position: relative; + height: auto; + width: 100%; + background-color: #ffffff; + box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} +.window-caption { + position: relative; + background-color: #ffffff; + padding: .4375rem .3125rem; + border-bottom: 1px #e9e9e9 solid; + border-top: 0; + cursor: default; +} +.window-caption .window-caption-title { + font-size: .875rem; + font-style: normal; + font-weight: 700; +} +.window-caption .window-caption-icon { + margin-left: .3125rem; +} +.window-caption .window-caption-icon * { + height: 1rem; + width: 1rem; +} +.window-caption .window-caption-icon ~ .window-caption-title { + padding-left: .3125rem; +} +.window-caption .btn-close, +.window-caption .btn-min, +.window-caption .btn-max { + position: absolute; + height: 1.5rem; + min-height: 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 1rem; + font-weight: normal; + padding: 0 0 .625rem 0; + z-index: 3; + outline: none; + cursor: pointer; + background-color: #ffffff; + color: #777777; + width: 1.5rem; + top: .25rem; + right: .25rem; +} +.window-caption .btn-close:hover, +.window-caption .btn-min:hover, +.window-caption .btn-max:hover { + background-color: #cde6f7; + color: #2a8dd4; +} +.window-caption .btn-close:hover:after, +.window-caption .btn-min:hover:after, +.window-caption .btn-max:hover:after { + border-color: #2a8dd4; +} +.window-caption .btn-close:active, +.window-caption .btn-min:active, +.window-caption .btn-max:active { + background-color: #92c0e0 !important; + color: #ffffff !important; +} +.window-caption .btn-close:after, +.window-caption .btn-min:after, +.window-caption .btn-max:after { + border-color: #777777; + width: .625rem !important; + height: .375rem !important; + content: '\D7'; + position: absolute; + left: 50%; + top: -2px; + margin-left: -0.25em; +} +.window-caption .btn-min:after, +.window-caption .btn-max:after { + display: block; + position: absolute; + width: .625rem; + height: .625rem; + border: 0 #000 solid; + border-bottom-width: 2px; + content: ' '; + bottom: .375rem; + left: 50%; + margin-left: -0.375rem; + top: auto; +} +.window-caption .btn-max:after { + height: .375rem; + border: 1px #000 solid; + border-top-width: 2px; +} +.window-caption .btn-max { + right: 1.8125rem; +} +.window-caption .btn-min { + right: 3.375rem; +} +.window-caption .btn-close:after { + margin-top: .1875rem; + margin-left: -0.3125rem; +} +.window-content { + position: relative; + width: 100%; + height: auto; + display: block; + padding: .25rem; +} +.window.success { + box-shadow: 0 0 25px 0 rgba(0, 128, 0, 0.7); +} +.window.success .window-caption { + background-color: #60a917; + color: #ffffff; +} +.window.error { + box-shadow: 0 0 25px 0 rgba(128, 0, 0, 0.7); +} +.window.error .window-caption { + background-color: #ce352c; + color: #ffffff; +} +.window.warning { + box-shadow: 0 0 25px 0 rgba(255, 165, 0, 0.7); +} +.window.warning .window-caption { + background-color: #fa6800; + color: #ffffff; +} +.simple-list, +.numeric-list { + list-style: none; + counter-reset: li; + padding-left: 0; + margin-left: .625rem; +} +.simple-list li ul, +.numeric-list li ul, +.simple-list li ol, +.numeric-list li ol { + list-style: none; + padding-left: 1.5625rem; +} +.simple-list li, +.numeric-list li { + position: relative; + padding: 4px 12px; + list-style: none; + color: #262626; +} +.simple-list li:before, +.numeric-list li:before { + position: absolute; + top: 50%; + margin-top: -0.8rem; + left: -10px; + color: #59cde2; + font-size: 2rem; + vertical-align: middle; +} +.simple-list ul, +.numeric-list ul { + margin: 4px .5em 0; +} +.simple-list > li:before { + content: "\2022"; +} +.simple-list > ul li:before { + content: "\00B7"; +} +.numeric-list > li { + padding: 4px 12px 4px 18px; +} +.numeric-list > li:before { + content: counter(li); + counter-increment: li; + font-size: .8rem !important; + color: #ffffff; + background-color: #59cde2; + width: 1.25rem; + height: 1.25rem; + border-radius: 50%; + text-align: center; + margin-top: -0.65rem; +} +.numeric-list.square-marker > li:before { + border-radius: 0; +} +.step-list { + margin: 0 0 0 2rem; + padding: 0; + list-style-type: none; + counter-reset: li; +} +.step-list > li { + border-left: 1px #ccc solid; + position: relative; + padding: 0 .625rem; + margin: .625rem; + vertical-align: top; +} +.step-list > li:before { + position: absolute; + content: counter(li); + counter-increment: li; + font-size: 2rem; + color: #999999; + left: 0; + top: .3125rem; + margin-left: -1.5rem; +} +.image-container { + display: inline-block; + position: relative; + vertical-align: middle; + max-width: 100%; + background-color: transparent; +} +.image-container .frame { + background-color: #ffffff; + position: relative; + width: 100%; + height: 100%; +} +.image-container img { + display: block; + width: 100%; + height: 100%; +} +.image-container .image-overlay { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + opacity: 0; + overflow: hidden; + font-size: .875rem; + line-height: 1rem; + padding: 1em 1.5em; + background-color: rgba(27, 161, 226, 0.7); + color: #ffffff; + text-align: center; + border-radius: inherit; + transition: all 0.65s ease; +} +.image-container .image-overlay:hover { + opacity: 1; +} +.image-container .image-overlay:hover:before, +.image-container .image-overlay:hover:after { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); +} +.image-container .image-overlay:before, +.image-container .image-overlay:after { + display: block; + position: absolute; + content: ""; + border: 1px solid rgba(255, 255, 255, 0.7); + top: 1em; + bottom: 1em; + left: 1em; + right: 1em; + opacity: 0; + border-radius: inherit; + -webkit-transform: scale(1.5); + transform: scale(1.5); + transition: all 0.65s ease; +} +.image-container .image-overlay:after { + border-left: none; + border-right: none; + bottom: 1em; + top: 1em; +} +.image-container .image-overlay:before { + border-top: none; + border-bottom: none; + bottom: 1em; + top: 1em; +} +.image-container.diamond { + overflow: hidden; +} +.image-container.diamond .frame { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + overflow: hidden; +} +.image-container.diamond .frame img, +.image-container.diamond .frame .image-replacer { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); +} +.image-container.rounded img { + border-radius: 0.3125rem; +} +.image-container.bordered .frame { + border: 1px #eeeeee solid; + padding: .5rem; +} +.image-container.polaroid .frame { + border: 1px #eeeeee solid; + padding: .5rem .5rem 2rem; +} +.image-container.handing { + margin-top: 20px; +} +.image-container.handing .frame { + border: 1px #eeeeee solid; + position: relative; + padding: .5rem; +} +.image-container.handing .frame:after { + content: ""; + position: absolute; + width: .625rem; + height: .625rem; + background-color: #647687; + border-radius: 50%; + top: -20%; + left: 50%; + margin-left: -0.3125rem; + z-index: 3; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.35); +} +.image-container.handing.image-format-hd .frame:after { + top: -25%; +} +.image-container.handing.image-format-square .frame:after { + top: -15%; +} +.image-container.handing:after { + position: absolute; + content: ""; + background-color: transparent; + border-top: 1px solid #eeeeee; + -webkit-transform: rotate(-16deg); + transform: rotate(-16deg); + z-index: 2; + top: 0; + left: 0; + width: 50%; + height: 50%; + -webkit-transform-origin: top left; + transform-origin: top left; +} +.image-container.handing:before { + position: absolute; + content: ""; + background-color: transparent; + border-top: 1px solid #eeeeee; + -webkit-transform: rotate(16deg); + transform: rotate(16deg); + z-index: 2; + top: 0; + right: 0; + width: 50%; + height: 50%; + -webkit-transform-origin: top right; + transform-origin: top right; +} +.image-container.handing.ani { + -webkit-transform-origin: 50% -25px; + transform-origin: 50% -25px; + -webkit-animation: swinging 10s ease-in-out 0s infinite; + animation: swinging 10s ease-in-out 0s infinite; +} +.image-container.handing.ani-hover:hover { + -webkit-transform-origin: 50% -25px; + transform-origin: 50% -25px; + -webkit-animation: swinging 5s ease-in-out 0s; + animation: swinging 5s ease-in-out 0s; +} +@-webkit-keyframes swinging { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 5% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } + 10% { + -webkit-transform: rotate(-9deg); + transform: rotate(-9deg); + } + 15% { + -webkit-transform: rotate(8deg); + transform: rotate(8deg); + } + 20% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } + 25% { + -webkit-transform: rotate(6deg); + transform: rotate(6deg); + } + 30% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + 35% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 40% { + -webkit-transform: rotate(-3deg); + transform: rotate(-3deg); + } + 45% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +@keyframes swinging { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 5% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } + 10% { + -webkit-transform: rotate(-9deg); + transform: rotate(-9deg); + } + 15% { + -webkit-transform: rotate(8deg); + transform: rotate(8deg); + } + 20% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } + 25% { + -webkit-transform: rotate(6deg); + transform: rotate(6deg); + } + 30% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + 35% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 40% { + -webkit-transform: rotate(-3deg); + transform: rotate(-3deg); + } + 45% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +@-webkit-keyframes scaleout { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} +@keyframes scaleout { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} +@-webkit-keyframes cubemove { + 25% { + -webkit-transform: translateX(10px) rotate(-90deg); + transform: translateX(10px) rotate(-90deg); + } + 50% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-179deg); + transform: translateX(10px) translateY(10px) rotate(-179deg); + } + 50.1% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-180deg); + transform: translateX(10px) translateY(10px) rotate(-180deg); + } + 75% { + -webkit-transform: translateX(0px) translateY(10px) rotate(-270deg); + transform: translateX(0px) translateY(10px) rotate(-270deg); + } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} +@keyframes cubemove { + 25% { + -webkit-transform: translateX(10px) rotate(-90deg); + transform: translateX(10px) rotate(-90deg); + } + 50% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-179deg); + transform: translateX(10px) translateY(10px) rotate(-179deg); + } + 50.1% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-180deg); + transform: translateX(10px) translateY(10px) rotate(-180deg); + } + 75% { + -webkit-transform: translateX(0px) translateY(10px) rotate(-270deg); + transform: translateX(0px) translateY(10px) rotate(-270deg); + } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} +@-webkit-keyframes orbit { + 0% { + opacity: 1; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + } + 7% { + -webkit-transform: rotate(345deg); + transform: rotate(345deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 35% { + -webkit-transform: rotate(495deg); + transform: rotate(495deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 42% { + -webkit-transform: rotate(690deg); + transform: rotate(690deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 70% { + opacity: 1; + -webkit-transform: rotate(835deg); + transform: rotate(835deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 76% { + opacity: 1; + } + 77% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 78% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } + 100% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } +} +@keyframes orbit { + 0% { + opacity: 1; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + } + 7% { + -webkit-transform: rotate(345deg); + transform: rotate(345deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 35% { + -webkit-transform: rotate(495deg); + transform: rotate(495deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 42% { + -webkit-transform: rotate(690deg); + transform: rotate(690deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 70% { + opacity: 1; + -webkit-transform: rotate(835deg); + transform: rotate(835deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 76% { + opacity: 1; + } + 77% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 78% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } + 100% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } +} +@-webkit-keyframes metro-slide { + 0% { + left: -50%; + } + 100% { + left: 150%; + } +} +@keyframes metro-slide { + 0% { + left: -50%; + } + 100% { + left: 150%; + } +} +@-webkit-keyframes metro-opacity { + 0% { + opacity: 0; + } + 50% { + opacity: .5; + } + 100% { + opacity: 1; + } +} +@keyframes metro-opacity { + 0% { + opacity: 0; + } + 50% { + opacity: .5; + } + 100% { + opacity: 1; + } +} +.calendar { + min-width: 15.625rem; + border: 1px #eeeeee solid; + font-size: .75rem; + padding: .3125rem; + background-color: #ffffff; +} +.calendar .calendar-grid { + margin: 0; + padding: 0; +} +.calendar .calendar-row { + margin: 0 0 .3125rem; + width: 100%; +} +.calendar .calendar-row:before, +.calendar .calendar-row:after { + display: table; + content: ""; +} +.calendar .calendar-row:after { + clear: both; +} +.calendar .calendar-row:last-child { + margin-bottom: 0; +} +.calendar .calendar-cell { + width: 12.46201429%; + margin: 0 0 0 2.12765%; + display: block; + float: left; +} +.calendar .calendar-cell:first-child { + margin-left: 0; +} +.calendar .calendar-cell.sel-month { + width: 41.64134286%; +} +.calendar .calendar-cell.sel-year { + width: 48.936175%; +} +.calendar .calendar-cell.sel-plus, +.calendar .calendar-cell.sel-minus { + width: 23.4042625%; +} +.calendar .calendar-cell.month-cell, +.calendar .calendar-cell.year-cell { + width: 23.4042625%; +} +.calendar .calendar-actions .button { + margin: .15625rem; +} +.calendar .day-of-week { + padding: .3125rem; + cursor: default; +} +.calendar a { + display: block; + padding: .3125rem; +} +.calendar a:hover { + background-color: #75c7ee; + color: #ffffff; + border-radius: inherit; +} +.calendar .calendar-header { + background-color: #59cde2; + color: #ffffff; +} +.calendar .calendar-header a { + color: #ffffff; + padding: .325rem; +} +.calendar .calendar-header a:hover { + background-color: #47b4e9; + color: #ffffff; +} +.calendar .calendar-actions:before, +.calendar .calendar-actions:after { + display: table; + content: ""; +} +.calendar .calendar-actions:after { + clear: both; +} +.calendar .today a { + background-color: #60a917; + color: #ffffff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); +} +.calendar .day { + border: 1px #bcd9e2 solid; +} +.calendar .day a { + display: block; + position: relative; +} +.calendar .month, +.calendar .year { + border: 1px #bcd9e2 solid; +} +.calendar .month a, +.calendar .year a { + padding-top: 1.3125rem; + padding-bottom: 1.3125rem; +} +.calendar .empty { + cursor: default; +} +.calendar .other-day { + display: block; + text-align: center; + color: #999999; + padding: .325rem; + background-color: #eeeeee; + border: 1px #bcd9e2 solid; +} +.calendar .selected { + background-color: #59cde2; +} +.calendar .selected a { + background-color: #59cde2; + color: #ffffff; +} +.calendar .exclude { + background-color: #ce352c; +} +.calendar .exclude a { + cursor: not-allowed; + background-color: #ce352c; + color: #ffffff; +} +.calendar.rounded button { + border-radius: 0.3125rem; +} +.calendar.rounded .day, +.calendar.rounded .month, +.calendar.rounded .year, +.calendar.rounded .other-day, +.calendar.rounded .today, +.calendar.rounded .calendar-header, +.calendar.rounded .selected { + border-radius: 0.3125rem; +} +.calendar.rounded .today a, +.calendar.rounded .selected a, +.calendar.rounded .exclude a { + border-radius: 0.3125rem; +} +.calendar.rounded .calendar-header a:hover { + border-radius: 0.3125rem; +} +.calendar.no-border .day, +.calendar.no-border .month, +.calendar.no-border .year, +.calendar.no-border .other-day, +.calendar.no-border .today, +.calendar.no-border .calendar-header { + border: 0; +} +.calendar.no-border .today a { + border: 0; +} +.calendar-dropdown { + border: 0; + box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} +.tabcontrol { + overflow: hidden; + position: relative; + width: 100%; +} +.tabcontrol .tabs { + width: 100%; + margin: 0; + padding: 0; + list-style: none inside; + border-bottom: 2px #1ba1e2 solid; + white-space: nowrap; + overflow: visible; +} +.tabcontrol .tabs:before, +.tabcontrol .tabs:after { + display: table; + content: ""; +} +.tabcontrol .tabs:after { + clear: both; +} +.tabcontrol .tabs li { + display: inline-block; + margin: 0 0 -4px -4px; + position: relative; + white-space: nowrap; +} +.tabcontrol .tabs li a { + display: block; + float: left; + padding: 8px 24px; + color: #1d1d1d; + font-size: .6875rem; + font-weight: bold; + text-transform: uppercase; + position: relative; + white-space: nowrap; +} +.tabcontrol .tabs li:hover a { + background-color: #eeeeee; +} +.tabcontrol .tabs li.active a { + background-color: #1ba1e2; + color: #ffffff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); +} +.tabcontrol .tabs li.disabled a { + background: #eeeeee linear-gradient(-45deg, rgba(0, 0, 0, 0.15) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0.15) 75%, transparent 75%, transparent) !important; + background-size: 40px 40px !important; + color: #999999 !important; + cursor: default; +} +.tabcontrol .tabs li.non-visible-tabs { + display: block; + float: right; +} +.tabcontrol .tabs li.non-visible-tabs:empty { + display: none; +} +.tabcontrol .tabs li.non-visible-tabs.dropdown-toggle { + height: 100% !important; +} +.tabcontrol.tabs-bottom .tabs { + border-bottom: none; + border-top: 2px #1ba1e2 solid; +} +.tabcontrol .frames { + width: 100%; + overflow: hidden; + position: relative; +} +.tabcontrol .frames .frame { + display: block; + position: relative; + width: 100%; + padding: 20px; + background-color: #999999; +} +.tabcontrol2 { + overflow: hidden; + position: relative; + width: 100%; +} +.tabcontrol2 .tabs { + width: 100%; + margin: 0; + padding: 0; + list-style: none inside; + border-bottom: 2px #1ba1e2 solid; + white-space: nowrap; + overflow: visible; +} +.tabcontrol2 .tabs:before, +.tabcontrol2 .tabs:after { + display: table; + content: ""; +} +.tabcontrol2 .tabs:after { + clear: both; +} +.tabcontrol2 .tabs li { + display: block; + float: left; + position: relative; + white-space: nowrap; +} +.tabcontrol2 .tabs li a { + display: block; + float: left; + padding: 8px 24px; + color: #1d1d1d; + font-size: .6875rem; + font-weight: bold; + text-transform: uppercase; + position: relative; + white-space: nowrap; +} +.tabcontrol2 .tabs li:hover a { + background-color: #eeeeee; +} +.tabcontrol2 .tabs li.active a { + background-color: #1ba1e2; + color: #ffffff; + text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4); +} +.tabcontrol2 .tabs li.disabled a { + background: #eeeeee linear-gradient(-45deg, rgba(0, 0, 0, 0.15) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, 0.15) 50%, rgba(0, 0, 0, 0.15) 75%, transparent 75%, transparent) !important; + background-size: 40px 40px !important; + color: #999999 !important; + cursor: default; +} +.tabcontrol2 .tabs li.non-visible-tabs { + display: block; + float: right; +} +.tabcontrol2 .tabs li.non-visible-tabs:empty { + display: none; +} +.tabcontrol2 .tabs li.non-visible-tabs.dropdown-toggle { + height: 100% !important; +} +.tabcontrol2.tabs-bottom .tabs { + border-bottom: none; + border-top: 2px #1ba1e2 solid; +} +.tabcontrol2 .frames { + width: 100%; + overflow: hidden; + position: relative; +} +.tabcontrol2 .frames .frame { + display: block; + position: relative; + width: 100%; + padding: 20px; + background-color: #999999; +} +.tabcontrol2 .tabs { + border-bottom: 0; + vertical-align: bottom; + z-index: 2; +} +.tabcontrol2 .tabs li { + padding-top: 2px; + overflow: visible; + margin: 0 2px; +} +.tabcontrol2 .tabs li:after { + content: ""; + position: absolute; + left: 0; + top: 100%; + width: 100%; + background-color: #ffffff; + height: 2px; + z-index: 3; +} +.tabcontrol2 .tabs li:not(.active):after { + background-color: #eeeeee; + height: 1px; +} +.tabcontrol2 .tabs li:first-child { + margin-left: 10px; +} +.tabcontrol2 .tabs li a { + background-color: #eeeeee; + padding-top: .3125rem; + text-shadow: none !important; +} +.tabcontrol2 .tabs li.active { + padding-top: 0; + padding-bottom: 0; +} +.tabcontrol2 .tabs li.active a { + background-color: #ffffff; + border: 1px #eeeeee solid; + border-top: 2px #ce352c solid; + border-bottom: 0; + color: #1ba1e2; +} +.tabcontrol2 .tabs li.active:hover a { + background-color: inherit; +} +.tabcontrol2 .tabs li:hover a { + background-color: #e1e1e1; +} +.tabcontrol2.tabs-bottom .tabs { + border-top: 0; +} +.tabcontrol2.tabs-bottom .tabs li { + padding: 0; +} +.tabcontrol2.tabs-bottom .tabs li:after { + top: 0 !important; + background-color: #ffffff; + margin-top: -2px; +} +.tabcontrol2.tabs-bottom .tabs li.active { + padding-bottom: 0; +} +.tabcontrol2.tabs-bottom .tabs li.active a { + border: 1px #eeeeee solid; + border-bottom: 2px #ce352c solid; + border-top: 0; +} +.tabcontrol2.tabs-bottom .tabs li:not(.active) { + margin-bottom: 0; +} +.tabcontrol2.tabs-bottom .tabs li:not(.active):after { + background-color: #eeeeee; +} +.tabcontrol2 .frames { + z-index: 1; + border: 1px #eeeeee solid; +} +.tabcontrol2 .frames .frame { + background-color: #ffffff; +} + +.rating { + cursor: pointer; + display: inline-block; +} +.rating:before, +.rating:after { + display: table; + content: ""; +} +.rating:after { + clear: both; +} +.rating .star { + cursor: pointer; + display: block; + float: left; + color: #555555; + font-size: 20px; + z-index: 1; + position: relative; + width: 20px; + height: 24px; + vertical-align: middle; + line-height: 22px; +} +.rating .star:before, +.rating .star:after { + position: absolute; + content: '\2605'; + display: block; + z-index: 2; + top: 0 !important; + left: 0; + vertical-align: middle; +} +.rating .star.on { + color: gold; +} +.rating .star.on.half { + color: #555555; +} +.rating .star.on.half:after { + color: gold; +} +.rating .star.half:after { + z-index: 3; + width: 8px; + overflow: hidden; +} +.rating:not(.static):hover > .star, +.rating:not(.static):hover > .star:after { + color: gold !important; +} +.rating:not(.static) .star:hover ~ .star, +.rating:not(.static) .star:hover ~ .star:after { + color: gray !important; +} +.rating:not(.static) .star:hover { + color: gold !important; +} +.rating.poor .star.on { + color: #ce352c; +} +.rating.poor .star.on.half { + color: #555555; +} +.rating.poor .star.on.half:after { + color: #ce352c; +} +.rating.regular .star.on { + color: gold; +} +.rating.regular .star.on.half { + color: #555555; +} +.rating.regular .star.on.half:after { + color: gold; +} +.rating.good .star.on { + color: #60a917; +} +.rating.good .star.on.half { + color: #555555; +} +.rating.good .star.on.half:after { + color: #60a917; +} +.rating.small .star { + width: 14px; + height: 16px; + font-size: 14px; + line-height: 14px; +} +.rating.small .star.half:after { + width: 6px; +} +.rating.large .star { + width: 28px; + height: 30px; + font-size: 32px; + line-height: 24px; +} +.rating.large .star.half:after { + width: 13px; +} +.rating .score { + display: block; + font-size: .8rem; +} +.rating.small .score { + font-size: .6rem; +} +.rating.large .score { + font-size: 1rem; +} +.slider { + height: 12px; + width: auto; + position: relative; + background-color: #999999; + margin-bottom: 10px; +} +.slider .marker { + height: 12px; + width: 12px; + cursor: pointer; + position: absolute; + top: 0; + left: 0; + background-color: #1d1d1d; + z-index: 2; +} +.slider .marker:focus, +.slider .marker:active, +.slider .markerhover { + outline: 2px #ce352c solid; +} +.slider .complete { + height: 100%; + width: auto; + background-color: #00aba9; + z-index: 1; + transition: background .3s ease; +} +.slider > .slider-hint { + background-color: #ffffff; + position: absolute; + z-index: 3; + border: 1px #ccc solid; + padding: 2px 4px; + top: -40px; + min-width: 30px; + text-align: center; + font-size: 14px; + display: none; + box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} +.slider > .slider-hint:before { + display: none; +} +.slider.permanent-hint > .slider-hint { + display: block; +} +.slider.hint-bottom .slider-hint { + top: 100%; + margin-top: 5px; +} +.slider.vertical { + height: 100px; + width: 12px; + float: left; + margin-right: 10px; +} +.slider.vertical:last-child:first-child { + margin-left: 0; +} +.slider.vertical .marker { + left: 0 !important; +} +.slider.vertical .complete { + position: absolute; + height: auto; + width: 100% !important; + bottom: 0; + left: 0; +} +.slider.vertical .slider-hint { + left: 100%; + margin-left: 5px; + margin-top: 0; +} +.slider.vertical.hint-left .slider-hint { + left: -40px; +} +.slider:hover .complete { + background-color: #45fffd; +} +.slider:active .complete, +.slider:active + .marker:active .complete { + background-color: #45fffd; +} +.slider.place-left { + margin-right: 20px; +} +.slider.place-right { + margin-left: 20px; +} +.slider.large { + height: 24px; +} +.slider.large .marker { + width: 24px; + height: 24px; +} +.slider.large .slider-hint { + min-width: 30px; +} +.slider.large.vertical { + width: 24px; + height: 100px; +} + +.charm { + display: block; + position: fixed; + z-index: 1060; + background: #1d1d1d; + color: #eeeeee; +} +.charm.right-side { + width: auto; + right: 0; + top: 0; + bottom: 0; +} +.charm.left-side { + width: auto; + left: 0; + top: 0; + bottom: 0; +} +.charm.top-side { + height: auto; + left: 0; + right: 0; + top: 0; +} +.charm.top-side { + height: auto; + left: 0; + right: 0; + bottom: 0; +} +.notify-container { + position: fixed; + top: 0; + right: 0; + width: auto; + z-index: 1061; +} +.notify-container:before, +.notify-container:after { + display: table; + content: ""; +} +.notify-container:after { + clear: both; +} +.notify-container.position-left { + left: 0; + right: auto; +} +.notify-container.position-top { + left: 0; + right: 0; + top: 0; + height: auto; +} +.notify-container.position-top .notify { + float: left; +} +.notify-container.position-bottom { + left: 0; + right: 0; + bottom: 0; + top: auto; + height: auto; +} +.notify-container.position-bottom .notify { + float: left; +} +.notify { + display: block; + margin: .3125rem; + padding: .625rem; + min-width: 200px; + cursor: default; + max-width: 300px; +} +.notify .notify-icon { + width: 32px; + height: 32px; + font-size: 32px; + text-align: center; + position: absolute; + margin: -16px 10px; + top: 50%; + left: 0; +} +.notify .notify-icon ~ .notify-title, +.notify .notify-icon ~ .notify-text { + position: relative; + margin-left: 42px; +} +.notify .notify-title, +.notify .notify-text { + display: block; + margin-right: 20px; +} +.notify .notify-title { + font-weight: 500; + font-size: 1rem; +} +.notify .notify-text { + font-size: .875rem; +} +.notify .notify-closer { + position: absolute; + height: 1rem; + width: 1rem; + text-align: center; + vertical-align: middle; + font-size: 1rem; + font-weight: normal; + padding: 0 0 .625rem 0; + z-index: 3; + outline: none; + cursor: pointer; + background-color: #ffffff; + color: #777777; + top: .25rem; + right: .25rem; +} +.notify .notify-closer:after { + border-color: #777777; + content: '\D7'; + position: absolute; + left: 50%; + top: 50%; + margin-top: -0.65rem; + margin-left: -0.35rem; +} +.notify .notify-closer:hover { + background-color: #cde6f7; + color: #ffffff; +} +.notify .notify-closer:active { + background-color: #92c0e0; + color: #ffffff; +} +.notify { + background-color: #e5f3fb; + color: #1d1d1d; +} +.notify.success { + background-color: #60a917; + color: #ffffff; +} +.notify.success .notify-closer { + background-color: #60a917; + color: #ffffff; +} +.notify.success .notify-closer:hover { + background-color: #7ad61d; +} +.notify.success .notify-closer:active { + background-color: #128023; +} +.notify.alert { + background-color: #ce352c; + color: #ffffff; +} +.notify.alert .notify-closer { + background-color: #ce352c; + color: #ffffff; +} +.notify.alert .notify-closer:hover { + background-color: #da5a53; +} +.notify.alert .notify-closer:active { + background-color: #9a1616; +} +.notify.warning { + background-color: #fa6800; + color: #ffffff; +} +.notify.warning .notify-closer { + background-color: #fa6800; + color: #ffffff; +} +.notify.warning .notify-closer:hover { + background-color: #c29008; +} +.notify.warning .notify-closer:active { + background-color: #bf5a15; +} +.notify.info { + background-color: #1ba1e2; + color: #ffffff; +} +.notify.info .notify-closer { + background-color: #1ba1e2; + color: #ffffff; +} +.notify.info .notify-closer:hover { + background-color: #59cde2; +} +.notify.info .notify-closer:active { + background-color: #1b6eae; +} +p [data-hint] { + border-bottom: 1px #373737 dotted; + white-space: nowrap; +} +.hint { + position: fixed; + color: #1d1d1d; + padding: 10px; + font-size: 12px; + width: auto; + max-width: 220px; + margin-top: 10px; + z-index: 1030; + display: none; + border: 1px #eee solid; +} +.hint .hint-title, +.hint .hint-text { + color: inherit; + text-align: left; +} +.hint .hint-title { + font-size: 1.2em; + font-weight: bold; +} +.hint:before { + content: ''; + position: absolute; + background-color: inherit; + width: 10px; + height: 10px; + border: 1px #eee solid; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.hint:before { + z-index: 2; +} +.hint.bottom:before { + top: 1px; + left: 5px; + margin: -7px 0; + border-bottom: none; + border-right: none; +} +.hint.top:before { + top: 100%; + margin-top: -5px; + left: 5px; + border-top: none; + border-left: none; +} +.hint.left:before { + top: 5px; + left: 100%; + margin-left: -5px; + border-bottom: none; + border-left: none; +} +.hint.right:before { + top: 5px; + left: -9px; + margin: 1px 0 0 3px; + border-top: none; + border-right: none; +} +.hint2 { + position: fixed; + color: #1d1d1d; + padding: 10px; + font-size: 12px; + width: auto; + max-width: 220px; + margin-top: 10px; + z-index: 1030; + display: none; + border: 1px #eee solid; +} +.hint2 .hint-title, +.hint2 .hint-text { + color: inherit; + text-align: left; +} +.hint2 .hint-title { + font-size: 1.2em; + font-weight: bold; +} +.hint2:before { + content: ''; + position: absolute; + background-color: inherit; + width: 10px; + height: 10px; + border: 1px #eee solid; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.hint2:before { + z-index: 2; +} +.hint2.bottom:before { + top: 1px; + left: 5px; + margin: -7px 0; + border-bottom: none; + border-right: none; +} +.hint2.top:before { + top: 100%; + margin-top: -5px; + left: 5px; + border-top: none; + border-left: none; +} +.hint2.left:before { + top: 5px; + left: 100%; + margin-left: -5px; + border-bottom: none; + border-left: none; +} +.hint2.right:before { + top: 5px; + left: -9px; + margin: 1px 0 0 3px; + border-top: none; + border-right: none; +} +.hint2.bottom:before { + top: 1px; + left: 50%; + margin: -7px 0 0 -5px; + border-bottom: none; + border-right: none; +} +.hint2.top:before { + top: 100%; + margin-top: -5px; + left: 50%; + margin-left: -5px; + border-top: none; + border-left: none; +} +.hint2.left:before { + top: 50%; + margin-top: -5px; + left: 100%; + margin-left: -5px; + border-bottom: none; + border-left: none; +} +.hint2.right:before { + top: 50%; + margin: -5px 0 0 3px; + left: -9px; + border-top: none; + border-right: none; +} +.preloader-ring { + position: relative; + padding-top: 0.22rem; + width: 32px; + height: 32px; + margin: .625rem; +} +.preloader-ring > .wrap { + position: absolute; + width: 30px; + height: 30px; +} +.preloader-ring > .wrap > .circle { + opacity: 0; + width: 30px; + height: 30px; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + -webkit-animation: orbit 4000ms infinite; + animation: orbit 4000ms infinite; +} +.preloader-ring > .wrap > .circle:after { + position: absolute; + content: ''; + width: 4px; + height: 4px; + border-radius: 4px; + background: #ffffff; +} +.preloader-ring > .wrap:nth-child(2) { + -webkit-transform: rotate(-14deg); + transform: rotate(-14deg); +} +.preloader-ring > .wrap:nth-child(2) > .circle { + -webkit-animation-delay: 133.33333333ms; + animation-delay: 133.33333333ms; +} +.preloader-ring > .wrap:nth-child(3) { + -webkit-transform: rotate(-28deg); + transform: rotate(-28deg); +} +.preloader-ring > .wrap:nth-child(3) > .circle { + -webkit-animation-delay: 266.66666667ms; + animation-delay: 266.66666667ms; +} +.preloader-ring > .wrap:nth-child(4) { + -webkit-transform: rotate(-42deg); + transform: rotate(-42deg); +} +.preloader-ring > .wrap:nth-child(4) > .circle { + -webkit-animation-delay: 400ms; + animation-delay: 400ms; +} +.preloader-ring > .wrap:nth-child(5) { + -webkit-transform: rotate(-56deg); + transform: rotate(-56deg); +} +.preloader-ring > .wrap:nth-child(5) > .circle { + -webkit-animation-delay: 533.33333333ms; + animation-delay: 533.33333333ms; +} +.preloader-ring.dark-style > .wrap > .circle:after { + background-color: #555555; +} +.preloader-metro { + width: 100%; + height: 10px; + background-color: transparent; + overflow: hidden; +} +.preloader-metro > .circle { + display: inline-block; + position: absolute; + width: 10px; + height: 10px; + background-color: #ffffff; + opacity: 0; + margin-left: 5px; + -webkit-animation: metro-slide 3s cubic-bezier(0.1, 0.85, 0.9, 0.15) infinite, metro-opacity 2s ease-in-out infinite alternate; + animation: metro-slide 3s cubic-bezier(0.1, 0.85, 0.9, 0.15) infinite, metro-opacity 2s ease-in-out infinite alternate; +} +.preloader-metro > .circle:nth-child(2) { + -webkit-animation-delay: .8s; + animation-delay: .8s; +} +.preloader-metro > .circle:nth-child(3) { + -webkit-animation-delay: .7s; + animation-delay: .7s; +} +.preloader-metro > .circle:nth-child(4) { + -webkit-animation-delay: .6s; + animation-delay: .6s; +} +.preloader-metro > .circle:nth-child(5) { + -webkit-animation-delay: .5s; + animation-delay: .5s; +} +.preloader-metro.dark-style > .circle { + background-color: #555555; +} +.dialog-overlay { + background-color: transparent; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + min-height: 100%; + min-width: 100%; + z-index: 1049; +} +.dialog { + position: fixed; + display: block; + width: auto; + height: auto; + float: left; + background-color: #ffffff; + color: #1d1d1d; + z-index: 1050; + box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.3); +} +.dialog .dialog-close-button { + position: absolute; + height: 1.5rem; + width: 1.5rem; + min-height: 1.5rem; + text-align: center; + vertical-align: middle; + font-size: 1rem; + font-weight: normal; + padding: .125rem 0 .625rem 0; + z-index: 3; + outline: none; + cursor: pointer; + background-color: #ffffff; + color: #777777; + top: .25rem; + right: .25rem; +} +.dialog .dialog-close-button:hover { + background-color: #cde6f7; + color: #2a8dd4; +} +.dialog .dialog-close-button:hover:after { + border-color: #2a8dd4; +} +.dialog .dialog-close-button:active { + background-color: #92c0e0; + color: #ffffff !important; +} +.dialog .dialog-close-button:after { + border-color: #777777; + content: '\D7'; + line-height: 1; +} +.dialog.success { + background: #60a917; + color: #ffffff; + border-color: #60a917; +} +.dialog.success:active { + background: #128023; + color: #ffffff; +} +.dialog.success .dialog-close-button { + background-color: #7ad61d; + color: #ffffff; +} +.dialog.success .dialog-close-button:active { + background-color: #128023; +} +.dialog.warning { + background: #fa6800; + color: #ffffff; + border-color: #fa6800; +} +.dialog.warning:active { + background: #bf5a15; + color: #ffffff; +} +.dialog.warning .dialog-close-button { + background-color: #c29008; + color: #ffffff; +} +.dialog.warning .dialog-close-button:active { + background-color: #bf5a15; +} +.dialog.alert { + background: #ce352c; + color: #ffffff; + border-color: #ce352c; +} +.dialog.alert:active { + background: #9a1616; + color: #ffffff; +} +.dialog.alert .dialog-close-button { + background-color: #da5a53; + color: #ffffff; +} +.dialog.alert .dialog-close-button:active { + background-color: #9a1616; +} +.dialog.info { + background: #59cde2; + color: #ffffff; + border-color: #59cde2; +} +.dialog.info:active { + background: #1ba1e2; + color: #ffffff; +} +.dialog.info .dialog-close-button { + background-color: #59cde2; + color: #ffffff; +} +.dialog.info .dialog-close-button:active { + background-color: #1b6eae; +} + +@media screen and (max-width: 640px) { + .no-phone { + display: none !important; + } +} +@media screen and (max-width: 800px) { + .no-tablet { + display: none !important; + } +} +@media screen and (min-width: 900px) { + .no-pc { + display: none !important; + } +} +/*docs*/ +body { + +} + +.page-content { + padding-top: 48px; +} + +.color-list li { + display: inline-block; + padding: 10px; + width: 14.2857%; +} + +.prettyprint { + background-color: #eeeeee; + border: 0 !important; + border-width: 1px !important; + border-color: #eeeeee !important; + border-left: 8px #555555 solid !important; +} + +.prettyprint ol { + background-color: transparent !important; +} + +.prettyprint li {background-color: white !important; list-style-type: decimal !important; padding-left: 1em; border-bottom: 1px #eee solid;} +.prettyprint li:last-child{border-bottom: 0;} +.prettyprint code .tag { + font-size: .7rem; +} + +.prettyprint { + overflow: hidden; + overflow-x: scroll; +} + +.demo-grid .row > .cell { + padding: 10px; + background-color: darkgray; + color: white; + text-align: center; + border: 1px #000 solid; +} + + +@media screen and (max-width: 800px) { + .app-bar.fixed-top { + position: relative !important; + } + .page-content { + padding-top: 0 !important; + } +} + +@media screen and (max-width: 640px) { + .page-content { + padding-top: 32px; + } +} +.op-dark { + background-color: rgba(51, 51, 51, 0.7) !important; +} +/*icons anim*/ + +.ani-spin, +.ani-hover-spin:hover { + -webkit-animation: ani-spin 1.5s linear infinite; + animation: ani-spin 1.5s linear infinite; +} + +.ani-spin.ani-slow, +.ani-hover-spin.ani-slow:hover { + -webkit-animation: ani-spin 2.2s linear infinite; + animation: ani-spin 2.2s linear infinite; +} +.ani-float, +.ani-hover-float:hover { + -webkit-animation: ani-float 2s linear infinite; + animation: ani-float 2s linear infinite; +} +.ani-float.ani-fast, +.ani-hover-float.ani-fast:hover { + -webkit-animation: ani-float 1s linear infinite; + animation: ani-float 1s linear infinite; +} +.ani-float.ani-slow, +.ani-hover-float.ani-slow:hover { + -webkit-animation: ani-float 3s linear infinite; + animation: ani-float 3s linear infinite; +} + +@-webkit-keyframes swinging { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 5% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } + 10% { + -webkit-transform: rotate(-9deg); + transform: rotate(-9deg); + } + 15% { + -webkit-transform: rotate(8deg); + transform: rotate(8deg); + } + 20% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } + 25% { + -webkit-transform: rotate(6deg); + transform: rotate(6deg); + } + 30% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + 35% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 40% { + -webkit-transform: rotate(-3deg); + transform: rotate(-3deg); + } + 45% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +@keyframes swinging { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 5% { + -webkit-transform: rotate(10deg); + transform: rotate(10deg); + } + 10% { + -webkit-transform: rotate(-9deg); + transform: rotate(-9deg); + } + 15% { + -webkit-transform: rotate(8deg); + transform: rotate(8deg); + } + 20% { + -webkit-transform: rotate(-7deg); + transform: rotate(-7deg); + } + 25% { + -webkit-transform: rotate(6deg); + transform: rotate(6deg); + } + 30% { + -webkit-transform: rotate(-5deg); + transform: rotate(-5deg); + } + 35% { + -webkit-transform: rotate(4deg); + transform: rotate(4deg); + } + 40% { + -webkit-transform: rotate(-3deg); + transform: rotate(-3deg); + } + 45% { + -webkit-transform: rotate(2deg); + transform: rotate(2deg); + } + 50% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } +} +@-webkit-keyframes scaleout { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} +@keyframes scaleout { + 0% { + -webkit-transform: scale(0); + transform: scale(0); + } + 100% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 0; + } +} +@-webkit-keyframes cubemove { + 25% { + -webkit-transform: translateX(10px) rotate(-90deg); + transform: translateX(10px) rotate(-90deg); + } + 50% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-179deg); + transform: translateX(10px) translateY(10px) rotate(-179deg); + } + 50.1% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-180deg); + transform: translateX(10px) translateY(10px) rotate(-180deg); + } + 75% { + -webkit-transform: translateX(0px) translateY(10px) rotate(-270deg); + transform: translateX(0px) translateY(10px) rotate(-270deg); + } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} +@keyframes cubemove { + 25% { + -webkit-transform: translateX(10px) rotate(-90deg); + transform: translateX(10px) rotate(-90deg); + } + 50% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-179deg); + transform: translateX(10px) translateY(10px) rotate(-179deg); + } + 50.1% { + -webkit-transform: translateX(10px) translateY(10px) rotate(-180deg); + transform: translateX(10px) translateY(10px) rotate(-180deg); + } + 75% { + -webkit-transform: translateX(0px) translateY(10px) rotate(-270deg); + transform: translateX(0px) translateY(10px) rotate(-270deg); + } + 100% { + -webkit-transform: rotate(-360deg); + transform: rotate(-360deg); + } +} +@-webkit-keyframes orbit { + 0% { + opacity: 1; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + } + 7% { + -webkit-transform: rotate(345deg); + transform: rotate(345deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 35% { + -webkit-transform: rotate(495deg); + transform: rotate(495deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 42% { + -webkit-transform: rotate(690deg); + transform: rotate(690deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 70% { + opacity: 1; + -webkit-transform: rotate(835deg); + transform: rotate(835deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 76% { + opacity: 1; + } + 77% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 78% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } + 100% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } +} +@keyframes orbit { + 0% { + opacity: 1; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + -webkit-transform: rotate(225deg); + transform: rotate(225deg); + } + 7% { + -webkit-transform: rotate(345deg); + transform: rotate(345deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 35% { + -webkit-transform: rotate(495deg); + transform: rotate(495deg); + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + 42% { + -webkit-transform: rotate(690deg); + transform: rotate(690deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 70% { + opacity: 1; + -webkit-transform: rotate(835deg); + transform: rotate(835deg); + -webkit-animation-timing-function: linear; + animation-timing-function: linear; + } + 76% { + opacity: 1; + } + 77% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + 78% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } + 100% { + -webkit-transform: rotate(955deg); + transform: rotate(955deg); + opacity: 0; + } +} +@-webkit-keyframes metro-slide { + 0% { + left: -50%; + } + 100% { + left: 150%; + } +} +@keyframes metro-slide { + 0% { + left: -50%; + } + 100% { + left: 150%; + } +} +@-webkit-keyframes metro-opacity { + 0% { + opacity: 0; + } + 50% { + opacity: .5; + } + 100% { + opacity: 1; + } +} +@keyframes metro-opacity { + 0% { + opacity: 0; + } + 50% { + opacity: .5; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes ani-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes ani-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@-webkit-keyframes ani-bounce { + 0%, + 10%, + 20%, + 50%, + 80% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } + 60% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } +} +@keyframes ani-bounce { + 0%, + 10%, + 20%, + 50%, + 80% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 40% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } + 60% { + -webkit-transform: translateY(-15px); + transform: translateY(-15px); + } +} +@-webkit-keyframes ani-float { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 50% { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + } + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +@keyframes ani-float { + 0% { + -webkit-transform: translateY(0); + transform: translateY(0); + } + 50% { + -webkit-transform: translateY(-6px); + transform: translateY(-6px); + } + 100% { + -webkit-transform: translateY(0); + transform: translateY(0); + } +} +.mif-ani-bounce, +.mif-ani-hover-bounce:hover { + -webkit-animation: ani-bounce 2s ease infinite; + animation: ani-bounce 2s ease infinite; +} + +.mif-ani-bounce.mif-ani-slow, +.mif-ani-hover-bounce.mif-ani-slow:hover { + -webkit-animation: ani-bounce 3s ease infinite; + animation: ani-bounce 3s ease infinite; +} +.mif-ani-float, +.mif-ani-hover-float:hover { + -webkit-animation: ani-float 2s linear infinite; + animation: ani-float 2s linear infinite; +} +.mif-ani-float.mif-ani-fast, +.mif-ani-hover-float.mif-ani-fast:hover { + -webkit-animation: ani-float 1s linear infinite; + animation: ani-float 1s linear infinite; +} +.mif-ani-float.mif-ani-slow, +.mif-ani-hover-float.mif-ani-slow:hover { + -webkit-animation: ani-float 3s linear infinite; + animation: ani-float 3s linear infinite; +} + +/*icons metro*/ +@font-face { + font-family: 'metro'; + src:url('../fonts/metro.eot?-gkxixq'); + src:url('../fonts/metro.eot?#iefix-gkxixq') format('embedded-opentype'), + url('../fonts/metro.ttf?-gkxixq') format('truetype'), + url('../fonts/metro.woff?-gkxixq') format('woff'), + url('../fonts/metro.svg?-gkxixq#metro') format('svg'); + font-weight: normal; + font-style: normal; +} + +[class^="mif-"], [class*=" mif-"] { + font-family: 'metro'; + speak: none; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.mif-file-add:before { + content: "\e6c1"; +} +.mif-directions-bike:before { + content: "\e6bf"; +} +.mif-location-city:before { + content: "\e6c0"; +} +.mif-wifi-low:before { + content: "\e60c"; +} +.mif-wifi-mid:before { + content: "\e60d"; +} +.mif-wifi-full:before { + content: "\e634"; +} +.mif-tablet-landscape:before { + content: "\e635"; +} +.mif-calculator2:before { + content: "\e636"; +} +.mif-barbell:before { + content: "\e637"; +} +.mif-chart-line:before { + content: "\e656"; +} +.mif-3d-rotation:before { + content: "\e600"; +} +.mif-alarm:before { + content: "\e601"; +} +.mif-alarm-on:before { + content: "\e602"; +} +.mif-favorite:before { + content: "\e603"; +} +.mif-perm-phone-msg:before { + content: "\e604"; +} +.mif-print:before { + content: "\e605"; +} +.mif-bt-settings:before { + content: "\e606"; +} +.mif-settings-ethernet:before { + content: "\e607"; +} +.mif-settings-phone:before { + content: "\e608"; +} +.mif-settings-power:before { + content: "\e609"; +} +.mif-settings-voice:before { + content: "\e60a"; +} +.mif-shopping-basket:before { + content: "\e60b"; +} +.mif-dialer-sip:before { + content: "\e60e"; +} +.mif-dialpad:before { + content: "\e60f"; +} +.mif-contacts-dialer:before { + content: "\e610"; +} +.mif-contacts-mail:before { + content: "\e611"; +} +.mif-ring-volume:before { + content: "\e612"; +} +.mif-voicemail:before { + content: "\e613"; +} +.mif-drafts:before { + content: "\e614"; +} +.mif-mail:before { + content: "\e615"; +} +.mif-bluetooth:before { + content: "\e626"; +} +.mif-bt-connected:before { + content: "\e627"; +} +.mif-bt-disabled:before { + content: "\e628"; +} +.mif-bt-searching:before { + content: "\e629"; +} +.mif-brightness-auto:before { + content: "\e62a"; +} +.mif-multitrack-audio:before { + content: "\e616"; +} +.mif-widgets:before { + content: "\e617"; +} +.mif-usb:before { + content: "\e638"; +} +.mif-money:before { + content: "\e639"; +} +.mif-vertical-align-bottom:before { + content: "\e63a"; +} +.mif-vertical-align-center:before { + content: "\e63b"; +} +.mif-vertical-align-top:before { + content: "\e63c"; +} +.mif-file-download:before { + content: "\e63d"; +} +.mif-file-upload:before { + content: "\e63e"; +} +.mif-keyboard-return:before { + content: "\e63f"; +} +.mif-keyboard-voice:before { + content: "\e640"; +} +.mif-phonelink:before { + content: "\e641"; +} +.mif-phonelink-off:before { + content: "\e642"; +} +.mif-security:before { + content: "\e618"; +} +.mif-looks:before { + content: "\e643"; +} +.mif-palette:before { + content: "\e619"; +} +.mif-layers:before { + content: "\e644"; +} +.mif-layers-clear:before { + content: "\e61a"; +} +.mif-local-airport:before { + content: "\e645"; +} +.mif-florist:before { + content: "\e61b"; +} +.mif-gas-station:before { + content: "\e61c"; +} +.mif-hotel:before { + content: "\e646"; +} +.mif-local-service:before { + content: "\e61d"; +} +.mif-map2:before { + content: "\e620"; +} +.mif-my-location:before { + content: "\e61e"; +} +.mif-traff:before { + content: "\e621"; +} +.mif-apps:before { + content: "\e647"; +} +.mif-chevron-left:before { + content: "\e648"; +} +.mif-chevron-right:before { + content: "\e649"; +} +.mif-expand-less:before { + content: "\e64a"; +} +.mif-expand-more:before { + content: "\e64b"; +} +.mif-menu:before { + content: "\e64c"; +} +.mif-more-horiz:before { + content: "\e64d"; +} +.mif-more-vert:before { + content: "\e64e"; +} +.mif-unfold-less:before { + content: "\e64f"; +} +.mif-unfold-more:before { + content: "\e650"; +} +.mif-bt-audio:before { + content: "\e651"; +} +.mif-not:before { + content: "\e633"; +} +.mif-drive-eta:before { + content: "\e652"; +} +.mif-event-available:before { + content: "\e653"; +} +.mif-event-busy:before { + content: "\e654"; +} +.mif-folder-special:before { + content: "\e655"; +} +.mif-phone-bt:before { + content: "\e657"; +} +.mif-phone-forwarded:before { + content: "\e658"; +} +.mif-phone-in-talk:before { + content: "\e659"; +} +.mif-phone-locked:before { + content: "\e65a"; +} +.mif-phone-missed:before { + content: "\e65b"; +} +.mif-phone-paused:before { + content: "\e65c"; +} +.mif-sd-card:before { + content: "\e65d"; +} +.mif-sync-disabled:before { + content: "\e622"; +} +.mif-sync-problem:before { + content: "\e623"; +} +.mif-vpn-lock:before { + content: "\e624"; +} +.mif-vpn-publ:before { + content: "\e625"; +} +.mif-school:before { + content: "\e61f"; +} +.mif-eye-slash:before { + content: "\f070"; +} +.mif-cut:before { + content: "\f0c4"; +} +.mif-columns:before { + content: "\f0db"; +} +.mif-user-md:before { + content: "\f0f0"; +} +.mif-stethoscope:before { + content: "\f0f1"; +} +.mif-ambulance:before { + content: "\f0f9"; +} +.mif-medkit:before { + content: "\f0fa"; +} +.mif-paw:before { + content: "\f1b0"; +} +.mif-file-pdf:before { + content: "\f1c1"; +} +.mif-file-word:before { + content: "\f1c2"; +} +.mif-file-excel:before { + content: "\f1c3"; +} +.mif-file-powerpoint:before { + content: "\f1c4"; +} +.mif-file-image:before { + content: "\f1c5"; +} +.mif-file-archive:before { + content: "\f1c6"; +} +.mif-file-audio:before { + content: "\f1c7"; +} +.mif-file-movie:before { + content: "\f1c8"; +} +.mif-file-code:before { + content: "\f1c9"; +} +.mif-visa:before { + content: "\f1f0"; +} +.mif-mastercard:before { + content: "\f1f1"; +} +.mif-discover:before { + content: "\f1f2"; +} +.mif-amex:before { + content: "\f1f3"; +} +.mif-cc-paypal:before { + content: "\f1f4"; +} +.mif-heartbeat:before { + content: "\f21e"; +} +.mif-venus:before { + content: "\f221"; +} +.mif-mars:before { + content: "\f222"; +} +.mif-medium:before { + content: "\f23a"; +} +.mif-stack2:before { + content: "\e6b9"; +} +.mif-stack3:before { + content: "\e6ba"; +} +.mif-lamp:before { + content: "\e6bb"; +} +.mif-injection:before { + content: "\e6bc"; +} +.mif-thermometer2:before { + content: "\e6bd"; +} +.mif-justice:before { + content: "\e6be"; +} +.mif-cabinet:before { + content: "\e62b"; +} +.mif-suitcase:before { + content: "\e62c"; +} +.mif-gamepad:before { + content: "\e65e"; +} +.mif-satellite:before { + content: "\e65f"; +} +.mif-lock:before { + content: "\e660"; +} +.mif-unlock:before { + content: "\e661"; +} +.mif-battery-full:before { + content: "\e62d"; +} +.mif-battery-two:before { + content: "\e62e"; +} +.mif-battery-one:before { + content: "\e62f"; +} +.mif-battery-empty:before { + content: "\e630"; +} +.mif-battery-charge:before { + content: "\e631"; +} +.mif-tools:before { + content: "\e632"; +} +.mif-pin:before { + content: "\e662"; +} +.mif-discout:before { + content: "\e663"; +} +.mif-profile:before { + content: "\e664"; +} +.mif-dollar:before { + content: "\e665"; +} +.mif-dollars:before { + content: "\e666"; +} +.mif-coins:before { + content: "\e6b8"; +} +.mif-male:before { + content: "\e667"; +} +.mif-female:before { + content: "\e668"; +} +.mif-piano:before { + content: "\e669"; +} +.mif-anchor:before { + content: "\e66a"; +} +.mif-chevron-thin-down:before { + content: "\e66b"; +} +.mif-chevron-thin-left:before { + content: "\e697"; +} +.mif-chevron-thin-right:before { + content: "\e69b"; +} +.mif-chevron-thin-up:before { + content: "\e69c"; +} +.mif-flow-branch:before { + content: "\e69d"; +} +.mif-flow-cascade:before { + content: "\e69e"; +} +.mif-flow-line:before { + content: "\e69f"; +} +.mif-flow-parallel:before { + content: "\e6a0"; +} +.mif-flow-tree:before { + content: "\e6a1"; +} +.mif-air:before { + content: "\e6a2"; +} +.mif-medal:before { + content: "\e6a3"; +} +.mif-paper-plane:before { + content: "\e6a4"; +} +.mif-shareable:before { + content: "\e6a5"; +} +.mif-shop:before { + content: "\e6a6"; +} +.mif-shopping-basket2:before { + content: "\e6a7"; +} +.mif-thumbs-down:before { + content: "\e6a8"; +} +.mif-thumbs-up:before { + content: "\e6a9"; +} +.mif-traffic-cone:before { + content: "\e6aa"; +} +.mif-water:before { + content: "\e6ab"; +} +.mif-creative-cloud:before { + content: "\e6ac"; +} +.mif-dropbox:before { + content: "\e6ad"; +} +.mif-evernote:before { + content: "\e6ae"; +} +.mif-paypal:before { + content: "\e6af"; +} +.mif-swarm:before { + content: "\e6b0"; +} +.mif-vk:before { + content: "\e6b1"; +} +.mif-yelp:before { + content: "\e6b2"; +} +.mif-dribbble:before { + content: "\e6b3"; +} +.mif-lastfm:before { + content: "\e6b4"; +} +.mif-pinterest:before { + content: "\e6b5"; +} +.mif-stumbleupon:before { + content: "\e6b6"; +} +.mif-vimeo:before { + content: "\e6b7"; +} +.mif-microscope:before { + content: "\f089"; +} +.mif-library:before { + content: "\e921"; +} +.mif-file-binary:before { + content: "\f094"; +} +.mif-mail-read:before { + content: "\f03c"; +} +.mif-quote:before { + content: "\f063"; +} +.mif-sunrise:before { + content: "\e66c"; +} +.mif-sun:before { + content: "\e66d"; +} +.mif-moon:before { + content: "\e66e"; +} +.mif-sun3:before { + content: "\e66f"; +} +.mif-windy:before { + content: "\e670"; +} +.mif-wind:before { + content: "\e671"; +} +.mif-snowflake:before { + content: "\e672"; +} +.mif-cloudy:before { + content: "\e673"; +} +.mif-cloud2:before { + content: "\e674"; +} +.mif-weather:before { + content: "\e675"; +} +.mif-weather2:before { + content: "\e676"; +} +.mif-weather3:before { + content: "\e677"; +} +.mif-lines:before { + content: "\e678"; +} +.mif-cloud3:before { + content: "\e679"; +} +.mif-lightning:before { + content: "\e67a"; +} +.mif-lightning2:before { + content: "\e67b"; +} +.mif-rainy:before { + content: "\e67c"; +} +.mif-rainy2:before { + content: "\e67d"; +} +.mif-windy2:before { + content: "\e67e"; +} +.mif-windy3:before { + content: "\e67f"; +} +.mif-snowy:before { + content: "\e680"; +} +.mif-snowy2:before { + content: "\e681"; +} +.mif-snowy3:before { + content: "\e682"; +} +.mif-weather4:before { + content: "\e683"; +} +.mif-cloudy2:before { + content: "\e684"; +} +.mif-cloud4:before { + content: "\e685"; +} +.mif-lightning3:before { + content: "\e686"; +} +.mif-sun4:before { + content: "\e687"; +} +.mif-moon2:before { + content: "\e688"; +} +.mif-cloudy3:before { + content: "\e689"; +} +.mif-cloud5:before { + content: "\e68a"; +} +.mif-cloud6:before { + content: "\e68b"; +} +.mif-lightning4:before { + content: "\e68c"; +} +.mif-rainy3:before { + content: "\e68d"; +} +.mif-rainy4:before { + content: "\e68e"; +} +.mif-windy4:before { + content: "\e68f"; +} +.mif-windy5:before { + content: "\e690"; +} +.mif-snowy4:before { + content: "\e691"; +} +.mif-snowy5:before { + content: "\e692"; +} +.mif-weather5:before { + content: "\e693"; +} +.mif-cloudy4:before { + content: "\e694"; +} +.mif-lightning5:before { + content: "\e695"; +} +.mif-thermometer:before { + content: "\e696"; +} +.mif-none:before { + content: "\e698"; +} +.mif-celsius:before { + content: "\e699"; +} +.mif-fahrenheit:before { + content: "\e69a"; +} +.mif-home:before { + content: "\e900"; +} +.mif-pencil:before { + content: "\e905"; +} +.mif-eyedropper:before { + content: "\e90a"; +} +.mif-paint:before { + content: "\e90c"; +} +.mif-image:before { + content: "\e90d"; +} +.mif-images:before { + content: "\e90e"; +} +.mif-camera:before { + content: "\e90f"; +} +.mif-headphones:before { + content: "\e910"; +} +.mif-music:before { + content: "\e911"; +} +.mif-film:before { + content: "\e913"; +} +.mif-video-camera:before { + content: "\e914"; +} +.mif-dice:before { + content: "\e915"; +} +.mif-wifi-connect:before { + content: "\e91b"; +} +.mif-feed:before { + content: "\e91d"; +} +.mif-mic:before { + content: "\e91e"; +} +.mif-books:before { + content: "\e920"; +} +.mif-file-empty:before { + content: "\e924"; +} +.mif-files-empty:before { + content: "\e925"; +} +.mif-file-text:before { + content: "\e926"; +} +.mif-file-picture:before { + content: "\e927"; +} +.mif-file-music:before { + content: "\e928"; +} +.mif-file-play:before { + content: "\e929"; +} +.mif-file-video:before { + content: "\e92a"; +} +.mif-file-zip:before { + content: "\e92b"; +} +.mif-stack:before { + content: "\e92e"; +} +.mif-folder:before { + content: "\e92f"; +} +.mif-folder-open:before { + content: "\e930"; +} +.mif-folder-plus:before { + content: "\e931"; +} +.mif-folder-minus:before { + content: "\e932"; +} +.mif-folder-download:before { + content: "\e933"; +} +.mif-folder-upload:before { + content: "\e934"; +} +.mif-tag:before { + content: "\e935"; +} +.mif-tags:before { + content: "\e936"; +} +.mif-barcode:before { + content: "\e937"; +} +.mif-qrcode:before { + content: "\e938"; +} +.mif-cart:before { + content: "\e93a"; +} +.mif-credit-card:before { + content: "\e93f"; +} +.mif-calculator:before { + content: "\e940"; +} +.mif-help:before { + content: "\e941"; +} +.mif-phone:before { + content: "\e942"; +} +.mif-envelop:before { + content: "\e945"; +} +.mif-location:before { + content: "\e948"; +} +.mif-compass:before { + content: "\e949"; +} +.mif-compass2:before { + content: "\e94a"; +} +.mif-map:before { + content: "\e94b"; +} +.mif-history:before { + content: "\e94d"; +} +.mif-bell:before { + content: "\e951"; +} +.mif-calendar:before { + content: "\e953"; +} +.mif-printer:before { + content: "\e954"; +} +.mif-keyboard:before { + content: "\e955"; +} +.mif-display:before { + content: "\e956"; +} +.mif-laptop:before { + content: "\e957"; +} +.mif-mobile:before { + content: "\e959"; +} +.mif-tablet:before { + content: "\e95a"; +} +.mif-download:before { + content: "\e960"; +} +.mif-upload:before { + content: "\e961"; +} +.mif-floppy-disk:before { + content: "\e962"; +} +.mif-drive:before { + content: "\e963"; +} +.mif-database:before { + content: "\e964"; +} +.mif-undo:before { + content: "\e965"; +} +.mif-redo:before { + content: "\e966"; +} +.mif-bubble:before { + content: "\e96b"; +} +.mif-bubbles:before { + content: "\e96c"; +} +.mif-user:before { + content: "\e971"; +} +.mif-users:before { + content: "\e972"; +} +.mif-user-plus:before { + content: "\e973"; +} +.mif-user-minus:before { + content: "\e974"; +} +.mif-user-check:before { + content: "\e975"; +} +.mif-hour-glass:before { + content: "\e979"; +} +.mif-spinner:before { + content: "\e97a"; +} +.mif-spinner1:before { + content: "\e97b"; +} +.mif-spinner2:before { + content: "\e97d"; +} +.mif-spinner3:before { + content: "\e981"; +} +.mif-spinner4:before { + content: "\e982"; +} +.mif-spinner5:before { + content: "\e983"; +} +.mif-search:before { + content: "\e986"; +} +.mif-zoom-in:before { + content: "\e987"; +} +.mif-zoom-out:before { + content: "\e988"; +} +.mif-enlarge:before { + content: "\e989"; +} +.mif-shrink:before { + content: "\e98a"; +} +.mif-enlarge2:before { + content: "\e98b"; +} +.mif-shrink2:before { + content: "\e98c"; +} +.mif-key:before { + content: "\e98d"; +} +.mif-wrench:before { + content: "\e991"; +} +.mif-equalizer:before { + content: "\e992"; +} +.mif-equalizer-v:before { + content: "\e993"; +} +.mif-cog:before { + content: "\e994"; +} +.mif-cogs:before { + content: "\e995"; +} +.mif-magic-wand:before { + content: "\e997"; +} +.mif-bug:before { + content: "\e999"; +} +.mif-chart-pie:before { + content: "\e99a"; +} +.mif-chart-dots:before { + content: "\e99b"; +} +.mif-chart-bars:before { + content: "\e99c"; +} +.mif-chart-bars2:before { + content: "\e99d"; +} +.mif-trophy:before { + content: "\e99e"; +} +.mif-gift:before { + content: "\e99f"; +} +.mif-spoon-fork:before { + content: "\e9a3"; +} +.mif-rocket:before { + content: "\e9a5"; +} +.mif-meter:before { + content: "\e9a6"; +} +.mif-hammer:before { + content: "\e9a8"; +} +.mif-fire:before { + content: "\e9a9"; +} +.mif-lab:before { + content: "\e9aa"; +} +.mif-bin:before { + content: "\e9ac"; +} +.mif-truck:before { + content: "\e9b0"; +} +.mif-target:before { + content: "\e9b3"; +} +.mif-power:before { + content: "\e9b5"; +} +.mif-switch:before { + content: "\e9b6"; +} +.mif-power-cord:before { + content: "\e9b7"; +} +.mif-clipboard:before { + content: "\e9b8"; +} +.mif-list-numbered:before { + content: "\e9b9"; +} +.mif-list:before { + content: "\e9ba"; +} +.mif-list2:before { + content: "\e9bb"; +} +.mif-tree:before { + content: "\e9bc"; +} +.mif-cloud:before { + content: "\e9c1"; +} +.mif-cloud-download:before { + content: "\e9c2"; +} +.mif-cloud-upload:before { + content: "\e9c3"; +} +.mif-download2:before { + content: "\e9c7"; +} +.mif-upload2:before { + content: "\e9c8"; +} +.mif-earth:before { + content: "\e9ca"; +} +.mif-link:before { + content: "\e9cb"; +} +.mif-flag:before { + content: "\e9cc"; +} +.mif-attachment:before { + content: "\e9cd"; +} +.mif-eye:before { + content: "\e9ce"; +} +.mif-bookmark:before { + content: "\e9d2"; +} +.mif-bookmarks:before { + content: "\e9d3"; +} +.mif-contrast:before { + content: "\e9d5"; +} +.mif-brightness:before { + content: "\e9d6"; +} +.mif-star-empty:before { + content: "\e9d7"; +} +.mif-star-half:before { + content: "\e9d8"; +} +.mif-star-full:before { + content: "\e9d9"; +} +.mif-heart:before { + content: "\e9da"; +} +.mif-heart-broken:before { + content: "\e9db"; +} +.mif-warning:before { + content: "\ea07"; +} +.mif-notification:before { + content: "\ea08"; +} +.mif-question:before { + content: "\ea09"; +} +.mif-plus:before { + content: "\ea0a"; +} +.mif-minus:before { + content: "\ea0b"; +} +.mif-info:before { + content: "\ea0c"; +} +.mif-cancel:before { + content: "\ea0d"; +} +.mif-blocked:before { + content: "\ea0e"; +} +.mif-cross:before { + content: "\ea0f"; +} +.mif-checkmark:before { + content: "\ea10"; +} +.mif-spell-check:before { + content: "\ea12"; +} +.mif-enter:before { + content: "\ea13"; +} +.mif-exit:before { + content: "\ea14"; +} +.mif-play:before { + content: "\ea1c"; +} +.mif-pause:before { + content: "\ea1d"; +} +.mif-stop:before { + content: "\ea1e"; +} +.mif-backward:before { + content: "\ea1f"; +} +.mif-forward:before { + content: "\ea20"; +} +.mif-first:before { + content: "\ea21"; +} +.mif-last:before { + content: "\ea22"; +} +.mif-previous:before { + content: "\ea23"; +} +.mif-next:before { + content: "\ea24"; +} +.mif-eject:before { + content: "\ea25"; +} +.mif-volume-high:before { + content: "\ea26"; +} +.mif-volume-medium:before { + content: "\ea27"; +} +.mif-volume-low:before { + content: "\ea28"; +} +.mif-volume-mute:before { + content: "\ea29"; +} +.mif-volume-mute2:before { + content: "\ea2a"; +} +.mif-volume-plus:before { + content: "\ea2b"; +} +.mif-volume-minus:before { + content: "\ea2c"; +} +.mif-loop:before { + content: "\ea2d"; +} +.mif-loop2:before { + content: "\ea2e"; +} +.mif-infinite:before { + content: "\ea2f"; +} +.mif-shuffle:before { + content: "\ea30"; +} +.mif-arrow-up-left:before { + content: "\ea39"; +} +.mif-arrow-up:before { + content: "\ea3a"; +} +.mif-arrow-up-right:before { + content: "\ea3b"; +} +.mif-arrow-right:before { + content: "\ea3c"; +} +.mif-arrow-down-right:before { + content: "\ea3d"; +} +.mif-arrow-down:before { + content: "\ea3e"; +} +.mif-arrow-down-left:before { + content: "\ea3f"; +} +.mif-arrow-left:before { + content: "\ea40"; +} +.mif-tab:before { + content: "\ea45"; +} +.mif-move-up:before { + content: "\ea46"; +} +.mif-move-down:before { + content: "\ea47"; +} +.mif-sort-asc:before { + content: "\ea4c"; +} +.mif-sort-desc:before { + content: "\ea4d"; +} +.mif-command:before { + content: "\ea4e"; +} +.mif-shift:before { + content: "\ea4f"; +} +.mif-crop:before { + content: "\ea57"; +} +.mif-filter:before { + content: "\ea5b"; +} +.mif-bold:before { + content: "\ea62"; +} +.mif-underline:before { + content: "\ea63"; +} +.mif-italic:before { + content: "\ea64"; +} +.mif-strikethrough:before { + content: "\ea65"; +} +.mif-page-break:before { + content: "\ea68"; +} +.mif-superscript:before { + content: "\ea69"; +} +.mif-subscript:before { + content: "\ea6a"; +} +.mif-table:before { + content: "\ea71"; +} +.mif-insert-template:before { + content: "\ea72"; +} +.mif-pilcrow:before { + content: "\ea73"; +} +.mif-ltr:before { + content: "\ea74"; +} +.mif-rtl:before { + content: "\ea75"; +} +.mif-section:before { + content: "\ea76"; +} +.mif-paragraph-left:before { + content: "\ea77"; +} +.mif-paragraph-center:before { + content: "\ea78"; +} +.mif-paragraph-right:before { + content: "\ea79"; +} +.mif-paragraph-justify:before { + content: "\ea7a"; +} +.mif-indent-increase:before { + content: "\ea7b"; +} +.mif-indent-decrease:before { + content: "\ea7c"; +} +.mif-embed:before { + content: "\ea7f"; +} +.mif-embed2:before { + content: "\ea80"; +} +.mif-share:before { + content: "\ea82"; +} +.mif-google:before { + content: "\ea87"; +} +.mif-google-plus:before { + content: "\ea88"; +} +.mif-facebook:before { + content: "\ea8d"; +} +.mif-twitter:before { + content: "\ea91"; +} +.mif-feed3:before { + content: "\ea95"; +} +.mif-youtube:before { + content: "\ea99"; +} +.mif-steam:before { + content: "\eaae"; +} +.mif-onedrive:before { + content: "\eab0"; +} +.mif-github:before { + content: "\eab3"; +} +.mif-git:before { + content: "\eab5"; +} +.mif-apple:before { + content: "\eabf"; +} +.mif-android:before { + content: "\eac1"; +} +.mif-windows:before { + content: "\eac3"; +} +.mif-skype:before { + content: "\eac6"; +} +.mif-linkedin:before { + content: "\eac8"; +} +.mif-html5:before { + content: "\eadf"; +} +.mif-css3:before { + content: "\eae1"; +} +.mif-chrome:before { + content: "\eae5"; +} +.mif-firefox:before { + content: "\eae6"; +} +.mif-ie:before { + content: "\eae7"; +} +.mif-opera:before { + content: "\eae8"; +} +.mif-safari:before { + content: "\eae9"; +} diff --git a/resources/assets/js/custom.js b/resources/assets/js/custom.js new file mode 100644 index 00000000..b714ab5e --- /dev/null +++ b/resources/assets/js/custom.js @@ -0,0 +1,213 @@ +/** + * + * @param {type} title + * @param {type} icon + * @param {type} content + * @returns {undefined} + */ +function alertDialog(title, icon, content) { + var html = '

' + title + '



' + + content + '

' + + '' + //+ '' + + '
'; + $("#dcmDialog-content").html(html); + showDialog("#dcmDialog"); +} + +/** + * + * @param {type} id + * @returns {undefined} + */ +function showDialog(id) { + var dialog = $(id).data('dialog'); + dialog.open(); +} + +/** + * + * @param {type} id + * @returns {undefined} + */ +function ocultDialog(id) { + var dialog = $(id).data('dialog'); + dialog.close(); +} + +/** + * + * @param {type} id + * @param {type} destroy + * @returns {undefined} + */ +function ocultDialog2(id, destroy) { + if (destroy) { + $(id + " .body-preview").html(""); + } + ocultDialog(id); +} + +/** + * + * @param {type} title + * @param {type} cancelTxt + * @param {type} okTxt + * @param {type} callback + * @param {type} defaultVal + * @param {type} icon + * @returns {undefined} + */ +function showPrompt(title, cancelTxt, okTxt, callback, defaultVal, icon) { + + + var header = '

' + title + '



'; + + var input = '
' + + '' + + '
'; + + var template = '
' + + '
' + + header + + input + + '

' + + '
'; + + + var okBut = $(' '); + var cancelBut = $(' \n'); + + okBut.click(function() { + callback($("#inputDialog input").val()); + ocultDialog("#inputDialog"); + $("#inputDialog").remove(); + }); + cancelBut.click(function() { + ocultDialog("#inputDialog"); + $("#inputDialog").remove(); + }); + + var dialog = $(template); + var actions = dialog.find(".form-actions"); + cancelBut.appendTo(actions); + okBut.appendTo(actions); + + dialog.appendTo("body").dialog(); + showDialog("#inputDialog"); +} + +/** + * + * @param {type} title + * @param {type} body + * @param {type} cancelTxt + * @param {type} okTxt + * @param {type} callback + * @param {type} icon + * @returns {undefined} + */ +function showConfirmDialog(title, body, cancelTxt, okTxt, callback, icon) { + var header = '

' + title + '



'; + + + var template = '
' + + '
' + + header + + body + + '

' + + '
'; + + + var okBut = $(' '); + var cancelBut = $(' \n'); + + var dialog = $(template); + var actions = dialog.find(".form-actions"); + cancelBut.appendTo(actions); + okBut.appendTo(actions); + + dialog.appendTo("body").dialog(); + + okBut.click(function() { + callback(true); + ocultDialog("#confirmDialog"); + $("#confirmDialog").remove(); + }); + cancelBut.click(function() { + ocultDialog("#confirmDialog"); + $("#confirmDialog").remove(); + }); + + showDialog("#confirmDialog"); +} + +function alertDialog2(title, icon, body, okTxt, callback) { + var header = '

' + title + '



'; + + + var template = '
' + + '
' + + header + + body + + '

' + + '
'; + + + var okBut = $(' '); + + var dialog = $(template); + var actions = dialog.find(".form-actions"); + okBut.appendTo(actions); + + dialog.appendTo("body").dialog(); + + okBut.click(function() { + callback(true); + ocultDialog("#alertDialog"); + $("#alertDialog").remove(); + }); + + showDialog("#alertDialog"); + +} + +$(function() { + $('.filterx').hide(300); + + + $("#showFilters").click(function() { + var parentx = $(this).parent(); + if (parentx.hasClass("active")) { + $('.filterx').hide(300); + parentx.attr("class", ""); + } else { + //show filters + $('.filterx').show(300); + parentx.attr("class", "active fg-yellow"); + //ocult links + $('.actionx').hide(300); + $("#showLinks").parent().attr("class", ""); + } + + }); + + $('.actionx').hide(300); + $("#showLinks").click(function() { + var parentx = $(this).parent(); + if (parentx.hasClass("active")) { + $('.actionx').hide(300); + parentx.attr("class", ""); + } else { + //show links + $('.actionx').show(300); + parentx.attr("class", "active fg-yellow"); + //ocult filters + $('.filterx').hide(300); + $("#showFilters").parent().attr("class", ""); + } + + }); + +}); +//alertDialog($('#lang_info').val(), "mif-warning", msg); \ No newline at end of file diff --git a/resources/assets/js/include.js b/resources/assets/js/include.js old mode 100755 new mode 100644 index 96fe6148..7c37ba8e --- a/resources/assets/js/include.js +++ b/resources/assets/js/include.js @@ -1,2237 +1,2187 @@ -var encodeURL,show_animation,hide_animation,apply,apply_none,apply_img,apply_any,apply_video,apply_link,apply_file_rename,apply_file_duplicate,apply_folder_rename; -(function ($, Modernizr, image_editor) +var encodeURL, show_animation, hide_animation, apply, apply_none, apply_img, apply_any, apply_video, apply_link, apply_file_rename, apply_file_duplicate, apply_folder_rename; +(function($, Modernizr, image_editor) { - "use strict"; + "use strict"; - var version = "9.9.6"; - var active_contextmenu = true; - var copy_count = 0; + var version = "9.9.7"; + var active_contextmenu = true; + var copy_count = 0; - var delay = (function () - { - var timer = 0; - return function (callback, ms) + var delay = (function() { - clearTimeout(timer); - timer = setTimeout(callback, ms); - }; - })(); - - var getLink = function($trigger) - { - var m = $('#base_url').val() + $('#cur_dir').val(); - var add = $trigger.find('a.link').attr('data-file'); + var timer = 0; + return function(callback, ms) + { + clearTimeout(timer); + timer = setTimeout(callback, ms); + }; + })(); - if (add != "" && add != null) + var getLink = function($trigger) { - m += add; - } + var m = $('#base_url').val() + $('#cur_dir').val(); + var add = $trigger.find('a.link').attr('data-file'); - add = $trigger.find('h4 a.folder-link').attr('data-file'); + if (add != "" && add != null) + { + m += add; + } - if (add != "" && add != null) - { - m += add; + add = $trigger.find('h4 a.folder-link').attr('data-file'); + + if (add != "" && add != null) + { + m += add; + } + return m; } - return m; - } - var FileManager = { + var FileManager = { + contextActions: { + copy_url: function($trigger) + { + var m = getLink($trigger); - contextActions: { + alertDialog('Url ', 'mif-link', + '
' + + '' + + '' + + '
'); - copy_url : function($trigger) - { - var m = getLink($trigger); + $('#copy-button' + copy_count).html(' ' + $('#lang_copy').val()); - bootbox.alert( - 'URL:
' + - '
' + - '' + - '' + - '
' - ); + var client = new ZeroClipboard($('#copy-button' + copy_count)); - $('#copy-button' + copy_count).html(' ' + $('#lang_copy').val()); + client.on("ready", function(readyEvent) + { - var client = new ZeroClipboard($('#copy-button' + copy_count)); + client.on("wrongFlash noFlash", function() + { + ZeroClipboard.destroy(); + }); - client.on("ready", function (readyEvent) - { + client.on("aftercopy", function(event) + { + $('#copy-button' + copy_count).html(' ' + $('#ok').val()); + $('#copy-button' + copy_count).attr('class', 'button disabled text-shadow'); + copy_count++; + }); - client.on("wrongFlash noFlash", function () - { - ZeroClipboard.destroy(); - }); + client.on('error', function(event) { + }); - client.on("aftercopy", function (event) - { - $('#copy-button' + copy_count).html(' ' + $('#ok').val()); - $('#copy-button' + copy_count).attr('class', 'btn disabled'); - copy_count++; - }); + }); + }, + unzip: function($trigger) + { + var m = $('#sub_folder').val() + $('#fldr_value').val() + $trigger.find('a.link').attr('data-file'); + $.ajax({ + type: "POST", + url: "ajax_calls.php?action=extract", + data: { + path: m + } + }).done(function(msg) + { + if (msg != "") + { + alertDialog($('#lang_info').val(), "mif-warning", msg); + } + else + { + window.location.href = $('#refresh').attr('href') + '&' + new Date().getTime(); + } + }); + }, + edit_img: function($trigger) + { + var filename = $trigger.attr('data-name'); + var full_path = $('#base_url_true').val() + $('#cur_dir').val() + filename + '?t=' + new Date().getTime(); - client.on('error', function (event) {}); + var aviaryElement = $('#aviary_img'); + aviaryElement.attr('data-name', filename); + show_animation(); + aviaryElement.attr('src', full_path).load(launchEditor(aviaryElement.attr('id'), full_path)); + }, + duplicate: function($trigger) + { + var old_name = $trigger.find('h4').text().trim(); - }); - }, + showPrompt($('#lang_duplicate').val(), $('#cancel').val(), $('#ok').val(), function(name) + { + if (name !== null) + { + name = fix_filename(name); + if (name != old_name) + { + var _this = $trigger.find('.rename-file'); + execute_action('duplicate_file', _this.attr('data-path'), name, _this, 'apply_file_duplicate'); + } + } + }, old_name, "mif-files-empty"); + }, + select: function($trigger) + { + var url = getLink($trigger); + var external = $('#field_id').val(); + var windowParent; + var is_return_relative_url = $('#return_relative_url').val(); + console.log(url); + url = url.replace($('#base_url').val(), ''); + url = url.replace($('#cur_dir').val(), ''); + if ($('#popup').val() === 1) + { + windowParent = window.opener; + } + else + { + windowParent = window.parent; + } + if (external !== "") + { + if ($('#crossdomain').val() === 1) + { + windowParent.postMessage({ + sender: 'responsivefilemanager', + url: url, + field_id: external + }, + '*' + ); + } + else + { + var target = $('#' + external, windowParent.document); + target.val(url).trigger('change'); + if (typeof windowParent.responsive_filemanager_callback == 'function') + { + windowParent.responsive_filemanager_callback(external); + } + close_window(); + } + } + else + { + apply_any(url); + } - unzip: function($trigger) - { - var m = $('#sub_folder').val() + $('#fldr_value').val() + $trigger.find('a.link').attr('data-file'); - $.ajax({ - type: "POST", - url: "ajax_calls.php?action=extract", - data: { - path: m - } - }).done(function (msg) - { - if (msg != "") - { - bootbox.alert(msg); - } - else - { - window.location.href = $('#refresh').attr('href') + '&' + new Date().getTime(); - } - }); - }, - edit_img: function($trigger) - { - var filename = $trigger.attr('data-name'); - var full_path = $('#base_url_true').val() + $('#cur_dir').val() + filename; + }, + copy: function($trigger) + { + copy_cut_clicked($trigger, 'copy'); + }, + cut: function($trigger) + { + copy_cut_clicked($trigger, 'cut'); + }, + paste: function() + { + paste_to_this_dir(); + }, + chmod: function($trigger) + { + chmod($trigger); + }, + edit_text_file: function($trigger) + { + edit_text_file($trigger); + } - var aviaryElement = $('#aviary_img'); - aviaryElement.attr('data-name', filename); - show_animation(); - aviaryElement.attr('src', full_path).load(launchEditor(aviaryElement.attr('id'), full_path)); - }, + }, + makeContextMenu: function() + { + var fm = this; + + $.contextMenu({ + selector: 'figure:not(.back-directory), .list-view2 figure:not(.back-directory)', + autoHide: true, + classNames: "v-menu", + build: function($trigger) + { + + $trigger.addClass('selected'); + + var options = { + callback: function(key, options) + { + fm.contextActions[key]($trigger); + }, + items: {} + }; + // tooltip options + // edit image/show url + if ( + ( + $trigger.find('.img-precontainer-mini .filetype').hasClass('png') + || $trigger.find('.img-precontainer-mini .filetype').hasClass('jpg') + || $trigger.find('.img-precontainer-mini .filetype').hasClass('jpeg') + ) && image_editor) + { + options.items.edit_img = { + name: '' + $('#lang_edit_image').val(), + icon: "", + disabled: false + }; + } + // select folder + if ($trigger.hasClass('directory') && $('#type_param').val() != 0) + { + options.items.select = { + name: $('#lang_select').val(), + icon: "", + disabled: false + }; + } + + options.items.copy_url = { + name: ' ' + $('#lang_show_url').val(), + disabled: false + }; + // extract + if ($trigger.find('.img-precontainer-mini .filetype').hasClass('zip') || + $trigger.find('.img-precontainer-mini .filetype').hasClass('tar') || + $trigger.find('.img-precontainer-mini .filetype').hasClass('gz')) + { + options.items.unzip = { + name: ' ' + $('#lang_extract').val(), + disabled: false + }; + } + + // edit file's content + if ($trigger.find('.img-precontainer-mini .filetype').hasClass('edit-text-file-allowed')) + { + options.items.edit_text_file = { + name: ' ' + $('#lang_edit_file').val(), + disabled: false + }; + } - duplicate: function($trigger) - { - var old_name = $trigger.find('h4').text().trim(); - bootbox.prompt($('#lang_duplicate').val(), $('#cancel').val(), $('#ok').val(), function (name) + // duplicate + if (!$trigger.hasClass('directory') && $('#duplicate').val() == 1) + { + options.items.duplicate = { + name: ' ' + $('#lang_duplicate').val(), + disabled: false + }; + } + + // copy & cut + if (!$trigger.hasClass('directory') && $('#copy_cut_files_allowed').val() == 1) + { + options.items.copy = { + name: ' ' + $('#lang_copy').val(), + disabled: false + }; + options.items.cut = { + name: '' + $('#lang_cut').val(), + disabled: false + }; + } + else if ($trigger.hasClass('directory') && $('#copy_cut_dirs_allowed').val() == 1) + { + options.items.copy = { + name: ' ' + $('#lang_copy').val(), + disabled: false + }; + options.items.cut = { + name: '' + $('#lang_cut').val(), + icon: "cut", + disabled: false + }; + } + + // paste + // Its not added to folders because it might confuse someone + if ($('#clipboard').val() != 0 && !$trigger.hasClass('directory')) + { + options.items.paste = { + name: ' ' + $('#lang_paste_here').val(), + disabled: false + }; + } + + // file permission + if (!$trigger.hasClass('directory') && $('#chmod_files_allowed').val() == 1) + { + options.items.chmod = { + name: ' ' + $('#lang_file_permission').val(), + disabled: false + }; + } + else if ($trigger.hasClass('directory') && $('#chmod_dirs_allowed').val() == 1) + { + options.items.chmod = { + name: ' ' + $('#lang_file_permission').val(), + disabled: false + }; + } + + // fileinfo + options.items.sep = '----'; + options.items.info = { + name: "" + $('#lang_file_info').val() + "", + disabled: true + }; + options.items.name = { + name: ' ' + $trigger.attr('data-name'), + disabled: true + }; + if ($trigger.attr('data-type') == "img") + { + options.items.dimension = { + name: ' ' + $trigger.find('.img-dimension').html(), + disabled: true + }; + } + if ($trigger.hasClass('directory')) { + options.items.size = { + name: ' ' + $trigger.find('.file-size').html() + " - " + $trigger.find('.nfiles').val() + " " + $('#lang_files').val() + " - " + $trigger.find('.nfolders').val() + " " + $('#lang_folders').val(), + disabled: true + }; + } else { + + options.items.size = { + name: ' ' + $trigger.find('.file-size').html(), + disabled: true + }; + } + options.items.date = { + name: ' ' + $trigger.find('.file-date').html(), + disabled: true + }; + + + return options; + }, + events: { + hide: function() + { + $('figure').removeClass('selected'); + } + } + }); + + $(document).on('contextmenu', function(e) + { + if (!$(e.target).is("figure")) + { + return false; + } + }); + }, + bindGridEvents: function() { - if (name !== null) - { - name = fix_filename(name); - if (name != old_name) + var grid = $('ul.grid'); + + grid.on('click', '.modalAV', function(e) + { + var _this = $(this); + e.preventDefault(); + var bodyPreviewElement = $(".body-preview"); + + + if (_this.hasClass('audio')) + { + bodyPreviewElement.css('height', '80px'); + $('#previewAV .preview_icon').removeClass().addClass("preview_icon mif-music"); + } + else + { + bodyPreviewElement.css('height', '345px'); + $('#previewAV .preview_icon').removeClass().addClass("preview_icon mif-film"); + } + + $.ajax({ + url: _this.attr('data-url'), + success: function(data) + { + bodyPreviewElement.html(data); + showDialog('#previewAV'); + var path = _this.attr('data-url').split("/");//get file name + $('#preview_name').html(path[path.length - 1]);// put file name on title + + } + }); + }); + + grid.on('click', '.file-preview-btn', function(e) + { + var _this = $(this); + e.preventDefault(); + + $.ajax({ + url: _this.attr('data-url'), + success: function(data) + { + var path = _this.attr('data-url').split("/"); //get file name + alertDialog($('#lang_preview').val() + " " + path[path.length - 1] + "", "mif-eye mif-ani-float mif-ani-slow", data); + + } + }); + }); + + grid.on('click', '.preview', function() + { + var _this = $(this); + if (_this.hasClass('disabled') == false) + { + $('#full-img').attr('src', decodeURIComponent(_this.attr('data-url'))); + + showDialog("#previewLightbox"); + } + return true; + }); + + grid.on('click', '.rename-file', function() + { + var _this = $(this); + + var file_container = _this.parent().parent().parent(); + var file_title = file_container.find('h4'); + var old_name = $.trim(file_title.text()); + + showPrompt($('#rename').val(), $('#cancel').val(), $('#ok').val(), function(name) + { + if (name !== null) + { + name = fix_filename(name); + if (name !== old_name) + { + execute_action('rename_file', _this.attr('data-path'), name, file_container, 'apply_file_rename'); + } + } + }, old_name, "mif-pencil"); + }); + + grid.on('click', '.rename-folder', function() + { + var _this = $(this); + + var file_container = _this.parent().parent().parent(); + var file_title = file_container.find('h4'); + var old_name = $.trim(file_title.text()); + + showPrompt($('#rename').val(), $('#cancel').val(), $('#ok').val(), function(name) + { + if (name !== null) + { + name = fix_filename(name).replace('.', ''); + if (name != old_name) + { + execute_action('rename_folder', _this.attr('data-path'), name, file_container, 'apply_folder_rename'); + } + } + }, old_name, "mif-folder-open"); + }); + + grid.on('click', '.delete-file', function() + { + var _this = $(this); + // + var file_container = _this.parent().parent().parent(); + var file_title = file_container.find('h4'); + var namex = $.trim(file_title.text()); + // + showConfirmDialog(_this.attr('title'), _this.attr('data-confirm') + ' ' + namex + '', $('#cancel').val(), $('#ok').val(), function(result) + { + if (result === true) + { + execute_action('delete_file', _this.attr('data-path'), '', '', ''); + var fil = $('#files_number'); + fil.text(parseInt(fil.text()) - 1); + _this.parent().parent().parent().parent().remove(); + } + }, "mif-bin"); + }); + + grid.on('click', '.delete-folder', function() + { + var _this = $(this); + // + var file_container = _this.parent().parent().parent(); + var file_title = file_container.find('h4'); + var namex = $.trim(file_title.text()); + // + showConfirmDialog(_this.attr('title'), _this.attr('data-confirm') + ' ' + namex + '', $('#cancel').val(), $('#ok').val(), function(result) + { + if (result === true) + { + execute_action('delete_folder', _this.attr('data-path'), '', '', ''); + var fol = $('#folders_number'); + fol.text(parseInt(fol.text()) - 1); + _this.parent().parent().parent().remove(); + } + }); + }); + + function handleFileLink($el) { - var _this = $trigger.find('.rename-file'); - execute_action('duplicate_file', _this.attr('data-path'), name, _this, 'apply_file_duplicate'); + window[ $el.attr('data-function') ]($el.attr('data-file'), $('#field_id').val()); } - } - }, old_name); - }, - - select: function($trigger) - { - var url = getLink($trigger); - var external = $('#field_id').val(); - var windowParent; - var is_return_relative_url = $('#return_relative_url').val(); - console.log(url); - url = url.replace($('#base_url').val(), ''); - url = url.replace($('#cur_dir').val(), ''); - if ($('#popup').val() == 1) + + $('ul.grid').on('click', '.link', function() + { + handleFileLink($(this)); + }); + + $('ul.grid').on('click', 'div.box', function(e) + { + + var fileLink = $(this).find(".link"); + if (fileLink.length !== 0) + { + handleFileLink(fileLink); + } + else + { + var folderLink = $(this).find(".folder-link"); + if (folderLink.length !== 0) + { + document.location = $(folderLink).prop("href"); + } + } + }); + // End of link handler + }, + makeFilters: function(js_script) { - windowParent = window.opener; + $('#filter-input').on('keyup', function() + { + $('.filters label').parent().removeClass("active"); + //$('.filters label').find('i').removeClass('icon-white'); + $('#ff-item-type-all').parent().addClass("active"); + //$('#ff-item-type-all').find('i').addClass('icon-white'); + var val = fix_filename($(this).val()).toLowerCase(); + $(this).val(val); + if (js_script) + { + delay(function() + { + $('li', 'ul.grid-main ').each(function() + { + var _this = $(this); + if (val != "" && _this.attr('data-name').toLowerCase().indexOf(val) == -1) + { + _this.hide(100); + } + else + { + _this.show(100); + } + }); + + $.ajax({ + url: "ajax_calls.php?action=filter&type=" + val + }).done(function(msg) + { + if (msg !== "") + { + alertDialog($('#lang_info').val(), "mif-warning", msg); + } + }); + delay(function() + { + var sortDescending = $('#descending').val() != 0 ? true : false; + sortUnorderedList(sortDescending, "." + $('#sort_by').val()); + + lazyLoad(); + }, 500); + + }, 300); + } + }).keypress(function(e) + { + if (e.which == 13) + { + $('#filter').trigger('click'); + } + }); + + // filtering + $('#filter').on('click', function() + { + var val = fix_filename($('#filter-input').val()); + window.location.href = $('#current_url').val() + "&filter=" + val; + }); + }, + makeUploader: function() + { + // upload btn + $('#uploader-btn').on('click', function() + { + var path = $('#sub_folder').val() + $('#fldr_value').val() + "/"; + path = path.substring(0, path.length - 1); + + $('#iframe-container').html($(''; + $ret = ''; } elseif ($preview_mode == 'google') { $url_file = $base_url . $upload_dir . str_replace($current_path, '', $_GET["file"]); $googledoc_url = urlencode($url_file); diff --git a/filemanager/dialog.php b/filemanager/dialog.php index 98f76c52..68513107 100644 --- a/filemanager/dialog.php +++ b/filemanager/dialog.php @@ -299,6 +299,7 @@ echo $aopt_key . ": " . json_encode($aopt_val) . ","; } ?> + onReady: function() { hide_animation(); }, @@ -311,7 +312,8 @@ url: "ajax_calls.php?action=save_img", data: { url: newURL, path:$('#sub_folder').val() + $('#fldr_value').val(), name:$('#aviary_img').attr('data-name') } }).done(function(msg) { - featherEditor.close(); + console.log(msg); + featherEditor.close(); d = new Date(); $("figure[data-name='" + $('#aviary_img').attr('data-name') + "']").find('img').each(function(){ $(this).attr('src', $(this).attr('src') + "?" + d.getTime()); @@ -320,11 +322,12 @@ $(this).attr('data-url', $(this).data('url') + "?" + d.getTime()); }); hide_animation(); - }); + }).error(function(msg) { + console.log(msg); }); return false; }, onError: function(errorObj) { - bootbox.alert(errorObj.message); + console.log(errorObj.message); hide_animation(); } @@ -332,10 +335,10 @@ } - - - - + + @@ -714,23 +717,23 @@ function extensionSort($x, $y) { if ($sort_by == "name") { echo ($descending) ? "descending" : "ascending"; } - ?>" href="javascript:void('')" data-sort="name"> + ?>" href="javascript:void('')" data-sort="name"> + ?>" href="javascript:void('')" data-sort="date"> + ?>" href="javascript:void('')" data-sort="size">
+ ?>" href="javascript:void('')" data-sort="extension">
@@ -1140,7 +1143,7 @@ function extensionSort($x, $y) {
- +
@@ -1152,9 +1155,13 @@ function extensionSort($x, $y) { -