diff --git a/application/modules/default/controllers/DlController.php b/application/modules/default/controllers/DlController.php index ca3164fde..f9ee9299a 100755 --- a/application/modules/default/controllers/DlController.php +++ b/application/modules/default/controllers/DlController.php @@ -1,80 +1,116 @@ . **/ class DlController extends Local_Controller_Action_DomainSwitch { public function indexAction() { $this->_helper->layout->disableLayout(); $file_id = $this->getParam('file_id'); $file_type = $this->getParam('file_type'); $file_name = $this->getParam('file_name'); $file_size = $this->getParam('file_size'); $projectId = $this->getParam('project_id'); if($this->hasParam('link_type')) { $linkType = $this->getParam('link_type'); } else { $linkType = "download"; } + $modelProduct = new Default_Model_Project(); + $productInfo = $modelProduct->fetchProductInfo($projectId); + $this->view->link_type = $linkType; + $this->view->file_name = $file_name; + $this->view->file_size = $file_size; + $this->view->file_size_human = $this->humanFileSize($file_size); + $this->view->project_title = $productInfo->title; $memberId = $this->_authMember->member_id; if ($_SERVER['REQUEST_METHOD'] == 'POST') { if(isset($file_id) && isset($projectId) && isset($memberId)) { $memberDlHistory = new Default_Model_DbTable_MemberDownloadHistory(); $data = array('project_id' => $projectId, 'member_id' => $memberId, 'file_id' => $file_id, 'file_type' => $file_type, 'file_name' => $file_name, 'file_size' => $file_size); $memberDlHistory->createRow($data)->save(); } - $modelProduct = new Default_Model_Project(); - $productInfo = $modelProduct->fetchProductInfo($projectId); - //create ppload download hash: secret + collection_id + expire-timestamp $salt = PPLOAD_DOWNLOAD_SECRET; $collectionID = $productInfo->ppload_collection_id; $timestamp = time() + 3600; // one hour valid //20181009 ronald: change hash from MD5 to SHA512 //$hash = md5($salt . $collectionID . $timestamp); // order isn't important at all... just do the same when verifying $hash = hash('sha512',$salt . $collectionID . $timestamp); // order isn't important at all... just do the same when verifying $url = PPLOAD_API_URI . 'files/download/id/' . $file_id . '/s/' . $hash . '/t/' . $timestamp . '/u/' . $memberId . '/' . $file_name; if($linkType == 'install') { $helperCatXdgType = new Default_View_Helper_CatXdgType(); $xdgType = $helperCatXdgType->catXdgType($productInfo->project_category_id); $url = 'ocs://install' . '?url=' . urlencode($url) . '&type=' . urlencode($xdgType) . '&filename=' . urldecode($file_name); } $this->view->url = $url; } } + + function formatBytes($bytes, $precision = 2) { + $units = array('B', 'KB', 'MB', 'GB', 'TB'); + + $bytes = max($bytes, 0); + $pow = floor(($bytes ? log($bytes) : 0) / log(1024)); + $pow = min($pow, count($units) - 1); + + // Uncomment one of the following alternatives + // $bytes /= pow(1024, $pow); + // $bytes /= (1 << (10 * $pow)); + + return round($bytes, $precision) . ' ' . $units[$pow]; + } + + function humanFileSize($bytes) { + if(!empty(bytes)) + { + $size = round($bytes / 1048576, 2); + if($size == 0.0) + { + return '0.01 MB'; + }else + { + return $size.' MB'; + } + } + else + { + return null; + } + } } \ No newline at end of file diff --git a/application/modules/default/views/scripts/dl/index.phtml b/application/modules/default/views/scripts/dl/index.phtml index 58c53b9d6..dfe0c5305 100644 --- a/application/modules/default/views/scripts/dl/index.phtml +++ b/application/modules/default/views/scripts/dl/index.phtml @@ -1,163 +1,113 @@ . **/ ?> Download/Install - - + + + -
-
-
-
-
+
+ +
+
+
+ link_type == 'download') { ?> + Prepare download successful. Please click the "Download" button to download. + + Prepare download successful. Please click the "Install" button to download. + + +
+
+
+ +
+

project_title ?>

+
+ + url.'">Please click here'; + echo ''; + + } else { + ?> +
+ + link_type == 'download') { ?> + + + +

*Needs ocs-url or ocs-store to install things

+ + + + +
-
+ +
+
+ +

getIdentity(); if(null == $identity || (null != $identity && !$this->isSupporter($identity->member_id))) { ?> -

Please consider to become a supporter to help the site grow.

+ Please consider to become a supporter to help the site grow. isSupporter($identity->member_id))) { ?> -

Thank you for your support!

- -

- url.'">Please click here'; - echo ''; - - } else { - ?> -
- -

-
Please verify.
-
Validation complete
-
Validation failed
- */ ?> - - link_type == 'download') { ?> - - - -

*Needs ocs-url or ocs-store to install things

- - Reset - */ ?> - - -
-
-
-
- + Thank you for your support! + + +

+
+ - +
diff --git a/httpdocs/theme/flatui/js/script.js b/httpdocs/theme/flatui/js/script.js index 71601cc67..9dc09a611 100644 --- a/httpdocs/theme/flatui/js/script.js +++ b/httpdocs/theme/flatui/js/script.js @@ -1,2438 +1,2438 @@ /** * ocs-webserver * * Copyright 2016 by pling GmbH. * * This file is part of ocs-webserver. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . **/ var newProductPage = (function () { return { setup: function () { function adjustScrollableContentHeight() { var pling_box_height = $('#pling-it-box').height(); $('.scrollable-content').height(pling_box_height); $('.scrollable-content').jScrollPane({ mouseWheelSpeed: 30 }); } function adjustSupportersHeight() { var comments_height = $('#donations-panel').find('#comments').height(); var supporters_height = $('#donations-panel').find('#supporters').height(); if (comments_height > supporters_height) { $('#donations-panel').find('#supporters').height(comments_height); } } $(document).ready(function () { adjustScrollableContentHeight(); adjustSupportersHeight(); $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) { adjustSupportersHeight(); }); }); } } })(); // only instantiate when needed to instantiate: var ImagePreview = { hasError: false, setup: function () { this.initProductPicture(); this.initTitlePicture(); this.initProfilePicture(); this.initProfilePictureBackground(); }, previewImage: function (input, img_id) { if (input.files && input.files[0]) { var reader = new FileReader(); var image = new Image(); var file = input.files[0]; reader.readAsDataURL(input.files[0]); reader.onload = function (_image) { var image_element = $('#' + img_id); image.src = _image.target.result; // url.createObjectURL(file); image.onload = function () { var w = this.width, h = this.height, t = file.type, // ext only: // file.type.split('/')[1], n = file.name, s = ~~(file.size / 1024); // + 'KB' ImagePreview.hasError = false; image_element.parent().parent().find('div.bg-danger').remove(); if (w > 2000 || w < 20 || h > 2000 || h < 20) { //image_element.attr('src', '').hide().parent().append('
Wrong image dimensions
'); image_element.parent().parent().append('
Wrong image dimensions
'); //input.val(null); //$(input).replaceWith(input = $(input).clone(true)); $($(input).closest('form')[0]).trigger('reset'); ImagePreview.hasError = true; } if (s > 2000) { //image_element.attr('src', '').hide().parent().append('
File too large
'); image_element.parent().parent().append('
File too large
'); //input.val(null); //$(input).replaceWith(input = $(input).clone(true)); $($(input).closest('form')[0]).trigger('reset'); ImagePreview.hasError = true; } var allowedExtensions = /(jpg|jpeg|png|gif)$/i; if(!allowedExtensions.exec(t)) { image_element.parent().parent().append('
Invalid file type: ' + file.type + '
'); //input.val(null); //$(input).replaceWith(input = $(input).clone(true)); $($(input).closest('form')[0]).trigger('reset'); ImagePreview.hasError = true; } if (false == ImagePreview.hasError) { ImagePreview.hasError = false; image_element.attr('src', _image.target.result); image_element.show(); } }; image.onerror = function () { image_element.parent().parent().find('div.bg-danger').remove(); image_element.parent().parent().append('
Invalid file type: ' + file.type + '
'); }; //image_element.attr('src', _image.target.result); //image_element.show(); if (img_id == 'product-picture-preview') { $('button#add-product-picture').text('CHANGE LOGO'); } else if (img_id == 'title-picture-preview') { $('button#add-title-picture').text('CHANGE BANNER'); } else if (img_id == 'profile-picture-preview') { $('button#add-profile-picture').text('CHANGE PICTURE'); $('input#profile_img_src').val('local'); } else if (img_id == 'profile-picture-bg-preview') { $('button#add-profile-picture-background').text('CHANGE PICTURE'); } }; } }, previewImageMember: function (input, img_id) { if (input.files && input.files[0]) { var reader = new FileReader(); var image = new Image(); var file = input.files[0]; reader.readAsDataURL(input.files[0]); reader.onload = function (_image) { var image_element = $('#' + img_id); image.src = _image.target.result; // url.createObjectURL(file); image.onload = function () { ImagePreview.hasError = false; image_element.parent().find('.image-error').remove(); if (false == ImagePreview.hasError) { image_element.attr('src', _image.target.result); image_element.show(); } }; image.onerror = function () { image_element.parent().append('
Invalid file type
'); }; if (img_id == 'profile-picture-background-preview') { $('button#add-profile-picture-background').text('CHANGE PICTURE'); } }; } }, readImage: function (file) { var reader = new FileReader(); var image = new Image(); reader.readAsDataURL(file); reader.onload = function (_file) { image.src = _file.target.result; // url.createObjectURL(file); image.onload = function () { var w = this.width, h = this.height, t = file.type, // ext only: // file.type.split('/')[1], n = file.name, s = ~~(file.size / 1024) + 'KB'; $('#uploadPreview').append(' ' + w + 'x' + h + ' ' + s + ' ' + t + ' ' + n + '
'); }; image.onerror = function () { alert('Invalid file type: ' + file.type); }; }; }, initProductPicture: function () { if ($('#image_small').length == 0) { return; } if ($('#image_small').attr('value').length == 0) { return; } var imageTarget = $('#image_small').data('target'); $(imageTarget).attr('src', 'https://cn.opendesktop.org/cache/200x200-2/img/' + $('#image_small').attr('value')); $(imageTarget).show(); $('button#add-product-picture').text('CHANGE LOGO'); }, initTitlePicture: function () { if ($('#image_big').length == 0) { return; } if ($('#image_big').attr('value').length == 0) { return; } var imageTarget = $('#image_big').data('target'); $(imageTarget).attr('src', 'https://cn.opendesktop.org/cache/200x200-2/img/' + $('#image_big').attr('value')); $(imageTarget).show(); $('button#add-title-picture').text('CHANGE BANNER'); }, initProfilePicture: function () { if ($('#profile_image_url').length == 0) { return; } if ($('#profile_image_url').attr('value').length == 0) { return; } var imageTarget = $('#profile_image_url').data('target'); $(imageTarget).attr('src', $('#profile_image_url').attr('value')); $('#profile-picture').attr('src', $('#profile_image_url').attr('value')); $(imageTarget).show(); $('button#add-profile-picture').text('CHANGE PICTURE'); }, initProfilePictureBackground: function () { if ($('#profile_image_url_bg').length == 0) { return; } if ($('#profile_image_url_bg').attr('value').length == 0) { return; } var imageTarget = $('#profile_image_url_bg').data('target'); $(imageTarget).attr('src', $('#profile_image_url_bg').attr('value')); $('#profile-picture-background-preview').attr('src', $('#profile_image_url_bg').attr('value')); $(imageTarget).show(); $('button#add-profile-picture-background').text('CHANGE PICTURE'); } }; var MenuHover = (function () { return { setup: function () { $('body').on('click', 'a#login-dropdown', function (event) { event.stopPropagation(); $('.header-login-container').toggleClass('active'); }).on('click', '.header-login-container', function (event) { event.stopPropagation(); }).on('click', 'a.menu-trigger', function (event) { event.stopPropagation(); var html_menu_element = '.' + $(this).attr('rel'); $(html_menu_element).toggleClass('active'); }).on('mouseup', function (event) { var container = $('ul.profile-menu'); var trigger = $('li.profile-menu-container a.menu-trigger'); if (trigger.is(event.target)) { return; } if (!container.is(event.target) // if the target of the click isn't the container... && container.has(event.target).length === 0) // ... nor a descendant of the container { container.removeClass('active'); } }).on('mouseup', function (event) { container = $('div.header-login-container'); trigger = $('a#login-dropdown'); if (trigger.is(event.target)) { return; } if (!container.is(event.target) // if the target of the click isn't the container... && container.has(event.target).length === 0) // ... nor a descendant of the container { container.removeClass('active'); } }).click(function () { $('.header-login-container.active').removeClass('active'); $('.profile-menu.active').removeClass('active'); }); } }; })(); var ButtonCode = (function () { return { setup: function () { $('#button-code-heading').click(function () { if ($(this).hasClass('button-code-active')) { $(this).removeClass('button-code-active'); $(this).parent().find('.button-code').slideUp('fast'); $(this).parent().find('.button-code').css('border-bottom', 'none'); $(this).find('.icon-expand-code').css('background-image', 'url(img/icon-expand.png)'); } else { $(this).addClass('button-code-active'); $(this).parent().find('.button-code').css('border-bottom', '1px solid #bdc3c7'); $(this).parent().find('.button-code').slideDown('fast'); $(this).find('.icon-expand-code').css('background-image', 'url(img/icon-contract.png)'); } }) }, setupClipboardCopy: function (containerId) { $(containerId).on('mouseover', function () { $(this).off('mouseover'); $(this).find('[data-clipboard-target]').each(function () { var clipboardTarget = $($(this).attr('data-clipboard-target')); $(this).zclip({ path: '/theme/flatui/js/lib/ZeroClipboard.swf', copy: $.trim($(clipboardTarget).text()) }); }); }); } }; })(); var ProductPage = (function () { return { setup: function () { $(".dropdown-toggle").dropdown(); $('.scroll-pane').jScrollPane({ mouseWheelSpeed: 30, animateScroll: true }); $('.love-it').on('click', function () { this_img_src = $(this).find('img').attr('src'); if (!$(this).hasClass('no-login') && this_img_src != '/theme/flatui/img/icon-like-color.png') { $(this).prev('.share-it').trigger('click'); } }); $('.payment-options').find('.options').find('span.option').on('click', function () { var this_number = $(this).attr('title'); var number_input = $('.payment-options').find('input[type="number"]'); number_input.attr('value', this_number).val(this_number); number_input.focus(); $('.options').find('.selected').removeClass('selected'); $(this).addClass('selected'); }); }, setupPlingButton: function () { $('#pling-amount').on('focus', function () { $('#pling-amount').popover('destroy'); }); $('#pling-start').on('click', function (event) { validateElement = $('#pling-amount'); validateValue = validateElement.val(); if (validateValue == '' || (isNaN(parseFloat(validateValue)) || !isFinite(validateValue))) { event.preventDefault(); $('#pling-amount').popover({ placement: 'bottom', html: 'true', content: '
Donation must be a numeric value.
' }).popover('show'); return false; } minValue = validateElement.attr('min'); if (parseFloat(validateValue) < parseFloat(minValue)) { event.preventDefault(); $('#pling-amount').popover({ placement: 'bottom', html: 'true', content: '
Donation must be equal or greater than ' + minValue + '.
' }).popover('show'); return false; } maxValue = validateElement.attr('max'); if (parseFloat(validateValue) > parseFloat(maxValue)) { event.preventDefault(); $('#pling-amount').popover({ placement: 'bottom', html: 'true', content: '
Donation must be smaller or equal than ' + maxValue + '.
' }).popover('show'); return false; } }); function minmax(value, min, max) { if (parseInt(value) < 0 || isNaN(value)) return 0; else if (parseInt(value) > 100) return 100; else return value; } } } })(); var SlideShowRender = (function () { return { setup: function () { // add the active class to the first image $('#slideshow-container').find('img:first').addClass('active'); $('#slideshow-container').find('#navigation').find('a:first').addClass('active'); // trigger slideshow //SlideShow.setup(); } } })(); var ProductSlideShow = (function () { return { setup: function () { // arrows function $('#slideshow-container').find('#arrows').find('a').on('click', function (e) { var this_id = $(this).attr('id'); var slides = $('#slideshow-container #slides'); var current_img = slides.find('img.active'); var current_img_rel = current_img.attr('rel'); var current_nav_link = $('#slideshow-container').find('#navigation').find('a.active'); if (this_id == 'prev') { var prev_img_rel = parseInt(current_img_rel) - parseInt(1); var next_active_img = $('#slideshow-container').find('img[rel="' + prev_img_rel + '"]'); var next_active_nav_link = $('#slideshow-container').find('#navigation').find('a[rel="' + prev_img_rel + '"]'); if (!next_active_img.size() == 1) { var next_active_img = slides.find('img:last'); var next_active_nav_link = $('#slideshow-container').find('#navigation').find('a:last'); } } else if (this_id == 'next') { var next_img_rel = parseInt(current_img_rel) + parseInt(1); var next_active_img = $('#slideshow-container').find('img[rel="' + next_img_rel + '"]'); var next_active_nav_link = $('#slideshow-container').find('#navigation').find('a[rel="' + next_img_rel + '"]'); if (!next_active_img.size() == 1) { var next_active_img = slides.find('img:first'); var next_active_nav_link = $('#slideshow-container').find('#navigation').find('a:first'); } } current_img.removeClass('active'); current_nav_link.removeClass('active'); next_active_img.addClass('active'); next_active_nav_link.addClass('active'); //clearTimeout(slideShowInterval); //SlideShow.setup(); }); // navigation function $('#slideshow-container').find('#navigation').find('a').on('click', function () { var this_rel = $(this).attr('rel'); var this_image = $('#slideshow-container').find('img[rel="' + this_rel + '"]'); $('#slideshow-container').find('img.active').removeClass('active'); this_image.addClass('active'); $('#slideshow-container').find('#navigation').find('a.active').removeClass('active'); $(this).addClass('active'); }); } } })(); var SlideShow = (function () { return { setup: function () { slideShowInterval = setTimeout(function () { var current_img = $('#slideshow-container').find('img.active'); var current_img_rel = current_img.attr('rel'); var next_img_rel = parseInt(current_img_rel) + parseInt(1); var next_img = $('#slideshow-container').find('img[rel="' + next_img_rel + '"]'); var current_nav_link = $('#slideshow-container').find('#navigation').find('a.active'); current_img.removeClass('active'); current_nav_link.removeClass('active'); if (next_img.size() == 1) { next_img.addClass('active'); $('#slideshow-container').find('#navigation').find('a[rel="' + next_img_rel + '"]').addClass('active'); } else { $('#slideshow-container').find('img:first').addClass('active'); $('#slideshow-container').find('#navigation').find('a:first').addClass('active'); } //SlideShow.setup(); }, 4000); } } })(); var Popuppanel = (function () { return { setup: function () { $('body').on('click', 'a.popuppanel', function (event) { if ($(this).attr('target') === "_blank"){ console.log('dont prevent default'); } else { event.preventDefault(); var hf = $(this).attr('href'); $.fancybox({ 'hideOnContentClick': true, 'autoScale': true, 'cyclic': 'true', 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'type': 'iframe', 'scrolling': 'auto', helpers: { overlay: { locked: false } }, autoSize: true, href: hf, type: 'ajax' }); } }); } } })(); var PlingsRedirect = (function () { return { setup: function () { if(window.location.hash) { $link = $(window.location.hash); $link.trigger("click"); } else if (document.location.hash) { $link = $(document.location.hash); $link.trigger("click"); } } } })(); var ShowPopups = (function () { return { setup: function () { if(window.location.hash) { alert('Hash'); $('a[href="' + document.location.hash + '"]').trigger("click"); } if (document.location.hash) { alert('Hash'); $('a[href="' + document.location.hash + '"]').trigger("click"); } } } })(); /** PRODUCT PAGE **/ // tool tips $('body').on('mouseenter', '.supporter-thumbnail', function () { $(this).popover('show'); }); $('body').on('mouseleave', '.supporter-thumbnail', function () { $(this).popover('hide'); }); var Partials = (function () { return { setup: function () { $('body').on('click', 'a.partial', function (event) { event.preventDefault(); var url = this.href; var target = $(this).attr("data-target"); var toggle = $(this).data('toggle'); var pageFragment = $(this).attr("data-fragment"); $(target).load(url + ' ' + pageFragment, function (response, status, xhr) { if (status == "error") { if (xhr.status == 401) { if (response) { var data = jQuery.parseJSON(response); var redirect = data.login_url; if (redirect) { window.location = redirect; } else { window.location = "/login"; } } } else { $(target).empty().html('Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.'); } } if (toggle) { $(toggle).modal('show'); } }); return false; }); } } })(); var Opendownloadfile= (function () { return { setup: function () { $('body').on('click', 'a.opendownloadfile', function (event) { event.preventDefault(); var file_id = $(this).attr("data-file_id"); var file_type = $(this).attr('data-file_type'); var file_name = $(this).attr('data-file_name'); var file_size = $(this).attr('data-file_size'); var project_id = $(this).attr('data-project_id'); var link_type = $(this).attr('data-link_type'); $.fancybox({ 'hideOnContentClick': true, 'autoScale': true, 'scrolling' : 'no', 'cyclic': 'true', 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'type': 'iframe', - 'width':'300', - 'height':'200', + 'width':'600', + 'height':'auto', 'iframe': {'scrolling': 'no'}, 'autoSize':false, 'id': 'opendownloadfilepopup', helpers: { overlay: { locked: false } }, href:'/dl?file_id='+file_id+'&file_type='+file_type+'&file_name='+file_name+'&file_size='+file_size+'&project_id='+project_id+'&link_type='+link_type }); return false; }); } } })(); var PartialsButton = (function () { return { setup: function () { $('body').on('click', 'Button.partialbutton', function (event) { event.preventDefault(); var url = $(this).attr("data-href"); var target = $(this).attr("data-target"); var toggle = $(this).data('toggle'); var pageFragment = $(this).attr("data-fragment"); var spin = $(''); $(target).append(spin); $(target).load(url + ' ' + pageFragment, function (response, status, xhr) { if (status == "error") { if (xhr.status == 401) { if (response) { var data = jQuery.parseJSON(response); var redirect = data.login_url; if (redirect) { window.location = redirect; } else { window.location = "/login"; } } } else { $(target).empty().html('Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.'); } } if (toggle) { $(toggle).modal('show'); } }); return false; }); } } })(); var PartialsButtonHeartDetail = (function () { return { setup: function () { $('body').on('click', '.partialbuttonfollowproject', function (event) { event.preventDefault(); var url = $(this).attr("data-href"); var target = $(this).attr("data-target"); var auth = $(this).attr("data-auth"); var toggle = $(this).data('toggle'); var pageFragment = $(this).attr("data-fragment"); if (!auth) { $('#like-product-modal').modal('show'); return; } // product owner not allow to heart copy from voting.... var loginuser = $('#like-product-modal').find('#loginuser').val(); var productcreator = $('#like-product-modal').find('#productcreator').val(); if (loginuser == productcreator) { // ignore $('#like-product-modal').find('#votelabel').text('Project owner not allowed'); $('#like-product-modal').find('.modal-body').empty(); $('#like-product-modal').modal('show'); return; } var spin = $(''); $(target).prepend(spin); $.ajax({ url: url, cache: false }) .done(function( response ) { $(target).find('.spinning').remove(); if(response.status =='error'){ $(target).html( response.msg ); }else{ if(response.action=='delete'){ //$(target).find('.likelabel').html(response.cnt +' Likes'); $(target).find('.plingtext').html(response.cnt); $(target).find('.plingtext').addClass('heartnumberpurple'); $(target).find('.plingheart').removeClass('heartproject').addClass('heartgrey'); $(target).find('.plingheart').removeClass('fa-heart').addClass('fa-heart-o'); }else{ //$(target).find('.likelabel').html(response.cnt +' Likes'); $(target).find('.plingtext').html(response.cnt); //$(target).find('.plingtext').html(response.cnt+' Fans'); $(target).find('.plingtext').removeClass('heartnumberpurple'); $(target).find('.plingheart').removeClass('heartgrey').addClass('heartproject'); $(target).find('.plingheart').removeClass('fa-heart-o').addClass('fa-heart'); } } }); return false; }); } } })(); var PartialsButtonPlingProject = (function () { return { setup: function () { $('#plingbtn').hover(function(){ $(this).attr('src','/images/system/pling-btn-hover.png'); }, function(){ $(this).attr('src',$(this).attr('data-src')); }); $('body').on('click', '.partialbuttonplingproject', function (event) { event.preventDefault(); var url = $(this).attr("data-href"); var target = $(this).attr("data-target"); var auth = $(this).attr("data-auth"); var issupporter = $(this).attr("data-issupporter"); var toggle = $(this).data('toggle'); var pageFragment = $(this).attr("data-fragment"); if (!auth) { $('#like-product-modal').modal('show'); return; } // product owner not allow to heart copy from voting.... var loginuser = $('#like-product-modal').find('#loginuser').val(); var productcreator = $('#like-product-modal').find('#productcreator').val(); if (loginuser == productcreator) { // ignore $('#like-product-modal').find('#votelabel').text('Project owner not allowed'); $('#like-product-modal').find('.modal-body').empty(); $('#like-product-modal').modal('show'); return; } if (!issupporter) { // ignore $('#like-product-modal').find('#votelabel').html('
To pling a product and help the artist please consider becoming a supporter. Thanks!

Become a supporter
'); $('#like-product-modal').modal('show'); return; } $(target).find('.plingnum').html(''); $.ajax({ url: url, cache: false }) .done(function( response ) { //$(target).find('.spinning').remove(); if(response.status =='error'){ $(target).html( response.msg ); }else{ if(response.action=='delete'){ //pling deleted if(response.cnt==0) { $(target).find('.plingnum').html('Pling me'); }else { $(target).find('.plingnum').html(response.cnt+ ' Plings'); } $(target).find('#plingbtn').attr('src','/images/system/pling-btn-normal.png'); $(target).find('#plingbtn').attr('data-src','/images/system/pling-btn-normal.png'); }else{ //pling inserted $(target).find('.plingnum').html(response.cnt+ ' Plings'); $(target).find('#plingbtn').attr('src','/images/system/pling-btn-active.png'); $(target).find('#plingbtn').attr('data-src','/images/system/pling-btn-active.png'); } } }); return false; }); } } })(); var PartialsReview = (function () { return { setup: function () { $('body').on('click', 'a.partialreview', function (event) { event.preventDefault(); var url = this.href; var target = $(this).attr("data-target"); var toggle = $(this).data('toggle'); var pageFragment = $(this).attr("data-fragment"); // product owner not allow to vote var loginuser = $('#review-product-modal').find('#loginuser').val(); var productcreator = $('#review-product-modal').find('#productcreator').val(); if (loginuser == productcreator) { // ignore $('#review-product-modal').find('#votelabel').text('Project owner not allowed'); $('#review-product-modal').find('.modal-body').empty(); $('#review-product-modal').modal('show'); return; } var userrate = $('#review-product-modal').find('#userrate').val(); // -1 = no rate yet. 0= dislike 1=like if ($(this).hasClass("voteup")) { if (userrate == 1) { $('#review-product-modal').find('#votelabel').empty() .append(' is given already with comment:'); $('#review-product-modal').find('#commenttext').val($('#review-product-modal').find('#otxt').val()); //$('#review-product-modal').find(':submit').attr("disabled", "disabled").css("display", "none"); //$('#review-product-modal').find('#commenttext').attr("disabled", "disabled"); $('#review-product-modal').find(':submit').text("Remove Rating"); } else { $('#review-product-modal').find('input#voteup').val(1); $('#review-product-modal').find('#votelabel').empty() .append(' Add Comment (min. 1 char):'); $('#review-product-modal').find('#commenttext').val('+'); $('#review-product-modal').find(':submit').text("Rate Now"); $('#review-product-modal').find('#commenttext').removeAttr("disabled"); $('#review-product-modal').find(':submit').css("display", "block").removeAttr("disabled"); } } else { // vote down if (userrate == 0) { $('#review-product-modal').find('#votelabel').empty() .append(' is given already with comment: '); $('#review-product-modal').find('#commenttext').val($('#review-product-modal').find('#otxt').val()); // $('#review-product-modal').find('#commenttext').attr("disabled", "disabled"); // $('#review-product-modal').find(':submit').attr("disabled", "disabled").css("display", "none"); $('#review-product-modal').find(':submit').text("Remove Rating"); } else { $('#review-product-modal').find('input#voteup').val(2); $('#review-product-modal').find('#votelabel').empty() .append(' Add Comment (min. 5 char) Please explain the reason for downvote to help the creator to make it better '); $('#review-product-modal').find('#commenttext').val('-'); $('#review-product-modal').find('#commenttext').removeAttr("disabled"); $('#review-product-modal').find(':submit').removeAttr("disabled").css("display", "block"); $('#review-product-modal').find(':submit').text("Rate Now"); } } $('#review-product-modal').modal('show'); if ($('#review-product-modal').hasClass('noid')) { setTimeout(function () { $('#review-product-modal').modal('hide'); }, 2000); } return false; }); } } })(); var PartialsReviewDownloadHistory = (function () { return { setup: function () { $('body').on('click', 'button.partialReviewDownloadHistory', function (event) { event.preventDefault(); var userrate = $(this).attr("data-userrate"); // -1 = no rate yet. 0= dislike 1=like $('#review-product-modal').find('#commenttext').val($(this).attr("data-comment")); $('#review-product-modal').find('#form_p').val($(this).attr("data-project")); if ($(this).hasClass("voteup")) { if (userrate == 1) { $('#review-product-modal').find('#votelabel').empty() .append(' is given already with comment:'); $('#review-product-modal').find(':submit').attr("disabled", "disabled").css("display", "none"); $('#review-product-modal').find('#commenttext').attr("disabled", "disabled"); } else { $('#review-product-modal').find('input#voteup').val(1); $('#review-product-modal').find('#votelabel').empty() .append(' Add Comment (min. 1 char):'); $('#review-product-modal').find('#commenttext').val('+'); $('#review-product-modal').find('#commenttext').removeAttr("disabled"); $('#review-product-modal').find(':submit').css("display", "block").removeAttr("disabled"); } } else { // vote down if (userrate == 0) { $('#review-product-modal').find('#votelabel').empty() .append(' is given already with comment: '); $('#review-product-modal').find('#commenttext').attr("disabled", "disabled"); $('#review-product-modal').find(':submit').attr("disabled", "disabled").css("display", "none"); } else { $('#review-product-modal').find('input#voteup').val(2); $('#review-product-modal').find('#votelabel').empty() .append(' Add Comment (min. 5 chars): '); $('#review-product-modal').find('#commenttext').val('-'); $('#review-product-modal').find('#commenttext').removeAttr("disabled"); $('#review-product-modal').find(':submit').removeAttr("disabled").css("display", "block"); } } $('#review-product-modal').modal('show'); if ($('#review-product-modal').hasClass('noid')) { setTimeout(function () { $('#review-product-modal').modal('hide'); }, 2000); } return false; }); } } })(); var PartialForms = (function () { return { setup: function () { $('body').on("submit", 'form.partial', function (event) { event.preventDefault(); event.stopImmediatePropagation(); $(this).find(':submit').attr("disabled", "disabled"); $(this).find(':submit').css("white-space", "normal"); var spin = $(''); $(this).find(':submit').append(spin); var target = $(this).attr("data-target"); var trigger = $(this).attr("data-trigger"); console.log(this); jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); return false; }, success: function (results) { $(target).empty().html(results); $(target).find(trigger).trigger('click'); return false; } }); return false; }); } } })(); var PartialJson = (function () { return { setup: function () { $('body').on("submit", 'form.partialjson', function (event) { event.preventDefault(); event.stopImmediatePropagation(); var target = $(this).attr("data-target"); var trigger = $(this).attr("data-trigger"); jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, dataType: "json", error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); }, success: function (data, textStatus) { if (data.redirect) { // data.redirect contains the string URL to redirect to window.location = data.redirect; return; } if (target) { // data.message contains the HTML for the replacement form $(target).empty().html(data.message); } if (trigger) { $(target).find(trigger).trigger('click'); } } }); return false; }); } } })(); var PartialJsonFraud = (function () { return { setup: function () { $('body').on("submit", 'form.partialjsonfraud', function (event) { event.preventDefault(); event.stopImmediatePropagation(); var target = $(this).attr("data-target"); var trigger = $(this).attr("data-trigger"); var text = $('form.partialjsonfraud').find('#report-text').val(); if(text.length<5) { $('form.partialjsonfraud').find('p.warning').remove(); $('form.partialjsonfraud').find('#report-text').parent().append('

at least 5 chars

'); return false; } jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, dataType: "json", error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); }, success: function (data, textStatus) { if (data.redirect) { // data.redirect contains the string URL to redirect to window.location = data.redirect; return; } if (target) { // data.message contains the HTML for the replacement form $(target).empty().html(data.message); } if (trigger) { $(target).find(trigger).trigger('click'); } } }); return false; }); } } })(); var PartialPayPal = (function () { return { setup: function () { this.initPayPalForm(); this.initPayPalFee(); }, initPayPalForm: function () { $('body').on("submit", 'form.partialpaypal', function (event) { event.preventDefault(); event.stopImmediatePropagation(); var target = $(this).attr("data-target"); var trigger = $(this).attr("data-trigger"); jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, error: function (jqXHR, textStatus, errorThrown) { $('#modal-dialog').modal('hide'); var msgBox = $(''); msgBox.html($(jqXHR.responseText).filter('.page-container').children()); msgBox.append(''); setTimeout(function () { msgBox.modal('show'); }, 900); }, success: function (results) { $(target).empty().html(results); $(target).find(trigger).trigger('click'); $('#modal-dialog').modal('hide'); } }); return false; }); }, initPayPalFee: function () { $('body').on("change", '#amount_plings', function (event) { PartialPayPal.changeFee(); }); }, changeFee: function () { var e = document.getElementById('amount_plings'); var value = parseFloat(e.value); var pling_fee = this.round((value) * 0.05, 2); var pling_sum = (pling_fee) + (value); var paypal_fee = (pling_sum + 0.3) * 0.03 + 0.3; paypal_fee = this.round(paypal_fee, 2); var sum = value + pling_fee + paypal_fee; document.getElementById('pling_fee').value = this.round(pling_fee, 2).toFixed(2); document.getElementById('paypal_fee').value = this.round(paypal_fee, 2).toFixed(2); document.getElementById('sum').value = this.round(sum, 2); }, round: function (x, n) { var a = Math.pow(10, n); return (Math.round(x * a) / a); } } })(); var PartialCommentReviewForm = (function () { return { setup: function () { this.initForm(); }, initForm: function () { $('body').on("submit", 'form.product-add-comment-review', function (event) { event.preventDefault(); event.stopImmediatePropagation(); var c = $.trim($('#commenttext').val()); var v = $('#voteup').val(); if(v==2) { // votedown if(c.length<5) { if($('#review-product-modal').find('#votelabel').find('.warning').length==0) { $('#review-product-modal').find('#votelabel').append("
Please give a comment, thanks!"); } return; } } if(c.length<1) { if($('#review-product-modal').find('#votelabel').find('.warning').length==0) { $('#review-product-modal').find('#votelabel').append("
Please give a comment, thanks!"); } return; } $(this).find(':submit').attr("disabled", "disabled"); $(this).find(':submit').css("white-space", "normal"); var spin = $(''); $(this).find(':submit').append(spin); jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, error: function (jqXHR, textStatus, errorThrown) { $('#review-product-modal').modal('hide'); var msgBox = $('#generic-dialog'); msgBox.modal('hide'); msgBox.find('.modal-header-text').empty().append('Please try later.'); msgBox.find('.modal-body').empty().append("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); setTimeout(function () { msgBox.modal('show'); }, 900); }, success: function (results) { $('#review-product-modal').modal('hide'); location.reload(); } }); return false; }); } } })(); var PartialFormsAjax = (function () { return { setup: function () { var form = $('form.partialajax'); var target = form.attr("data-target"); var trigger = form.attr("data-trigger"); $(form).find(':submit').on('click', function (e) { e.preventDefault(); $(form).find(':submit').attr("disabled", "disabled"); $(form).find(':submit').css("white-space", "normal"); var spin = $(''); $(form).find(':submit').append(spin); $(form).submit(); }); form.ajaxForm({ error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); }, success: function (results) { $(target).empty().html(results); $(target).find(trigger).trigger('click'); } }); } } })(); var AjaxFormWithProgress = (function () { return { setup: function (idForm) { var form = $(idForm); var target = form.attr("data-target"); var trigger = form.attr("data-trigger"); var bar = form.find('.progress-bar'); var percent = form.find('.progress-percent'); $(form).find(':submit').on('click', function (e) { e.preventDefault(); $(form).find(':submit').attr("disabled", "disabled"); $(form).find(':submit').css("white-space", "normal"); var spin = $(''); $(form).find(':submit').append(spin); $(form).submit(); }); form.ajaxForm({ beforeSend: function() { var percentVal = '0%'; bar.parent().removeClass('hidden'); bar.width(percentVal); percent.html(percentVal); }, uploadProgress: function(event, position, total, percentComplete) { var percentVal = percentComplete + '%'; bar.width(percentVal); percent.html(percentVal); }, error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); }, success: function (results) { var percentVal = '100%'; bar.width(percentVal); percent.html(percentVal); $(target).empty().html(results); $(target).find(trigger).trigger('click'); } }); } } })(); var PartialFormsAjaxMemberBg = (function () { return { setup: function () { var form = $('form.partialajaxbg'); var target = form.attr("data-target"); var trigger = form.attr("data-trigger"); $(form).find(':submit').on('click', function (e) { e.preventDefault(); $(form).find(':submit').attr("disabled", "disabled"); $(form).find(':submit').css("white-space", "normal"); var spin = $(''); $(form).find(':submit').append(spin); $(form).submit(); }); form.ajaxForm({ error: function () { $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"); }, success: function (results) { $(target).empty().html(results); $(target).find(trigger).trigger('click'); } }); } } })(); var AjaxForm = (function () { return { setup: function (idElement, idTargetElement) { var target = $(idTargetElement); $('body').on("submit", 'form.product-add-comment', function (event) { event.preventDefault(); event.stopImmediatePropagation(); $(this).find('button').attr("disabled", "disabled"); $(this).find('.glyphicon.glyphicon-send').removeClass('glyphicon-send').addClass('glyphicon-refresh spinning'); jQuery.ajax({ data: $(this).serialize(), url: this.action, type: this.method, dataType: "json", error: function (jqXHR, textStatus, errorThrown) { var results = JSON && JSON.parse(jqXHR.responseText) || $.parseJSON(jqXHR.responseText); var msgBox = $('#generic-dialog'); msgBox.modal('hide'); msgBox.find('.modal-header-text').empty().append(results.title); msgBox.find('.modal-body').empty().append(results.message); setTimeout(function () { msgBox.modal('show'); }, 900); }, success: function (results) { if (results.status == 'ok') { $(target).empty().html(results.data); } if (results.status == 'error') { if (results.message != '') { alert(results.message); } else { alert('Service is temporarily unavailable.'); } } } }); return false; }); } } })(); var WidgetModalAjax = (function () { return { setup: function () { $('.my-product-item').find('a.widget-button').on('click', function () { var this_rel = $(this).attr('rel'); var this_product_id = this_rel.split('product')[1]; var target = $('.modal-body#widget-code-' + this_rel); $.ajax({ url: '/widget/config/' + this_product_id, type: 'html', success: function (results) { target.prepend(results); angular.bootstrap(target, ['widgetApp']); } }); }); } } })(); var LoginContainer = (function () { return { update: function () { if (!Date.now) { Date.now = function () { return new Date().getTime(); } } var timestamp = Date.now() / 1000 | 0; var target = '#login_container'; var url = '/authorization/htmllogin?' + timestamp; $(target).load(url, function (response, status, xhr) { // nothing to do }); } } })(); var RssNews = (function () { return { setup: function () { var json_url = "https://blog.opendesktop.org/?json=1&callback=?"; $.getJSON(json_url, function (res) { var crss = ''; $.each(res.posts, function (i, item) { if (i >= 3) { return false; } var m = moment(item.date); crss += '
' + item.title + '
' + '' + m.format('MMM DD YYYY') + ''+ item.comments.length +' Comment'+(item.comments.length>1?'s':'') +'
'; }); $("#rss-feeds").html(crss); }); } } })(); var BlogJson = (function () { return { setup: function () { var urlforum = 'https://forum.opendesktop.org/'; var json_url =urlforum+'latest.json'; $.ajax(json_url).then(function (result) { var topics = result.topic_list.topics; var crss = ''; var count =3; topics.sort(function(a,b){ return new Date(b.last_posted_at) - new Date(a.last_posted_at); }); $.each(topics, function (i, item) { if(!item.pinned){ var m = moment(item.last_posted_at); var r = 'Reply'; var t = item.posts_count -1; if(t==0){ r = 'Replies'; }else if(t==1){ r = 'Reply'; }else{ r = 'Replies'; } crss += '
' + item.title + '
' + '' + m.fromNow() + ''+ t +' '+ r +'
'; count--; } if(count==0) return false; }); $("#blogJson").html(crss); }); } } })(); var GitlabNewProjectsJson = (function () { return { setup: function (url_git) { var json_url = url_git+'/api/v4/projects?order_by=created_at&sort=desc&visibility=public&page=1&per_page=5'; $.ajax(json_url).then(function (result) { var topics = result; var crss = ''; $.each(topics, function (i, item) { var m = moment(item.created_at); crss += ''; }); $("#lastgitprojects").html(crss); }); } } })(); function showGitUserAvatar(url_git,username, projectid) { var json_url = url_git+'/api/v4/users?username=' + username; $.ajax(json_url).then(function (result) { var usr_list = result; $.each(usr_list, function (i,usr) { $img = $('#avatar_' + username + '_' + projectid); //alert(usr); //alert($img.attr('src')); $img.attr('src',usr.avatar_url); //alert($img.attr('src')); }); }); } var ProductDetailCarousel = (function () { return { setup: function () { $('.carousel-inner img').each(function (index) { $(this).on("click", function () { if ($("#product-main-img-container").hasClass("imgfull")) { $('#product-main-img-container').prependTo($('#product-main')); } else { $('#product-main-img-container').prependTo($('#product-page-content')); } $("#product-main-img-container").toggleClass("imgfull"); $("#product-main-img-container").toggleClass("imgsmall"); }); }); } } })(); var AppimagequestionOnClick = (function () { return { setup: function (projectid) { $('body').on('click', 'i.appimagequestion', function (event) { var msgBox = $('#generic-dialog'); msgBox.modal('show'); msgBox.find('.modal-header-text').empty().append('AppImage Info'); msgBox.find('.modal-body').empty().append(""); }); } } })(); var ProductDetailBtnGetItClick = (function () { return { setup: function (projectid) { $('body').on('click', 'button#project_btn_download', function (event) { $.fancybox({ 'hideOnContentClick': true, 'autoScale': true, 'cyclic': 'true', 'transitionIn': 'elastic', 'transitionOut': 'elastic', 'type': 'ajax', helpers: { overlay: { locked: false } }, autoSize: true, href:'/p/'+projectid+'/ppload' }); }); } } })(); var GhnsExcludedClick = (function () { return { setup: function (projectid) { $('body').on('click', '#ghns_excluded-this-checkbox', function (event) { event.stopPropagation(); var status = 1; var title = ''; var btntxt = ''; if (this.checked) { status = 1; title = 'Please specify why this product should be excluded (min 5 chars) :'; btntxt=' ghns exclude'; } else { status = 0; title = 'Please specify why this product should be included (min 5 chars) :'; btntxt=' ghns include'; } var msgBox = $('#generic-dialog'); msgBox.modal('show'); msgBox.find('.modal-header-text').empty().append('GHNS '); msgBox.find('.modal-body').empty().append(title+ '

'); $('body').on("click", "#btn-ghns-excluded", function(){ var txt = $('#ghns-excluded-text').val(); if(txt.length<5) { alert('min 5 chars'); return false; } var project_id = $(this).attr('data-projectid'); var status = $(this).attr('data-status'); var target = "/backend/project/doghnsexclude"; $.ajax({ url: target, method:'POST', data:{'project_id':project_id,'ghns_excluded':status,'msg':txt}, success: function (results) { var msgBox = $('#generic-dialog'); if (status == 0) { msgBox.find('.modal-body').empty().append('Project is successfully included into GHNS'); $('#ghns_excluded-this-checkbox').prop("checked", false); } else { msgBox.find('.modal-body').empty().append('Project is successfully excluded into GHNS'); $('#ghns_excluded-this-checkbox').prop("checked", true); } setTimeout(function () { msgBox.modal('hide'); }, 1000); }, error: function () { alert('Service is temporarily unavailable.'); } }); }); return false; }); } } })(); var AboutMeMyProjectsPaging = (function () { return { setup: function () { $(window).scroll(function() { var end = $("footer").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300){ // } // if($(window).scrollTop() == $(document).height() - $(window).height()) { if(!$('button#btnshowmoreproducts').length) return; let indicator = ''; let nextpage = $('button#btnshowmoreproducts').attr('data-page'); $('button#btnshowmoreproducts').remove(); $url = window.location.href; target = '#my-products-list'; let container = $('

').append(indicator).load($url,{projectpage:nextpage},function (response, status, xhr) { if (status == "error") { if (xhr.status == 401) { if (response) { var data = jQuery.parseJSON(response); var redirect = data.login_url; if (redirect) { window.location = redirect; } else { window.location = "/login"; } } } else { $(target).empty().html('Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.'); } } }); $('#my-products-list').append(container); } }); } } })(); var AboutMeMyProjectsPagingButton = (function () { return { setup: function () { let indicator = ''; $('body').on('click', 'button#btnshowmoreproducts', function (event) { let nextpage = $(this).attr('data-page'); $(this).remove(); $url = window.location.href; target = '#my-products-list'; let container = $('
').append(indicator).load($url,{projectpage:nextpage},function (response, status, xhr) { if (status == "error") { if (xhr.status == 401) { if (response) { var data = jQuery.parseJSON(response); var redirect = data.login_url; if (redirect) { window.location = redirect; } else { window.location = "/login"; } } } else { $(target).empty().html('Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.'); } } }); $('#my-products-list').append(container); }); } } })(); var ProductDetailCommentTooltip = (function () { return { setup: function () { TooltipUser.setup('tooltipuser','right'); } } })(); function generateTooltipster(elements,tooltipSide) { $(elements).each(function() { $(this).tooltipster( { side: tooltipSide, theme: ['tooltipster-light', 'tooltipster-light-customized'], contentCloning: true, contentAsHTML: true, interactive: true, functionBefore: function (instance, helper) { var origin = $(helper.origin); var userid = origin.attr('data-user'); if (origin.data('loaded') !== true) { $.get('/member/' + userid + '/tooltip/', function (data) { var d = data.data; var tmp = '
' + d.username + ' ' + d.countrycity + '
' + '
' + '
' + d.cntProjects + ' products
' + '
' + d.totalComments + ' comments
' + '
Likes ' + d.cntLikesGave + ' products
' + '
Got ' + d.cntLikesGot + ' Likes
' + '
Last time active : ' + d.lastactive_at + '
' + '
Member since : ' + d.created_at + '
' + '
'; tmp = tmp + '
'; instance.content(tmp); origin.data('loaded', true); }); } } } ); }); } var TooltipUser = (function () { return { setup: function (tooltipCls, tooltipSide) { $('.'+tooltipCls).tooltipster( { side: tooltipSide, theme: ['tooltipster-light', 'tooltipster-light-customized'], contentCloning: true, contentAsHTML: true, interactive: true, functionBefore: function (instance, helper) { var origin = $(helper.origin); var userid = origin.attr('data-user'); if (origin.data('loaded') !== true) { $.get('/member/' + userid + '/tooltip/', function (data) { var d = data.data; var tmp = '
' + d.username + ' ' + d.countrycity + '
' + '
' + '
' + d.cntProjects + ' products
' + '
' + d.totalComments + ' comments
' + '
Likes ' + d.cntLikesGave + ' products
' + '
Got ' + d.cntLikesGot + ' Likes
' + '
Last time active : ' + d.lastactive_at + '
' + '
Member since : ' + d.created_at + '
' + '
'; tmp = tmp + '
'; instance.content(tmp); origin.data('loaded', true); }); } } } ); } } })(); function generateTooltipUserPlings(elements,tooltipSide) { $(elements).each(function() { $(this).tooltipster( { side: tooltipSide, theme: ['tooltipster-light', 'tooltipster-light-customized'], contentCloning: true, contentAsHTML: true, interactive: true, functionBefore: function (instance, helper) { var origin = $(helper.origin); var userid = origin.attr('data-user'); if (origin.data('loaded') !== true) { $.get('/plings/tooltip/id/'+userid, function (data) { var tmp = '
'; $.each(data.data, function( index, value ) { if(index>10) return false; if(value.profile_image_url.indexOf('http')<0) { value.profile_image_url = "https://cn.opendesktop.org/cache/40x40-2/img/"+value.profile_image_url ; } if(value.profile_image_url.indexOf('.gif')>0) { value.profile_image_url = "https://cn.opendesktop.org/img/"+value.profile_image_url ; } tmp = tmp+'
'+value.username+'
'; }); tmp = tmp + '
'; instance.content(tmp); origin.data('loaded', true); }); } } } ); }); } var TooltipUserPlings = (function () { return { setup: function (tooltipCls, tooltipSide) { $('.'+tooltipCls).tooltipster( { side: tooltipSide, theme: ['tooltipster-light', 'tooltipster-light-customized'], contentCloning: true, contentAsHTML: true, interactive: true, functionBefore: function (instance, helper) { var origin = $(helper.origin); var userid = origin.attr('data-user'); if (origin.data('loaded') !== true) { $.get('/plings/tooltip/id/'+userid, function (data) { var tmp = '
'; $.each(data.data, function( index, value ) { if(index>10) return false; if(value.profile_image_url.indexOf('http')<0) { value.profile_image_url = "https://cn.opendesktop.org/cache/40x40-2/img/"+value.profile_image_url ; } if(value.profile_image_url.indexOf('.gif')>0) { value.profile_image_url = "https://cn.opendesktop.org/img/"+value.profile_image_url ; } tmp = tmp+'
'+value.username+'
'; }); tmp = tmp + '
'; instance.content(tmp); origin.data('loaded', true); }); } } } ); } } })(); var AboutMePage = (function () { return { setup: function (username) { var t = $(document).prop('title'); var tnew = username + "'s Profile " + t; $(document).prop('title', tnew); } } })(); var InitActiveHashTab = (function () { return { setup: function () { var activeTab = document.location.hash; if($('a[href="'+ activeTab +'"]')) { $('a[href="'+ activeTab +'"]').tab('show'); } } } })(); var CommunityTabToplistMemberScrollPaging= (function () { return { setup: function (paramEl,paramUrl) { $(window).scroll(function() { var end = $("footer").offset().top; var viewEnd = $(window).scrollTop() + $(window).height(); var distance = end - viewEnd; if (distance < 300){ if(!$('button#toplistmemberscrollshowmore').length) return; var indicator = ''; var nextpage = $('button#toplistmemberscrollshowmore').attr('data-page'); $('button#toplistmemberscrollshowmore').remove(); var pagingurl = paramUrl+"/nopage/1/page/"+nextpage; var $newdiv = $('
'); $(paramEl).find('.product-list').append($newdiv); $($newdiv).load(pagingurl,function (){ generateTooltipster($($newdiv).find('.tooltipuser'),"right"); }) } }); } } })(); var CommunityTab= (function () { return { setup: function () { var indicator = ''; $('body').on('click', 'a.communitytab', function (event) { event.preventDefault(); var el = $(this).attr('href'); var url = $(this).attr('data-href'); if($(el).find('.list').find('.user').length==0) { // only load once $(el).find('.list').append(indicator).load(url,function (){ generateTooltipster($(el).find('.tooltipuser'),"right"); if($(el).find('.tooltipuserplings').length>0) { generateTooltipUserPlings($(el).find('.tooltipuserplings'),"right"); } if(el=='#toplistMemberPanel') { CommunityTabToplistMemberScrollPaging.setup(el,url); } // paging let spans = $(el).find('.opendesktopwidgetpager span'); spans.each(function(index) { $(this).on("click", function(){ $(this).parent().addClass('active').siblings().removeClass('active'); var pagingurl = url+"/nopage/1/page/"+$(this).html(); $(el).find('.product-list').html(''); $(el).find('.product-list').load(pagingurl,function (){ generateTooltipster($(el).find('.tooltipuser'),"right"); if($(el).find('.tooltipuserplings').length>0) { generateTooltipUserPlings($(el).find('.tooltipuserplings'),"right"); }}) }); }); //end paging }); } }); var activeTab = document.location.hash; if($('a[href="'+ activeTab +'"]').length>0) { $('a[href="'+ activeTab +'"]').tab('show'); $('a[href="'+ activeTab +'"]').trigger( "click" ); }else { activeTab = "#supportersPanel"; $('a[href="'+ activeTab +'"]').trigger( "click" ); } $('body').on('mouseenter', '.product-thumbnail-startpage', function () { $(this).popover('show'); }); $('body').on('mouseleave', '.product-thumbnail-startpage', function () { $(this).popover('hide'); }); } } })(); var TagingProduct = (function () { return { setup: function () { $('input[name=tagsuser]') .tagify({ whitelist: ['good', 'great'], autocomplete:true }) .on('remove', function(e, tagName){ console.log('removed', tagName) }) .on('add', function(e, tagName){ console.log('added', tagName) }); } } })(); var TagingProductSelect2 = (function () { return { setup: function () { $.fn.select2.amd.require(['select2/selection/search'], function (Search) { Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(''); this.handleSearch(); }; }, null, true); var t = $(".taggingSelect2").select2({ placeholder: "Add Tags here ...", //placeholder tags: true, tokenSeparators: [",", " "], minimumInputLength: 3, maximumSelectionLength: 5, width: 'resolve', ajax: { url: '/tag/filter', dataType: 'json', type: "GET", delay: 500, // wait 250 milliseconds before triggering the request processResults: function (data) { return { results : data.data.tags }; } } }); // Bind an event t.on('select2:select', function (e) { var data = e.params.data; var projectid = $("#tagsuserselect").attr('data-pid'); var lis = t.parent().find('ul.select2-selection__rendered').find('li.select2-selection__choice').length; if(lis>5){ t.find("option[value='"+data.id+"']").remove(); return; } var regexp=new RegExp("^[0-9A-Za-z_.-]+$"); if(!(regexp.test(data.text))){ t.find("option[value='"+data.id+"']").remove(); alert('Must be letter or number and can include hyphens'); } if(data.text.length>10){ t.find("option[value='"+data.id+"']").remove(); alert('Max. length 45 chars'); } }); } } })(); var TagingProductDetail = (function () { return { setup: function () { TagingProductDetailSelect2.setup(); $('body').on('click', 'button.topic-tags-btn', function (event) { $(this).toggleClass('Done'); $('.product_category').find('.usertagslabel').remove(); $('.tagsuserselectpanel').toggle(); if($(this).text() == 'Done'){ $(this).text('Manage tags'); var newhtml = ''; var lis = $('li.select2-selection__choice'); $.each(lis, function( index, value ) { newhtml=newhtml+''+value.title+''; }); $('.product_category').find('.topicslink').html(newhtml); }else{ $(this).text('Done'); } }); } } })(); var TagingProductDetailSelect2 = (function () { return { setup: function () { $.fn.select2.amd.require(['select2/selection/search'], function (Search) { Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(''); this.handleSearch(); }; }, null, true); var t = $("#tagsuserselect").select2({ placeholder: "Input tags please...", //placeholder tags: true, minimumInputLength: 3, closeOnSelect:true, maximumSelectionLength: 5, tokenSeparators: [",", " "], ajax: { url: '/tag/filter', dataType: 'json', type: "GET", delay: 500, // wait 250 milliseconds before triggering the request processResults: function (data) { return { results : data.data.tags }; } } }); // Bind an event t.on('select2:select', function (e) { var data = e.params.data; var projectid = $("#tagsuserselect").attr('data-pid'); $.post( "/tag/add", { p: projectid, t: data.id }) .done(function( data ) { if(data.status=='error'){ $('span.topic-tags-saved').css({ color: "red" }).html(data.message).show().delay(2000).fadeOut(); t.find("option[value='"+data.data.tag+"']").last().remove(); //t.find("option[value="+data.data.tag+"]").last().remove(); } else { $('span.topic-tags-saved').css({ color: "green" }).html(' Saved').show().delay(1000).fadeOut(); } }); }); // Unbind the event t.on('select2:unselect', function(e){ var data = e.params.data; var projectid = $("#tagsuserselect").attr('data-pid'); $.post( "/tag/del", { p: projectid, t: data.id }) .done(function( data ) { console.log(data); $('span.topic-tags-saved').css({ color: "green" }).html(''+data.message).show().delay(1000).fadeOut(); //$('span.topic-tags-saved').show().delay(1000).fadeOut(); }); }); } } })(); var TagingLoopMyProducts = (function () { return { setup: function () { TagingLoopMyProductsSelect2.setup(); $('body').on('click', 'button.topic-tags-btn', function (event) { $(this).toggleClass('Done'); $(this).parent().find('.topicsuser').html(''); $(this).parent().find('.tagsuserselectpanel').toggle(); if($(this).text() == 'Done'){ $(this).text('Manage tags'); var newhtml = ''; var lis = $(this).parent().find('li.select2-selection__choice'); $.each(lis, function( index, value ) { newhtml=newhtml+''+value.title+''; }); $(this).parent().find('.topicsuser').html(newhtml); }else{ $(this).text('Done'); } }); } } })(); var TagingLoopMyProductsSelect2 = (function () { return { setup: function () { $.fn.select2.amd.require(['select2/selection/search'], function (Search) { Search.prototype.searchRemoveChoice = function (decorated, item) { this.trigger('unselect', { data: item }); this.$search.val(''); this.handleSearch(); }; }, null, true); //var t = $("#tagsuserselect").select2({ var t = $(".taggingSelect2").select2({ placeholder: "Input tags please...", //placeholder tags: true, minimumInputLength: 3, closeOnSelect:true, maximumSelectionLength: 5, tokenSeparators: [",", " "], ajax: { url: '/tag/filter', dataType: 'json', type: "GET", delay: 500, // wait 250 milliseconds before triggering the request processResults: function (data) { return { results : data.data.tags }; } } }); // Bind an event t.on('select2:select', function (e) { var data = e.params.data; var projectid = $(this).attr('id').replace('tagsuserselect',''); //var projectid = $("#tagsuserselect").attr('data-pid'); $.post( "/tag/add", { p: projectid, t: data.id }) .done(function( data ) { if(data.status=='error'){ $('#topic-tags-saved'+projectid).css({ color: "red" }).html(data.message).show().delay(2000).fadeOut(); t.find("option[value='"+data.data.tag+"']").last().remove(); }else if(data.status=='existing'){ $('#topic-tags-saved'+projectid).css({ color: "red" }).html(data.message).show().delay(2000).fadeOut(); } else { $('#topic-tags-saved'+projectid).css({ color: "green" }).html(' Saved').show().delay(1000).fadeOut(); } }); }); // Unbind the event t.on('select2:unselect', function(e){ var data = e.params.data; //var projectid = $("#tagsuserselect").attr('data-pid'); var projectid = $(this).attr('id').replace('tagsuserselect',''); $.post( "/tag/del", { p: projectid, t: data.id }) .done(function( data ) { $('#topic-tags-saved'+projectid).css({ color: "green" }).html(''+data.message).show().delay(1000).fadeOut(); }); }); } } })(); var productRatingToggle = (function () { return { setup: function () { $('#showRatingAll').on('click', function () { $('#ratings-panel').find('.spinning').show(); setTimeout(function () { $('#ratings-panel').find('.spinning').hide(); }, 500); $('.btnRateFilter').removeClass('activeRating'); $(this).addClass('activeRating'); $('.productRating-rows').show(); $('.productRating-rows-inactive').show(); }); $('#showRatingActive').on('click', function () { $('#ratings-panel').find('.spinning').show(); setTimeout(function () { $('#ratings-panel').find('.spinning').hide(); }, 500); $('.btnRateFilter').removeClass('activeRating'); $(this).addClass('activeRating'); $('.productRating-rows').show(); $('.productRating-rows-inactive').hide(); }); $('#showRatingUpvotes').on('click', function () { $('#ratings-panel').find('.spinning').show(); setTimeout(function () { $('#ratings-panel').find('.spinning').hide(); }, 500); $('.btnRateFilter').removeClass('activeRating'); $(this).addClass('activeRating'); $('.productRating-rows').show(); $('.clsDownvotes').hide(); $('.productRating-rows-inactive').hide(); }); $('#showRatingDownvotes').on('click', function () { $('#ratings-panel').find('.spinning').show(); setTimeout(function () { $('#ratings-panel').find('.spinning').hide(); }, 500); $('.btnRateFilter').removeClass('activeRating'); $(this).addClass('activeRating'); $('.productRating-rows').show(); $('.productRating-rows-inactive').hide(); $('.clsUpvotes').hide(); }); } } })(); var FilterBrowseOriginalFn= (function () { return { setup: function () { $('body').on('click', 'input#filter_browse_original', function (event) { var checked = $(this).is( ":checked" ); var url = window.location.href; if(url.indexOf("browse")<0) { url = url+'/browse/'; } if(url.indexOf("filteroriginal")>0) { url = url.substring(0,url.indexOf("filteroriginal")); } if(checked){ window.location.href = url+'filteroriginal/1'; }else{ window.location.href = url+'filteroriginal/0'; } }); } } })(); var FilterBrowseTagGroupFn= (function () { return { setup: function () { $('body').on('change', 'select.filter_browse_tag_group', function (event) { var filterVal = $(this).val(); var groupId = $(this).attr('data_group_id'); $.ajax({ url: '/explore/savetaggroupfilter?group_id='+groupId+'&tag_id='+filterVal, cache: false }) .done(function( response ) { var url = window.location.href; window.location.href = url; }); }); } } })(); diff --git a/httpdocs/theme/flatui/js/script.min.js b/httpdocs/theme/flatui/js/script.min.js index 7c4513988..23d9c1123 100644 --- a/httpdocs/theme/flatui/js/script.min.js +++ b/httpdocs/theme/flatui/js/script.min.js @@ -1 +1 @@ -var newProductPage={setup:function(){function t(){var t=$("#donations-panel").find("#comments").height();t>$("#donations-panel").find("#supporters").height()&&$("#donations-panel").find("#supporters").height(t)}$(document).ready(function(){var e;e=$("#pling-it-box").height(),$(".scrollable-content").height(e),$(".scrollable-content").jScrollPane({mouseWheelSpeed:30}),t(),$('a[data-toggle="tab"]').on("shown.bs.tab",function(e){t()})})}},ImagePreview={hasError:!1,setup:function(){this.initProductPicture(),this.initTitlePicture(),this.initProfilePicture(),this.initProfilePictureBackground()},previewImage:function(t,e){if(t.files&&t.files[0]){var a=new FileReader,i=new Image,n=t.files[0];a.readAsDataURL(t.files[0]),a.onload=function(a){var o=$("#"+e);i.src=a.target.result,i.onload=function(){var e=this.width,i=this.height,r=n.type,s=(n.name,~~(n.size/1024));ImagePreview.hasError=!1,o.parent().parent().find("div.bg-danger").remove(),(e>2e3||e<20||i>2e3||i<20)&&(o.parent().parent().append('
Wrong image dimensions
'),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0),s>2e3&&(o.parent().parent().append('
File too large
'),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0);/(jpg|jpeg|png|gif)$/i.exec(r)||(o.parent().parent().append('
Invalid file type: '+n.type+"
"),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0),0==ImagePreview.hasError&&(ImagePreview.hasError=!1,o.attr("src",a.target.result),o.show())},i.onerror=function(){o.parent().parent().find("div.bg-danger").remove(),o.parent().parent().append('
Invalid file type: '+n.type+"
")},"product-picture-preview"==e?$("button#add-product-picture").text("CHANGE LOGO"):"title-picture-preview"==e?$("button#add-title-picture").text("CHANGE BANNER"):"profile-picture-preview"==e?($("button#add-profile-picture").text("CHANGE PICTURE"),$("input#profile_img_src").val("local")):"profile-picture-bg-preview"==e&&$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},previewImageMember:function(t,e){if(t.files&&t.files[0]){var a=new FileReader,i=new Image;t.files[0];a.readAsDataURL(t.files[0]),a.onload=function(t){var a=$("#"+e);i.src=t.target.result,i.onload=function(){ImagePreview.hasError=!1,a.parent().find(".image-error").remove(),0==ImagePreview.hasError&&(a.attr("src",t.target.result),a.show())},i.onerror=function(){a.parent().append('
Invalid file type
')},"profile-picture-background-preview"==e&&$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},readImage:function(t){var e=new FileReader,a=new Image;e.readAsDataURL(t),e.onload=function(e){a.src=e.target.result,a.onload=function(){var e=this.width,a=this.height,i=t.type,n=t.name,o=~~(t.size/1024)+"KB";$("#uploadPreview").append(' '+e+"x"+a+" "+o+" "+i+" "+n+"
")},a.onerror=function(){alert("Invalid file type: "+t.type)}}},initProductPicture:function(){if(0!=$("#image_small").length&&0!=$("#image_small").attr("value").length){var t=$("#image_small").data("target");$(t).attr("src","https://cn.opendesktop.org/cache/200x200-2/img/"+$("#image_small").attr("value")),$(t).show(),$("button#add-product-picture").text("CHANGE LOGO")}},initTitlePicture:function(){if(0!=$("#image_big").length&&0!=$("#image_big").attr("value").length){var t=$("#image_big").data("target");$(t).attr("src","https://cn.opendesktop.org/cache/200x200-2/img/"+$("#image_big").attr("value")),$(t).show(),$("button#add-title-picture").text("CHANGE BANNER")}},initProfilePicture:function(){if(0!=$("#profile_image_url").length&&0!=$("#profile_image_url").attr("value").length){var t=$("#profile_image_url").data("target");$(t).attr("src",$("#profile_image_url").attr("value")),$("#profile-picture").attr("src",$("#profile_image_url").attr("value")),$(t).show(),$("button#add-profile-picture").text("CHANGE PICTURE")}},initProfilePictureBackground:function(){if(0!=$("#profile_image_url_bg").length&&0!=$("#profile_image_url_bg").attr("value").length){var t=$("#profile_image_url_bg").data("target");$(t).attr("src",$("#profile_image_url_bg").attr("value")),$("#profile-picture-background-preview").attr("src",$("#profile_image_url_bg").attr("value")),$(t).show(),$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},MenuHover={setup:function(){$("body").on("click","a#login-dropdown",function(t){t.stopPropagation(),$(".header-login-container").toggleClass("active")}).on("click",".header-login-container",function(t){t.stopPropagation()}).on("click","a.menu-trigger",function(t){t.stopPropagation();var e="."+$(this).attr("rel");$(e).toggleClass("active")}).on("mouseup",function(t){var e=$("ul.profile-menu");$("li.profile-menu-container a.menu-trigger").is(t.target)||e.is(t.target)||0!==e.has(t.target).length||e.removeClass("active")}).on("mouseup",function(t){container=$("div.header-login-container"),trigger=$("a#login-dropdown"),trigger.is(t.target)||container.is(t.target)||0!==container.has(t.target).length||container.removeClass("active")}).click(function(){$(".header-login-container.active").removeClass("active"),$(".profile-menu.active").removeClass("active")})}},ButtonCode={setup:function(){$("#button-code-heading").click(function(){$(this).hasClass("button-code-active")?($(this).removeClass("button-code-active"),$(this).parent().find(".button-code").slideUp("fast"),$(this).parent().find(".button-code").css("border-bottom","none"),$(this).find(".icon-expand-code").css("background-image","url(img/icon-expand.png)")):($(this).addClass("button-code-active"),$(this).parent().find(".button-code").css("border-bottom","1px solid #bdc3c7"),$(this).parent().find(".button-code").slideDown("fast"),$(this).find(".icon-expand-code").css("background-image","url(img/icon-contract.png)"))})},setupClipboardCopy:function(t){$(t).on("mouseover",function(){$(this).off("mouseover"),$(this).find("[data-clipboard-target]").each(function(){var t=$($(this).attr("data-clipboard-target"));$(this).zclip({path:"/theme/flatui/js/lib/ZeroClipboard.swf",copy:$.trim($(t).text())})})})}},ProductPage={setup:function(){$(".dropdown-toggle").dropdown(),$(".scroll-pane").jScrollPane({mouseWheelSpeed:30,animateScroll:!0}),$(".love-it").on("click",function(){this_img_src=$(this).find("img").attr("src"),$(this).hasClass("no-login")||"/theme/flatui/img/icon-like-color.png"==this_img_src||$(this).prev(".share-it").trigger("click")}),$(".payment-options").find(".options").find("span.option").on("click",function(){var t=$(this).attr("title"),e=$(".payment-options").find('input[type="number"]');e.attr("value",t).val(t),e.focus(),$(".options").find(".selected").removeClass("selected"),$(this).addClass("selected")})},setupPlingButton:function(){$("#pling-amount").on("focus",function(){$("#pling-amount").popover("destroy")}),$("#pling-start").on("click",function(t){return validateElement=$("#pling-amount"),validateValue=validateElement.val(),""==validateValue||isNaN(parseFloat(validateValue))||!isFinite(validateValue)?(t.preventDefault(),$("#pling-amount").popover({placement:"bottom",html:"true",content:'
Donation must be a numeric value.
'}).popover("show"),!1):(minValue=validateElement.attr("min"),parseFloat(validateValue)×
Donation must be equal or greater than '+minValue+".
"}).popover("show"),!1):(maxValue=validateElement.attr("max"),parseFloat(validateValue)>parseFloat(maxValue)?(t.preventDefault(),$("#pling-amount").popover({placement:"bottom",html:"true",content:'
Donation must be smaller or equal than '+maxValue+".
"}).popover("show"),!1):void 0))})}},SlideShowRender={setup:function(){$("#slideshow-container").find("img:first").addClass("active"),$("#slideshow-container").find("#navigation").find("a:first").addClass("active")}},ProductSlideShow={setup:function(){$("#slideshow-container").find("#arrows").find("a").on("click",function(t){var e=$(this).attr("id"),a=$("#slideshow-container #slides"),i=a.find("img.active"),n=i.attr("rel"),o=$("#slideshow-container").find("#navigation").find("a.active");if("prev"==e){var r=parseInt(n)-parseInt(1),s=$("#slideshow-container").find('img[rel="'+r+'"]'),l=$("#slideshow-container").find("#navigation").find('a[rel="'+r+'"]');1==!s.size()&&(s=a.find("img:last"),l=$("#slideshow-container").find("#navigation").find("a:last"))}else if("next"==e){var d=parseInt(n)+parseInt(1);s=$("#slideshow-container").find('img[rel="'+d+'"]'),l=$("#slideshow-container").find("#navigation").find('a[rel="'+d+'"]'),1==!s.size()&&(s=a.find("img:first"),l=$("#slideshow-container").find("#navigation").find("a:first"))}i.removeClass("active"),o.removeClass("active"),s.addClass("active"),l.addClass("active")}),$("#slideshow-container").find("#navigation").find("a").on("click",function(){var t=$(this).attr("rel"),e=$("#slideshow-container").find('img[rel="'+t+'"]');$("#slideshow-container").find("img.active").removeClass("active"),e.addClass("active"),$("#slideshow-container").find("#navigation").find("a.active").removeClass("active"),$(this).addClass("active")})}},SlideShow={setup:function(){slideShowInterval=setTimeout(function(){var t=$("#slideshow-container").find("img.active"),e=t.attr("rel"),a=parseInt(e)+parseInt(1),i=$("#slideshow-container").find('img[rel="'+a+'"]'),n=$("#slideshow-container").find("#navigation").find("a.active");t.removeClass("active"),n.removeClass("active"),1==i.size()?(i.addClass("active"),$("#slideshow-container").find("#navigation").find('a[rel="'+a+'"]').addClass("active")):($("#slideshow-container").find("img:first").addClass("active"),$("#slideshow-container").find("#navigation").find("a:first").addClass("active"))},4e3)}},Popuppanel={setup:function(){$("body").on("click","a.popuppanel",function(t){if("_blank"===$(this).attr("target"))console.log("dont prevent default");else{t.preventDefault();var e=$(this).attr("href");$.fancybox({hideOnContentClick:!0,autoScale:!0,cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"iframe",scrolling:"auto",helpers:{overlay:{locked:!1}},autoSize:!0,href:e,type:"ajax"})}})}},PlingsRedirect={setup:function(){window.location.hash?($link=$(window.location.hash),$link.trigger("click")):document.location.hash&&($link=$(document.location.hash),$link.trigger("click"))}},ShowPopups={setup:function(){window.location.hash&&(alert("Hash"),$('a[href="'+document.location.hash+'"]').trigger("click")),document.location.hash&&(alert("Hash"),$('a[href="'+document.location.hash+'"]').trigger("click"))}};$("body").on("mouseenter",".supporter-thumbnail",function(){$(this).popover("show")}),$("body").on("mouseleave",".supporter-thumbnail",function(){$(this).popover("hide")});var Partials={setup:function(){$("body").on("click","a.partial",function(t){t.preventDefault();var e=this.href,a=$(this).attr("data-target"),i=$(this).data("toggle"),n=$(this).attr("data-fragment");return $(a).load(e+" "+n,function(t,e,n){if("error"==e)if(401==n.status){if(t){var o=jQuery.parseJSON(t).login_url;window.location=o||"/login"}}else $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.");i&&$(i).modal("show")}),!1})}},Opendownloadfile={setup:function(){$("body").on("click","a.opendownloadfile",function(t){t.preventDefault();var e=$(this).attr("data-file_id"),a=$(this).attr("data-file_type"),i=$(this).attr("data-file_name"),n=$(this).attr("data-file_size"),o=$(this).attr("data-project_id"),r=$(this).attr("data-link_type");return $.fancybox({hideOnContentClick:!0,autoScale:!0,scrolling:"no",cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"iframe",width:"300",height:"200",iframe:{scrolling:"no"},autoSize:!1,id:"opendownloadfilepopup",helpers:{overlay:{locked:!1}},href:"/dl?file_id="+e+"&file_type="+a+"&file_name="+i+"&file_size="+n+"&project_id="+o+"&link_type="+r}),!1})}},PartialsButton={setup:function(){$("body").on("click","Button.partialbutton",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).data("toggle"),n=$(this).attr("data-fragment"),o=$('');return $(a).append(o),$(a).load(e+" "+n,function(t,e,n){if("error"==e)if(401==n.status){if(t){var o=jQuery.parseJSON(t).login_url;window.location=o||"/login"}}else $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.");i&&$(i).modal("show")}),!1})}},PartialsButtonHeartDetail={setup:function(){$("body").on("click",".partialbuttonfollowproject",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).attr("data-auth");if($(this).data("toggle"),$(this).attr("data-fragment"),i){if($("#like-product-modal").find("#loginuser").val()==$("#like-product-modal").find("#productcreator").val())return $("#like-product-modal").find("#votelabel").text("Project owner not allowed"),$("#like-product-modal").find(".modal-body").empty(),void $("#like-product-modal").modal("show");var n=$('');return $(a).prepend(n),$.ajax({url:e,cache:!1}).done(function(t){$(a).find(".spinning").remove(),"error"==t.status?$(a).html(t.msg):"delete"==t.action?($(a).find(".plingtext").html(t.cnt),$(a).find(".plingtext").addClass("heartnumberpurple"),$(a).find(".plingheart").removeClass("heartproject").addClass("heartgrey"),$(a).find(".plingheart").removeClass("fa-heart").addClass("fa-heart-o")):($(a).find(".plingtext").html(t.cnt),$(a).find(".plingtext").removeClass("heartnumberpurple"),$(a).find(".plingheart").removeClass("heartgrey").addClass("heartproject"),$(a).find(".plingheart").removeClass("fa-heart-o").addClass("fa-heart"))}),!1}$("#like-product-modal").modal("show")})}},PartialsButtonPlingProject={setup:function(){$("#plingbtn").hover(function(){$(this).attr("src","/images/system/pling-btn-hover.png")},function(){$(this).attr("src",$(this).attr("data-src"))}),$("body").on("click",".partialbuttonplingproject",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).attr("data-auth"),n=$(this).attr("data-issupporter");if($(this).data("toggle"),$(this).attr("data-fragment"),i)return $("#like-product-modal").find("#loginuser").val()==$("#like-product-modal").find("#productcreator").val()?($("#like-product-modal").find("#votelabel").text("Project owner not allowed"),$("#like-product-modal").find(".modal-body").empty(),void $("#like-product-modal").modal("show")):n?($(a).find(".plingnum").html(''),$.ajax({url:e,cache:!1}).done(function(t){"error"==t.status?$(a).html(t.msg):"delete"==t.action?(0==t.cnt?$(a).find(".plingnum").html("Pling me"):$(a).find(".plingnum").html(t.cnt+" Plings"),$(a).find("#plingbtn").attr("src","/images/system/pling-btn-normal.png"),$(a).find("#plingbtn").attr("data-src","/images/system/pling-btn-normal.png")):($(a).find(".plingnum").html(t.cnt+" Plings"),$(a).find("#plingbtn").attr("src","/images/system/pling-btn-active.png"),$(a).find("#plingbtn").attr("data-src","/images/system/pling-btn-active.png"))}),!1):($("#like-product-modal").find("#votelabel").html('
To pling a product and help the artist please consider becoming a supporter. Thanks!

Become a supporter
'),void $("#like-product-modal").modal("show"));$("#like-product-modal").modal("show")})}},PartialsReview={setup:function(){$("body").on("click","a.partialreview",function(t){if(t.preventDefault(),this.href,$(this).attr("data-target"),$(this).data("toggle"),$(this).attr("data-fragment"),$("#review-product-modal").find("#loginuser").val()==$("#review-product-modal").find("#productcreator").val())return $("#review-product-modal").find("#votelabel").text("Project owner not allowed"),$("#review-product-modal").find(".modal-body").empty(),void $("#review-product-modal").modal("show");var e=$("#review-product-modal").find("#userrate").val();return $(this).hasClass("voteup")?1==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment:'),$("#review-product-modal").find("#commenttext").val($("#review-product-modal").find("#otxt").val()),$("#review-product-modal").find(":submit").text("Remove Rating")):($("#review-product-modal").find("input#voteup").val(1),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 1 char):'),$("#review-product-modal").find("#commenttext").val("+"),$("#review-product-modal").find(":submit").text("Rate Now"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").css("display","block").removeAttr("disabled")):0==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment: '),$("#review-product-modal").find("#commenttext").val($("#review-product-modal").find("#otxt").val()),$("#review-product-modal").find(":submit").text("Remove Rating")):($("#review-product-modal").find("input#voteup").val(2),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 5 char) Please explain the reason for downvote to help the creator to make it better '),$("#review-product-modal").find("#commenttext").val("-"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").removeAttr("disabled").css("display","block"),$("#review-product-modal").find(":submit").text("Rate Now")),$("#review-product-modal").modal("show"),$("#review-product-modal").hasClass("noid")&&setTimeout(function(){$("#review-product-modal").modal("hide")},2e3),!1})}},PartialsReviewDownloadHistory={setup:function(){$("body").on("click","button.partialReviewDownloadHistory",function(t){t.preventDefault();var e=$(this).attr("data-userrate");return $("#review-product-modal").find("#commenttext").val($(this).attr("data-comment")),$("#review-product-modal").find("#form_p").val($(this).attr("data-project")),$(this).hasClass("voteup")?1==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment:'),$("#review-product-modal").find(":submit").attr("disabled","disabled").css("display","none"),$("#review-product-modal").find("#commenttext").attr("disabled","disabled")):($("#review-product-modal").find("input#voteup").val(1),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 1 char):'),$("#review-product-modal").find("#commenttext").val("+"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").css("display","block").removeAttr("disabled")):0==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment: '),$("#review-product-modal").find("#commenttext").attr("disabled","disabled"),$("#review-product-modal").find(":submit").attr("disabled","disabled").css("display","none")):($("#review-product-modal").find("input#voteup").val(2),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 5 chars): '),$("#review-product-modal").find("#commenttext").val("-"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").removeAttr("disabled").css("display","block")),$("#review-product-modal").modal("show"),$("#review-product-modal").hasClass("noid")&&setTimeout(function(){$("#review-product-modal").modal("hide")},2e3),!1})}},PartialForms={setup:function(){$("body").on("submit","form.partial",function(t){t.preventDefault(),t.stopImmediatePropagation(),$(this).find(":submit").attr("disabled","disabled"),$(this).find(":submit").css("white-space","normal");var e=$('');$(this).find(":submit").append(e);var a=$(this).attr("data-target"),i=$(this).attr("data-trigger");return console.log(this),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(){return $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"),!1},success:function(t){return $(a).empty().html(t),$(a).find(i).trigger("click"),!1}}),!1})}},PartialJson={setup:function(){$("body").on("submit","form.partialjson",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t,i){t.redirect?window.location=t.redirect:(e&&$(e).empty().html(t.message),a&&$(e).find(a).trigger("click"))}}),!1})}},PartialJsonFraud={setup:function(){$("body").on("submit","form.partialjsonfraud",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return $("form.partialjsonfraud").find("#report-text").val().length<5?($("form.partialjsonfraud").find("p.warning").remove(),$("form.partialjsonfraud").find("#report-text").parent().append('

at least 5 chars

'),!1):(jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t,i){t.redirect?window.location=t.redirect:(e&&$(e).empty().html(t.message),a&&$(e).find(a).trigger("click"))}}),!1)})}},PartialPayPal={setup:function(){this.initPayPalForm(),this.initPayPalFee()},initPayPalForm:function(){$("body").on("submit","form.partialpaypal",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(t,e,a){$("#modal-dialog").modal("hide");var i=$('');i.html($(t.responseText).filter(".page-container").children()),i.append(''),setTimeout(function(){i.modal("show")},900)},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click"),$("#modal-dialog").modal("hide")}}),!1})},initPayPalFee:function(){$("body").on("change","#amount_plings",function(t){PartialPayPal.changeFee()})},changeFee:function(){var t=document.getElementById("amount_plings"),e=parseFloat(t.value),a=this.round(.05*e,2),i=.03*(a+e+.3)+.3,n=e+a+(i=this.round(i,2));document.getElementById("pling_fee").value=this.round(a,2).toFixed(2),document.getElementById("paypal_fee").value=this.round(i,2).toFixed(2),document.getElementById("sum").value=this.round(n,2)},round:function(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}},PartialCommentReviewForm={setup:function(){this.initForm()},initForm:function(){$("body").on("submit","form.product-add-comment-review",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$.trim($("#commenttext").val());if(2==$("#voteup").val()&&e.length<5)0==$("#review-product-modal").find("#votelabel").find(".warning").length&&$("#review-product-modal").find("#votelabel").append("
Please give a comment, thanks!");else{if(!(e.length<1)){$(this).find(":submit").attr("disabled","disabled"),$(this).find(":submit").css("white-space","normal");var a=$('');return $(this).find(":submit").append(a),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(t,e,a){$("#review-product-modal").modal("hide");var i=$("#generic-dialog");i.modal("hide"),i.find(".modal-header-text").empty().append("Please try later."),i.find(".modal-body").empty().append("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"),setTimeout(function(){i.modal("show")},900)},success:function(t){$("#review-product-modal").modal("hide"),location.reload()}}),!1}0==$("#review-product-modal").find("#votelabel").find(".warning").length&&$("#review-product-modal").find("#votelabel").append("
Please give a comment, thanks!")}})}},PartialFormsAjax={setup:function(){var t=$("form.partialajax"),e=t.attr("data-target"),a=t.attr("data-trigger");$(t).find(":submit").on("click",function(e){e.preventDefault(),$(t).find(":submit").attr("disabled","disabled"),$(t).find(":submit").css("white-space","normal");var a=$('');$(t).find(":submit").append(a),$(t).submit()}),t.ajaxForm({error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click")}})}},AjaxFormWithProgress={setup:function(t){var e=$(t),a=e.attr("data-target"),i=e.attr("data-trigger"),n=e.find(".progress-bar"),o=e.find(".progress-percent");$(e).find(":submit").on("click",function(t){t.preventDefault(),$(e).find(":submit").attr("disabled","disabled"),$(e).find(":submit").css("white-space","normal");var a=$('');$(e).find(":submit").append(a),$(e).submit()}),e.ajaxForm({beforeSend:function(){n.parent().removeClass("hidden"),n.width("0%"),o.html("0%")},uploadProgress:function(t,e,a,i){var r=i+"%";n.width(r),o.html(r)},error:function(){$(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){n.width("100%"),o.html("100%"),$(a).empty().html(t),$(a).find(i).trigger("click")}})}},PartialFormsAjaxMemberBg={setup:function(){var t=$("form.partialajaxbg"),e=t.attr("data-target"),a=t.attr("data-trigger");$(t).find(":submit").on("click",function(e){e.preventDefault(),$(t).find(":submit").attr("disabled","disabled"),$(t).find(":submit").css("white-space","normal");var a=$('');$(t).find(":submit").append(a),$(t).submit()}),t.ajaxForm({error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click")}})}},AjaxForm={setup:function(t,e){var a=$(e);$("body").on("submit","form.product-add-comment",function(t){return t.preventDefault(),t.stopImmediatePropagation(),$(this).find("button").attr("disabled","disabled"),$(this).find(".glyphicon.glyphicon-send").removeClass("glyphicon-send").addClass("glyphicon-refresh spinning"),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(t,e,a){var i=JSON&&JSON.parse(t.responseText)||$.parseJSON(t.responseText),n=$("#generic-dialog");n.modal("hide"),n.find(".modal-header-text").empty().append(i.title),n.find(".modal-body").empty().append(i.message),setTimeout(function(){n.modal("show")},900)},success:function(t){"ok"==t.status&&$(a).empty().html(t.data),"error"==t.status&&(""!=t.message?alert(t.message):alert("Service is temporarily unavailable."))}}),!1})}},WidgetModalAjax={setup:function(){$(".my-product-item").find("a.widget-button").on("click",function(){var t=$(this).attr("rel"),e=t.split("product")[1],a=$(".modal-body#widget-code-"+t);$.ajax({url:"/widget/config/"+e,type:"html",success:function(t){a.prepend(t),angular.bootstrap(a,["widgetApp"])}})})}},LoginContainer={update:function(){Date.now||(Date.now=function(){return(new Date).getTime()});var t="/authorization/htmllogin?"+(Date.now()/1e3|0);$("#login_container").load(t,function(t,e,a){})}},RssNews={setup:function(){$.getJSON("https://blog.opendesktop.org/?json=1&callback=?",function(t){var e="";$.each(t.posts,function(t,a){if(t>=3)return!1;var i=moment(a.date);e+='
'+a.title+'
'+i.format("MMM DD YYYY")+''+a.comments.length+" Comment"+(a.comments.length>1?"s":"")+"
"}),$("#rss-feeds").html(e)})}},BlogJson={setup:function(){var t="https://forum.opendesktop.org/";$.ajax("https://forum.opendesktop.org/latest.json").then(function(e){var a=e.topic_list.topics,i="",n=3;a.sort(function(t,e){return new Date(e.last_posted_at)-new Date(t.last_posted_at)}),$.each(a,function(e,a){if(!a.pinned){var o=moment(a.last_posted_at),r="Reply",s=a.posts_count-1;r=0==s?"Replies":1==s?"Reply":"Replies",i+='
'+a.title+'
'+o.fromNow()+''+s+" "+r+"
",n--}if(0==n)return!1}),$("#blogJson").html(i)})}},GitlabNewProjectsJson={setup:function(t){var e=t+"/api/v4/projects?order_by=created_at&sort=desc&visibility=public&page=1&per_page=5";$.ajax(e).then(function(e){var a=e,i="";$.each(a,function(e,a){var n=moment(a.created_at);i+='"}),$("#lastgitprojects").html(i)})}};function showGitUserAvatar(t,e,a){var i=t+"/api/v4/users?username="+e;$.ajax(i).then(function(t){var i=t;$.each(i,function(t,i){$img=$("#avatar_"+e+"_"+a),$img.attr("src",i.avatar_url)})})}var ProductDetailCarousel={setup:function(){$(".carousel-inner img").each(function(t){$(this).on("click",function(){$("#product-main-img-container").hasClass("imgfull")?$("#product-main-img-container").prependTo($("#product-main")):$("#product-main-img-container").prependTo($("#product-page-content")),$("#product-main-img-container").toggleClass("imgfull"),$("#product-main-img-container").toggleClass("imgsmall")})})}},AppimagequestionOnClick={setup:function(t){$("body").on("click","i.appimagequestion",function(t){var e=$("#generic-dialog");e.modal("show"),e.find(".modal-header-text").empty().append("AppImage Info"),e.find(".modal-body").empty().append("")})}},ProductDetailBtnGetItClick={setup:function(t){$("body").on("click","button#project_btn_download",function(e){$.fancybox({hideOnContentClick:!0,autoScale:!0,cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"ajax",helpers:{overlay:{locked:!1}},autoSize:!0,href:"/p/"+t+"/ppload"})})}},GhnsExcludedClick={setup:function(t){$("body").on("click","#ghns_excluded-this-checkbox",function(e){e.stopPropagation();var a=1,i="",n="";this.checked?(a=1,i="Please specify why this product should be excluded (min 5 chars) :",n=" ghns exclude"):(a=0,i="Please specify why this product should be included (min 5 chars) :",n=" ghns include");var o=$("#generic-dialog");return o.modal("show"),o.find(".modal-header-text").empty().append("GHNS "),o.find(".modal-body").empty().append(i+'

"),$("body").on("click","#btn-ghns-excluded",function(){var t=$("#ghns-excluded-text").val();if(t.length<5)return alert("min 5 chars"),!1;var e=$(this).attr("data-projectid"),a=$(this).attr("data-status");$.ajax({url:"/backend/project/doghnsexclude",method:"POST",data:{project_id:e,ghns_excluded:a,msg:t},success:function(t){var e=$("#generic-dialog");0==a?(e.find(".modal-body").empty().append("Project is successfully included into GHNS"),$("#ghns_excluded-this-checkbox").prop("checked",!1)):(e.find(".modal-body").empty().append("Project is successfully excluded into GHNS"),$("#ghns_excluded-this-checkbox").prop("checked",!0)),setTimeout(function(){e.modal("hide")},1e3)},error:function(){alert("Service is temporarily unavailable.")}})}),!1})}},AboutMeMyProjectsPaging={setup:function(){$(window).scroll(function(){if($("footer").offset().top-($(window).scrollTop()+$(window).height())<300){if(!$("button#btnshowmoreproducts").length)return;let t='',e=$("button#btnshowmoreproducts").attr("data-page");$("button#btnshowmoreproducts").remove(),$url=window.location.href,target="#my-products-list";let a=$("

").append(t).load($url,{projectpage:e},function(t,e,a){if("error"==e)if(401==a.status){if(t){var i=jQuery.parseJSON(t).login_url;window.location=i||"/login"}}else $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.")});$("#my-products-list").append(a)}})}},AboutMeMyProjectsPagingButton={setup:function(){$("body").on("click","button#btnshowmoreproducts",function(t){let e=$(this).attr("data-page");$(this).remove(),$url=window.location.href,target="#my-products-list";let a=$("
").append('').load($url,{projectpage:e},function(t,e,a){if("error"==e)if(401==a.status){if(t){var i=jQuery.parseJSON(t).login_url;window.location=i||"/login"}}else $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.")});$("#my-products-list").append(a)})}},ProductDetailCommentTooltip={setup:function(){TooltipUser.setup("tooltipuser","right")}};function generateTooltipster(t,e){$(t).each(function(){$(this).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/member/"+i+"/tooltip/",function(e){var i=e.data,n='
'+i.username+' '+i.countrycity+'
'+i.cntProjects+' products
'+i.totalComments+' comments
Likes '+i.cntLikesGave+' products
Got '+i.cntLikesGot+' Likes
Last time active : '+i.lastactive_at+'
Member since : '+i.created_at+"
";n+="
",t.content(n),a.data("loaded",!0)})}})})}var TooltipUser={setup:function(t,e){$("."+t).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/member/"+i+"/tooltip/",function(e){var i=e.data,n='
'+i.username+' '+i.countrycity+'
'+i.cntProjects+' products
'+i.totalComments+' comments
Likes '+i.cntLikesGave+' products
Got '+i.cntLikesGot+' Likes
Last time active : '+i.lastactive_at+'
Member since : '+i.created_at+"
";n+="
",t.content(n),a.data("loaded",!0)})}})}};function generateTooltipUserPlings(t,e){$(t).each(function(){$(this).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/plings/tooltip/id/"+i,function(e){var i='
';$.each(e.data,function(t,e){if(t>10)return!1;e.profile_image_url.indexOf("http")<0&&(e.profile_image_url="https://cn.opendesktop.org/cache/40x40-2/img/"+e.profile_image_url),e.profile_image_url.indexOf(".gif")>0&&(e.profile_image_url="https://cn.opendesktop.org/img/"+e.profile_image_url),i=i+'
'+e.username+"
"}),i+="
",t.content(i),a.data("loaded",!0)})}})})}var TooltipUserPlings={setup:function(t,e){$("."+t).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/plings/tooltip/id/"+i,function(e){var i='
';$.each(e.data,function(t,e){if(t>10)return!1;e.profile_image_url.indexOf("http")<0&&(e.profile_image_url="https://cn.opendesktop.org/cache/40x40-2/img/"+e.profile_image_url),e.profile_image_url.indexOf(".gif")>0&&(e.profile_image_url="https://cn.opendesktop.org/img/"+e.profile_image_url),i=i+'
'+e.username+"
"}),i+="
",t.content(i),a.data("loaded",!0)})}})}},AboutMePage={setup:function(t){var e=t+"'s Profile "+$(document).prop("title");$(document).prop("title",e)}},InitActiveHashTab={setup:function(){var t=document.location.hash;$('a[href="'+t+'"]')&&$('a[href="'+t+'"]').tab("show")}},CommunityTabToplistMemberScrollPaging={setup:function(t,e){$(window).scroll(function(){if($("footer").offset().top-($(window).scrollTop()+$(window).height())<300){if(!$("button#toplistmemberscrollshowmore").length)return;var a=$("button#toplistmemberscrollshowmore").attr("data-page");$("button#toplistmemberscrollshowmore").remove();var i=e+"/nopage/1/page/"+a,n=$('
');$(t).find(".product-list").append(n),$(n).load(i,function(){generateTooltipster($(n).find(".tooltipuser"),"right")})}})}},CommunityTab={setup:function(){$("body").on("click","a.communitytab",function(t){t.preventDefault();var e=$(this).attr("href"),a=$(this).attr("data-href");0==$(e).find(".list").find(".user").length&&$(e).find(".list").append('').load(a,function(){generateTooltipster($(e).find(".tooltipuser"),"right"),$(e).find(".tooltipuserplings").length>0&&generateTooltipUserPlings($(e).find(".tooltipuserplings"),"right"),"#toplistMemberPanel"==e&&CommunityTabToplistMemberScrollPaging.setup(e,a),$(e).find(".opendesktopwidgetpager span").each(function(t){$(this).on("click",function(){$(this).parent().addClass("active").siblings().removeClass("active");var t=a+"/nopage/1/page/"+$(this).html();$(e).find(".product-list").html(""),$(e).find(".product-list").load(t,function(){generateTooltipster($(e).find(".tooltipuser"),"right"),$(e).find(".tooltipuserplings").length>0&&generateTooltipUserPlings($(e).find(".tooltipuserplings"),"right")})})})})});var t=document.location.hash;$('a[href="'+t+'"]').length>0?($('a[href="'+t+'"]').tab("show"),$('a[href="'+t+'"]').trigger("click")):(t="#supportersPanel",$('a[href="'+t+'"]').trigger("click")),$("body").on("mouseenter",".product-thumbnail-startpage",function(){$(this).popover("show")}),$("body").on("mouseleave",".product-thumbnail-startpage",function(){$(this).popover("hide")})}},TagingProduct={setup:function(){$("input[name=tagsuser]").tagify({whitelist:["good","great"],autocomplete:!0}).on("remove",function(t,e){console.log("removed",e)}).on("add",function(t,e){console.log("added",e)})}},TagingProductSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$(".taggingSelect2").select2({placeholder:"Add Tags here ...",tags:!0,tokenSeparators:[","," "],minimumInputLength:3,maximumSelectionLength:5,width:"resolve",ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data;$("#tagsuserselect").attr("data-pid"),t.parent().find("ul.select2-selection__rendered").find("li.select2-selection__choice").length>5?t.find("option[value='"+a.id+"']").remove():(new RegExp("^[0-9A-Za-z_.-]+$").test(a.text)||(t.find("option[value='"+a.id+"']").remove(),alert("Must be letter or number and can include hyphens")),a.text.length>10&&(t.find("option[value='"+a.id+"']").remove(),alert("Max. length 45 chars")))})}},TagingProductDetail={setup:function(){TagingProductDetailSelect2.setup(),$("body").on("click","button.topic-tags-btn",function(t){if($(this).toggleClass("Done"),$(".product_category").find(".usertagslabel").remove(),$(".tagsuserselectpanel").toggle(),"Done"==$(this).text()){$(this).text("Manage tags");var e="",a=$("li.select2-selection__choice");$.each(a,function(t,a){e=e+''+a.title+""}),$(".product_category").find(".topicslink").html(e)}else $(this).text("Done")})}},TagingProductDetailSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$("#tagsuserselect").select2({placeholder:"Input tags please...",tags:!0,minimumInputLength:3,closeOnSelect:!0,maximumSelectionLength:5,tokenSeparators:[","," "],ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data,i=$("#tagsuserselect").attr("data-pid");$.post("/tag/add",{p:i,t:a.id}).done(function(e){"error"==e.status?($("span.topic-tags-saved").css({color:"red"}).html(e.message).show().delay(2e3).fadeOut(),t.find("option[value='"+e.data.tag+"']").last().remove()):$("span.topic-tags-saved").css({color:"green"}).html(' Saved').show().delay(1e3).fadeOut()})}),t.on("select2:unselect",function(t){var e=t.params.data,a=$("#tagsuserselect").attr("data-pid");$.post("/tag/del",{p:a,t:e.id}).done(function(t){console.log(t),$("span.topic-tags-saved").css({color:"green"}).html(''+t.message).show().delay(1e3).fadeOut()})})}},TagingLoopMyProducts={setup:function(){TagingLoopMyProductsSelect2.setup(),$("body").on("click","button.topic-tags-btn",function(t){if($(this).toggleClass("Done"),$(this).parent().find(".topicsuser").html(""),$(this).parent().find(".tagsuserselectpanel").toggle(),"Done"==$(this).text()){$(this).text("Manage tags");var e="",a=$(this).parent().find("li.select2-selection__choice");$.each(a,function(t,a){e=e+''+a.title+""}),$(this).parent().find(".topicsuser").html(e)}else $(this).text("Done")})}},TagingLoopMyProductsSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$(".taggingSelect2").select2({placeholder:"Input tags please...",tags:!0,minimumInputLength:3,closeOnSelect:!0,maximumSelectionLength:5,tokenSeparators:[","," "],ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data,i=$(this).attr("id").replace("tagsuserselect","");$.post("/tag/add",{p:i,t:a.id}).done(function(e){"error"==e.status?($("#topic-tags-saved"+i).css({color:"red"}).html(e.message).show().delay(2e3).fadeOut(),t.find("option[value='"+e.data.tag+"']").last().remove()):"existing"==e.status?$("#topic-tags-saved"+i).css({color:"red"}).html(e.message).show().delay(2e3).fadeOut():$("#topic-tags-saved"+i).css({color:"green"}).html(' Saved').show().delay(1e3).fadeOut()})}),t.on("select2:unselect",function(t){var e=t.params.data,a=$(this).attr("id").replace("tagsuserselect","");$.post("/tag/del",{p:a,t:e.id}).done(function(t){$("#topic-tags-saved"+a).css({color:"green"}).html(''+t.message).show().delay(1e3).fadeOut()})})}},productRatingToggle={setup:function(){$("#showRatingAll").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").show()}),$("#showRatingActive").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").hide()}),$("#showRatingUpvotes").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".clsDownvotes").hide(),$(".productRating-rows-inactive").hide()}),$("#showRatingDownvotes").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").hide(),$(".clsUpvotes").hide()})}},FilterBrowseOriginalFn={setup:function(){$("body").on("click","input#filter_browse_original",function(t){var e=$(this).is(":checked"),a=window.location.href;a.indexOf("browse")<0&&(a+="/browse/"),a.indexOf("filteroriginal")>0&&(a=a.substring(0,a.indexOf("filteroriginal"))),window.location.href=e?a+"filteroriginal/1":a+"filteroriginal/0"})}},FilterBrowseTagGroupFn={setup:function(){$("body").on("change","select.filter_browse_tag_group",function(t){var e=$(this).val(),a=$(this).attr("data_group_id");$.ajax({url:"/explore/savetaggroupfilter?group_id="+a+"&tag_id="+e,cache:!1}).done(function(t){var e=window.location.href;window.location.href=e})})}}; \ No newline at end of file +var newProductPage={setup:function(){function t(){var t=$("#donations-panel").find("#comments").height();t>$("#donations-panel").find("#supporters").height()&&$("#donations-panel").find("#supporters").height(t)}$(document).ready(function(){var e;e=$("#pling-it-box").height(),$(".scrollable-content").height(e),$(".scrollable-content").jScrollPane({mouseWheelSpeed:30}),t(),$('a[data-toggle="tab"]').on("shown.bs.tab",function(e){t()})})}},ImagePreview={hasError:!1,setup:function(){this.initProductPicture(),this.initTitlePicture(),this.initProfilePicture(),this.initProfilePictureBackground()},previewImage:function(t,e){if(t.files&&t.files[0]){var a=new FileReader,i=new Image,n=t.files[0];a.readAsDataURL(t.files[0]),a.onload=function(a){var o=$("#"+e);i.src=a.target.result,i.onload=function(){var e=this.width,i=this.height,r=n.type,s=(n.name,~~(n.size/1024));ImagePreview.hasError=!1,o.parent().parent().find("div.bg-danger").remove(),(e>2e3||e<20||i>2e3||i<20)&&(o.parent().parent().append('
Wrong image dimensions
'),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0),s>2e3&&(o.parent().parent().append('
File too large
'),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0);/(jpg|jpeg|png|gif)$/i.exec(r)||(o.parent().parent().append('
Invalid file type: '+n.type+"
"),$($(t).closest("form")[0]).trigger("reset"),ImagePreview.hasError=!0),0==ImagePreview.hasError&&(ImagePreview.hasError=!1,o.attr("src",a.target.result),o.show())},i.onerror=function(){o.parent().parent().find("div.bg-danger").remove(),o.parent().parent().append('
Invalid file type: '+n.type+"
")},"product-picture-preview"==e?$("button#add-product-picture").text("CHANGE LOGO"):"title-picture-preview"==e?$("button#add-title-picture").text("CHANGE BANNER"):"profile-picture-preview"==e?($("button#add-profile-picture").text("CHANGE PICTURE"),$("input#profile_img_src").val("local")):"profile-picture-bg-preview"==e&&$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},previewImageMember:function(t,e){if(t.files&&t.files[0]){var a=new FileReader,i=new Image;t.files[0];a.readAsDataURL(t.files[0]),a.onload=function(t){var a=$("#"+e);i.src=t.target.result,i.onload=function(){ImagePreview.hasError=!1,a.parent().find(".image-error").remove(),0==ImagePreview.hasError&&(a.attr("src",t.target.result),a.show())},i.onerror=function(){a.parent().append('
Invalid file type
')},"profile-picture-background-preview"==e&&$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},readImage:function(t){var e=new FileReader,a=new Image;e.readAsDataURL(t),e.onload=function(e){a.src=e.target.result,a.onload=function(){var e=this.width,a=this.height,i=t.type,n=t.name,o=~~(t.size/1024)+"KB";$("#uploadPreview").append(' '+e+"x"+a+" "+o+" "+i+" "+n+"
")},a.onerror=function(){alert("Invalid file type: "+t.type)}}},initProductPicture:function(){if(0!=$("#image_small").length&&0!=$("#image_small").attr("value").length){var t=$("#image_small").data("target");$(t).attr("src","https://cn.opendesktop.org/cache/200x200-2/img/"+$("#image_small").attr("value")),$(t).show(),$("button#add-product-picture").text("CHANGE LOGO")}},initTitlePicture:function(){if(0!=$("#image_big").length&&0!=$("#image_big").attr("value").length){var t=$("#image_big").data("target");$(t).attr("src","https://cn.opendesktop.org/cache/200x200-2/img/"+$("#image_big").attr("value")),$(t).show(),$("button#add-title-picture").text("CHANGE BANNER")}},initProfilePicture:function(){if(0!=$("#profile_image_url").length&&0!=$("#profile_image_url").attr("value").length){var t=$("#profile_image_url").data("target");$(t).attr("src",$("#profile_image_url").attr("value")),$("#profile-picture").attr("src",$("#profile_image_url").attr("value")),$(t).show(),$("button#add-profile-picture").text("CHANGE PICTURE")}},initProfilePictureBackground:function(){if(0!=$("#profile_image_url_bg").length&&0!=$("#profile_image_url_bg").attr("value").length){var t=$("#profile_image_url_bg").data("target");$(t).attr("src",$("#profile_image_url_bg").attr("value")),$("#profile-picture-background-preview").attr("src",$("#profile_image_url_bg").attr("value")),$(t).show(),$("button#add-profile-picture-background").text("CHANGE PICTURE")}}},MenuHover={setup:function(){$("body").on("click","a#login-dropdown",function(t){t.stopPropagation(),$(".header-login-container").toggleClass("active")}).on("click",".header-login-container",function(t){t.stopPropagation()}).on("click","a.menu-trigger",function(t){t.stopPropagation();var e="."+$(this).attr("rel");$(e).toggleClass("active")}).on("mouseup",function(t){var e=$("ul.profile-menu");$("li.profile-menu-container a.menu-trigger").is(t.target)||e.is(t.target)||0!==e.has(t.target).length||e.removeClass("active")}).on("mouseup",function(t){container=$("div.header-login-container"),trigger=$("a#login-dropdown"),trigger.is(t.target)||container.is(t.target)||0!==container.has(t.target).length||container.removeClass("active")}).click(function(){$(".header-login-container.active").removeClass("active"),$(".profile-menu.active").removeClass("active")})}},ButtonCode={setup:function(){$("#button-code-heading").click(function(){$(this).hasClass("button-code-active")?($(this).removeClass("button-code-active"),$(this).parent().find(".button-code").slideUp("fast"),$(this).parent().find(".button-code").css("border-bottom","none"),$(this).find(".icon-expand-code").css("background-image","url(img/icon-expand.png)")):($(this).addClass("button-code-active"),$(this).parent().find(".button-code").css("border-bottom","1px solid #bdc3c7"),$(this).parent().find(".button-code").slideDown("fast"),$(this).find(".icon-expand-code").css("background-image","url(img/icon-contract.png)"))})},setupClipboardCopy:function(t){$(t).on("mouseover",function(){$(this).off("mouseover"),$(this).find("[data-clipboard-target]").each(function(){var t=$($(this).attr("data-clipboard-target"));$(this).zclip({path:"/theme/flatui/js/lib/ZeroClipboard.swf",copy:$.trim($(t).text())})})})}},ProductPage={setup:function(){$(".dropdown-toggle").dropdown(),$(".scroll-pane").jScrollPane({mouseWheelSpeed:30,animateScroll:!0}),$(".love-it").on("click",function(){this_img_src=$(this).find("img").attr("src"),$(this).hasClass("no-login")||"/theme/flatui/img/icon-like-color.png"==this_img_src||$(this).prev(".share-it").trigger("click")}),$(".payment-options").find(".options").find("span.option").on("click",function(){var t=$(this).attr("title"),e=$(".payment-options").find('input[type="number"]');e.attr("value",t).val(t),e.focus(),$(".options").find(".selected").removeClass("selected"),$(this).addClass("selected")})},setupPlingButton:function(){$("#pling-amount").on("focus",function(){$("#pling-amount").popover("destroy")}),$("#pling-start").on("click",function(t){return validateElement=$("#pling-amount"),validateValue=validateElement.val(),""==validateValue||isNaN(parseFloat(validateValue))||!isFinite(validateValue)?(t.preventDefault(),$("#pling-amount").popover({placement:"bottom",html:"true",content:'
Donation must be a numeric value.
'}).popover("show"),!1):(minValue=validateElement.attr("min"),parseFloat(validateValue)×
Donation must be equal or greater than '+minValue+".
"}).popover("show"),!1):(maxValue=validateElement.attr("max"),parseFloat(validateValue)>parseFloat(maxValue)?(t.preventDefault(),$("#pling-amount").popover({placement:"bottom",html:"true",content:'
Donation must be smaller or equal than '+maxValue+".
"}).popover("show"),!1):void 0))})}},SlideShowRender={setup:function(){$("#slideshow-container").find("img:first").addClass("active"),$("#slideshow-container").find("#navigation").find("a:first").addClass("active")}},ProductSlideShow={setup:function(){$("#slideshow-container").find("#arrows").find("a").on("click",function(t){var e=$(this).attr("id"),a=$("#slideshow-container #slides"),i=a.find("img.active"),n=i.attr("rel"),o=$("#slideshow-container").find("#navigation").find("a.active");if("prev"==e){var r=parseInt(n)-parseInt(1),s=$("#slideshow-container").find('img[rel="'+r+'"]'),l=$("#slideshow-container").find("#navigation").find('a[rel="'+r+'"]');1==!s.size()&&(s=a.find("img:last"),l=$("#slideshow-container").find("#navigation").find("a:last"))}else if("next"==e){var d=parseInt(n)+parseInt(1);s=$("#slideshow-container").find('img[rel="'+d+'"]'),l=$("#slideshow-container").find("#navigation").find('a[rel="'+d+'"]'),1==!s.size()&&(s=a.find("img:first"),l=$("#slideshow-container").find("#navigation").find("a:first"))}i.removeClass("active"),o.removeClass("active"),s.addClass("active"),l.addClass("active")}),$("#slideshow-container").find("#navigation").find("a").on("click",function(){var t=$(this).attr("rel"),e=$("#slideshow-container").find('img[rel="'+t+'"]');$("#slideshow-container").find("img.active").removeClass("active"),e.addClass("active"),$("#slideshow-container").find("#navigation").find("a.active").removeClass("active"),$(this).addClass("active")})}},SlideShow={setup:function(){slideShowInterval=setTimeout(function(){var t=$("#slideshow-container").find("img.active"),e=t.attr("rel"),a=parseInt(e)+parseInt(1),i=$("#slideshow-container").find('img[rel="'+a+'"]'),n=$("#slideshow-container").find("#navigation").find("a.active");t.removeClass("active"),n.removeClass("active"),1==i.size()?(i.addClass("active"),$("#slideshow-container").find("#navigation").find('a[rel="'+a+'"]').addClass("active")):($("#slideshow-container").find("img:first").addClass("active"),$("#slideshow-container").find("#navigation").find("a:first").addClass("active"))},4e3)}},Popuppanel={setup:function(){$("body").on("click","a.popuppanel",function(t){if("_blank"===$(this).attr("target"))console.log("dont prevent default");else{t.preventDefault();var e=$(this).attr("href");$.fancybox({hideOnContentClick:!0,autoScale:!0,cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"iframe",scrolling:"auto",helpers:{overlay:{locked:!1}},autoSize:!0,href:e,type:"ajax"})}})}},PlingsRedirect={setup:function(){window.location.hash?($link=$(window.location.hash),$link.trigger("click")):document.location.hash&&($link=$(document.location.hash),$link.trigger("click"))}},ShowPopups={setup:function(){window.location.hash&&(alert("Hash"),$('a[href="'+document.location.hash+'"]').trigger("click")),document.location.hash&&(alert("Hash"),$('a[href="'+document.location.hash+'"]').trigger("click"))}};$("body").on("mouseenter",".supporter-thumbnail",function(){$(this).popover("show")}),$("body").on("mouseleave",".supporter-thumbnail",function(){$(this).popover("hide")});var Partials={setup:function(){$("body").on("click","a.partial",function(t){t.preventDefault();var e=this.href,a=$(this).attr("data-target"),i=$(this).data("toggle"),n=$(this).attr("data-fragment");return $(a).load(e+" "+n,function(t,e,n){if("error"==e)if(401==n.status){if(t){var o=jQuery.parseJSON(t).login_url;window.location=o||"/login"}}else $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.");i&&$(i).modal("show")}),!1})}},Opendownloadfile={setup:function(){$("body").on("click","a.opendownloadfile",function(t){t.preventDefault();var e=$(this).attr("data-file_id"),a=$(this).attr("data-file_type"),i=$(this).attr("data-file_name"),n=$(this).attr("data-file_size"),o=$(this).attr("data-project_id"),r=$(this).attr("data-link_type");return $.fancybox({hideOnContentClick:!0,autoScale:!0,scrolling:"no",cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"iframe",width:"600",height:"auto",iframe:{scrolling:"no"},autoSize:!1,id:"opendownloadfilepopup",helpers:{overlay:{locked:!1}},href:"/dl?file_id="+e+"&file_type="+a+"&file_name="+i+"&file_size="+n+"&project_id="+o+"&link_type="+r}),!1})}},PartialsButton={setup:function(){$("body").on("click","Button.partialbutton",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).data("toggle"),n=$(this).attr("data-fragment"),o=$('');return $(a).append(o),$(a).load(e+" "+n,function(t,e,n){if("error"==e)if(401==n.status){if(t){var o=jQuery.parseJSON(t).login_url;window.location=o||"/login"}}else $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.");i&&$(i).modal("show")}),!1})}},PartialsButtonHeartDetail={setup:function(){$("body").on("click",".partialbuttonfollowproject",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).attr("data-auth");if($(this).data("toggle"),$(this).attr("data-fragment"),i){if($("#like-product-modal").find("#loginuser").val()==$("#like-product-modal").find("#productcreator").val())return $("#like-product-modal").find("#votelabel").text("Project owner not allowed"),$("#like-product-modal").find(".modal-body").empty(),void $("#like-product-modal").modal("show");var n=$('');return $(a).prepend(n),$.ajax({url:e,cache:!1}).done(function(t){$(a).find(".spinning").remove(),"error"==t.status?$(a).html(t.msg):"delete"==t.action?($(a).find(".plingtext").html(t.cnt),$(a).find(".plingtext").addClass("heartnumberpurple"),$(a).find(".plingheart").removeClass("heartproject").addClass("heartgrey"),$(a).find(".plingheart").removeClass("fa-heart").addClass("fa-heart-o")):($(a).find(".plingtext").html(t.cnt),$(a).find(".plingtext").removeClass("heartnumberpurple"),$(a).find(".plingheart").removeClass("heartgrey").addClass("heartproject"),$(a).find(".plingheart").removeClass("fa-heart-o").addClass("fa-heart"))}),!1}$("#like-product-modal").modal("show")})}},PartialsButtonPlingProject={setup:function(){$("#plingbtn").hover(function(){$(this).attr("src","/images/system/pling-btn-hover.png")},function(){$(this).attr("src",$(this).attr("data-src"))}),$("body").on("click",".partialbuttonplingproject",function(t){t.preventDefault();var e=$(this).attr("data-href"),a=$(this).attr("data-target"),i=$(this).attr("data-auth"),n=$(this).attr("data-issupporter");if($(this).data("toggle"),$(this).attr("data-fragment"),i)return $("#like-product-modal").find("#loginuser").val()==$("#like-product-modal").find("#productcreator").val()?($("#like-product-modal").find("#votelabel").text("Project owner not allowed"),$("#like-product-modal").find(".modal-body").empty(),void $("#like-product-modal").modal("show")):n?($(a).find(".plingnum").html(''),$.ajax({url:e,cache:!1}).done(function(t){"error"==t.status?$(a).html(t.msg):"delete"==t.action?(0==t.cnt?$(a).find(".plingnum").html("Pling me"):$(a).find(".plingnum").html(t.cnt+" Plings"),$(a).find("#plingbtn").attr("src","/images/system/pling-btn-normal.png"),$(a).find("#plingbtn").attr("data-src","/images/system/pling-btn-normal.png")):($(a).find(".plingnum").html(t.cnt+" Plings"),$(a).find("#plingbtn").attr("src","/images/system/pling-btn-active.png"),$(a).find("#plingbtn").attr("data-src","/images/system/pling-btn-active.png"))}),!1):($("#like-product-modal").find("#votelabel").html('
To pling a product and help the artist please consider becoming a supporter. Thanks!

Become a supporter
'),void $("#like-product-modal").modal("show"));$("#like-product-modal").modal("show")})}},PartialsReview={setup:function(){$("body").on("click","a.partialreview",function(t){if(t.preventDefault(),this.href,$(this).attr("data-target"),$(this).data("toggle"),$(this).attr("data-fragment"),$("#review-product-modal").find("#loginuser").val()==$("#review-product-modal").find("#productcreator").val())return $("#review-product-modal").find("#votelabel").text("Project owner not allowed"),$("#review-product-modal").find(".modal-body").empty(),void $("#review-product-modal").modal("show");var e=$("#review-product-modal").find("#userrate").val();return $(this).hasClass("voteup")?1==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment:'),$("#review-product-modal").find("#commenttext").val($("#review-product-modal").find("#otxt").val()),$("#review-product-modal").find(":submit").text("Remove Rating")):($("#review-product-modal").find("input#voteup").val(1),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 1 char):'),$("#review-product-modal").find("#commenttext").val("+"),$("#review-product-modal").find(":submit").text("Rate Now"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").css("display","block").removeAttr("disabled")):0==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment: '),$("#review-product-modal").find("#commenttext").val($("#review-product-modal").find("#otxt").val()),$("#review-product-modal").find(":submit").text("Remove Rating")):($("#review-product-modal").find("input#voteup").val(2),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 5 char) Please explain the reason for downvote to help the creator to make it better '),$("#review-product-modal").find("#commenttext").val("-"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").removeAttr("disabled").css("display","block"),$("#review-product-modal").find(":submit").text("Rate Now")),$("#review-product-modal").modal("show"),$("#review-product-modal").hasClass("noid")&&setTimeout(function(){$("#review-product-modal").modal("hide")},2e3),!1})}},PartialsReviewDownloadHistory={setup:function(){$("body").on("click","button.partialReviewDownloadHistory",function(t){t.preventDefault();var e=$(this).attr("data-userrate");return $("#review-product-modal").find("#commenttext").val($(this).attr("data-comment")),$("#review-product-modal").find("#form_p").val($(this).attr("data-project")),$(this).hasClass("voteup")?1==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment:'),$("#review-product-modal").find(":submit").attr("disabled","disabled").css("display","none"),$("#review-product-modal").find("#commenttext").attr("disabled","disabled")):($("#review-product-modal").find("input#voteup").val(1),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 1 char):'),$("#review-product-modal").find("#commenttext").val("+"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").css("display","block").removeAttr("disabled")):0==e?($("#review-product-modal").find("#votelabel").empty().append(' is given already with comment: '),$("#review-product-modal").find("#commenttext").attr("disabled","disabled"),$("#review-product-modal").find(":submit").attr("disabled","disabled").css("display","none")):($("#review-product-modal").find("input#voteup").val(2),$("#review-product-modal").find("#votelabel").empty().append(' Add Comment (min. 5 chars): '),$("#review-product-modal").find("#commenttext").val("-"),$("#review-product-modal").find("#commenttext").removeAttr("disabled"),$("#review-product-modal").find(":submit").removeAttr("disabled").css("display","block")),$("#review-product-modal").modal("show"),$("#review-product-modal").hasClass("noid")&&setTimeout(function(){$("#review-product-modal").modal("hide")},2e3),!1})}},PartialForms={setup:function(){$("body").on("submit","form.partial",function(t){t.preventDefault(),t.stopImmediatePropagation(),$(this).find(":submit").attr("disabled","disabled"),$(this).find(":submit").css("white-space","normal");var e=$('');$(this).find(":submit").append(e);var a=$(this).attr("data-target"),i=$(this).attr("data-trigger");return console.log(this),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(){return $(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"),!1},success:function(t){return $(a).empty().html(t),$(a).find(i).trigger("click"),!1}}),!1})}},PartialJson={setup:function(){$("body").on("submit","form.partialjson",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t,i){t.redirect?window.location=t.redirect:(e&&$(e).empty().html(t.message),a&&$(e).find(a).trigger("click"))}}),!1})}},PartialJsonFraud={setup:function(){$("body").on("submit","form.partialjsonfraud",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return $("form.partialjsonfraud").find("#report-text").val().length<5?($("form.partialjsonfraud").find("p.warning").remove(),$("form.partialjsonfraud").find("#report-text").parent().append('

at least 5 chars

'),!1):(jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t,i){t.redirect?window.location=t.redirect:(e&&$(e).empty().html(t.message),a&&$(e).find(a).trigger("click"))}}),!1)})}},PartialPayPal={setup:function(){this.initPayPalForm(),this.initPayPalFee()},initPayPalForm:function(){$("body").on("submit","form.partialpaypal",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$(this).attr("data-target"),a=$(this).attr("data-trigger");return jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(t,e,a){$("#modal-dialog").modal("hide");var i=$('');i.html($(t.responseText).filter(".page-container").children()),i.append(''),setTimeout(function(){i.modal("show")},900)},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click"),$("#modal-dialog").modal("hide")}}),!1})},initPayPalFee:function(){$("body").on("change","#amount_plings",function(t){PartialPayPal.changeFee()})},changeFee:function(){var t=document.getElementById("amount_plings"),e=parseFloat(t.value),a=this.round(.05*e,2),i=.03*(a+e+.3)+.3,n=e+a+(i=this.round(i,2));document.getElementById("pling_fee").value=this.round(a,2).toFixed(2),document.getElementById("paypal_fee").value=this.round(i,2).toFixed(2),document.getElementById("sum").value=this.round(n,2)},round:function(t,e){var a=Math.pow(10,e);return Math.round(t*a)/a}},PartialCommentReviewForm={setup:function(){this.initForm()},initForm:function(){$("body").on("submit","form.product-add-comment-review",function(t){t.preventDefault(),t.stopImmediatePropagation();var e=$.trim($("#commenttext").val());if(2==$("#voteup").val()&&e.length<5)0==$("#review-product-modal").find("#votelabel").find(".warning").length&&$("#review-product-modal").find("#votelabel").append("
Please give a comment, thanks!");else{if(!(e.length<1)){$(this).find(":submit").attr("disabled","disabled"),$(this).find(":submit").css("white-space","normal");var a=$('');return $(this).find(":submit").append(a),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,error:function(t,e,a){$("#review-product-modal").modal("hide");var i=$("#generic-dialog");i.modal("hide"),i.find(".modal-header-text").empty().append("Please try later."),i.find(".modal-body").empty().append("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
"),setTimeout(function(){i.modal("show")},900)},success:function(t){$("#review-product-modal").modal("hide"),location.reload()}}),!1}0==$("#review-product-modal").find("#votelabel").find(".warning").length&&$("#review-product-modal").find("#votelabel").append("
Please give a comment, thanks!")}})}},PartialFormsAjax={setup:function(){var t=$("form.partialajax"),e=t.attr("data-target"),a=t.attr("data-trigger");$(t).find(":submit").on("click",function(e){e.preventDefault(),$(t).find(":submit").attr("disabled","disabled"),$(t).find(":submit").css("white-space","normal");var a=$('');$(t).find(":submit").append(a),$(t).submit()}),t.ajaxForm({error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click")}})}},AjaxFormWithProgress={setup:function(t){var e=$(t),a=e.attr("data-target"),i=e.attr("data-trigger"),n=e.find(".progress-bar"),o=e.find(".progress-percent");$(e).find(":submit").on("click",function(t){t.preventDefault(),$(e).find(":submit").attr("disabled","disabled"),$(e).find(":submit").css("white-space","normal");var a=$('');$(e).find(":submit").append(a),$(e).submit()}),e.ajaxForm({beforeSend:function(){n.parent().removeClass("hidden"),n.width("0%"),o.html("0%")},uploadProgress:function(t,e,a,i){var r=i+"%";n.width(r),o.html(r)},error:function(){$(a).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){n.width("100%"),o.html("100%"),$(a).empty().html(t),$(a).find(i).trigger("click")}})}},PartialFormsAjaxMemberBg={setup:function(){var t=$("form.partialajaxbg"),e=t.attr("data-target"),a=t.attr("data-trigger");$(t).find(":submit").on("click",function(e){e.preventDefault(),$(t).find(":submit").attr("disabled","disabled"),$(t).find(":submit").css("white-space","normal");var a=$('');$(t).find(":submit").append(a),$(t).submit()}),t.ajaxForm({error:function(){$(e).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.
")},success:function(t){$(e).empty().html(t),$(e).find(a).trigger("click")}})}},AjaxForm={setup:function(t,e){var a=$(e);$("body").on("submit","form.product-add-comment",function(t){return t.preventDefault(),t.stopImmediatePropagation(),$(this).find("button").attr("disabled","disabled"),$(this).find(".glyphicon.glyphicon-send").removeClass("glyphicon-send").addClass("glyphicon-refresh spinning"),jQuery.ajax({data:$(this).serialize(),url:this.action,type:this.method,dataType:"json",error:function(t,e,a){var i=JSON&&JSON.parse(t.responseText)||$.parseJSON(t.responseText),n=$("#generic-dialog");n.modal("hide"),n.find(".modal-header-text").empty().append(i.title),n.find(".modal-body").empty().append(i.message),setTimeout(function(){n.modal("show")},900)},success:function(t){"ok"==t.status&&$(a).empty().html(t.data),"error"==t.status&&(""!=t.message?alert(t.message):alert("Service is temporarily unavailable."))}}),!1})}},WidgetModalAjax={setup:function(){$(".my-product-item").find("a.widget-button").on("click",function(){var t=$(this).attr("rel"),e=t.split("product")[1],a=$(".modal-body#widget-code-"+t);$.ajax({url:"/widget/config/"+e,type:"html",success:function(t){a.prepend(t),angular.bootstrap(a,["widgetApp"])}})})}},LoginContainer={update:function(){Date.now||(Date.now=function(){return(new Date).getTime()});var t="/authorization/htmllogin?"+(Date.now()/1e3|0);$("#login_container").load(t,function(t,e,a){})}},RssNews={setup:function(){$.getJSON("https://blog.opendesktop.org/?json=1&callback=?",function(t){var e="";$.each(t.posts,function(t,a){if(t>=3)return!1;var i=moment(a.date);e+='
'+a.title+'
'+i.format("MMM DD YYYY")+''+a.comments.length+" Comment"+(a.comments.length>1?"s":"")+"
"}),$("#rss-feeds").html(e)})}},BlogJson={setup:function(){var t="https://forum.opendesktop.org/";$.ajax("https://forum.opendesktop.org/latest.json").then(function(e){var a=e.topic_list.topics,i="",n=3;a.sort(function(t,e){return new Date(e.last_posted_at)-new Date(t.last_posted_at)}),$.each(a,function(e,a){if(!a.pinned){var o=moment(a.last_posted_at),r="Reply",s=a.posts_count-1;r=0==s?"Replies":1==s?"Reply":"Replies",i+='
'+a.title+'
'+o.fromNow()+''+s+" "+r+"
",n--}if(0==n)return!1}),$("#blogJson").html(i)})}},GitlabNewProjectsJson={setup:function(t){var e=t+"/api/v4/projects?order_by=created_at&sort=desc&visibility=public&page=1&per_page=5";$.ajax(e).then(function(e){var a=e,i="";$.each(a,function(e,a){var n=moment(a.created_at);i+='"}),$("#lastgitprojects").html(i)})}};function showGitUserAvatar(t,e,a){var i=t+"/api/v4/users?username="+e;$.ajax(i).then(function(t){var i=t;$.each(i,function(t,i){$img=$("#avatar_"+e+"_"+a),$img.attr("src",i.avatar_url)})})}var ProductDetailCarousel={setup:function(){$(".carousel-inner img").each(function(t){$(this).on("click",function(){$("#product-main-img-container").hasClass("imgfull")?$("#product-main-img-container").prependTo($("#product-main")):$("#product-main-img-container").prependTo($("#product-page-content")),$("#product-main-img-container").toggleClass("imgfull"),$("#product-main-img-container").toggleClass("imgsmall")})})}},AppimagequestionOnClick={setup:function(t){$("body").on("click","i.appimagequestion",function(t){var e=$("#generic-dialog");e.modal("show"),e.find(".modal-header-text").empty().append("AppImage Info"),e.find(".modal-body").empty().append("")})}},ProductDetailBtnGetItClick={setup:function(t){$("body").on("click","button#project_btn_download",function(e){$.fancybox({hideOnContentClick:!0,autoScale:!0,cyclic:"true",transitionIn:"elastic",transitionOut:"elastic",type:"ajax",helpers:{overlay:{locked:!1}},autoSize:!0,href:"/p/"+t+"/ppload"})})}},GhnsExcludedClick={setup:function(t){$("body").on("click","#ghns_excluded-this-checkbox",function(e){e.stopPropagation();var a=1,i="",n="";this.checked?(a=1,i="Please specify why this product should be excluded (min 5 chars) :",n=" ghns exclude"):(a=0,i="Please specify why this product should be included (min 5 chars) :",n=" ghns include");var o=$("#generic-dialog");return o.modal("show"),o.find(".modal-header-text").empty().append("GHNS "),o.find(".modal-body").empty().append(i+'

"),$("body").on("click","#btn-ghns-excluded",function(){var t=$("#ghns-excluded-text").val();if(t.length<5)return alert("min 5 chars"),!1;var e=$(this).attr("data-projectid"),a=$(this).attr("data-status");$.ajax({url:"/backend/project/doghnsexclude",method:"POST",data:{project_id:e,ghns_excluded:a,msg:t},success:function(t){var e=$("#generic-dialog");0==a?(e.find(".modal-body").empty().append("Project is successfully included into GHNS"),$("#ghns_excluded-this-checkbox").prop("checked",!1)):(e.find(".modal-body").empty().append("Project is successfully excluded into GHNS"),$("#ghns_excluded-this-checkbox").prop("checked",!0)),setTimeout(function(){e.modal("hide")},1e3)},error:function(){alert("Service is temporarily unavailable.")}})}),!1})}},AboutMeMyProjectsPaging={setup:function(){$(window).scroll(function(){if($("footer").offset().top-($(window).scrollTop()+$(window).height())<300){if(!$("button#btnshowmoreproducts").length)return;let t='',e=$("button#btnshowmoreproducts").attr("data-page");$("button#btnshowmoreproducts").remove(),$url=window.location.href,target="#my-products-list";let a=$("

").append(t).load($url,{projectpage:e},function(t,e,a){if("error"==e)if(401==a.status){if(t){var i=jQuery.parseJSON(t).login_url;window.location=i||"/login"}}else $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.")});$("#my-products-list").append(a)}})}},AboutMeMyProjectsPagingButton={setup:function(){$("body").on("click","button#btnshowmoreproducts",function(t){let e=$(this).attr("data-page");$(this).remove(),$url=window.location.href,target="#my-products-list";let a=$("
").append('').load($url,{projectpage:e},function(t,e,a){if("error"==e)if(401==a.status){if(t){var i=jQuery.parseJSON(t).login_url;window.location=i||"/login"}}else $(target).empty().html("Service is temporarily unavailable. Our engineers are working quickly to resolve this issue.
Find out why you may have encountered this error.")});$("#my-products-list").append(a)})}},ProductDetailCommentTooltip={setup:function(){TooltipUser.setup("tooltipuser","right")}};function generateTooltipster(t,e){$(t).each(function(){$(this).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/member/"+i+"/tooltip/",function(e){var i=e.data,n='
'+i.username+' '+i.countrycity+'
'+i.cntProjects+' products
'+i.totalComments+' comments
Likes '+i.cntLikesGave+' products
Got '+i.cntLikesGot+' Likes
Last time active : '+i.lastactive_at+'
Member since : '+i.created_at+"
";n+="
",t.content(n),a.data("loaded",!0)})}})})}var TooltipUser={setup:function(t,e){$("."+t).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/member/"+i+"/tooltip/",function(e){var i=e.data,n='
'+i.username+' '+i.countrycity+'
'+i.cntProjects+' products
'+i.totalComments+' comments
Likes '+i.cntLikesGave+' products
Got '+i.cntLikesGot+' Likes
Last time active : '+i.lastactive_at+'
Member since : '+i.created_at+"
";n+="
",t.content(n),a.data("loaded",!0)})}})}};function generateTooltipUserPlings(t,e){$(t).each(function(){$(this).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/plings/tooltip/id/"+i,function(e){var i='
';$.each(e.data,function(t,e){if(t>10)return!1;e.profile_image_url.indexOf("http")<0&&(e.profile_image_url="https://cn.opendesktop.org/cache/40x40-2/img/"+e.profile_image_url),e.profile_image_url.indexOf(".gif")>0&&(e.profile_image_url="https://cn.opendesktop.org/img/"+e.profile_image_url),i=i+'
'+e.username+"
"}),i+="
",t.content(i),a.data("loaded",!0)})}})})}var TooltipUserPlings={setup:function(t,e){$("."+t).tooltipster({side:e,theme:["tooltipster-light","tooltipster-light-customized"],contentCloning:!0,contentAsHTML:!0,interactive:!0,functionBefore:function(t,e){var a=$(e.origin),i=a.attr("data-user");!0!==a.data("loaded")&&$.get("/plings/tooltip/id/"+i,function(e){var i='
';$.each(e.data,function(t,e){if(t>10)return!1;e.profile_image_url.indexOf("http")<0&&(e.profile_image_url="https://cn.opendesktop.org/cache/40x40-2/img/"+e.profile_image_url),e.profile_image_url.indexOf(".gif")>0&&(e.profile_image_url="https://cn.opendesktop.org/img/"+e.profile_image_url),i=i+'
'+e.username+"
"}),i+="
",t.content(i),a.data("loaded",!0)})}})}},AboutMePage={setup:function(t){var e=t+"'s Profile "+$(document).prop("title");$(document).prop("title",e)}},InitActiveHashTab={setup:function(){var t=document.location.hash;$('a[href="'+t+'"]')&&$('a[href="'+t+'"]').tab("show")}},CommunityTabToplistMemberScrollPaging={setup:function(t,e){$(window).scroll(function(){if($("footer").offset().top-($(window).scrollTop()+$(window).height())<300){if(!$("button#toplistmemberscrollshowmore").length)return;var a=$("button#toplistmemberscrollshowmore").attr("data-page");$("button#toplistmemberscrollshowmore").remove();var i=e+"/nopage/1/page/"+a,n=$('
');$(t).find(".product-list").append(n),$(n).load(i,function(){generateTooltipster($(n).find(".tooltipuser"),"right")})}})}},CommunityTab={setup:function(){$("body").on("click","a.communitytab",function(t){t.preventDefault();var e=$(this).attr("href"),a=$(this).attr("data-href");0==$(e).find(".list").find(".user").length&&$(e).find(".list").append('').load(a,function(){generateTooltipster($(e).find(".tooltipuser"),"right"),$(e).find(".tooltipuserplings").length>0&&generateTooltipUserPlings($(e).find(".tooltipuserplings"),"right"),"#toplistMemberPanel"==e&&CommunityTabToplistMemberScrollPaging.setup(e,a),$(e).find(".opendesktopwidgetpager span").each(function(t){$(this).on("click",function(){$(this).parent().addClass("active").siblings().removeClass("active");var t=a+"/nopage/1/page/"+$(this).html();$(e).find(".product-list").html(""),$(e).find(".product-list").load(t,function(){generateTooltipster($(e).find(".tooltipuser"),"right"),$(e).find(".tooltipuserplings").length>0&&generateTooltipUserPlings($(e).find(".tooltipuserplings"),"right")})})})})});var t=document.location.hash;$('a[href="'+t+'"]').length>0?($('a[href="'+t+'"]').tab("show"),$('a[href="'+t+'"]').trigger("click")):(t="#supportersPanel",$('a[href="'+t+'"]').trigger("click")),$("body").on("mouseenter",".product-thumbnail-startpage",function(){$(this).popover("show")}),$("body").on("mouseleave",".product-thumbnail-startpage",function(){$(this).popover("hide")})}},TagingProduct={setup:function(){$("input[name=tagsuser]").tagify({whitelist:["good","great"],autocomplete:!0}).on("remove",function(t,e){console.log("removed",e)}).on("add",function(t,e){console.log("added",e)})}},TagingProductSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$(".taggingSelect2").select2({placeholder:"Add Tags here ...",tags:!0,tokenSeparators:[","," "],minimumInputLength:3,maximumSelectionLength:5,width:"resolve",ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data;$("#tagsuserselect").attr("data-pid"),t.parent().find("ul.select2-selection__rendered").find("li.select2-selection__choice").length>5?t.find("option[value='"+a.id+"']").remove():(new RegExp("^[0-9A-Za-z_.-]+$").test(a.text)||(t.find("option[value='"+a.id+"']").remove(),alert("Must be letter or number and can include hyphens")),a.text.length>10&&(t.find("option[value='"+a.id+"']").remove(),alert("Max. length 45 chars")))})}},TagingProductDetail={setup:function(){TagingProductDetailSelect2.setup(),$("body").on("click","button.topic-tags-btn",function(t){if($(this).toggleClass("Done"),$(".product_category").find(".usertagslabel").remove(),$(".tagsuserselectpanel").toggle(),"Done"==$(this).text()){$(this).text("Manage tags");var e="",a=$("li.select2-selection__choice");$.each(a,function(t,a){e=e+''+a.title+""}),$(".product_category").find(".topicslink").html(e)}else $(this).text("Done")})}},TagingProductDetailSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$("#tagsuserselect").select2({placeholder:"Input tags please...",tags:!0,minimumInputLength:3,closeOnSelect:!0,maximumSelectionLength:5,tokenSeparators:[","," "],ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data,i=$("#tagsuserselect").attr("data-pid");$.post("/tag/add",{p:i,t:a.id}).done(function(e){"error"==e.status?($("span.topic-tags-saved").css({color:"red"}).html(e.message).show().delay(2e3).fadeOut(),t.find("option[value='"+e.data.tag+"']").last().remove()):$("span.topic-tags-saved").css({color:"green"}).html(' Saved').show().delay(1e3).fadeOut()})}),t.on("select2:unselect",function(t){var e=t.params.data,a=$("#tagsuserselect").attr("data-pid");$.post("/tag/del",{p:a,t:e.id}).done(function(t){console.log(t),$("span.topic-tags-saved").css({color:"green"}).html(''+t.message).show().delay(1e3).fadeOut()})})}},TagingLoopMyProducts={setup:function(){TagingLoopMyProductsSelect2.setup(),$("body").on("click","button.topic-tags-btn",function(t){if($(this).toggleClass("Done"),$(this).parent().find(".topicsuser").html(""),$(this).parent().find(".tagsuserselectpanel").toggle(),"Done"==$(this).text()){$(this).text("Manage tags");var e="",a=$(this).parent().find("li.select2-selection__choice");$.each(a,function(t,a){e=e+''+a.title+""}),$(this).parent().find(".topicsuser").html(e)}else $(this).text("Done")})}},TagingLoopMyProductsSelect2={setup:function(){$.fn.select2.amd.require(["select2/selection/search"],function(t){t.prototype.searchRemoveChoice=function(t,e){this.trigger("unselect",{data:e}),this.$search.val(""),this.handleSearch()}},null,!0);var t=$(".taggingSelect2").select2({placeholder:"Input tags please...",tags:!0,minimumInputLength:3,closeOnSelect:!0,maximumSelectionLength:5,tokenSeparators:[","," "],ajax:{url:"/tag/filter",dataType:"json",type:"GET",delay:500,processResults:function(t){return{results:t.data.tags}}}});t.on("select2:select",function(e){var a=e.params.data,i=$(this).attr("id").replace("tagsuserselect","");$.post("/tag/add",{p:i,t:a.id}).done(function(e){"error"==e.status?($("#topic-tags-saved"+i).css({color:"red"}).html(e.message).show().delay(2e3).fadeOut(),t.find("option[value='"+e.data.tag+"']").last().remove()):"existing"==e.status?$("#topic-tags-saved"+i).css({color:"red"}).html(e.message).show().delay(2e3).fadeOut():$("#topic-tags-saved"+i).css({color:"green"}).html(' Saved').show().delay(1e3).fadeOut()})}),t.on("select2:unselect",function(t){var e=t.params.data,a=$(this).attr("id").replace("tagsuserselect","");$.post("/tag/del",{p:a,t:e.id}).done(function(t){$("#topic-tags-saved"+a).css({color:"green"}).html(''+t.message).show().delay(1e3).fadeOut()})})}},productRatingToggle={setup:function(){$("#showRatingAll").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").show()}),$("#showRatingActive").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").hide()}),$("#showRatingUpvotes").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".clsDownvotes").hide(),$(".productRating-rows-inactive").hide()}),$("#showRatingDownvotes").on("click",function(){$("#ratings-panel").find(".spinning").show(),setTimeout(function(){$("#ratings-panel").find(".spinning").hide()},500),$(".btnRateFilter").removeClass("activeRating"),$(this).addClass("activeRating"),$(".productRating-rows").show(),$(".productRating-rows-inactive").hide(),$(".clsUpvotes").hide()})}},FilterBrowseOriginalFn={setup:function(){$("body").on("click","input#filter_browse_original",function(t){var e=$(this).is(":checked"),a=window.location.href;a.indexOf("browse")<0&&(a+="/browse/"),a.indexOf("filteroriginal")>0&&(a=a.substring(0,a.indexOf("filteroriginal"))),window.location.href=e?a+"filteroriginal/1":a+"filteroriginal/0"})}},FilterBrowseTagGroupFn={setup:function(){$("body").on("change","select.filter_browse_tag_group",function(t){var e=$(this).val(),a=$(this).attr("data_group_id");$.ajax({url:"/explore/savetaggroupfilter?group_id="+a+"&tag_id="+e,cache:!1}).done(function(t){var e=window.location.href;window.location.href=e})})}}; \ No newline at end of file diff --git a/httpdocs/tools/spectre/font-awesome.min.css b/httpdocs/tools/spectre/font-awesome.min.css new file mode 100644 index 000000000..8156e1c59 --- /dev/null +++ b/httpdocs/tools/spectre/font-awesome.min.css @@ -0,0 +1,2334 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face { + font-family:'FontAwesome'; + src:url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), + url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), + url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), + url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), + url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); + font-weight:normal; + font-style:normal +} +.fa { + display:inline-block; + font:normal normal normal 14px/1 FontAwesome; + font-size:inherit; + text-rendering:auto; + -webkit-font-smoothing:antialiased; + -moz-osx-font-smoothing:grayscale +} +.fa-lg { + font-size:1.33333333em; + line-height:.75em; + vertical-align:-15% +} +.fa-2x { + font-size:2em +} +.fa-3x { + font-size:3em +} +.fa-4x { + font-size:4em +} +.fa-5x { + font-size:5em +} +.fa-fw { + width:1.28571429em; + text-align:center +} +.fa-ul { + padding-left:0; + margin-left:2.14285714em; + list-style-type:none +} +.fa-ul>li { + position:relative +} +.fa-li { + position:absolute; + left:-2.14285714em; + width:2.14285714em; + top:.14285714em; + text-align:center +} +.fa-li.fa-lg { + left:-1.85714286em +} +.fa-border { + padding:.2em .25em .15em; + border:solid .08em #eee; + border-radius:.1em +} +.fa-pull-left { + float:left +} +.fa-pull-right { + float:right +} +.fa.fa-pull-left { + margin-right:.3em +} +.fa.fa-pull-right { + margin-left:.3em +} +.pull-right { + float:right +} +.pull-left { + float:left +} +.fa.pull-left { + margin-right:.3em +} +.fa.pull-right { + margin-left:.3em +} +.fa-spin { + -webkit-animation:fa-spin 2s infinite linear; + animation:fa-spin 2s infinite linear +} +.fa-pulse { + -webkit-animation:fa-spin 1s infinite steps(8); + animation:fa-spin 1s infinite steps(8) +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform:rotate(0deg); + transform:rotate(0deg) + } + 100% { + -webkit-transform:rotate(359deg); + transform:rotate(359deg) + } +} +@keyframes fa-spin { + 0% { + -webkit-transform:rotate(0deg); + transform:rotate(0deg) + } + 100% { + -webkit-transform:rotate(359deg); + transform:rotate(359deg) + } +} +.fa-rotate-90 { + -ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform:rotate(90deg); + -ms-transform:rotate(90deg); + transform:rotate(90deg) +} +.fa-rotate-180 { + -ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg) +} +.fa-rotate-270 { + -ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform:rotate(270deg); + -ms-transform:rotate(270deg); + transform:rotate(270deg) +} +.fa-flip-horizontal { + -ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform:scale(-1, 1); + -ms-transform:scale(-1, 1); + transform:scale(-1, 1) +} +.fa-flip-vertical { + -ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform:scale(1, -1); + -ms-transform:scale(1, -1); + transform:scale(1, -1) +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter:none +} +.fa-stack { + position:relative; + display:inline-block; + width:2em; + height:2em; + line-height:2em; + vertical-align:middle +} +.fa-stack-1x, +.fa-stack-2x { + position:absolute; + left:0; + width:100%; + text-align:center +} +.fa-stack-1x { + line-height:inherit +} +.fa-stack-2x { + font-size:2em +} +.fa-inverse { + color:#fff +} +.fa-glass:before { + content:"\f000" +} +.fa-music:before { + content:"\f001" +} +.fa-search:before { + content:"\f002" +} +.fa-envelope-o:before { + content:"\f003" +} +.fa-heart:before { + content:"\f004" +} +.fa-star:before { + content:"\f005" +} +.fa-star-o:before { + content:"\f006" +} +.fa-user:before { + content:"\f007" +} +.fa-film:before { + content:"\f008" +} +.fa-th-large:before { + content:"\f009" +} +.fa-th:before { + content:"\f00a" +} +.fa-th-list:before { + content:"\f00b" +} +.fa-check:before { + content:"\f00c" +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content:"\f00d" +} +.fa-search-plus:before { + content:"\f00e" +} +.fa-search-minus:before { + content:"\f010" +} +.fa-power-off:before { + content:"\f011" +} +.fa-signal:before { + content:"\f012" +} +.fa-gear:before, +.fa-cog:before { + content:"\f013" +} +.fa-trash-o:before { + content:"\f014" +} +.fa-home:before { + content:"\f015" +} +.fa-file-o:before { + content:"\f016" +} +.fa-clock-o:before { + content:"\f017" +} +.fa-road:before { + content:"\f018" +} +.fa-download:before { + content:"\f019" +} +.fa-arrow-circle-o-down:before { + content:"\f01a" +} +.fa-arrow-circle-o-up:before { + content:"\f01b" +} +.fa-inbox:before { + content:"\f01c" +} +.fa-play-circle-o:before { + content:"\f01d" +} +.fa-rotate-right:before, +.fa-repeat:before { + content:"\f01e" +} +.fa-refresh:before { + content:"\f021" +} +.fa-list-alt:before { + content:"\f022" +} +.fa-lock:before { + content:"\f023" +} +.fa-flag:before { + content:"\f024" +} +.fa-headphones:before { + content:"\f025" +} +.fa-volume-off:before { + content:"\f026" +} +.fa-volume-down:before { + content:"\f027" +} +.fa-volume-up:before { + content:"\f028" +} +.fa-qrcode:before { + content:"\f029" +} +.fa-barcode:before { + content:"\f02a" +} +.fa-tag:before { + content:"\f02b" +} +.fa-tags:before { + content:"\f02c" +} +.fa-book:before { + content:"\f02d" +} +.fa-bookmark:before { + content:"\f02e" +} +.fa-print:before { + content:"\f02f" +} +.fa-camera:before { + content:"\f030" +} +.fa-font:before { + content:"\f031" +} +.fa-bold:before { + content:"\f032" +} +.fa-italic:before { + content:"\f033" +} +.fa-text-height:before { + content:"\f034" +} +.fa-text-width:before { + content:"\f035" +} +.fa-align-left:before { + content:"\f036" +} +.fa-align-center:before { + content:"\f037" +} +.fa-align-right:before { + content:"\f038" +} +.fa-align-justify:before { + content:"\f039" +} +.fa-list:before { + content:"\f03a" +} +.fa-dedent:before, +.fa-outdent:before { + content:"\f03b" +} +.fa-indent:before { + content:"\f03c" +} +.fa-video-camera:before { + content:"\f03d" +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content:"\f03e" +} +.fa-pencil:before { + content:"\f040" +} +.fa-map-marker:before { + content:"\f041" +} +.fa-adjust:before { + content:"\f042" +} +.fa-tint:before { + content:"\f043" +} +.fa-edit:before, +.fa-pencil-square-o:before { + content:"\f044" +} +.fa-share-square-o:before { + content:"\f045" +} +.fa-check-square-o:before { + content:"\f046" +} +.fa-arrows:before { + content:"\f047" +} +.fa-step-backward:before { + content:"\f048" +} +.fa-fast-backward:before { + content:"\f049" +} +.fa-backward:before { + content:"\f04a" +} +.fa-play:before { + content:"\f04b" +} +.fa-pause:before { + content:"\f04c" +} +.fa-stop:before { + content:"\f04d" +} +.fa-forward:before { + content:"\f04e" +} +.fa-fast-forward:before { + content:"\f050" +} +.fa-step-forward:before { + content:"\f051" +} +.fa-eject:before { + content:"\f052" +} +.fa-chevron-left:before { + content:"\f053" +} +.fa-chevron-right:before { + content:"\f054" +} +.fa-plus-circle:before { + content:"\f055" +} +.fa-minus-circle:before { + content:"\f056" +} +.fa-times-circle:before { + content:"\f057" +} +.fa-check-circle:before { + content:"\f058" +} +.fa-question-circle:before { + content:"\f059" +} +.fa-info-circle:before { + content:"\f05a" +} +.fa-crosshairs:before { + content:"\f05b" +} +.fa-times-circle-o:before { + content:"\f05c" +} +.fa-check-circle-o:before { + content:"\f05d" +} +.fa-ban:before { + content:"\f05e" +} +.fa-arrow-left:before { + content:"\f060" +} +.fa-arrow-right:before { + content:"\f061" +} +.fa-arrow-up:before { + content:"\f062" +} +.fa-arrow-down:before { + content:"\f063" +} +.fa-mail-forward:before, +.fa-share:before { + content:"\f064" +} +.fa-expand:before { + content:"\f065" +} +.fa-compress:before { + content:"\f066" +} +.fa-plus:before { + content:"\f067" +} +.fa-minus:before { + content:"\f068" +} +.fa-asterisk:before { + content:"\f069" +} +.fa-exclamation-circle:before { + content:"\f06a" +} +.fa-gift:before { + content:"\f06b" +} +.fa-leaf:before { + content:"\f06c" +} +.fa-fire:before { + content:"\f06d" +} +.fa-eye:before { + content:"\f06e" +} +.fa-eye-slash:before { + content:"\f070" +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content:"\f071" +} +.fa-plane:before { + content:"\f072" +} +.fa-calendar:before { + content:"\f073" +} +.fa-random:before { + content:"\f074" +} +.fa-comment:before { + content:"\f075" +} +.fa-magnet:before { + content:"\f076" +} +.fa-chevron-up:before { + content:"\f077" +} +.fa-chevron-down:before { + content:"\f078" +} +.fa-retweet:before { + content:"\f079" +} +.fa-shopping-cart:before { + content:"\f07a" +} +.fa-folder:before { + content:"\f07b" +} +.fa-folder-open:before { + content:"\f07c" +} +.fa-arrows-v:before { + content:"\f07d" +} +.fa-arrows-h:before { + content:"\f07e" +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content:"\f080" +} +.fa-twitter-square:before { + content:"\f081" +} +.fa-facebook-square:before { + content:"\f082" +} +.fa-camera-retro:before { + content:"\f083" +} +.fa-key:before { + content:"\f084" +} +.fa-gears:before, +.fa-cogs:before { + content:"\f085" +} +.fa-comments:before { + content:"\f086" +} +.fa-thumbs-o-up:before { + content:"\f087" +} +.fa-thumbs-o-down:before { + content:"\f088" +} +.fa-star-half:before { + content:"\f089" +} +.fa-heart-o:before { + content:"\f08a" +} +.fa-sign-out:before { + content:"\f08b" +} +.fa-linkedin-square:before { + content:"\f08c" +} +.fa-thumb-tack:before { + content:"\f08d" +} +.fa-external-link:before { + content:"\f08e" +} +.fa-sign-in:before { + content:"\f090" +} +.fa-trophy:before { + content:"\f091" +} +.fa-github-square:before { + content:"\f092" +} +.fa-upload:before { + content:"\f093" +} +.fa-lemon-o:before { + content:"\f094" +} +.fa-phone:before { + content:"\f095" +} +.fa-square-o:before { + content:"\f096" +} +.fa-bookmark-o:before { + content:"\f097" +} +.fa-phone-square:before { + content:"\f098" +} +.fa-twitter:before { + content:"\f099" +} +.fa-facebook-f:before, +.fa-facebook:before { + content:"\f09a" +} +.fa-github:before { + content:"\f09b" +} +.fa-unlock:before { + content:"\f09c" +} +.fa-credit-card:before { + content:"\f09d" +} +.fa-feed:before, +.fa-rss:before { + content:"\f09e" +} +.fa-hdd-o:before { + content:"\f0a0" +} +.fa-bullhorn:before { + content:"\f0a1" +} +.fa-bell:before { + content:"\f0f3" +} +.fa-certificate:before { + content:"\f0a3" +} +.fa-hand-o-right:before { + content:"\f0a4" +} +.fa-hand-o-left:before { + content:"\f0a5" +} +.fa-hand-o-up:before { + content:"\f0a6" +} +.fa-hand-o-down:before { + content:"\f0a7" +} +.fa-arrow-circle-left:before { + content:"\f0a8" +} +.fa-arrow-circle-right:before { + content:"\f0a9" +} +.fa-arrow-circle-up:before { + content:"\f0aa" +} +.fa-arrow-circle-down:before { + content:"\f0ab" +} +.fa-globe:before { + content:"\f0ac" +} +.fa-wrench:before { + content:"\f0ad" +} +.fa-tasks:before { + content:"\f0ae" +} +.fa-filter:before { + content:"\f0b0" +} +.fa-briefcase:before { + content:"\f0b1" +} +.fa-arrows-alt:before { + content:"\f0b2" +} +.fa-group:before, +.fa-users:before { + content:"\f0c0" +} +.fa-chain:before, +.fa-link:before { + content:"\f0c1" +} +.fa-cloud:before { + content:"\f0c2" +} +.fa-flask:before { + content:"\f0c3" +} +.fa-cut:before, +.fa-scissors:before { + content:"\f0c4" +} +.fa-copy:before, +.fa-files-o:before { + content:"\f0c5" +} +.fa-paperclip:before { + content:"\f0c6" +} +.fa-save:before, +.fa-floppy-o:before { + content:"\f0c7" +} +.fa-square:before { + content:"\f0c8" +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content:"\f0c9" +} +.fa-list-ul:before { + content:"\f0ca" +} +.fa-list-ol:before { + content:"\f0cb" +} +.fa-strikethrough:before { + content:"\f0cc" +} +.fa-underline:before { + content:"\f0cd" +} +.fa-table:before { + content:"\f0ce" +} +.fa-magic:before { + content:"\f0d0" +} +.fa-truck:before { + content:"\f0d1" +} +.fa-pinterest:before { + content:"\f0d2" +} +.fa-pinterest-square:before { + content:"\f0d3" +} +.fa-google-plus-square:before { + content:"\f0d4" +} +.fa-google-plus:before { + content:"\f0d5" +} +.fa-money:before { + content:"\f0d6" +} +.fa-caret-down:before { + content:"\f0d7" +} +.fa-caret-up:before { + content:"\f0d8" +} +.fa-caret-left:before { + content:"\f0d9" +} +.fa-caret-right:before { + content:"\f0da" +} +.fa-columns:before { + content:"\f0db" +} +.fa-unsorted:before, +.fa-sort:before { + content:"\f0dc" +} +.fa-sort-down:before, +.fa-sort-desc:before { + content:"\f0dd" +} +.fa-sort-up:before, +.fa-sort-asc:before { + content:"\f0de" +} +.fa-envelope:before { + content:"\f0e0" +} +.fa-linkedin:before { + content:"\f0e1" +} +.fa-rotate-left:before, +.fa-undo:before { + content:"\f0e2" +} +.fa-legal:before, +.fa-gavel:before { + content:"\f0e3" +} +.fa-dashboard:before, +.fa-tachometer:before { + content:"\f0e4" +} +.fa-comment-o:before { + content:"\f0e5" +} +.fa-comments-o:before { + content:"\f0e6" +} +.fa-flash:before, +.fa-bolt:before { + content:"\f0e7" +} +.fa-sitemap:before { + content:"\f0e8" +} +.fa-umbrella:before { + content:"\f0e9" +} +.fa-paste:before, +.fa-clipboard:before { + content:"\f0ea" +} +.fa-lightbulb-o:before { + content:"\f0eb" +} +.fa-exchange:before { + content:"\f0ec" +} +.fa-cloud-download:before { + content:"\f0ed" +} +.fa-cloud-upload:before { + content:"\f0ee" +} +.fa-user-md:before { + content:"\f0f0" +} +.fa-stethoscope:before { + content:"\f0f1" +} +.fa-suitcase:before { + content:"\f0f2" +} +.fa-bell-o:before { + content:"\f0a2" +} +.fa-coffee:before { + content:"\f0f4" +} +.fa-cutlery:before { + content:"\f0f5" +} +.fa-file-text-o:before { + content:"\f0f6" +} +.fa-building-o:before { + content:"\f0f7" +} +.fa-hospital-o:before { + content:"\f0f8" +} +.fa-ambulance:before { + content:"\f0f9" +} +.fa-medkit:before { + content:"\f0fa" +} +.fa-fighter-jet:before { + content:"\f0fb" +} +.fa-beer:before { + content:"\f0fc" +} +.fa-h-square:before { + content:"\f0fd" +} +.fa-plus-square:before { + content:"\f0fe" +} +.fa-angle-double-left:before { + content:"\f100" +} +.fa-angle-double-right:before { + content:"\f101" +} +.fa-angle-double-up:before { + content:"\f102" +} +.fa-angle-double-down:before { + content:"\f103" +} +.fa-angle-left:before { + content:"\f104" +} +.fa-angle-right:before { + content:"\f105" +} +.fa-angle-up:before { + content:"\f106" +} +.fa-angle-down:before { + content:"\f107" +} +.fa-desktop:before { + content:"\f108" +} +.fa-laptop:before { + content:"\f109" +} +.fa-tablet:before { + content:"\f10a" +} +.fa-mobile-phone:before, +.fa-mobile:before { + content:"\f10b" +} +.fa-circle-o:before { + content:"\f10c" +} +.fa-quote-left:before { + content:"\f10d" +} +.fa-quote-right:before { + content:"\f10e" +} +.fa-spinner:before { + content:"\f110" +} +.fa-circle:before { + content:"\f111" +} +.fa-mail-reply:before, +.fa-reply:before { + content:"\f112" +} +.fa-github-alt:before { + content:"\f113" +} +.fa-folder-o:before { + content:"\f114" +} +.fa-folder-open-o:before { + content:"\f115" +} +.fa-smile-o:before { + content:"\f118" +} +.fa-frown-o:before { + content:"\f119" +} +.fa-meh-o:before { + content:"\f11a" +} +.fa-gamepad:before { + content:"\f11b" +} +.fa-keyboard-o:before { + content:"\f11c" +} +.fa-flag-o:before { + content:"\f11d" +} +.fa-flag-checkered:before { + content:"\f11e" +} +.fa-terminal:before { + content:"\f120" +} +.fa-code:before { + content:"\f121" +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content:"\f122" +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content:"\f123" +} +.fa-location-arrow:before { + content:"\f124" +} +.fa-crop:before { + content:"\f125" +} +.fa-code-fork:before { + content:"\f126" +} +.fa-unlink:before, +.fa-chain-broken:before { + content:"\f127" +} +.fa-question:before { + content:"\f128" +} +.fa-info:before { + content:"\f129" +} +.fa-exclamation:before { + content:"\f12a" +} +.fa-superscript:before { + content:"\f12b" +} +.fa-subscript:before { + content:"\f12c" +} +.fa-eraser:before { + content:"\f12d" +} +.fa-puzzle-piece:before { + content:"\f12e" +} +.fa-microphone:before { + content:"\f130" +} +.fa-microphone-slash:before { + content:"\f131" +} +.fa-shield:before { + content:"\f132" +} +.fa-calendar-o:before { + content:"\f133" +} +.fa-fire-extinguisher:before { + content:"\f134" +} +.fa-rocket:before { + content:"\f135" +} +.fa-maxcdn:before { + content:"\f136" +} +.fa-chevron-circle-left:before { + content:"\f137" +} +.fa-chevron-circle-right:before { + content:"\f138" +} +.fa-chevron-circle-up:before { + content:"\f139" +} +.fa-chevron-circle-down:before { + content:"\f13a" +} +.fa-html5:before { + content:"\f13b" +} +.fa-css3:before { + content:"\f13c" +} +.fa-anchor:before { + content:"\f13d" +} +.fa-unlock-alt:before { + content:"\f13e" +} +.fa-bullseye:before { + content:"\f140" +} +.fa-ellipsis-h:before { + content:"\f141" +} +.fa-ellipsis-v:before { + content:"\f142" +} +.fa-rss-square:before { + content:"\f143" +} +.fa-play-circle:before { + content:"\f144" +} +.fa-ticket:before { + content:"\f145" +} +.fa-minus-square:before { + content:"\f146" +} +.fa-minus-square-o:before { + content:"\f147" +} +.fa-level-up:before { + content:"\f148" +} +.fa-level-down:before { + content:"\f149" +} +.fa-check-square:before { + content:"\f14a" +} +.fa-pencil-square:before { + content:"\f14b" +} +.fa-external-link-square:before { + content:"\f14c" +} +.fa-share-square:before { + content:"\f14d" +} +.fa-compass:before { + content:"\f14e" +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content:"\f150" +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content:"\f151" +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content:"\f152" +} +.fa-euro:before, +.fa-eur:before { + content:"\f153" +} +.fa-gbp:before { + content:"\f154" +} +.fa-dollar:before, +.fa-usd:before { + content:"\f155" +} +.fa-rupee:before, +.fa-inr:before { + content:"\f156" +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content:"\f157" +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content:"\f158" +} +.fa-won:before, +.fa-krw:before { + content:"\f159" +} +.fa-bitcoin:before, +.fa-btc:before { + content:"\f15a" +} +.fa-file:before { + content:"\f15b" +} +.fa-file-text:before { + content:"\f15c" +} +.fa-sort-alpha-asc:before { + content:"\f15d" +} +.fa-sort-alpha-desc:before { + content:"\f15e" +} +.fa-sort-amount-asc:before { + content:"\f160" +} +.fa-sort-amount-desc:before { + content:"\f161" +} +.fa-sort-numeric-asc:before { + content:"\f162" +} +.fa-sort-numeric-desc:before { + content:"\f163" +} +.fa-thumbs-up:before { + content:"\f164" +} +.fa-thumbs-down:before { + content:"\f165" +} +.fa-youtube-square:before { + content:"\f166" +} +.fa-youtube:before { + content:"\f167" +} +.fa-xing:before { + content:"\f168" +} +.fa-xing-square:before { + content:"\f169" +} +.fa-youtube-play:before { + content:"\f16a" +} +.fa-dropbox:before { + content:"\f16b" +} +.fa-stack-overflow:before { + content:"\f16c" +} +.fa-instagram:before { + content:"\f16d" +} +.fa-flickr:before { + content:"\f16e" +} +.fa-adn:before { + content:"\f170" +} +.fa-bitbucket:before { + content:"\f171" +} +.fa-bitbucket-square:before { + content:"\f172" +} +.fa-tumblr:before { + content:"\f173" +} +.fa-tumblr-square:before { + content:"\f174" +} +.fa-long-arrow-down:before { + content:"\f175" +} +.fa-long-arrow-up:before { + content:"\f176" +} +.fa-long-arrow-left:before { + content:"\f177" +} +.fa-long-arrow-right:before { + content:"\f178" +} +.fa-apple:before { + content:"\f179" +} +.fa-windows:before { + content:"\f17a" +} +.fa-android:before { + content:"\f17b" +} +.fa-linux:before { + content:"\f17c" +} +.fa-dribbble:before { + content:"\f17d" +} +.fa-skype:before { + content:"\f17e" +} +.fa-foursquare:before { + content:"\f180" +} +.fa-trello:before { + content:"\f181" +} +.fa-female:before { + content:"\f182" +} +.fa-male:before { + content:"\f183" +} +.fa-gittip:before, +.fa-gratipay:before { + content:"\f184" +} +.fa-sun-o:before { + content:"\f185" +} +.fa-moon-o:before { + content:"\f186" +} +.fa-archive:before { + content:"\f187" +} +.fa-bug:before { + content:"\f188" +} +.fa-vk:before { + content:"\f189" +} +.fa-weibo:before { + content:"\f18a" +} +.fa-renren:before { + content:"\f18b" +} +.fa-pagelines:before { + content:"\f18c" +} +.fa-stack-exchange:before { + content:"\f18d" +} +.fa-arrow-circle-o-right:before { + content:"\f18e" +} +.fa-arrow-circle-o-left:before { + content:"\f190" +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content:"\f191" +} +.fa-dot-circle-o:before { + content:"\f192" +} +.fa-wheelchair:before { + content:"\f193" +} +.fa-vimeo-square:before { + content:"\f194" +} +.fa-turkish-lira:before, +.fa-try:before { + content:"\f195" +} +.fa-plus-square-o:before { + content:"\f196" +} +.fa-space-shuttle:before { + content:"\f197" +} +.fa-slack:before { + content:"\f198" +} +.fa-envelope-square:before { + content:"\f199" +} +.fa-wordpress:before { + content:"\f19a" +} +.fa-openid:before { + content:"\f19b" +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content:"\f19c" +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content:"\f19d" +} +.fa-yahoo:before { + content:"\f19e" +} +.fa-google:before { + content:"\f1a0" +} +.fa-reddit:before { + content:"\f1a1" +} +.fa-reddit-square:before { + content:"\f1a2" +} +.fa-stumbleupon-circle:before { + content:"\f1a3" +} +.fa-stumbleupon:before { + content:"\f1a4" +} +.fa-delicious:before { + content:"\f1a5" +} +.fa-digg:before { + content:"\f1a6" +} +.fa-pied-piper-pp:before { + content:"\f1a7" +} +.fa-pied-piper-alt:before { + content:"\f1a8" +} +.fa-drupal:before { + content:"\f1a9" +} +.fa-joomla:before { + content:"\f1aa" +} +.fa-language:before { + content:"\f1ab" +} +.fa-fax:before { + content:"\f1ac" +} +.fa-building:before { + content:"\f1ad" +} +.fa-child:before { + content:"\f1ae" +} +.fa-paw:before { + content:"\f1b0" +} +.fa-spoon:before { + content:"\f1b1" +} +.fa-cube:before { + content:"\f1b2" +} +.fa-cubes:before { + content:"\f1b3" +} +.fa-behance:before { + content:"\f1b4" +} +.fa-behance-square:before { + content:"\f1b5" +} +.fa-steam:before { + content:"\f1b6" +} +.fa-steam-square:before { + content:"\f1b7" +} +.fa-recycle:before { + content:"\f1b8" +} +.fa-automobile:before, +.fa-car:before { + content:"\f1b9" +} +.fa-cab:before, +.fa-taxi:before { + content:"\f1ba" +} +.fa-tree:before { + content:"\f1bb" +} +.fa-spotify:before { + content:"\f1bc" +} +.fa-deviantart:before { + content:"\f1bd" +} +.fa-soundcloud:before { + content:"\f1be" +} +.fa-database:before { + content:"\f1c0" +} +.fa-file-pdf-o:before { + content:"\f1c1" +} +.fa-file-word-o:before { + content:"\f1c2" +} +.fa-file-excel-o:before { + content:"\f1c3" +} +.fa-file-powerpoint-o:before { + content:"\f1c4" +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content:"\f1c5" +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content:"\f1c6" +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content:"\f1c7" +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content:"\f1c8" +} +.fa-file-code-o:before { + content:"\f1c9" +} +.fa-vine:before { + content:"\f1ca" +} +.fa-codepen:before { + content:"\f1cb" +} +.fa-jsfiddle:before { + content:"\f1cc" +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content:"\f1cd" +} +.fa-circle-o-notch:before { + content:"\f1ce" +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content:"\f1d0" +} +.fa-ge:before, +.fa-empire:before { + content:"\f1d1" +} +.fa-git-square:before { + content:"\f1d2" +} +.fa-git:before { + content:"\f1d3" +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content:"\f1d4" +} +.fa-tencent-weibo:before { + content:"\f1d5" +} +.fa-qq:before { + content:"\f1d6" +} +.fa-wechat:before, +.fa-weixin:before { + content:"\f1d7" +} +.fa-send:before, +.fa-paper-plane:before { + content:"\f1d8" +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content:"\f1d9" +} +.fa-history:before { + content:"\f1da" +} +.fa-circle-thin:before { + content:"\f1db" +} +.fa-header:before { + content:"\f1dc" +} +.fa-paragraph:before { + content:"\f1dd" +} +.fa-sliders:before { + content:"\f1de" +} +.fa-share-alt:before { + content:"\f1e0" +} +.fa-share-alt-square:before { + content:"\f1e1" +} +.fa-bomb:before { + content:"\f1e2" +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content:"\f1e3" +} +.fa-tty:before { + content:"\f1e4" +} +.fa-binoculars:before { + content:"\f1e5" +} +.fa-plug:before { + content:"\f1e6" +} +.fa-slideshare:before { + content:"\f1e7" +} +.fa-twitch:before { + content:"\f1e8" +} +.fa-yelp:before { + content:"\f1e9" +} +.fa-newspaper-o:before { + content:"\f1ea" +} +.fa-wifi:before { + content:"\f1eb" +} +.fa-calculator:before { + content:"\f1ec" +} +.fa-paypal:before { + content:"\f1ed" +} +.fa-google-wallet:before { + content:"\f1ee" +} +.fa-cc-visa:before { + content:"\f1f0" +} +.fa-cc-mastercard:before { + content:"\f1f1" +} +.fa-cc-discover:before { + content:"\f1f2" +} +.fa-cc-amex:before { + content:"\f1f3" +} +.fa-cc-paypal:before { + content:"\f1f4" +} +.fa-cc-stripe:before { + content:"\f1f5" +} +.fa-bell-slash:before { + content:"\f1f6" +} +.fa-bell-slash-o:before { + content:"\f1f7" +} +.fa-trash:before { + content:"\f1f8" +} +.fa-copyright:before { + content:"\f1f9" +} +.fa-at:before { + content:"\f1fa" +} +.fa-eyedropper:before { + content:"\f1fb" +} +.fa-paint-brush:before { + content:"\f1fc" +} +.fa-birthday-cake:before { + content:"\f1fd" +} +.fa-area-chart:before { + content:"\f1fe" +} +.fa-pie-chart:before { + content:"\f200" +} +.fa-line-chart:before { + content:"\f201" +} +.fa-lastfm:before { + content:"\f202" +} +.fa-lastfm-square:before { + content:"\f203" +} +.fa-toggle-off:before { + content:"\f204" +} +.fa-toggle-on:before { + content:"\f205" +} +.fa-bicycle:before { + content:"\f206" +} +.fa-bus:before { + content:"\f207" +} +.fa-ioxhost:before { + content:"\f208" +} +.fa-angellist:before { + content:"\f209" +} +.fa-cc:before { + content:"\f20a" +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content:"\f20b" +} +.fa-meanpath:before { + content:"\f20c" +} +.fa-buysellads:before { + content:"\f20d" +} +.fa-connectdevelop:before { + content:"\f20e" +} +.fa-dashcube:before { + content:"\f210" +} +.fa-forumbee:before { + content:"\f211" +} +.fa-leanpub:before { + content:"\f212" +} +.fa-sellsy:before { + content:"\f213" +} +.fa-shirtsinbulk:before { + content:"\f214" +} +.fa-simplybuilt:before { + content:"\f215" +} +.fa-skyatlas:before { + content:"\f216" +} +.fa-cart-plus:before { + content:"\f217" +} +.fa-cart-arrow-down:before { + content:"\f218" +} +.fa-diamond:before { + content:"\f219" +} +.fa-ship:before { + content:"\f21a" +} +.fa-user-secret:before { + content:"\f21b" +} +.fa-motorcycle:before { + content:"\f21c" +} +.fa-street-view:before { + content:"\f21d" +} +.fa-heartbeat:before { + content:"\f21e" +} +.fa-venus:before { + content:"\f221" +} +.fa-mars:before { + content:"\f222" +} +.fa-mercury:before { + content:"\f223" +} +.fa-intersex:before, +.fa-transgender:before { + content:"\f224" +} +.fa-transgender-alt:before { + content:"\f225" +} +.fa-venus-double:before { + content:"\f226" +} +.fa-mars-double:before { + content:"\f227" +} +.fa-venus-mars:before { + content:"\f228" +} +.fa-mars-stroke:before { + content:"\f229" +} +.fa-mars-stroke-v:before { + content:"\f22a" +} +.fa-mars-stroke-h:before { + content:"\f22b" +} +.fa-neuter:before { + content:"\f22c" +} +.fa-genderless:before { + content:"\f22d" +} +.fa-facebook-official:before { + content:"\f230" +} +.fa-pinterest-p:before { + content:"\f231" +} +.fa-whatsapp:before { + content:"\f232" +} +.fa-server:before { + content:"\f233" +} +.fa-user-plus:before { + content:"\f234" +} +.fa-user-times:before { + content:"\f235" +} +.fa-hotel:before, +.fa-bed:before { + content:"\f236" +} +.fa-viacoin:before { + content:"\f237" +} +.fa-train:before { + content:"\f238" +} +.fa-subway:before { + content:"\f239" +} +.fa-medium:before { + content:"\f23a" +} +.fa-yc:before, +.fa-y-combinator:before { + content:"\f23b" +} +.fa-optin-monster:before { + content:"\f23c" +} +.fa-opencart:before { + content:"\f23d" +} +.fa-expeditedssl:before { + content:"\f23e" +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content:"\f240" +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content:"\f241" +} +.fa-battery-2:before, +.fa-battery-half:before { + content:"\f242" +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content:"\f243" +} +.fa-battery-0:before, +.fa-battery-empty:before { + content:"\f244" +} +.fa-mouse-pointer:before { + content:"\f245" +} +.fa-i-cursor:before { + content:"\f246" +} +.fa-object-group:before { + content:"\f247" +} +.fa-object-ungroup:before { + content:"\f248" +} +.fa-sticky-note:before { + content:"\f249" +} +.fa-sticky-note-o:before { + content:"\f24a" +} +.fa-cc-jcb:before { + content:"\f24b" +} +.fa-cc-diners-club:before { + content:"\f24c" +} +.fa-clone:before { + content:"\f24d" +} +.fa-balance-scale:before { + content:"\f24e" +} +.fa-hourglass-o:before { + content:"\f250" +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content:"\f251" +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content:"\f252" +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content:"\f253" +} +.fa-hourglass:before { + content:"\f254" +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content:"\f255" +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content:"\f256" +} +.fa-hand-scissors-o:before { + content:"\f257" +} +.fa-hand-lizard-o:before { + content:"\f258" +} +.fa-hand-spock-o:before { + content:"\f259" +} +.fa-hand-pointer-o:before { + content:"\f25a" +} +.fa-hand-peace-o:before { + content:"\f25b" +} +.fa-trademark:before { + content:"\f25c" +} +.fa-registered:before { + content:"\f25d" +} +.fa-creative-commons:before { + content:"\f25e" +} +.fa-gg:before { + content:"\f260" +} +.fa-gg-circle:before { + content:"\f261" +} +.fa-tripadvisor:before { + content:"\f262" +} +.fa-odnoklassniki:before { + content:"\f263" +} +.fa-odnoklassniki-square:before { + content:"\f264" +} +.fa-get-pocket:before { + content:"\f265" +} +.fa-wikipedia-w:before { + content:"\f266" +} +.fa-safari:before { + content:"\f267" +} +.fa-chrome:before { + content:"\f268" +} +.fa-firefox:before { + content:"\f269" +} +.fa-opera:before { + content:"\f26a" +} +.fa-internet-explorer:before { + content:"\f26b" +} +.fa-tv:before, +.fa-television:before { + content:"\f26c" +} +.fa-contao:before { + content:"\f26d" +} +.fa-500px:before { + content:"\f26e" +} +.fa-amazon:before { + content:"\f270" +} +.fa-calendar-plus-o:before { + content:"\f271" +} +.fa-calendar-minus-o:before { + content:"\f272" +} +.fa-calendar-times-o:before { + content:"\f273" +} +.fa-calendar-check-o:before { + content:"\f274" +} +.fa-industry:before { + content:"\f275" +} +.fa-map-pin:before { + content:"\f276" +} +.fa-map-signs:before { + content:"\f277" +} +.fa-map-o:before { + content:"\f278" +} +.fa-map:before { + content:"\f279" +} +.fa-commenting:before { + content:"\f27a" +} +.fa-commenting-o:before { + content:"\f27b" +} +.fa-houzz:before { + content:"\f27c" +} +.fa-vimeo:before { + content:"\f27d" +} +.fa-black-tie:before { + content:"\f27e" +} +.fa-fonticons:before { + content:"\f280" +} +.fa-reddit-alien:before { + content:"\f281" +} +.fa-edge:before { + content:"\f282" +} +.fa-credit-card-alt:before { + content:"\f283" +} +.fa-codiepie:before { + content:"\f284" +} +.fa-modx:before { + content:"\f285" +} +.fa-fort-awesome:before { + content:"\f286" +} +.fa-usb:before { + content:"\f287" +} +.fa-product-hunt:before { + content:"\f288" +} +.fa-mixcloud:before { + content:"\f289" +} +.fa-scribd:before { + content:"\f28a" +} +.fa-pause-circle:before { + content:"\f28b" +} +.fa-pause-circle-o:before { + content:"\f28c" +} +.fa-stop-circle:before { + content:"\f28d" +} +.fa-stop-circle-o:before { + content:"\f28e" +} +.fa-shopping-bag:before { + content:"\f290" +} +.fa-shopping-basket:before { + content:"\f291" +} +.fa-hashtag:before { + content:"\f292" +} +.fa-bluetooth:before { + content:"\f293" +} +.fa-bluetooth-b:before { + content:"\f294" +} +.fa-percent:before { + content:"\f295" +} +.fa-gitlab:before { + content:"\f296" +} +.fa-wpbeginner:before { + content:"\f297" +} +.fa-wpforms:before { + content:"\f298" +} +.fa-envira:before { + content:"\f299" +} +.fa-universal-access:before { + content:"\f29a" +} +.fa-wheelchair-alt:before { + content:"\f29b" +} +.fa-question-circle-o:before { + content:"\f29c" +} +.fa-blind:before { + content:"\f29d" +} +.fa-audio-description:before { + content:"\f29e" +} +.fa-volume-control-phone:before { + content:"\f2a0" +} +.fa-braille:before { + content:"\f2a1" +} +.fa-assistive-listening-systems:before { + content:"\f2a2" +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content:"\f2a3" +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content:"\f2a4" +} +.fa-glide:before { + content:"\f2a5" +} +.fa-glide-g:before { + content:"\f2a6" +} +.fa-signing:before, +.fa-sign-language:before { + content:"\f2a7" +} +.fa-low-vision:before { + content:"\f2a8" +} +.fa-viadeo:before { + content:"\f2a9" +} +.fa-viadeo-square:before { + content:"\f2aa" +} +.fa-snapchat:before { + content:"\f2ab" +} +.fa-snapchat-ghost:before { + content:"\f2ac" +} +.fa-snapchat-square:before { + content:"\f2ad" +} +.fa-pied-piper:before { + content:"\f2ae" +} +.fa-first-order:before { + content:"\f2b0" +} +.fa-yoast:before { + content:"\f2b1" +} +.fa-themeisle:before { + content:"\f2b2" +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content:"\f2b3" +} +.fa-fa:before, +.fa-font-awesome:before { + content:"\f2b4" +} +.fa-handshake-o:before { + content:"\f2b5" +} +.fa-envelope-open:before { + content:"\f2b6" +} +.fa-envelope-open-o:before { + content:"\f2b7" +} +.fa-linode:before { + content:"\f2b8" +} +.fa-address-book:before { + content:"\f2b9" +} +.fa-address-book-o:before { + content:"\f2ba" +} +.fa-vcard:before, +.fa-address-card:before { + content:"\f2bb" +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content:"\f2bc" +} +.fa-user-circle:before { + content:"\f2bd" +} +.fa-user-circle-o:before { + content:"\f2be" +} +.fa-user-o:before { + content:"\f2c0" +} +.fa-id-badge:before { + content:"\f2c1" +} +.fa-drivers-license:before, +.fa-id-card:before { + content:"\f2c2" +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content:"\f2c3" +} +.fa-quora:before { + content:"\f2c4" +} +.fa-free-code-camp:before { + content:"\f2c5" +} +.fa-telegram:before { + content:"\f2c6" +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content:"\f2c7" +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content:"\f2c8" +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content:"\f2c9" +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content:"\f2ca" +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content:"\f2cb" +} +.fa-shower:before { + content:"\f2cc" +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content:"\f2cd" +} +.fa-podcast:before { + content:"\f2ce" +} +.fa-window-maximize:before { + content:"\f2d0" +} +.fa-window-minimize:before { + content:"\f2d1" +} +.fa-window-restore:before { + content:"\f2d2" +} +.fa-times-rectangle:before, +.fa-window-close:before { + content:"\f2d3" +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content:"\f2d4" +} +.fa-bandcamp:before { + content:"\f2d5" +} +.fa-grav:before { + content:"\f2d6" +} +.fa-etsy:before { + content:"\f2d7" +} +.fa-imdb:before { + content:"\f2d8" +} +.fa-ravelry:before { + content:"\f2d9" +} +.fa-eercast:before { + content:"\f2da" +} +.fa-microchip:before { + content:"\f2db" +} +.fa-snowflake-o:before { + content:"\f2dc" +} +.fa-superpowers:before { + content:"\f2dd" +} +.fa-wpexplorer:before { + content:"\f2de" +} +.fa-meetup:before { + content:"\f2e0" +} +.sr-only { + position:absolute; + width:1px; + height:1px; + padding:0; + margin:-1px; + overflow:hidden; + clip:rect(0, 0, 0, 0); + border:0 +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position:static; + width:auto; + height:auto; + margin:0; + overflow:visible; + clip:auto +} diff --git a/httpdocs/tools/spectre/spectre-icons.css b/httpdocs/tools/spectre/spectre-icons.css new file mode 100644 index 000000000..d61406551 --- /dev/null +++ b/httpdocs/tools/spectre/spectre-icons.css @@ -0,0 +1,568 @@ +/*!Spectre.css Icons | MIT License | github.com/picturepan2/spectre*/.icon { + box-sizing:border-box; + display:inline-block; + font-size:inherit; + font-style:normal; + height:1em; + position:relative; + text-indent:-999rem; + vertical-align:middle; + width:1em +} +.icon::before, +.icon::after { + display:block; + left:50%; + position:absolute; + top:50%; + -webkit-transform:translate(-50%,-50%); + -ms-transform:translate(-50%,-50%); + transform:translate(-50%,-50%) +} +.icon-arrow-down::before, +.icon-arrow-left::before, +.icon-arrow-right::before, +.icon-arrow-up::before, +.icon-downward::before, +.icon-back::before, +.icon-forward::before, +.icon-upward::before { + border:.2rem solid currentColor; + border-bottom:0; + border-right:0; + content:""; + height:.65em; + -webkit-transform:translate(-25%,-50%) rotate(-45deg); + -ms-transform:translate(-25%,-50%) rotate(-45deg); + transform:translate(-25%,-50%) rotate(-45deg); + width:.65em +} +.icon-arrow-down, +.icon-downward { + -webkit-transform:rotate(-90deg); + -ms-transform:rotate(-90deg); + transform:rotate(-90deg) +} +.icon-arrow-right, +.icon-forward { + -webkit-transform:rotate(180deg); + -ms-transform:rotate(180deg); + transform:rotate(180deg) +} +.icon-arrow-up, +.icon-upward { + -webkit-transform:rotate(90deg); + -ms-transform:rotate(90deg); + transform:rotate(90deg) +} +.icon-downward::before, +.icon-back::before, +.icon-forward::before, +.icon-upward::before { + -webkit-transform:translate(-50%,-50%) rotate(-45deg); + -ms-transform:translate(-50%,-50%) rotate(-45deg); + transform:translate(-50%,-50%) rotate(-45deg) +} +.icon-downward::after, +.icon-back::after, +.icon-forward::after, +.icon-upward::after { + background:currentColor; + content:""; + height:.2rem; + left:55%; + width:.8em +} +.icon-caret::before { + border-left:.3em solid transparent; + border-right:.3em solid transparent; + border-top:.3em solid currentColor; + content:""; + height:0; + -webkit-transform:translate(-50%,-25%); + -ms-transform:translate(-50%,-25%); + transform:translate(-50%,-25%); + width:0 +} +.icon-menu::before { + background:currentColor; + box-shadow:0 -.35em,0 .35em; + content:""; + height:.2rem; + width:100% +} +.icon-apps::before { + background:currentColor; + box-shadow:-.35em -.35em,-.35em 0,-.35em .35em,0 -.35em,0 .35em,.35em -.35em,.35em 0,.35em .35em; + content:""; + height:.3rem; + width:.3rem +} +.icon-resize-horiz::before, +.icon-resize-vert::before, +.icon-resize-horiz::after, +.icon-resize-vert::after { + border:.2rem solid currentColor; + border-bottom:0; + border-right:0; + content:""; + height:.45em; + width:.45em +} +.icon-resize-horiz::before, +.icon-resize-vert::before { + -webkit-transform:translate(-50%,-90%) rotate(45deg); + -ms-transform:translate(-50%,-90%) rotate(45deg); + transform:translate(-50%,-90%) rotate(45deg) +} +.icon-resize-horiz::after, +.icon-resize-vert::after { + -webkit-transform:translate(-50%,-10%) rotate(225deg); + -ms-transform:translate(-50%,-10%) rotate(225deg); + transform:translate(-50%,-10%) rotate(225deg) +} +.icon-resize-horiz::before { + -webkit-transform:translate(-90%,-50%) rotate(-45deg); + -ms-transform:translate(-90%,-50%) rotate(-45deg); + transform:translate(-90%,-50%) rotate(-45deg) +} +.icon-resize-horiz::after { + -webkit-transform:translate(-10%,-50%) rotate(135deg); + -ms-transform:translate(-10%,-50%) rotate(135deg); + transform:translate(-10%,-50%) rotate(135deg) +} +.icon-more-horiz::before, +.icon-more-vert::before { + background:currentColor; + border-radius:50%; + box-shadow:-.4em 0,.4em 0; + content:""; + height:.3rem; + width:.3rem +} +.icon-more-vert::before { + box-shadow:0 -.4em,0 .4em +} +.icon-plus::before, +.icon-minus::before, +.icon-cross::before { + background:currentColor; + content:""; + height:.2rem; + width:100% +} +.icon-plus::after, +.icon-cross::after { + background:currentColor; + content:""; + height:100%; + width:.2rem +} +.icon-cross::before { + width:100% +} +.icon-cross::after { + height:100% +} +.icon-cross::before, +.icon-cross::after { + -webkit-transform:translate(-50%,-50%) rotate(45deg); + -ms-transform:translate(-50%,-50%) rotate(45deg); + transform:translate(-50%,-50%) rotate(45deg) +} +.icon-check::before { + border:.2rem solid currentColor; + border-right:0; + border-top:0; + content:""; + height:.5em; + -webkit-transform:translate(-50%,-75%) rotate(-45deg); + -ms-transform:translate(-50%,-75%) rotate(-45deg); + transform:translate(-50%,-75%) rotate(-45deg); + width:.9em +} +.icon-stop { + border:.2rem solid currentColor; + border-radius:50% +} +.icon-stop::before { + background:currentColor; + content:""; + height:.2rem; + -webkit-transform:translate(-50%,-50%) rotate(45deg); + -ms-transform:translate(-50%,-50%) rotate(45deg); + transform:translate(-50%,-50%) rotate(45deg); + width:1em +} +.icon-shutdown { + border:.2rem solid currentColor; + border-radius:50%; + border-top-color:transparent +} +.icon-shutdown::before { + background:currentColor; + content:""; + height:.5em; + top:.1em; + width:.2rem +} +.icon-refresh::before { + border:.2rem solid currentColor; + border-radius:50%; + border-right-color:transparent; + content:""; + height:1em; + width:1em +} +.icon-refresh::after { + border:.2em solid currentColor; + border-left-color:transparent; + border-top-color:transparent; + content:""; + height:0; + left:80%; + top:20%; + width:0 +} +.icon-search::before { + border:.2rem solid currentColor; + border-radius:50%; + content:""; + height:.75em; + left:5%; + top:5%; + -webkit-transform:translate(0,0) rotate(45deg); + -ms-transform:translate(0,0) rotate(45deg); + transform:translate(0,0) rotate(45deg); + width:.75em +} +.icon-search::after { + background:currentColor; + content:""; + height:.2rem; + left:80%; + top:80%; + -webkit-transform:translate(-50%,-50%) rotate(45deg); + -ms-transform:translate(-50%,-50%) rotate(45deg); + transform:translate(-50%,-50%) rotate(45deg); + width:.4em +} +.icon-edit::before { + border:.2rem solid currentColor; + content:""; + height:.4em; + -webkit-transform:translate(-40%,-60%) rotate(-45deg); + -ms-transform:translate(-40%,-60%) rotate(-45deg); + transform:translate(-40%,-60%) rotate(-45deg); + width:.85em +} +.icon-edit::after { + border:.15em solid currentColor; + border-right-color:transparent; + border-top-color:transparent; + content:""; + height:0; + left:5%; + top:95%; + -webkit-transform:translate(0,-100%); + -ms-transform:translate(0,-100%); + transform:translate(0,-100%); + width:0 +} +.icon-delete::before { + border:.2rem solid currentColor; + border-bottom-left-radius:.2rem; + border-bottom-right-radius:.2rem; + border-top:0; + content:""; + height:.75em; + top:60%; + width:.75em +} +.icon-delete::after { + background:currentColor; + box-shadow:-.25em .2em,.25em .2em; + content:""; + height:.2rem; + top:.1rem; + width:.5em +} +.icon-share { + border:.2rem solid currentColor; + border-radius:.2rem; + border-right:0; + border-top:0 +} +.icon-share::before { + border:.2rem solid currentColor; + border-left:0; + border-top:0; + content:""; + height:.4em; + left:100%; + top:.25em; + -webkit-transform:translate(-125%,-50%) rotate(-45deg); + -ms-transform:translate(-125%,-50%) rotate(-45deg); + transform:translate(-125%,-50%) rotate(-45deg); + width:.4em +} +.icon-share::after { + border:.2rem solid currentColor; + border-bottom:0; + border-radius:75% 0; + border-right:0; + content:""; + height:.5em; + width:.6em +} +.icon-flag::before { + background:currentColor; + content:""; + height:1em; + left:15%; + width:.2rem +} +.icon-flag::after { + border:.2rem solid currentColor; + border-bottom-right-radius:.2rem; + border-left:0; + border-top-right-radius:.2rem; + content:""; + height:.65em; + left:60%; + top:35%; + width:.8em +} +.icon-bookmark::before { + border:.2rem solid currentColor; + border-bottom:0; + border-top-left-radius:.2rem; + border-top-right-radius:.2rem; + content:""; + height:.9em; + width:.8em +} +.icon-bookmark::after { + border:.2rem solid currentColor; + border-bottom:0; + border-left:0; + border-radius:.2rem; + content:""; + height:.5em; + -webkit-transform:translate(-50%,35%) rotate(-45deg) skew(15deg,15deg); + -ms-transform:translate(-50%,35%) rotate(-45deg) skew(15deg,15deg); + transform:translate(-50%,35%) rotate(-45deg) skew(15deg,15deg); + width:.5em +} +.icon-download, +.icon-upload { + border-bottom:.2rem solid currentColor +} +.icon-download::before, +.icon-upload::before { + border:.2rem solid currentColor; + border-bottom:0; + border-right:0; + content:""; + height:.5em; + -webkit-transform:translate(-50%,-60%) rotate(-135deg); + -ms-transform:translate(-50%,-60%) rotate(-135deg); + transform:translate(-50%,-60%) rotate(-135deg); + width:.5em +} +.icon-download::after, +.icon-upload::after { + background:currentColor; + content:""; + height:.6em; + top:40%; + width:.2rem +} +.icon-upload::before { + -webkit-transform:translate(-50%,-60%) rotate(45deg); + -ms-transform:translate(-50%,-60%) rotate(45deg); + transform:translate(-50%,-60%) rotate(45deg) +} +.icon-upload::after { + top:50% +} +.icon-time { + border:.2rem solid currentColor; + border-radius:50% +} +.icon-time::before { + background:currentColor; + content:""; + height:.4em; + -webkit-transform:translate(-50%,-75%); + -ms-transform:translate(-50%,-75%); + transform:translate(-50%,-75%); + width:.2rem +} +.icon-time::after { + background:currentColor; + content:""; + height:.3em; + -webkit-transform:translate(-50%,-75%) rotate(90deg); + -ms-transform:translate(-50%,-75%) rotate(90deg); + transform:translate(-50%,-75%) rotate(90deg); + -webkit-transform-origin:50% 90%; + -ms-transform-origin:50% 90%; + transform-origin:50% 90%; + width:.2rem +} +.icon-mail::before { + border:.2rem solid currentColor; + border-radius:.2rem; + content:""; + height:.8em; + width:1em +} +.icon-mail::after { + border:.2rem solid currentColor; + border-right:0; + border-top:0; + content:""; + height:.5em; + -webkit-transform:translate(-50%,-90%) rotate(-45deg) skew(10deg,10deg); + -ms-transform:translate(-50%,-90%) rotate(-45deg) skew(10deg,10deg); + transform:translate(-50%,-90%) rotate(-45deg) skew(10deg,10deg); + width:.5em +} +.icon-people::before { + border:.2rem solid currentColor; + border-radius:50%; + content:""; + height:.45em; + top:25%; + width:.45em +} +.icon-people::after { + border:.2rem solid currentColor; + border-radius:50% 50% 0 0; + content:""; + height:.4em; + top:75%; + width:.9em +} +.icon-message { + border:.2rem solid currentColor; + border-bottom:0; + border-radius:.2rem; + border-right:0 +} +.icon-message::before { + border:.2rem solid currentColor; + border-bottom-right-radius:.2rem; + border-left:0; + border-top:0; + content:""; + height:.8em; + left:65%; + top:40%; + width:.7em +} +.icon-message::after { + background:currentColor; + border-radius:.2rem; + content:""; + height:.3em; + left:10%; + top:100%; + -webkit-transform:translate(0,-90%) rotate(45deg); + -ms-transform:translate(0,-90%) rotate(45deg); + transform:translate(0,-90%) rotate(45deg); + width:.2rem +} +.icon-photo { + border:.2rem solid currentColor; + border-radius:.2rem +} +.icon-photo::before { + border:.2rem solid currentColor; + border-radius:50%; + content:""; + height:.25em; + left:35%; + top:35%; + width:.25em +} +.icon-photo::after { + border:.2rem solid currentColor; + border-bottom:0; + border-left:0; + content:""; + height:.5em; + left:60%; + -webkit-transform:translate(-50%,25%) rotate(-45deg); + -ms-transform:translate(-50%,25%) rotate(-45deg); + transform:translate(-50%,25%) rotate(-45deg); + width:.5em +} +.icon-link::before, +.icon-link::after { + border:.2rem solid currentColor; + border-radius:5em 0 0 5em; + border-right:0; + content:""; + height:.5em; + width:.75em +} +.icon-link::before { + -webkit-transform:translate(-70%,-45%) rotate(-45deg); + -ms-transform:translate(-70%,-45%) rotate(-45deg); + transform:translate(-70%,-45%) rotate(-45deg) +} +.icon-link::after { + -webkit-transform:translate(-30%,-55%) rotate(135deg); + -ms-transform:translate(-30%,-55%) rotate(135deg); + transform:translate(-30%,-55%) rotate(135deg) +} +.icon-location::before { + border:.2rem solid currentColor; + border-radius:50% 50% 50% 0; + content:""; + height:.8em; + -webkit-transform:translate(-50%,-60%) rotate(-45deg); + -ms-transform:translate(-50%,-60%) rotate(-45deg); + transform:translate(-50%,-60%) rotate(-45deg); + width:.8em +} +.icon-location::after { + border:.2rem solid currentColor; + border-radius:50%; + content:""; + height:.2em; + -webkit-transform:translate(-50%,-80%); + -ms-transform:translate(-50%,-80%); + transform:translate(-50%,-80%); + width:.2em +} +.icon-emoji { + border:.2rem solid currentColor; + border-radius:50% +} +.icon-emoji::before { + border-radius:50%; + box-shadow:-.17em -.15em,.17em -.15em; + content:""; + height:.1em; + width:.1em +} +.icon-emoji::after { + border:.2rem solid currentColor; + border-bottom-color:transparent; + border-radius:50%; + border-right-color:transparent; + content:""; + height:.5em; + -webkit-transform:translate(-50%,-40%) rotate(-135deg); + -ms-transform:translate(-50%,-40%) rotate(-135deg); + transform:translate(-50%,-40%) rotate(-135deg); + width:.5em +} +.btn .icon, +.toast .icon, +.menu .icon { + vertical-align:-10% +} diff --git a/httpdocs/tools/spectre/spectre.css b/httpdocs/tools/spectre/spectre.css new file mode 100644 index 000000000..d77e2e8b7 --- /dev/null +++ b/httpdocs/tools/spectre/spectre.css @@ -0,0 +1,2977 @@ +/*!Spectre.css | MIT License | github.com/picturepan2/spectre*/html { + font-family:sans-serif; + line-height:1.15; + -webkit-text-size-adjust:100%; + -ms-text-size-adjust:100% +} +body { + margin:0 +} +article, +aside, +footer, +header, +nav, +section { + display:block +} +h1 { + font-size:2em; + margin:.67em 0 +} +figcaption, +figure, +main { + display:block +} +hr { + box-sizing:content-box; + height:0; + overflow:visible +} +a { + background-color:transparent; + -webkit-text-decoration-skip:objects +} +a:active, +a:hover { + outline-width:0 +} +b, +strong { + font-weight:inherit +} +b, +strong { + font-weight:bolder +} +code, +kbd, +pre, +samp { + font-family:monospace,monospace; + font-size:1em +} +dfn { + font-style:italic +} +small { + font-size:80% +} +sub, +sup { + font-size:75%; + line-height:0; + position:relative; + vertical-align:baseline +} +sub { + bottom:-.25em +} +sup { + top:-.5em +} +audio, +video { + display:inline-block +} +audio:not([controls]) { + display:none; + height:0 +} +img { + border-style:none +} +svg:not(:root) { + overflow:hidden +} +button, +input, +optgroup, +select, +textarea { + font-family:inherit; + font-size:inherit; + line-height:inherit; + margin:0 +} +button, +input { + overflow:visible +} +button, +select { + text-transform:none +} +button, +html [type=button], +[type=reset], +[type=submit] { + -webkit-appearance:button +} +button::-moz-focus-inner, +[type=button]::-moz-focus-inner, +[type=reset]::-moz-focus-inner, +[type=submit]::-moz-focus-inner { + border-style:none; + padding:0 +} +fieldset { + border:0; + margin:0; + padding:0 +} +legend { + box-sizing:border-box; + color:inherit; + display:table; + max-width:100%; + padding:0; + white-space:normal +} +progress { + display:inline-block; + vertical-align:baseline +} +textarea { + overflow:auto +} +[type=checkbox], +[type=radio] { + box-sizing:border-box; + padding:0 +} +[type=number]::-webkit-inner-spin-button, +[type=number]::-webkit-outer-spin-button { + height:auto +} +[type=search] { + -webkit-appearance:textfield; + outline-offset:-2px +} +[type=search]::-webkit-search-cancel-button, +[type=search]::-webkit-search-decoration { + -webkit-appearance:none +} +::-webkit-file-upload-button { + -webkit-appearance:button; + font:inherit +} +details, +menu { + display:block +} +summary { + display:list-item +} +canvas { + display:inline-block +} +template { + display:none +} +[hidden] { + display:none +} +*, +*::before, +*::after { + box-sizing:inherit +} +html { + box-sizing:border-box; + font-size:10px; + line-height:1.42857143; + -webkit-tap-highlight-color:transparent +} +body { + background:#fff; + color:#50596c; + font-family:-apple-system,system-ui,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,sans-serif; + font-size:1.4rem; + overflow-x:hidden; + text-rendering:optimizeLegibility +} +a { + color:#4e657e; + outline:none; + text-decoration:none +} +a:focus { + box-shadow:0 0 0 .2rem rgba(87,100,198,.15) +} +a:focus, +a:hover, +a:active, +a.active { + color:#3b49af; + text-decoration:underline +} +h1, +h2, +h3, +h4, +h5, +h6 { + color:inherit; + font-weight:300; + line-height:1.2; + margin-bottom:1.5rem; + margin-top:0 +} +h1 { + font-size:5rem +} +h2 { + font-size:4rem +} +h3 { + font-size:3rem +} +h4 { + font-size:2.4rem +} +h5 { + font-size:2rem +} +h6 { + font-size:1.6rem +} +p { + line-height:2.4rem; + margin:0 0 1rem +} +a, +ins, +u { + -webkit-text-decoration-skip:ink edges; + text-decoration-skip:ink edges +} +blockquote { + border-left:.2rem solid #f0f1f4; + margin-left:0; + padding:1rem 2rem +} +blockquote p:last-child { + margin-bottom:0 +} +blockquote cite { + color:#acb3c2 +} +ul, +ol { + margin:2rem 0 2rem 2rem; + padding:0 +} +ul ul, +ol ul, +ul ol, +ol ol { + margin:1.5rem 0 1.5rem 2rem +} +ul li, +ol li { + margin-top:1rem +} +ul { + list-style:disc inside +} +ul ul { + list-style-type:circle +} +ol { + list-style:decimal inside +} +ol ol { + list-style-type:lower-alpha +} +dl dt { + font-weight:700 +} +dl dd { + margin:.5rem 0 1.5rem +} +mark { + background:#ffe9b3; + border-radius:.2rem; + color:#50596c; + display:inline-block; + line-height:1; + padding:.3rem .4rem; + vertical-align:baseline +} +kbd { + background:#454d5d; + border-radius:.2rem; + color:#fff; + display:inline-block; + line-height:1; + padding:.3rem .4rem; + vertical-align:baseline +} +abbr[title] { + border-bottom:.1rem dotted; + cursor:help; + text-decoration:none +} +:lang(zh), +:lang(ja), +:lang(ko), +.cjk { + font-family:-apple-system,system-ui,BlinkMacSystemFont,segoe ui,Roboto,pingfang sc,hiragino sans gb,microsoft yahei,hiragino kaku gothic pro,Meiryo,malgun gothic,helvetica neue,sans-serif +} +:lang(zh) ins, +:lang(ja) ins, +.cjk ins, +:lang(zh) u, +:lang(ja) u, +.cjk u { + border-bottom:.1rem solid; + text-decoration:none +} +:lang(zh) del+del, +:lang(ja) del+del, +.cjk del+del, +:lang(zh) del+s, +:lang(ja) del+s, +.cjk del+s, +:lang(zh) ins+ins, +:lang(ja) ins+ins, +.cjk ins+ins, +:lang(zh) ins+u, +:lang(ja) ins+u, +.cjk ins+u, +:lang(zh) s+del, +:lang(ja) s+del, +.cjk s+del, +:lang(zh) s+s, +:lang(ja) s+s, +.cjk s+s, +:lang(zh) u+ins, +:lang(ja) u+ins, +.cjk u+ins, +:lang(zh) u+u, +:lang(ja) u+u, +.cjk u+u { + margin-left:.125em +} +.table { + border-collapse:collapse; + border-spacing:0; + text-align:left; + width:100% +} +.table.table-striped tbody tr:nth-of-type(odd) { + background:#f8f9fa +} +.table.table-hover tbody tr:hover { + background:#f0f1f4 +} +.table tbody tr.active, +.table.table-striped tbody tr.active { + background:#f0f1f4 +} +.table td { + border-bottom:.1rem solid #f0f1f4; + padding:1.5rem 1rem +} +.table th { + border-bottom:.1rem solid #727e96; + padding:1.5rem 1rem +} +.btn { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:#fff; + border:.1rem solid #0088d7; + border-radius:.2rem; + color:#0088d7; + cursor:pointer; + display:inline-block; + font-size:1.4rem; + height:3.2rem; + line-height:2rem; + outline:none; + padding:.5rem .8rem; + text-align:center; + text-decoration:none; + transition:all .2s ease; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none; + vertical-align:middle; + white-space:nowrap +} +.btn:focus { + background:#fbfbfe; + box-shadow:0 0 0 .2rem rgba(87,100,198,.15); + text-decoration:none +} +.btn:hover { + background:#0088d7; + border-color:#0088d7; + color:#fff; + text-decoration:none +} +.btn.active { + background:#0088d7; + border-color:#0088d7; + color:#fff; + text-decoration:none +} +.btn[disabled], +.btn:disabled, +.btn.disabled { + cursor:default; + opacity:.5; + pointer-events:none +} +.btn.btn-primary { + background:#0088d7; + border-color:#0088d7; + color:#fff +} +.btn.btn-primary:focus, +.btn.btn-primary:hover { + background:#0078be!important; + border-color:#0078be!important; + color:#fff +} +.btn.btn-primary:active, +.btn.btn-primary.active { + background:#0078be; + border-color:#0078be; + color:#fff +} +.btn.btn-primary.loading::after { + border-bottom-color:#fff; + border-left-color:#fff +} +.btn.btn-link { + background:0 0; + border-color:transparent; + color:#4e657e +} +.btn.btn-link:focus, +.btn.btn-link:hover, +.btn.btn-link:active, +.btn.btn-link.active { + color:#3b49af +} +.btn.btn-sm { + font-size:1.2rem; + height:2.4rem; + padding:.1rem .8rem +} +.btn.btn-lg { + font-size:1.6rem; + height:4rem; + padding:.9rem .8rem +} +.btn.btn-block { + display:block; + width:100% +} +.btn.btn-action { + padding-left:0; + padding-right:0; + width:3.2rem +} +.btn.btn-action.btn-sm { + width:2.4rem +} +.btn.btn-action.btn-lg { + width:4rem +} +.btn.btn-clear { + background:0 0; + border:0; + color:currentColor; + height:1.6rem; + line-height:1.6rem; + margin-left:.4rem; + margin-right:-.2rem; + opacity:.45; + padding:0 .2rem; + text-decoration:none; + width:1.6rem +} +.btn.btn-clear:hover { + opacity:.85 +} +.btn.btn-clear::before { + content:"\2715" +} +.btn-group { + display:inline-flex; + display:-ms-inline-flexbox; + display:-webkit-inline-flex; + -webkit-flex-wrap:wrap; + -ms-flex-wrap:wrap; + flex-wrap:wrap +} +.btn-group .btn { + -webkit-flex:1 0 auto; + -ms-flex:1 0 auto; + flex:1 0 auto +} +.btn-group .btn:first-child:not(:last-child) { + border-bottom-right-radius:0; + border-top-right-radius:0 +} +.btn-group .btn:not(:first-child):not(:last-child) { + border-radius:0; + margin-left:-.1rem +} +.btn-group .btn:last-child:not(:first-child) { + border-bottom-left-radius:0; + border-top-left-radius:0; + margin-left:-.1rem +} +.btn-group .btn:focus, +.btn-group .btn:hover, +.btn-group .btn:active, +.btn-group .btn.active { + z-index:1 +} +.btn-group.btn-group-block { + display:flex; + display:-ms-flexbox; + display:-webkit-flex +} +.btn-group.btn-group-block .btn { + -webkit-flex:1 0 0; + -ms-flex:1 0 0; + flex:1 0 0 +} +.form-group:not(:last-child) { + margin-bottom:1rem +} +.form-label { + display:block; + padding:.6rem 0 +} +.form-label.label-sm { + padding:.2rem 0 +} +.form-label.label-lg { + padding:1rem 0 +} +.form-input { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + background:#fff; + background-image:none; + border:.1rem solid #c4c9d3; + border-radius:.2rem; + color:#50596c; + display:block; + font-size:1.4rem; + height:3.2rem; + line-height:2rem; + max-width:100%; + outline:none; + padding:.5rem .8rem; + position:relative; + transition:all .2s ease; + width:100% +} +.form-input:focus { + border-color:#7f007f +} +.form-input::-webkit-input-placeholder { + color:#acb3c2 +} +.form-input::-moz-placeholder { + color:#acb3c2 +} +.form-input:-ms-input-placeholder { + color:#acb3c2 +} +.form-input::placeholder { + color:#acb3c2 +} +.form-input.input-sm { + font-size:1.2rem; + height:2.4rem; + padding:.1rem .8rem +} +.form-input.input-lg { + font-size:1.6rem; + height:4rem; + padding:.9rem .8rem +} +.form-input.input-inline { + display:inline-block; + vertical-align:middle; + width:auto +} +textarea.form-input { + height:auto +} +.form-input[type=file] { + height:auto +} +.form-input-hint { + color:#acb3c2; + margin-top:.4rem +} +.has-success .form-input-hint, +.is-success+.form-input-hint { + color:#32b643 +} +.has-error .form-input-hint, +.is-error+.form-input-hint { + color:#e85600 +} +.form-select { + -webkit-appearance:none; + -moz-appearance:none; + appearance:none; + border:.1rem solid #c4c9d3; + border-radius:.2rem; + color:inherit; + font-size:1.4rem; + line-height:2rem; + outline:none; + padding:.5rem .8rem; + vertical-align:middle; + width:100% +} +.form-select[multiple] option { + padding:.2rem .4rem +} +.form-select:not([multiple]) { + background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23667189' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E") no-repeat right .75rem center/.8rem 1rem; + height:3.2rem; + padding-right:2.4rem +} +.form-select:focus { + border-color:#7f007f; + box-shadow:0 0 0 .2rem rgba(87,100,198,.15) +} +.form-select::-ms-expand { + display:none +} +.form-select.select-sm { + font-size:1.2rem; + height:2.4rem; + padding:.1rem 2rem .1rem .6rem +} +.form-select.select-lg { + font-size:1.6rem; + height:4rem; + padding:.9rem 2.4rem .9rem .8rem +} +.has-success .form-input, +.has-success .form-select, +.form-input.is-success, +.form-select.is-success { + border-color:#32b643 +} +.has-success .form-input:focus, +.has-success .form-select:focus, +.form-input.is-success:focus, +.form-select.is-success:focus { + box-shadow:0 0 0 .2rem rgba(50,182,67,.15) +} +.has-error .form-input, +.has-error .form-select, +.form-input.is-error, +.form-select.is-error { + border-color:#e85600 +} +.has-error .form-input:focus, +.has-error .form-select:focus, +.form-input.is-error:focus, +.form-select.is-error:focus { + box-shadow:0 0 0 .2rem rgba(232,86,0,.15) +} +.form-input:not(:placeholder-shown):invalid { + border-color:#e85600 +} +.form-input:not(:placeholder-shown):invalid:focus { + box-shadow:0 0 0 .2rem rgba(232,86,0,.15) +} +.form-input:not(:placeholder-shown):invalid+.form-input-hint { + color:#e85600 +} +.has-icon-left, +.has-icon-right { + position:relative +} +.has-icon-left .form-icon, +.has-icon-right .form-icon { + margin:0 .8rem; + min-width:1.4rem; + position:absolute; + top:50%; + -webkit-transform:translateY(-50%); + -ms-transform:translateY(-50%); + transform:translateY(-50%) +} +.has-icon-left .form-icon { + left:0 +} +.has-icon-left .form-input { + padding-left:3rem +} +.has-icon-right .form-icon { + right:0 +} +.has-icon-right .form-input { + padding-right:3rem +} +.form-checkbox, +.form-radio, +.form-switch { + display:inline-block; + line-height:2rem; + position:relative +} +.form-checkbox input, +.form-radio input, +.form-switch input { + clip:rect(0,0,0,0); + height:.1rem; + margin:-.1rem; + overflow:hidden; + position:absolute; + width:.1rem +} +.form-checkbox input:focus+.form-icon, +.form-radio input:focus+.form-icon, +.form-switch input:focus+.form-icon { + border-color:#7f007f; + box-shadow:0 0 0 .2rem rgba(87,100,198,.15) +} +.form-checkbox input:checked+.form-icon, +.form-radio input:checked+.form-icon, +.form-switch input:checked+.form-icon { + background:#7f007f; + border-color:#7f007f +} +.form-checkbox .form-icon, +.form-radio .form-icon, +.form-switch .form-icon { + border:.1rem solid #c4c9d3; + cursor:pointer; + display:inline-block; + position:absolute; + transition:all .2s ease +} +.form-checkbox, +.form-radio { + padding:.2rem 2rem +} +.form-checkbox .form-icon, +.form-radio .form-icon { + background:#fff; + height:1.4rem; + left:0; + top:.5rem; + width:1.4rem +} +.form-checkbox input:active+.form-icon, +.form-radio input:active+.form-icon { + background:#f0f1f4 +} +.form-checkbox .form-icon { + border-radius:.2rem +} +.form-checkbox input:checked+.form-icon::before { + background-clip:padding-box; + border:.2rem solid #fff; + border-left-width:0; + border-top-width:0; + content:""; + height:1rem; + left:50%; + margin-left:-.3rem; + margin-top:-.6rem; + position:absolute; + top:50%; + -webkit-transform:rotate(45deg); + -ms-transform:rotate(45deg); + transform:rotate(45deg); + width:.6rem +} +.form-checkbox input:indeterminate+.form-icon { + background:#7f007f; + border-color:#7f007f +} +.form-checkbox input:indeterminate+.form-icon::before { + background:#fff; + content:""; + height:.2rem; + left:50%; + margin-left:-.5rem; + margin-top:-.1rem; + position:absolute; + top:50%; + width:1rem +} +.form-radio .form-icon { + border-radius:.7rem +} +.form-radio input:checked+.form-icon::before { + background:#fff; + border-radius:.2rem; + content:""; + height:.4rem; + left:50%; + margin-left:-.2rem; + margin-top:-.2rem; + position:absolute; + top:50%; + width:.4rem +} +.form-switch { + padding:.2rem 2rem .2rem 3.6rem +} +.form-switch .form-icon { + background:#e7e9ed; + background-clip:padding-box; + border-radius:.9rem; + height:1.8rem; + left:0; + top:.3rem; + width:3rem +} +.form-switch .form-icon::before { + background:#fff; + border-radius:.8rem; + content:""; + display:block; + height:1.6rem; + left:0; + position:absolute; + top:0; + transition:all .2s ease; + width:1.6rem +} +.form-switch input:checked+.form-icon::before { + left:1.2rem +} +.form-switch input:active+.form-icon::before { + background:#f8f9fa +} +.input-group { + display:flex; + display:-ms-flexbox; + display:-webkit-flex +} +.input-group .input-group-addon { + background:#f8f9fa; + border:.1rem solid #c4c9d3; + border-radius:.2rem; + line-height:2rem; + padding:.5rem .8rem +} +.input-group .input-group-addon.addon-sm { + font-size:1.2rem; + padding:.1rem .8rem +} +.input-group .input-group-addon.addon-lg { + font-size:1.6rem; + padding:.9rem .8rem +} +.input-group .input-group-addon, +.input-group .input-group-btn { + -webkit-flex:1 0 auto; + -ms-flex:1 0 auto; + flex:1 0 auto +} +.input-group .form-input:first-child:not(:last-child), +.input-group .form-select:first-child:not(:last-child), +.input-group .input-group-addon:first-child:not(:last-child), +.input-group .input-group-btn:first-child:not(:last-child) { + border-bottom-right-radius:0; + border-top-right-radius:0 +} +.input-group .form-input:not(:first-child):not(:last-child), +.input-group .form-select:not(:first-child):not(:last-child), +.input-group .input-group-addon:not(:first-child):not(:last-child), +.input-group .input-group-btn:not(:first-child):not(:last-child) { + border-radius:0; + margin-left:-.1rem +} +.input-group .form-input:last-child:not(:first-child), +.input-group .form-select:last-child:not(:first-child), +.input-group .input-group-addon:last-child:not(:first-child), +.input-group .input-group-btn:last-child:not(:first-child) { + border-bottom-left-radius:0; + border-top-left-radius:0; + margin-left:-.1rem +} +.input-group .form-input:focus, +.input-group .form-select:focus, +.input-group .input-group-addon:focus, +.input-group .input-group-btn:focus { + z-index:1 +} +.input-group .form-select { + width:auto +} +.input-group.input-inline { + display:inline-flex; + display:-ms-inline-flexbox; + display:-webkit-inline-flex +} +.form-input:disabled, +.form-select:disabled, +.form-input.disabled, +.form-select.disabled { + background-color:#f0f1f4; + cursor:not-allowed; + opacity:.5 +} +.form-input[readonly] { + background-color:#f8f9fa +} +input:disabled+.form-icon, +input.disabled+.form-icon { + background:#f0f1f4; + cursor:not-allowed; + opacity:.5 +} +.form-switch input:disabled+.form-icon::before, +.form-switch input.disabled+.form-icon::before { + background:#fff +} +.form-horizontal { + padding:1rem +} +.form-horizontal .form-group { + display:flex; + display:-ms-flexbox; + display:-webkit-flex +} +.form-horizontal .form-checkbox, +.form-horizontal .form-radio, +.form-horizontal .form-switch { + margin:.4rem 0 +} +.label { + background:#f8f9fa; + border-radius:.2rem; + color:#5b657a; + display:inline-block; + line-height:1; + padding:.3rem .4rem; + vertical-align:baseline +} +.label.label-primary { + background:#7f007f; + color:#fff +} +.label.label-success { + background:#32b643; + color:#fff +} +.label.label-warning { + background:#ffb700; + color:#fff +} +.label.label-error { + background:#e85600; + color:#fff +} +code { + background:#fdf4f4; + border-radius:.2rem; + color:#e06870; + display:inline-block; + line-height:1; + padding:.3rem .4rem; + vertical-align:baseline +} +.code { + border-radius:.2rem; + color:#50596c; + line-height:2rem; + position:relative +} +.code::before { + color:#acb3c2; + content:attr(data-lang); + font-size:1.2rem; + position:absolute; + right:1rem; + top:.2rem +} +.code code { + background:#f8f9fa; + color:inherit; + display:block; + line-height:inherit; + overflow-x:auto; + padding:2rem; + width:100% +} +.img-responsive { + display:block; + height:auto; + max-width:100% +} +.img-fit-cover { + object-fit:cover +} +.img-fit-contain { + object-fit:contain +} +.video-responsive { + display:block; + overflow:hidden; + padding:0; + position:relative; + width:100% +} +.video-responsive::before { + content:""; + display:block; + padding-bottom:56.25% +} +.video-responsive iframe, +.video-responsive object, +.video-responsive embed { + bottom:0; + height:100%; + left:0; + position:absolute; + right:0; + top:0; + width:100% +} +.video-responsive video { + height:auto; + max-width:100%; + width:100% +} +.video-responsive-4-3::before { + padding-bottom:75% +} +.video-responsive-1-1::before { + padding-bottom:100% +} +.figure { + margin:0 0 1rem +} +.figure .figure-caption { + color:#727e96; + margin-top:1rem +} +.container { + margin-left:auto; + margin-right:auto; + padding-left:1rem; + padding-right:1rem; + width:100% +} +.container.grid-1280 { + max-width:130rem +} +.container.grid-960 { + max-width:98rem +} +.container.grid-480 { + max-width:50rem +} +.columns { + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex-wrap:wrap; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + margin-left:-1rem; + margin-right:-1rem +} +.columns.col-gapless { + margin-left:0; + margin-right:0 +} +.columns.col-gapless .column { + padding-left:0; + padding-right:0 +} +.columns.col-oneline { + -webkit-flex-wrap:nowrap; + -ms-flex-wrap:nowrap; + flex-wrap:nowrap; + overflow-x:auto +} +.column { + -webkit-flex:1; + -ms-flex:1; + flex:1; + max-width:100%; + padding:1rem +} +.column.col-12, +.column.col-11, +.column.col-10, +.column.col-9, +.column.col-8, +.column.col-7, +.column.col-6, +.column.col-5, +.column.col-4, +.column.col-3, +.column.col-2, +.column.col-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none +} +.col-12 { + width:100% +} +.col-11 { + width:91.66666667% +} +.col-10 { + width:83.33333333% +} +.col-9 { + width:75% +} +.col-8 { + width:66.66666667% +} +.col-7 { + width:58.33333333% +} +.col-6 { + width:50% +} +.col-5 { + width:41.66666667% +} +.col-4 { + width:33.33333333% +} +.col-3 { + width:25% +} +.col-2 { + width:16.66666667% +} +.col-1 { + width:8.33333333% +} +@media screen and (max-width:1280px) { + .col-xl-12, + .col-xl-11, + .col-xl-10, + .col-xl-9, + .col-xl-8, + .col-xl-7, + .col-xl-6, + .col-xl-5, + .col-xl-4, + .col-xl-3, + .col-xl-2, + .col-xl-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none + } + .col-xl-12 { + width:100% + } + .col-xl-11 { + width:91.66666667% + } + .col-xl-10 { + width:83.33333333% + } + .col-xl-9 { + width:75% + } + .col-xl-8 { + width:66.66666667% + } + .col-xl-7 { + width:58.33333333% + } + .col-xl-6 { + width:50% + } + .col-xl-5 { + width:41.66666667% + } + .col-xl-4 { + width:33.33333333% + } + .col-xl-3 { + width:25% + } + .col-xl-2 { + width:16.66666667% + } + .col-xl-1 { + width:8.33333333% + } +} +@media screen and (max-width:960px) { + .col-lg-12, + .col-lg-11, + .col-lg-10, + .col-lg-9, + .col-lg-8, + .col-lg-7, + .col-lg-6, + .col-lg-5, + .col-lg-4, + .col-lg-3, + .col-lg-2, + .col-lg-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none + } + .col-lg-12 { + width:100% + } + .col-lg-11 { + width:91.66666667% + } + .col-lg-10 { + width:83.33333333% + } + .col-lg-9 { + width:75% + } + .col-lg-8 { + width:66.66666667% + } + .col-lg-7 { + width:58.33333333% + } + .col-lg-6 { + width:50% + } + .col-lg-5 { + width:41.66666667% + } + .col-lg-4 { + width:33.33333333% + } + .col-lg-3 { + width:25% + } + .col-lg-2 { + width:16.66666667% + } + .col-lg-1 { + width:8.33333333% + } +} +@media screen and (max-width:840px) { + .col-md-12, + .col-md-11, + .col-md-10, + .col-md-9, + .col-md-8, + .col-md-7, + .col-md-6, + .col-md-5, + .col-md-4, + .col-md-3, + .col-md-2, + .col-md-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none + } + .col-md-12 { + width:100% + } + .col-md-11 { + width:91.66666667% + } + .col-md-10 { + width:83.33333333% + } + .col-md-9 { + width:75% + } + .col-md-8 { + width:66.66666667% + } + .col-md-7 { + width:58.33333333% + } + .col-md-6 { + width:50% + } + .col-md-5 { + width:41.66666667% + } + .col-md-4 { + width:33.33333333% + } + .col-md-3 { + width:25% + } + .col-md-2 { + width:16.66666667% + } + .col-md-1 { + width:8.33333333% + } +} +@media screen and (max-width:600px) { + .col-sm-12, + .col-sm-11, + .col-sm-10, + .col-sm-9, + .col-sm-8, + .col-sm-7, + .col-sm-6, + .col-sm-5, + .col-sm-4, + .col-sm-3, + .col-sm-2, + .col-sm-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none + } + .col-sm-12 { + width:100% + } + .col-sm-11 { + width:91.66666667% + } + .col-sm-10 { + width:83.33333333% + } + .col-sm-9 { + width:75% + } + .col-sm-8 { + width:66.66666667% + } + .col-sm-7 { + width:58.33333333% + } + .col-sm-6 { + width:50% + } + .col-sm-5 { + width:41.66666667% + } + .col-sm-4 { + width:33.33333333% + } + .col-sm-3 { + width:25% + } + .col-sm-2 { + width:16.66666667% + } + .col-sm-1 { + width:8.33333333% + } +} +@media screen and (max-width:480px) { + .col-xs-12, + .col-xs-11, + .col-xs-10, + .col-xs-9, + .col-xs-8, + .col-xs-7, + .col-xs-6, + .col-xs-5, + .col-xs-4, + .col-xs-3, + .col-xs-2, + .col-xs-1 { + -webkit-flex:none; + -ms-flex:none; + flex:none + } + .col-xs-12 { + width:100% + } + .col-xs-11 { + width:91.66666667% + } + .col-xs-10 { + width:83.33333333% + } + .col-xs-9 { + width:75% + } + .col-xs-8 { + width:66.66666667% + } + .col-xs-7 { + width:58.33333333% + } + .col-xs-6 { + width:50% + } + .col-xs-5 { + width:41.66666667% + } + .col-xs-4 { + width:33.33333333% + } + .col-xs-3 { + width:25% + } + .col-xs-2 { + width:16.66666667% + } + .col-xs-1 { + width:8.33333333% + } +} +.show-xs, +.show-sm, +.show-md, +.show-lg, +.show-xl { + display:none!important +} +@media screen and (max-width:480px) { + .hide-xs { + display:none!important + } + .show-xs { + display:block!important + } +} +@media screen and (max-width:600px) { + .hide-sm { + display:none!important + } + .show-sm { + display:block!important + } +} +@media screen and (max-width:840px) { + .hide-md { + display:none!important + } + .show-md { + display:block!important + } +} +@media screen and (max-width:960px) { + .hide-lg { + display:none!important + } + .show-lg { + display:block!important + } +} +@media screen and (max-width:1280px) { + .hide-xl { + display:none!important + } + .show-xl { + display:block!important + } +} +.navbar { + -webkit-align-items:stretch; + align-items:stretch; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -ms-flex-align:stretch; + -ms-flex-pack:justify; + -webkit-flex-wrap:wrap; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + -webkit-justify-content:space-between; + justify-content:space-between +} +.navbar .navbar-section { + -webkit-align-items:center; + align-items:center; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex:1 0 0; + -ms-flex:1 0 0; + flex:1 0 0; + -ms-flex-align:center +} +.navbar .navbar-section:last-child { + -ms-flex-pack:end; + -webkit-justify-content:flex-end; + justify-content:flex-end +} +.navbar .navbar-center { + -webkit-align-items:center; + align-items:center; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex:0 0 auto; + -ms-flex:0 0 auto; + flex:0 0 auto; + -ms-flex-align:center +} +.navbar .navbar-brand { + font-size:1.6rem; + font-weight:500; + text-decoration:none +} +.panel { + border:.1rem solid #f0f1f4; + border-radius:.2rem; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex-direction:column; + -ms-flex-direction:column; + flex-direction:column +} +.panel .panel-header, +.panel .panel-footer { + -webkit-flex:0 0 auto; + -ms-flex:0 0 auto; + flex:0 0 auto; + padding:1.5rem +} +.panel .panel-nav { + -webkit-flex:0 0 auto; + -ms-flex:0 0 auto; + flex:0 0 auto +} +.panel .panel-body { + -webkit-flex:1 1 auto; + -ms-flex:1 1 auto; + flex:1 1 auto; + overflow-y:auto; + padding:0 1.5rem +} +.panel .panel-title { + font-size:2rem +} +.panel .panel-subtitle { + color:#bbc1cd +} +.empty { + background:#f8f9fa; + border-radius:.2rem; + color:#727e96; + padding:4rem; + text-align:center +} +.empty .empty-title, +.empty .empty-subtitle { + margin:1rem auto +} +.empty .empty-subtitle { + color:#bbc1cd +} +.empty .empty-action { + margin-top:1.5rem +} +.form-autocomplete { + position:relative +} +.form-autocomplete .form-autocomplete-input { + -webkit-align-content:flex-start; + align-content:flex-start; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -ms-flex-line-pack:start; + -webkit-flex-wrap:wrap; + -ms-flex-wrap:wrap; + flex-wrap:wrap; + height:auto; + min-height:3.2rem; + padding:.1rem 0 0 .1rem +} +.form-autocomplete .form-autocomplete-input.is-focused { + border-color:#7f007f; + box-shadow:0 0 0 .2rem rgba(87,100,198,.15) +} +.form-autocomplete .form-autocomplete-input .form-input { + border-color:transparent; + box-shadow:none; + display:inline-block; + -webkit-flex:1 0 auto; + -ms-flex:1 0 auto; + flex:1 0 auto; + height:2.8rem; + padding:.3rem .8rem; + width:auto +} +.form-autocomplete mark { + font-size:1; + padding:.1em 0 +} +.form-autocomplete .menu { + left:0; + position:absolute; + top:100%; + width:100% +} +.avatar { + background:#7f007f; + border-radius:50%; + color:rgba(255,255,255,.85); + display:inline-block; + font-size:1.4rem; + font-weight:300; + height:3.2rem; + line-height:1; + margin:0; + position:relative; + vertical-align:middle; + width:3.2rem +} +.avatar.avatar-xs { + font-size:.8rem; + height:1.6rem; + width:1.6rem +} +.avatar.avatar-sm { + font-size:1rem; + height:2.4rem; + width:2.4rem +} +.avatar.avatar-lg { + font-size:2rem; + height:4.8rem; + width:4.8rem +} +.avatar.avatar-xl { + font-size:2.6rem; + height:6.4rem; + width:6.4rem +} +.avatar img { + border-radius:50%; + height:100%; + position:relative; + width:100%; + z-index:100 +} +.avatar .avatar-icon { + background:#fff; + bottom:14.64%; + height:50%; + padding:.2rem; + position:absolute; + right:14.64%; + -webkit-transform:translate(50%,50%); + -ms-transform:translate(50%,50%); + transform:translate(50%,50%); + width:50% +} +.avatar[data-initial]::before { + color:currentColor; + content:attr(data-initial); + left:50%; + position:absolute; + top:50%; + -webkit-transform:translate(-50%,-50%); + -ms-transform:translate(-50%,-50%); + transform:translate(-50%,-50%); + z-index:1 +} +.badge { + position:relative; + white-space:nowrap +} +.badge[data-badge]::after, +.badge:not([data-badge])::after { + background:#7f007f; + background-clip:padding-box; + border-radius:1rem; + box-shadow:0 0 0 .2rem #fff; + color:#fff; + content:attr(data-badge); + display:inline-block; + -webkit-transform:translate(-.2rem,-1rem); + -ms-transform:translate(-.2rem,-1rem); + transform:translate(-.2rem,-1rem) +} +.badge[data-badge]::after { + font-size:1.2rem; + height:1.8rem; + line-height:1; + min-width:1.8rem; + padding:.3rem .5rem; + text-align:center; + white-space:nowrap +} +.badge:not([data-badge])::after, +.badge[data-badge=""]::after { + height:.6rem; + min-width:.6rem; + padding:0; + width:.6rem +} +.badge.btn::after { + position:absolute; + right:0; + top:0; + -webkit-transform:translate(50%,-50%); + -ms-transform:translate(50%,-50%); + transform:translate(50%,-50%) +} +.badge.avatar::after { + position:absolute; + right:14.64%; + top:14.64%; + -webkit-transform:translate(50%,-50%); + -ms-transform:translate(50%,-50%); + transform:translate(50%,-50%); + z-index:100 +} +.badge.avatar-xs::after { + content:""; + height:.8rem; + min-width:.8rem; + padding:0; + width:.8rem +} +.bar { + background:#f0f1f4; + border-radius:.2rem; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex-wrap:nowrap; + -ms-flex-wrap:nowrap; + flex-wrap:nowrap; + height:1.6rem; + width:100% +} +.bar.bar-sm { + height:.4rem +} +.bar .bar-item { + background:#7f007f; + color:#fff; + display:block; + -ms-flex-negative:0; + -webkit-flex-shrink:0; + flex-shrink:0; + font-size:1.2rem; + height:100%; + line-height:1; + padding:.2rem 0; + position:relative; + text-align:center; + width:0 +} +.bar .bar-item:first-child { + border-bottom-left-radius:.2rem; + border-top-left-radius:.2rem +} +.bar .bar-item:last-child { + border-bottom-right-radius:.2rem; + border-top-right-radius:.2rem; + -ms-flex-negative:1; + -webkit-flex-shrink:1; + flex-shrink:1 +} +.bar-slider { + height:.2rem; + margin:1rem 0; + position:relative +} +.bar-slider .bar-item { + left:0; + padding:0; + position:absolute +} +.bar-slider .bar-item:not(:last-child):first-child { + background:#f0f1f4; + z-index:1 +} +.bar-slider .bar-slider-btn { + background:#7f007f; + border:0; + border-radius:50%; + height:1.2rem; + padding:0; + position:absolute; + right:0; + top:50%; + -webkit-transform:translate(50%,-50%); + -ms-transform:translate(50%,-50%); + transform:translate(50%,-50%); + width:1.2rem +} +.bar-slider .bar-slider-btn:active { + box-shadow:0 0 0 .2rem #7f007f +} +.card { + background:#fff; + border:.1rem solid #f0f1f4; + border-radius:.2rem; + display:block +} +.card .card-header, +.card .card-body, +.card .card-footer { + padding:1.5rem; + padding-bottom:0 +} +.card .card-header:last-child, +.card .card-body:last-child, +.card .card-footer:last-child { + padding-bottom:1.5rem +} +.card .card-image { + padding-top:1.5rem +} +.card .card-image:first-child { + padding-top:0 +} +.card .card-image:first-child img { + border-top-left-radius:.2rem; + border-top-right-radius:.2rem +} +.card .card-image:last-child img { + border-bottom-left-radius:.2rem; + border-bottom-right-radius:.2rem +} +.card .card-title { + font-size:2rem +} +.card .card-subtitle { + color:#bbc1cd; + font-size:1.2rem +} +.chip { + -webkit-align-items:center; + align-items:center; + background:#f0f1f4; + border-radius:.2rem; + color:#727e96; + display:-ms-inline-flexbox; + display:inline-flex; + display:-webkit-inline-flex; + -ms-flex-align:center; + height:2.8rem; + margin:0 .1rem .1rem 0; + max-width:100%; + padding:.1rem .8rem; + text-decoration:none; + vertical-align:middle +} +.chip.active { + background:#7f007f; + color:#fff +} +.chip .avatar { + margin-left:-.4rem; + margin-right:.4rem +} +.dropdown { + display:inline-block; + position:relative +} +.dropdown .menu { + -webkit-animation:slide-down .2s ease 1; + animation:slide-down .2s ease 1; + display:none; + left:0; + position:absolute; + top:100% +} +.dropdown.dropdown-right .menu { + left:auto; + right:0 +} +.dropdown.active .menu, +.dropdown .dropdown-toggle:focus+.menu, +.dropdown .menu:hover { + display:block +} +.dropdown .btn-group .dropdown-toggle:nth-last-child(2) { + border-bottom-right-radius:.2rem; + border-top-right-radius:.2rem +} +.menu { + background:#fff; + border-radius:.2rem; + box-shadow:0 .1rem .4rem rgba(69,77,93,.3); + list-style:none; + margin:0; + min-width:18rem; + padding:1rem; + -webkit-transform:translateY(.5rem); + -ms-transform:translateY(.5rem); + transform:translateY(.5rem); + z-index:100 +} +.menu .menu-item { + margin-top:0; + padding:0 .8rem; + text-decoration:none; + -webkit-user-select:none; + -moz-user-select:none; + -ms-user-select:none; + user-select:none +} +.menu .menu-item>a { + border-radius:.2rem; + color:inherit; + display:block; + margin:0 -.8rem; + padding:.6rem .8rem; + text-decoration:none +} +.menu .menu-item>a:focus, +.menu .menu-item>a:hover { + color:#7f007f +} +.menu .menu-item>a:active, +.menu .menu-item>a.active { + background:#fbfbfe; + color:#7f007f +} +.menu .menu-badge { + float:right; + padding:.6rem 0 +} +.menu .menu-badge .btn { + margin-top:-.2rem +} +.modal { + -webkit-align-items:center; + align-items:center; + bottom:0; + display:none; + -ms-flex-align:center; + -ms-flex-pack:center; + -webkit-justify-content:center; + justify-content:center; + left:0; + opacity:0; + overflow:hidden; + padding:1rem; + position:fixed; + right:0; + top:0 +} +.modal:target, +.modal.active { + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + opacity:1; + z-index:400 +} +.modal:target .modal-overlay, +.modal.active .modal-overlay { + background:rgba(69,77,93,.5); + bottom:0; + cursor:default; + display:block; + left:0; + position:absolute; + right:0; + top:0 +} +.modal:target .modal-container, +.modal.active .modal-container { + -webkit-animation:slide-down .2s ease 1; + animation:slide-down .2s ease 1; + max-width:64rem; + z-index:1 +} +.modal.modal-sm .modal-container { + max-width:32rem +} +.modal-container { + background:#fff; + border-radius:.2rem; + box-shadow:0 .4rem 1rem rgba(69,77,93,.3); + display:block; + padding:0; + text-align:left +} +.modal-container .modal-header { + padding:1.5rem +} +.modal-container .modal-header .modal-title { + font-size:1.6rem; + margin:0 +} +.modal-container .modal-body { + max-height:50vh; + overflow-y:auto; + padding:1.5rem; + position:relative +} +.modal-container .modal-footer { + padding:1.5rem; + text-align:right +} +.breadcrumb, +.tab, +.pagination, +.nav { + list-style:none; + margin:.5rem 0 +} +.breadcrumb { + padding:1.2rem 0 +} +.breadcrumb .breadcrumb-item { + display:inline-block; + margin:0; + max-height:20px; + overflow:hidden; + text-overflow:ellipsis; + max-width:400px +} +.breadcrumb .breadcrumb-item:last-child { + color:#acb3c2 +} +.breadcrumb .breadcrumb-item:not(:first-child)::before { + color:#e7e9ed; + content:"/"; + padding:0 .4rem +} +.tab { + -webkit-align-items:center; + align-items:center; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -ms-flex-align:center; + -webkit-flex-wrap:wrap; + -ms-flex-wrap:wrap; + flex-wrap:wrap +} +.tab .tab-item { + margin-top:0 +} +.tab .tab-item.tab-action { + -webkit-flex:1 0 auto; + -ms-flex:1 0 auto; + flex:1 0 auto; + text-align:right +} +.tab .tab-item a { + border-bottom:.2rem solid transparent; + color:inherit; + display:block; + margin-top:0; + padding:.6rem 1.2rem .4rem; + text-decoration:none +} +.tab .tab-item a:focus, +.tab .tab-item a:hover { + color:#7f007f +} +.tab .tab-item.active a, +.tab .tab-item a.active { + border-bottom-color:#7f007f; + color:#7f007f +} +.tab.tab-block .tab-item { + -webkit-flex:1 0 0; + -ms-flex:1 0 0; + flex:1 0 0; + text-align:center +} +.tab.tab-block .tab-item .badge[data-badge]::after { + position:absolute; + right:-.4rem; + top:-.4rem; + -webkit-transform:translate(0,0); + -ms-transform:translate(0,0); + transform:translate(0,0) +} +.tab:not(.tab-block) .badge { + padding-right:.2rem +} +.pagination { + display:flex; + display:-ms-flexbox; + display:-webkit-flex +} +.pagination .page-item { + margin:1rem .1rem +} +.pagination .page-item span { + display:inline-block; + padding:.6rem .4rem +} +.pagination .page-item a { + border-radius:.2rem; + color:#727e96; + display:inline-block; + padding:.6rem .8rem; + text-decoration:none +} +.pagination .page-item a:focus, +.pagination .page-item a:hover { + color:#7f007f +} +.pagination .page-item a[disabled], +.pagination .page-item a.disabled { + cursor:default; + opacity:.5; + pointer-events:none +} +.pagination .page-item.active a { + background:#7f007f; + color:#fff +} +.pagination .page-item.page-prev, +.pagination .page-item.page-next { + -webkit-flex:1 0 50%; + -ms-flex:1 0 50%; + flex:1 0 50% +} +.pagination .page-item.page-next { + text-align:right +} +.pagination .page-item .page-item-title { + margin:0 +} +.pagination .page-item .page-item-subtitle { + margin:0; + opacity:.5 +} +.nav { + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex-direction:column; + -ms-flex-direction:column; + flex-direction:column +} +.nav .nav-item a { + color:#727e96; + padding:.6rem .8rem; + text-decoration:none +} +.nav .nav-item a:focus, +.nav .nav-item a:hover { + color:#7f007f +} +.nav .nav-item.active>a { + font-weight:700 +} +.nav .nav-item.active>a:focus, +.nav .nav-item.active>a:hover { + color:#7f007f +} +.nav .nav { + margin-bottom:1rem; + margin-left:2rem +} +.nav .nav a { + color:#acb3c2 +} +.popover { + display:inline-block; + position:relative +} +.popover .popover-container { + content:attr(data-tooltip); + left:50%; + opacity:0; + padding:1rem; + position:absolute; + top:0; + -webkit-transform:translate(-50%,-50%) scale(0); + -ms-transform:translate(-50%,-50%) scale(0); + transform:translate(-50%,-50%) scale(0); + transition:transform .2s ease,-webkit-transform .2s ease; + transition:transform .2s ease; + transition:-webkit-transform .2s ease; + width:32rem; + z-index:400 +} +.popover :focus+.popover-container, +.popover:hover .popover-container, +.popover .popover-container:hover { + display:block; + opacity:1; + -webkit-transform:translate(-50%,-100%) scale(1); + -ms-transform:translate(-50%,-100%) scale(1); + transform:translate(-50%,-100%) scale(1) +} +.popover.popover-right .popover-container { + left:100%; + top:50% +} +.popover.popover-right :focus+.popover-container, +.popover.popover-right:hover .popover-container, +.popover.popover-right .popover-container:hover { + -webkit-transform:translate(0,-50%) scale(1); + -ms-transform:translate(0,-50%) scale(1); + transform:translate(0,-50%) scale(1) +} +.popover.popover-bottom .popover-container { + left:50%; + top:100% +} +.popover.popover-bottom :focus+.popover-container, +.popover.popover-bottom:hover .popover-container, +.popover.popover-bottom .popover-container:hover { + -webkit-transform:translate(-50%,0) scale(1); + -ms-transform:translate(-50%,0) scale(1); + transform:translate(-50%,0) scale(1) +} +.popover.popover-left .popover-container { + left:0; + top:50% +} +.popover.popover-left :focus+.popover-container, +.popover.popover-left:hover .popover-container, +.popover.popover-left .popover-container:hover { + -webkit-transform:translate(-100%,-50%) scale(1); + -ms-transform:translate(-100%,-50%) scale(1); + transform:translate(-100%,-50%) scale(1) +} +.popover .card { + border:0; + box-shadow:0 .4rem 1rem rgba(69,77,93,.3) +} +.step { + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -webkit-flex-wrap:nowrap; + -ms-flex-wrap:nowrap; + flex-wrap:nowrap; + list-style:none; + margin:.5rem 0; + width:100% +} +.step .step-item { + -webkit-flex:1 1 0; + -ms-flex:1 1 0; + flex:1 1 0; + margin-top:0; + min-height:2rem; + position:relative; + text-align:center +} +.step .step-item:not(:first-child)::before { + background:#7f007f; + content:""; + height:.2rem; + left:-50%; + position:absolute; + top:.9rem; + width:100% +} +.step .step-item a { + color:#acb3c2; + display:inline-block; + padding:2rem 1rem 0; + text-decoration:none +} +.step .step-item a::before { + background:#7f007f; + border:.2rem solid #fff; + border-radius:50%; + content:""; + display:block; + height:1.2rem; + left:50%; + position:absolute; + top:.4rem; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%); + width:1.2rem; + z-index:1 +} +.step .step-item.active a::before { + background:#fff; + border:.2rem solid #7f007f +} +.step .step-item.active~.step-item::before { + background:#f0f1f4 +} +.step .step-item.active~.step-item a::before { + background:#e7e9ed +} +.tile { + -webkit-align-content:space-between; + align-content:space-between; + -webkit-align-items:flex-start; + align-items:flex-start; + display:flex; + display:-ms-flexbox; + display:-webkit-flex; + -ms-flex-align:start; + -ms-flex-line-pack:justify +} +.tile .tile-icon, +.tile .tile-action { + -webkit-flex:0 0 auto; + -ms-flex:0 0 auto; + flex:0 0 auto +} +.tile .tile-content { + -webkit-flex:1 1 auto; + -ms-flex:1 1 auto; + flex:1 1 auto +} +.tile .tile-content:not(:first-child) { + padding-left:1rem +} +.tile .tile-content:not(:last-child) { + padding-right:1rem +} +.tile .tile-title { + line-height:2rem +} +.tile .tile-subtitle { + color:#bbc1cd; + line-height:2rem +} +.tile.tile-centered { + -webkit-align-items:center; + align-items:center; + -ms-flex-align:center +} +.tile.tile-centered .tile-content { + overflow:hidden +} +.tile.tile-centered .tile-title, +.tile.tile-centered .tile-subtitle { + margin-bottom:0; + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} +.toast { + background:rgba(69,77,93,.9); + border:.1rem solid #454d5d; + border-color:#454d5d; + border-radius:.2rem; + color:#fff; + display:block; + padding:1rem; + width:100% +} +.toast.toast-primary { + background:rgba(87,100,198,.9); + border-color:#7f007f +} +.toast.toast-success { + background:#5bc787!important; + border-color:#5bc787!important +} +.toast.toast-warning { + background:rgba(255,183,0,.9); + border-color:#ffb700 +} +.toast.toast-error { + background:rgba(232,86,0,.9); + border-color:#e85600 +} +.toast a { + color:#fff; + text-decoration:underline +} +.toast a:focus, +.toast a:hover, +.toast a:active, +.toast a.active { + opacity:.75 +} +.tooltip { + position:relative +} +.tooltip::after { + background:rgba(69,77,93,.9); + border-radius:.2rem; + bottom:100%; + color:#fff; + content:attr(data-tooltip); + display:block; + font-size:1.2rem; + left:50%; + max-width:32rem; + opacity:0; + overflow:hidden; + padding:.4rem .8rem; + pointer-events:none; + position:absolute; + text-overflow:ellipsis; + -webkit-transform:translate(-50%,1rem); + -ms-transform:translate(-50%,1rem); + transform:translate(-50%,1rem); + transition:all .2s ease; + white-space:nowrap; + z-index:200 +} +.tooltip:focus::after, +.tooltip:hover::after { + opacity:1; + -webkit-transform:translate(-50%,-.5rem); + -ms-transform:translate(-50%,-.5rem); + transform:translate(-50%,-.5rem) +} +.tooltip[disabled], +.tooltip.disabled { + pointer-events:auto +} +.tooltip.tooltip-right::after { + bottom:50%; + left:100%; + -webkit-transform:translate(-1rem,50%); + -ms-transform:translate(-1rem,50%); + transform:translate(-1rem,50%) +} +.tooltip.tooltip-right:focus::after, +.tooltip.tooltip-right:hover::after { + -webkit-transform:translate(.5rem,50%); + -ms-transform:translate(.5rem,50%); + transform:translate(.5rem,50%) +} +.tooltip.tooltip-bottom::after { + bottom:auto; + top:100%; + -webkit-transform:translate(-50%,-1rem); + -ms-transform:translate(-50%,-1rem); + transform:translate(-50%,-1rem) +} +.tooltip.tooltip-bottom:focus::after, +.tooltip.tooltip-bottom:hover::after { + -webkit-transform:translate(-50%,.5rem); + -ms-transform:translate(-50%,.5rem); + transform:translate(-50%,.5rem) +} +.tooltip.tooltip-left::after { + bottom:50%; + left:auto; + right:100%; + -webkit-transform:translate(1rem,50%); + -ms-transform:translate(1rem,50%); + transform:translate(1rem,50%) +} +.tooltip.tooltip-left:focus::after, +.tooltip.tooltip-left:hover::after { + -webkit-transform:translate(-.5rem,50%); + -ms-transform:translate(-.5rem,50%); + transform:translate(-.5rem,50%) +} +@-webkit-keyframes loading { + 0% { + -webkit-transform:rotate(0deg); + transform:rotate(0deg) + } + 100% { + -webkit-transform:rotate(360deg); + transform:rotate(360deg) + } +} +@keyframes loading { + 0% { + -webkit-transform:rotate(0deg); + transform:rotate(0deg) + } + 100% { + -webkit-transform:rotate(360deg); + transform:rotate(360deg) + } +} +@-webkit-keyframes slide-down { + 0% { + opacity:0; + -webkit-transform:translateY(-3rem); + transform:translateY(-3rem) + } + 100% { + opacity:1; + -webkit-transform:translateY(0); + transform:translateY(0) + } +} +@keyframes slide-down { + 0% { + opacity:0; + -webkit-transform:translateY(-3rem); + transform:translateY(-3rem) + } + 100% { + opacity:1; + -webkit-transform:translateY(0); + transform:translateY(0) + } +} +.divider, +.divider-vert { + display:block; + position:relative +} +.divider[data-content]::after, +.divider-vert[data-content]::after { + background:#fff; + color:#e7e9ed; + content:attr(data-content); + display:inline-block; + font-size:1.2rem; + padding:0 .8rem; + -webkit-transform:translateY(-1.1rem); + -ms-transform:translateY(-1.1rem); + transform:translateY(-1.1rem) +} +.divider { + border-top:.1rem solid #f0f1f4; + height:.1rem; + margin:1rem 0 +} +.divider-vert { + display:block; + padding:1rem +} +.divider-vert::before { + border-left:.1rem solid #f0f1f4; + bottom:1rem; + content:""; + display:block; + left:50%; + position:absolute; + top:1rem; + -webkit-transform:translateX(-50%); + -ms-transform:translateX(-50%); + transform:translateX(-50%) +} +.divider-vert[data-content]::after { + left:50%; + padding:.4rem 0; + position:absolute; + top:50%; + -webkit-transform:translate(-50%,-50%); + -ms-transform:translate(-50%,-50%); + transform:translate(-50%,-50%) +} +.loading { + color:transparent!important; + min-height:1.6rem; + pointer-events:none; + position:relative +} +.loading::after { + -webkit-animation:loading 500ms infinite linear; + animation:loading 500ms infinite linear; + border:.2rem solid #0088d7; + border-radius:.8rem; + border-right-color:transparent; + border-top-color:transparent; + content:""; + display:block; + height:1.6rem; + left:50%; + margin-left:-.8rem; + margin-top:-.8rem; + position:absolute; + top:50%; + width:1.6rem; + z-index:1 +} +.clearfix::after, +.container::after { + clear:both; + content:""; + display:table +} +.float-left { + float:left!important +} +.float-right { + float:right!important +} +.rel { + position:relative +} +.abs { + position:absolute +} +.fixed { + position:fixed +} +.centered { + display:block; + float:none; + margin-left:auto; + margin-right:auto +} +.mt-10 { + margin-top:1rem +} +.mr-10 { + margin-right:1rem +} +.mb-10 { + margin-bottom:1rem +} +.ml-10 { + margin-left:1rem +} +.mt-5 { + margin-top:.5rem +} +.mr-5 { + margin-right:.5rem +} +.mb-5 { + margin-bottom:.5rem +} +.ml-5 { + margin-left:.5rem +} +.pt-10 { + padding-top:1rem +} +.pr-10 { + padding-right:1rem +} +.pb-10 { + padding-bottom:1rem +} +.pl-10 { + padding-left:1rem +} +.pt-5 { + padding-top:.5rem +} +.pr-5 { + padding-right:.5rem +} +.pb-5 { + padding-bottom:.5rem +} +.pl-5 { + padding-left:.5rem +} +.block { + display:block +} +.inline { + display:inline +} +.inline-block { + display:inline-block +} +.flex { + display:flex; + display:-ms-flexbox; + display:-webkit-flex +} +.inline-flex { + display:inline-flex; + display:-ms-inline-flexbox; + display:-webkit-inline-flex +} +.hide { + display:none!important +} +.visible { + visibility:visible +} +.invisible { + visibility:hidden +} +.text-hide { + background:0 0; + border:0; + color:transparent; + font-size:0; + line-height:0; + text-shadow:none +} +.text-assistive { + border:0; + clip:rect(0,0,0,0); + height:.1rem; + margin:-.1rem; + overflow:hidden; + padding:0; + position:absolute; + width:.1rem +} +.text-left { + text-align:left +} +.text-right { + text-align:right +} +.text-center { + text-align:center +} +.text-justify { + text-align:justify +} +.text-lowercase { + text-transform:lowercase +} +.text-uppercase { + text-transform:uppercase +} +.text-capitalize { + text-transform:capitalize +} +.text-normal { + font-weight:400 +} +.text-bold { + font-weight:700 +} +.text-italic { + font-style:italic +} +.text-large { + font-size:1.2em +} +.text-ellipsis { + overflow:hidden; + text-overflow:ellipsis; + white-space:nowrap +} +.text-clip { + overflow:hidden; + text-overflow:clip; + white-space:nowrap +} +.text-break { + -webkit-hyphens:auto; + -ms-hyphens:auto; + hyphens:auto; + word-break:break-word; + word-wrap:break-word +} +.hand { + cursor:pointer +} +.shadow-0 { + box-shadow:0 0 .2rem rgba(69,77,93,.3) +} +.shadow-1 { + box-shadow:0 .1rem .4rem rgba(69,77,93,.3) +} +.shadow-2 { + box-shadow:0 .2rem .6rem rgba(69,77,93,.3) +} +.shadow-3 { + box-shadow:0 .3rem .8rem rgba(69,77,93,.3) +} +.shadow-4 { + box-shadow:0 .4rem 1rem rgba(69,77,93,.3) +} +.rounded { + border-radius:.2rem +} +.circle { + border-radius:50% +} +.empty-icon i { + font-size:32px +} +.site-title { + font-size:28px; + margin:20px 0 15px +} +h1.site-title { + margin-top:0 +} +.site-title a { + color:#50596c; + text-decoration:none +} +h1.empty-title { + font-size:3rem +} +.card .card-title { + margin-bottom:5px; + font-size:16px; + height:37px; + overflow:hidden; + text-overflow:ellipsis; + display:-webkit-box; + -webkit-line-clamp:3; + -webkit-box-orient:vertical +} +.card .card-subtitle { + margin-bottom:0; + white-space:nowrap; + text-overflow:ellipsis; + overflow:hidden; + height:14px +} +.nostyle { + margin:0 +} +.nostyle li { + margin:5px 0 +} +.nostyle li a { + color:#fff +} +.wrapper { + padding:10px; + background:#df5329; + color:#fff +} +.wrapper-light { + padding:10px; + background:#2f3e4e; + color:#fff +} +.wrapper a { + color:#fff +} +.wrapper .form-input { + background:#fff!important; + border:transparent; + color:#000 +} +.wrapper .btn-primary { + background:#0088d7; + color:#fff!important; + border:1px solid #0088d7!important +} +.wrapper .btn-primary:hover { + background:#eee +} +.wrapper .form-input::-webkit-input-placeholder { + color:#ddd +} +h2 { + font-size:28px; + margin:20px 0 15px +} +footer { + margin-top:20px +} +#viewer-container { + -webkit-box-flex:0; + -ms-flex:0 0 75%; + flex:0 0 75% +} +#viewer-container>iframe { + height:100% +} +.categories .card .card-title { + margin:0; + text-align:center; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis +} +.navbar-section div.hide-md { + justify-content:flex-end; + display:-webkit-flex +} +.tool { + margin:10px 0 +} +.tab { + border-bottom:1px solid #ccc +} +.detail .breadcrumb { + margin-top:0; + padding-top:0 +} +.doc-title { + font-size:30px; + max-height:108px; + overflow:hidden; + text-overflow:ellipsis; + display:block; + display:-webkit-box; + -webkit-box-orient:vertical; + -webkit-line-clamp:3 +} +.description { + max-height:100px; + overflow:hidden +} +@media screen and (min-width:841px) { + .docs-sidebar { + padding:7rem 1rem 5rem + } + .docs-sidebar .docs-nav { + position:relative + } + @supports((position:-webkit-sticky) or (position:sticky)) { + .docs-sidebar .docs-nav { + position:sticky; + position:-webkit-sticky; + top:8rem + } + .docs-sidebar .docs-nav .nav-item a:focus { + box-shadow:none + } + } +} +.docs-nav-clear { + display:none +} +.card-image { + text-align:center +} +.card-image img { + display:inline-block +} +@media screen and (max-width:840px) { + .doc-title { + font-size:26px; + margin-top:0 + } + .docs-sidebar { + background:#fff; + height:100%; + left:0; + overflow-y:auto; + padding:0 15px; + position:fixed; + top:0; + -webkit-transform:translateX(-100%); + -ms-transform:translateX(-100%); + transform:translateX(-100%); + transition:transform .2s ease,-webkit-transform .2s ease; + transition:transform .2s ease; + transition:-webkit-transform .2s ease; + width:24rem; + z-index:400 + } + .docs-sidebar .nav .nav-item a { + padding:0 + } + .docs-sidebar:target { + -webkit-transform:translateX(0); + -ms-transform:translateX(0); + transform:translateX(0); + transition:transform .2s ease,-webkit-transform .2s ease; + transition:transform .2s ease; + transition:-webkit-transform .2s ease + } + .docs-sidebar:target+.docs-nav-clear { + display:block + } + .docs-nav-clear { + background:rgba(0,0,0,.15); + display:none; + height:100%; + left:0; + position:fixed; + right:0; + top:0; + width:100%; + z-index:300 + } +}