Commit 5b365708 authored by Mikolaï Krol's avatar Mikolaï Krol Committed by Mikolaï Krol

erp5_jexcel_editor: jexcel editor

added merging cells, more features in toolbar, horizontal scrollbar, searchbar in toolbar
parent 1266c706
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>erp5_jexcel_editor</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>ERP5 Jexcel Editor</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
url_list = [
"renderjs.js",
"rsvp.js",
"jexcel.gadget.html",
"jexcel.gadget.js",
"fonts.ttf",
"icons.css",
"jexcel/jexcel.js",
"jexcel/jexcel.css",
"jexcel/jexcel.theme.css",
"jexcel/jexcel.webcomponent.js",
"jsuites/jsuites.js",
"jsuites/jsuites.css",
]
return url_list
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>Script_magic</string> </key>
<value> <int>3</int> </value>
</item>
<item>
<key> <string>_bind_names</string> </key>
<value>
<object>
<klass>
<global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
</klass>
<tuple/>
<state>
<dictionary>
<item>
<key> <string>_asgns</string> </key>
<value>
<dictionary>
<item>
<key> <string>name_container</string> </key>
<value> <string>container</string> </value>
</item>
<item>
<key> <string>name_context</string> </key>
<value> <string>context</string> </value>
</item>
<item>
<key> <string>name_m_self</string> </key>
<value> <string>script</string> </value>
</item>
<item>
<key> <string>name_subpath</string> </key>
<value> <string>traverse_subpath</string> </value>
</item>
</dictionary>
</value>
</item>
</dictionary>
</state>
</object>
</value>
</item>
<item>
<key> <string>_params</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>WebSection_getJexcelEditorPrecacheManifestList</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>fonts.ttf</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>font/ttf</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(fonts.ttf) format('truetype');
}
.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px;
line-height: 1;
letter-spacing: normal;
text-transform: none;
display: inline-block;
white-space: nowrap;
word-wrap: normal;
direction: ltr;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>icons.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Jexcel</title>
<script src="rsvp.js"></script>
<script src="renderjs.js"></script>
<script src="jio.js"></script>
<script src="jexcel/jexcel.js"></script>
<script src="jsuites/jsuites.js"></script>
<link rel="stylesheet" href="jexcel/jexcel.css" type="text/css" />
<link rel="stylesheet" href="jsuites/jsuites.css" type="text/css" />
<link rel="stylesheet" href="icons.css" type="text/css" />
<script src="jexcel.gadget.js"></script>
</head>
<body>
<div class="spreadsheet"></div>
</body>
</html>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.gadget.html</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/html</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/*jslint nomen: true, indent: 2 */
/*global window, rJS, RSVP, jexcel*/
(function (window, rJS, jexcel) {
"use strict";
rJS(window)
.setState({saveConfig: false})
.declareAcquiredMethod("notifyChange", "notifyChange")
.declareJob("deferNotifyChange", function () {
// Ensure error will be correctly handled
return this.notifyChange();
})
.declareMethod("render", function (options) {
var gadget = this;
return gadget.changeState(options);
})
.declareMethod('getContent', function () {
var gadget = this, form_data = {};
if (this.state.editable || true) {
form_data[this.state.key] = JSON.stringify(gadget.table.getConfig());
this.state.value = form_data[this.state.key];
}
return form_data;
})
.onStateChange(function (modification_dict) {
var template = {
minDimensions: [52, 300],
defaultColWidth: 100,
allowExport: true,
columnSorting: true,
columnDrag: true,
columnResize: true,
rowResize: true,
rowDrag: true,
editable: true,
allowInsertRow: true,
allowManualInsertRow: true,
allowInsertColumn: true,
allowManualInsertColumn: true,
allowDeleteRow: true,
allowRenameColumn: true,
allowComments: true,
selectionCopy: true,
search: true,
fullscreen: true,
//lazyLoading: true,
//loadingSpin: true,
//tableOverflow: true,
autoIncrement: true,
parseFormulas: true
},
gadget = this, tmp = Object.assign({}, template), table;
gadget.deferNotifyChangeBinded = gadget.deferNotifyChange.bind(gadget);
if (modification_dict.hasOwnProperty('value')) {
gadget.state.value = gadget.state.value === "" ? gadget.state.value : JSON.parse(gadget.state.value);
Object.assign(tmp, template);
Object.assign(tmp, gadget.state.value);
table = jexcel(gadget.element.querySelector(".spreadsheet"), Object.assign(tmp, {
onevent: function (ev) {
var exluded_events = ["onload", "onfocus", "onblur", "onselection"];
if (!exluded_events.includes(ev)) {
if ((ev === "onchangestyle" && gadget.state.saveConfig) || ev !== "onchangestyle") {
gadget.deferNotifyChangeBinded();
} else {
gadget.state.saveConfig = true;
}
}
},
toolbar: [
//undo
{
type: 'i',
content: 'undo',
onclick: function () {
table.undo();
}
},
//redo
{
type: 'i',
content: 'redo',
onclick: function () {
table.redo();
}
},
//merge cells
{
type: 'i',
content: 'table_chart',
onclick: function () {
var cell = gadget.element.querySelector("td.highlight-selected");
var x = Number(cell.dataset.x);
var selected = table.getJson(true);
var colspan = Object.keys(selected[0]).length;
var rowspan = selected.length;
var letter = "";
if (x <= 25) {
letter += String.fromCharCode(97 + x).toUpperCase();
}
else {
letter += String.fromCharCode(97 + Math.trunc(x / 25) - 1).toUpperCase();
letter += String.fromCharCode(97 + (x % 26)).toUpperCase();
}
var coor = letter + (Number(cell.dataset.y) + 1).toString();
table.setMerge(coor, colspan, rowspan);
}
},
//unmerge cell
{
type: 'i',
content: 'close',
onclick: function () {
var cell = gadget.element.querySelector("td.highlight-selected");
var x = Number(cell.dataset.x);
var letter = "";
if (x <= 25) {
letter += String.fromCharCode(97 + x).toUpperCase();
}
else {
letter += String.fromCharCode(97 + Math.trunc(x / 25) - 1).toUpperCase();
letter += String.fromCharCode(97 + (x % 26)).toUpperCase();
}
var coor = letter + (Number(cell.dataset.y) + 1).toString();
table.removeMerge(coor);
}
},
//destroy all merged cells
{
type: 'i',
content: 'cancel',
onclick: function () {
table.destroyMerged();
}
},
//font style
{
type: 'select',
k: 'font-family',
v: ['Arial', 'Comic Sans MS', 'Verdana', 'Calibri', 'Tahoma', 'Helvetica', 'DejaVu Sans', 'Times New Roman', 'Georgia', 'Antiqua']
},
//font size
{
type: 'select',
k: 'font-size',
v: ['9px', '10px', '11px', '12px', '13px', '14px', '15px', '16px', '17px', '18px', '19px', '20px', '22px', '24px', '26px', '28px', '30px']
},
//text align left
{
type: 'i',
content: 'format_align_left',
k: 'text-align',
v: 'left'
},
//text align center
{
type: 'i',
content: 'format_align_center',
k: 'text-align',
v: 'center'
},
//text align right
{
type: 'i',
content: 'format_align_right',
k: 'text-align',
v: 'right'
},
//text align justify
{
type: 'i',
content: 'format_align_justify',
k: 'text-align',
v: 'justify'
},
//vertical align top
{
type: 'i',
content: 'vertical_align_top',
k: 'vertical-align',
v: 'top'
},
//vertical align middle
{
type: 'i',
content: 'vertical_align_center',
k: 'vertical-align',
v: 'middle'
},
//vertical align bottom
{
type: 'i',
content: 'vertical_align_bottom',
k: 'vertical-align',
v: 'bottom'
},
//style bold
{
type: 'i',
content: 'format_bold',
k: 'font-weight',
v: 'bold'
},
//style underlined
{
type: 'i',
content: 'format_underlined',
k: 'text-decoration',
v: 'underline'
},
//style italic
{
type: 'i',
content: 'format_italic',
k: 'font-style',
v: 'italic'
},
//text color
{
type: 'color',
content: 'format_color_text',
k: 'color'
},
//background color
{
type: 'color',
content: 'format_color_fill',
k: 'background-color'
}
]
}));
gadget.table = table;
var filter = gadget.element.querySelector(".jexcel_filter");
gadget.element.querySelector(".jexcel_toolbar").appendChild(filter);
}
});
}(window, rJS, jexcel));
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.gadget.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jexcel</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
:root {
--jexcel-border-color:#000;
}
.jexcel_container {
display:inline-block;
padding-right:2px;
box-sizing: border-box;
overscroll-behavior: contain;
}
.jexcel_container.fullscreen {
position:fixed;
top:0px;
left:0px;
width:100%;
height:100%;
z-index:21;
}
.jexcel_container.fullscreen .jexcel_content {
overflow:auto;
width:100%;
height:100%;
background-color:#ffffff;
}
.jexcel_container.fullscreen.with-toolbar {
height: calc(100% - 46px);
}
.jexcel_content {
display:inline-block;
box-sizing: border-box;
padding-right:3px;
padding-bottom:3px;
position:relative;
scrollbar-width: thin;
scrollbar-color: #666 transparent;
}
@supports (-moz-appearance:none) {
.jexcel_content { padding-right:10px; }
}
.jexcel_content::-webkit-scrollbar {
width: 5px;
height: 5px;
}
.jexcel_content::-webkit-scrollbar-track {
background: #eee;
}
.jexcel_content::-webkit-scrollbar-thumb {
background: #666;
}
.jexcel {
border-collapse: separate;
table-layout: fixed;
white-space: nowrap;
empty-cells: show;
border: 0px;
background-color: #fff;
width: 0;
border-top: 1px solid transparent;
border-left: 1px solid transparent;
border-right: 1px solid #ccc;
border-bottom: 1px solid #ccc;
}
.jexcel > thead > tr > td
{
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid transparent;
border-bottom: 1px solid transparent;
background-color: #f3f3f3;
padding: 2px;
cursor: pointer;
box-sizing: border-box;
overflow: hidden;
position: -webkit-sticky;
position: sticky;
top: 0;
z-index:2;
}
.with-toolbar .jexcel > thead > tr > td
{
/**top:42px;**/
}
.jexcel > thead > tr > td.dragging
{
background-color:#fff;
opacity:0.5;
}
.jexcel > thead > tr > td.selected
{
background-color:#dcdcdc;
}
.jexcel > thead > tr > td.arrow-up
{
background-repeat:no-repeat;
background-position:center right 5px;
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 14l5-5 5 5H7z' fill='gray'/%3E%3C/svg%3E");
text-decoration:underline;
}
.jexcel > thead > tr > td.arrow-down
{
background-repeat:no-repeat;
background-position:center right 5px;
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='gray'/%3E%3C/svg%3E");
text-decoration:underline;
}
.jexcel > tbody > tr > td:first-child
{
position:relative;
background-color:#f3f3f3;
text-align:center;
}
.jexcel > tbody.resizable > tr > td:first-child::before
{
content:'\00a0';
width:100%;
height:3px;
position:absolute;
bottom:0px;
left:0px;
cursor:row-resize;
}
.jexcel > tbody.draggable > tr > td:first-child::after
{
content:'\00a0';
width:3px;
height:100%;
position:absolute;
top:0px;
right:0px;
cursor:move;
}
.jexcel > tbody > tr.dragging > td
{
background-color:#eee;
opacity:0.5;
}
.jexcel > tbody > tr > td
{
border-top:1px solid #ccc;
border-left:1px solid #ccc;
border-right:1px solid transparent;
border-bottom:1px solid transparent;
padding:4px;
white-space: nowrap;
box-sizing: border-box;
line-height:1em;
}
.jexcel > tbody > tr > td:last-child
{
overflow:hidden;
}
.jexcel > tbody > tr > td > img
{
display:inline-block;
max-width:100px;
}
.jexcel > tbody > tr > td.readonly
{
color:rgba(0,0,0,0.3)
}
.jexcel > tbody > tr.selected > td:first-child
{
background-color:#dcdcdc;
}
.jexcel > tbody > tr > td > select,
.jexcel > tbody > tr > td > input,
.jexcel > tbody > tr > td > textarea
{
border:0px;
border-radius:0px;
outline:0px;
width:100%;
margin:0px;
padding:0px;
background-color:transparent;
box-sizing: border-box;
}
.jexcel > tbody > tr > td > textarea
{
resize: none;
padding-top:6px !important;
}
.jexcel > tbody > tr > td > input[type=checkbox]
{
width:12px;
margin-top:2px;
}
.jexcel > tbody > tr > td > input[type=radio]
{
width:12px;
margin-top:2px;
}
.jexcel > tbody > tr > td > select
{
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-repeat: no-repeat;
background-position-x: 100%;
background-position-y: 40%;
background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSdibGFjaycgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyB3aWR0aD0nMjQnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PHBhdGggZD0nTTcgMTBsNSA1IDUtNXonLz48cGF0aCBkPSdNMCAwaDI0djI0SDB6JyBmaWxsPSdub25lJy8+PC9zdmc+);
}
.jexcel > tbody > tr > td.jexcel_dropdown
{
background-repeat: no-repeat;
background-position:top 50% right 5px;
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='lightgray'/%3E%3C/svg%3E");
text-overflow: ellipsis;
overflow-x:hidden;
}
.jexcel > tbody > tr > td.jexcel_dropdown.jexcel_comments
{
background:url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='lightgray'/%3E%3C/svg%3E") top 50% right 5px no-repeat, url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFuGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTAxLTMxVDE4OjU1OjA4WiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wMS0zMVQxODo1NTowOFoiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTAxLTMxVDE4OjU1OjA4WiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphMTlhZDJmOC1kMDI2LTI1NDItODhjOS1iZTRkYjkyMmQ0MmQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkOGI5NDUyMS00ZjEwLWQ5NDktYjUwNC0wZmU1N2I3Nzk1MDEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplMzdjYmE1ZS1hYTMwLWNkNDUtYTAyNS1lOWYxZjk2MzUzOGUiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMzdjYmE1ZS1hYTMwLWNkNDUtYTAyNS1lOWYxZjk2MzUzOGUiIHN0RXZ0OndoZW49IjIwMTktMDEtMzFUMTg6NTU6MDhaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmExOWFkMmY4LWQwMjYtMjU0Mi04OGM5LWJlNGRiOTIyZDQyZCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0zMVQxODo1NTowOFoiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4En6MDAAAAX0lEQVQYlX3KOw6AIBBAwS32RpJADXfx0pTET+ERZJ8F8RODFtONsG0QAoh0CSDM82dqodaBdQXnfoLZQM7gPai+wjNNE8R4pTuAYNZSKZASqL7CMy0LxNgJp30fKYUDi3+vIqb/+rUAAAAASUVORK5CYII=') top right no-repeat;
}
.jexcel > tbody > tr > td > .color
{
width:90%;
height:10px;
margin:auto;
}
.jexcel > tbody > tr > td > a {
text-decoration: underline;
}
.jexcel > tbody > tr > td.highlight > a {
color: blue;
cursor: pointer;
}
.jexcel > tfoot > tr > td
{
border-top: 1px solid #ccc;
border-left: 1px solid #ccc;
border-right: 1px solid transparent;
border-bottom: 1px solid transparent;
background-color: #f3f3f3;
padding: 2px;
cursor: pointer;
box-sizing: border-box;
overflow: hidden;
}
.jexcel .highlight {
background-color:rgba(0,0,0,0.05);
}
.jexcel .highlight-top {
border-top:1px solid #000; /* var(--jexcel-border-color);*/
box-shadow: 0px -1px #ccc;
}
.jexcel .highlight-left {
border-left:1px solid #000; /* var(--jexcel-border-color);*/
box-shadow: -1px 0px #ccc;
}
.jexcel .highlight-right {
border-right:1px solid #000; /* var(--jexcel-border-color);*/
}
.jexcel .highlight-bottom {
border-bottom:1px solid #000; /* var(--jexcel-border-color);*/
}
.jexcel .highlight-top.highlight-left {
box-shadow: -1px -1px #ccc;
-webkit-box-shadow: -1px -1px #ccc;
-moz-box-shadow: -1px -1px #ccc;
}
.jexcel .highlight-selected
{
background-color:rgba(0,0,0,0.0);
}
.jexcel .selection
{
background-color:rgba(0,0,0,0.05);
}
.jexcel .selection-left
{
border-left:1px dotted #000;
}
.jexcel .selection-right
{
border-right:1px dotted #000;
}
.jexcel .selection-top
{
border-top:1px dotted #000;
}
.jexcel .selection-bottom
{
border-bottom:1px dotted #000;
}
.jexcel_corner
{
position:absolute;
background-color: rgb(0, 0, 0);
height: 1px;
width: 1px;
border: 1px solid rgb(255, 255, 255);
top:-2000px;
left:-2000px;
cursor:crosshair;
box-sizing: initial;
z-index:30;
padding: 2px;
}
.jexcel .editor
{
outline:0px solid transparent;
overflow:visible;
white-space: nowrap;
text-align:left;
padding:0px;
box-sizing: border-box;
overflow:visible !important;
}
.jexcel .editor > input
{
padding-left:4px;
}
.jexcel .editor .jupload
{
position:fixed;
top:100%;
z-index:40;
user-select:none;
-webkit-font-smoothing: antialiased;
font-size: .875rem;
letter-spacing: .2px;
-webkit-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
padding:10px;
background-color:#fff;
width:300px;
min-height:225px;
margin-top:2px;
}
.jexcel .editor .jupload img
{
width:100%;
height:auto;
}
.jexcel .editor .jexcel_richtext
{
position:fixed;
top:100%;
z-index:40;
user-select:none;
-webkit-font-smoothing: antialiased;
font-size: .875rem;
letter-spacing: .2px;
-webkit-box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
padding:10px;
background-color:#fff;
min-width:280px;
max-width:310px;
margin-top:2px;
text-align:left;
}
.jexcel .editor .jclose:after
{
position:absolute;
top:0;
right:0;
margin:10px;
content:'close';
font-family:'Material icons';
font-size:24px;
width:24px;
height:24px;
line-height:24px;
cursor:pointer;
text-shadow: 0px 0px 5px #fff;
}
.jexcel, .jexcel td, .jexcel_corner
{
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-user-drag: none;
-khtml-user-drag: none;
-moz-user-drag: none;
-o-user-drag: none;
user-drag: none;
}
.jexcel_textarea
{
position:absolute;
top:-999px;
left:-999px;
width:1px;
height:1px;
}
.jexcel .dragline
{
position:absolute;
}
.jexcel .dragline div
{
position:relative;
top:-6px;
height:5px;
width:22px;
}
.jexcel .dragline div:hover
{
cursor:move;
}
.jexcel .onDrag
{
background-color:rgba(0,0,0,0.6);
}
.jexcel .error
{
border:1px solid red;
}
.jexcel thead td.resizing
{
border-right-style:dotted !important;
border-right-color:red !important;
}
.jexcel tbody tr.resizing > td
{
border-bottom-style:dotted !important;
border-bottom-color:red !important;
}
.jexcel tbody td.resizing
{
border-right-style:dotted !important;
border-right-color:red !important;
}
.jexcel .jdropdown-header
{
border:0px !important;
outline:none !important;
width:100% !important;
height:100% !important;
padding:0px !important;
padding-left:8px !important;
}
.jexcel .jdropdown-container
{
margin-top:1px;
}
.jexcel .jdropdown-container-header {
padding: 0px;
margin: 0px;
height: inherit;
}
.jexcel .jdropdown-picker
{
border:0px !important;
padding:0px !important;
width:inherit;
height:inherit;
}
.jexcel .jexcel_comments
{
background:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFuGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDUgNzkuMTYzNDk5LCAyMDE4LzA4LzEzLTE2OjQwOjIyICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDE5LTAxLTMxVDE4OjU1OjA4WiIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxOS0wMS0zMVQxODo1NTowOFoiIHhtcDpNb2RpZnlEYXRlPSIyMDE5LTAxLTMxVDE4OjU1OjA4WiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDphMTlhZDJmOC1kMDI2LTI1NDItODhjOS1iZTRkYjkyMmQ0MmQiIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDpkOGI5NDUyMS00ZjEwLWQ5NDktYjUwNC0wZmU1N2I3Nzk1MDEiIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDplMzdjYmE1ZS1hYTMwLWNkNDUtYTAyNS1lOWYxZjk2MzUzOGUiIGRjOmZvcm1hdD0iaW1hZ2UvcG5nIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplMzdjYmE1ZS1hYTMwLWNkNDUtYTAyNS1lOWYxZjk2MzUzOGUiIHN0RXZ0OndoZW49IjIwMTktMDEtMzFUMTg6NTU6MDhaIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOSAoV2luZG93cykiLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmExOWFkMmY4LWQwMjYtMjU0Mi04OGM5LWJlNGRiOTIyZDQyZCIgc3RFdnQ6d2hlbj0iMjAxOS0wMS0zMVQxODo1NTowOFoiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE5IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4En6MDAAAAX0lEQVQYlX3KOw6AIBBAwS32RpJADXfx0pTET+ERZJ8F8RODFtONsG0QAoh0CSDM82dqodaBdQXnfoLZQM7gPai+wjNNE8R4pTuAYNZSKZASqL7CMy0LxNgJp30fKYUDi3+vIqb/+rUAAAAASUVORK5CYII=');
background-repeat: no-repeat;
background-position: top right;
}
.jexcel .sp-replacer
{
margin: 2px;
border:0px;
}
.jexcel > thead > tr.jexcel_filter > td > input
{
border:0px;
width:100%;
outline:none;
}
.jexcel_about {
float: right;
font-size: 0.7em;
padding: 2px;
text-transform: uppercase;
letter-spacing: 1px;
display: none;
}
.jexcel_about a {
color: #ccc;
text-decoration: none;
}
.jexcel_about img {
display: none;
}
.jexcel_filter
{
display:flex;
justify-content:space-between;
/**margin-bottom:4px;**/
}
.jexcel_filter > div
{
padding:4px;
align-items:center;
}
.jexcel_pagination
{
display:flex;
justify-content:space-between;
align-items:center;
}
.jexcel_pagination > div
{
display:flex;
padding:10px;
}
.jexcel_pagination > div:last-child
{
padding-right:10px;
padding-top:10px;
}
.jexcel_pagination > div > div
{
text-align:center;
width:36px;
height:36px;
line-height:34px;
border:1px solid #ccc;
box-sizing: border-box;
margin-left:2px;
cursor:pointer;
}
.jexcel_page
{
font-size:0.8em;
}
.jexcel_page_selected
{
font-weight:bold;
background-color:#f3f3f3;
}
.jexcel_toolbar
{
display:flex;
background-color:#f3f3f3;
border:1px solid #ccc;
padding:4px;
margin:0px 2px 4px 1px;
position:sticky;
top:0px;
z-index:21;
}
.jexcel_toolbar:empty
{
display:none;
}
.jexcel_toolbar i.jexcel_toolbar_item
{
width:24px;
height:24px;
padding:4px;
cursor:pointer;
display:inline-block;
}
.jexcel_toolbar i.jexcel_toolbar_item:hover
{
background-color:#ddd;
}
.jexcel_toolbar select.jexcel_toolbar_item
{
margin-left:2px;
margin-right:2px;
display:inline-block;
border:0px;
background-color:transparent;
padding-right:10px;
}
.jexcel .dragging-left
{
background-repeat: no-repeat;
background-position:top 50% left 0px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M14 7l-5 5 5 5V7z'/%3E%3Cpath fill='none' d='M24 0v24H0V0h24z'/%3E%3C/svg%3E");
}
.jexcel .dragging-right
{
background-repeat: no-repeat;
background-position:top 50% right 0px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10 17l5-5-5-5v10z'/%3E%3Cpath fill='none' d='M0 24V0h24v24H0z'/%3E%3C/svg%3E");
}
.jexcel_tabs .jexcel_tab
{
display:none;
}
.jexcel_tabs .jexcel_tab_link
{
display:inline-block;
padding:10px;
padding-left:20px;
padding-right:20px;
margin-right:5px;
margin-bottom:5px;
background-color:#f3f3f3;
cursor:pointer;
}
.jexcel_tabs .jexcel_tab_link.selected
{
background-color:#ddd;
}
.jexcel_hidden_index > tbody > tr > td:first-child,
.jexcel_hidden_index > thead > tr > td:first-child,
.jexcel_hidden_index > colgroup > col:first-child
{
display:none;
}
.jexcel .jrating {
display: inline-flex;
}
.jexcel .jrating > div {
zoom: 0.55;
}
.jexcel .copying-top {
border-top:1px dashed #000;
}
.jexcel .copying-left {
border-left:1px dashed #000;
}
.jexcel .copying-right {
border-right:1px dashed #000;
}
.jexcel .copying-bottom {
border-bottom:1px dashed #000;
}
.jexcel .jexcel_column_filter {
background-repeat: no-repeat;
background-position: top 50% right 5px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='gray' width='18px' height='18px'%3E%3Cpath d='M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
text-overflow: ellipsis;
overflow: hidden;
padding: 0px;
padding-left: 6px;
padding-right: 20px;
}
.jexcel thead .jexcel_freezed {
left: 0px;
z-index: 3 !important;
box-shadow: 2px 0px 2px 0.2px #ccc !important;
-webkit-box-shadow: 2px 0px 2px 0.2px #ccc !important;
-moz-box-shadow: 2px 0px 2px 0.2px #ccc !important;
}
.jexcel tbody .jexcel_freezed {
position: relative;
background-color: #fff;
box-shadow: 1px 1px 1px 1px #ccc !important;
-webkit-box-shadow: 2px 4px 4px 0.1px #ccc !important;
-moz-box-shadow: 2px 4px 4px 0.1px #ccc !important;
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
:root {
--jexcel_header_color: #888;
--jexcel_header_color_highlighted: #444;
--jexcel_header_background: #313131;
--jexcel_header_background_highlighted: #777;
--jexcel_content_color: #777;
--jexcel_content_color_highlighted: #333;
--jexcel_content_background: #3e3e3e;
--jexcel_content_background_highlighted: #777;
--jexcel_menu_background: #7e7e7e;
--jexcel_menu_background_highlighted: #ebebeb;
--jexcel_menu_color: #ddd;
--jexcel_menu_color_highlighted: #222;
--jexcel_border_color: #5f5f5f;
--jexcel_border_color_highlighted: #999;
--active_color: #eee;
--active-color: var(--active_color);
}
.jexcel {
border-bottom: 1px solid var(--jexcel_border_color);
border-right: 1px solid var(--jexcel_border_color);
}
.jexcel > tbody > tr > td,
.jexcel > thead > tr > td {
border-top: 1px solid var(--jexcel_border_color);
border-left: 1px solid var(--jexcel_border_color);
background-color: var(--jexcel_content_background);
color: var(--jexcel_content_color);
}
.jexcel > tbody > tr > td:first-child,
.jexcel > thead > tr > td {
background-color: var(--jexcel_header_background);
color: var(--jexcel_header_color);
}
.jexcel > thead > tr > td.selected,
.jexcel > tbody > tr.selected > td:first-child {
background-color: var(--jexcel_header_background_highlighted);
color: var(--jexcel_header_color_highlighted);
}
.jexcel > tbody > tr > td.jexcel_cursor a {
color: var(--active-color);
}
.jexcel_pagination > div > div {
color: var(--jexcel_header_color);
background: var(--jexcel_header_background);
border: 1px solid var(--jexcel_border_color);
}
.jexcel_page,
.jexcel_container input,
.jexcel_container select {
color: var(--jexcel_header_color);
background: var(--jexcel_header_background);
border: 1px solid var(--jexcel_border_color);
}
.jexcel_contextmenu {
border: 1px solid var(--jexcel_border_color);
background: var(--jexcel_menu_background);
color: var(--jexcel_menu_color);
box-shadow: var(--jexcel_menu_box_shadow);
-webkit-box-shadow: var(--jexcel_menu_box_shadow);
-moz-box-shadow: var(--jexcel_menu_box_shadow);
}
.jexcel_contextmenu > div a {
color: var(--jexcel_menu_color);
}
.jexcel_contextmenu > div:not(.contextmenu-line):hover a {
color: var(--jexcel_menu_color_highlighted);
}
.jexcel_contextmenu > div:not(.contextmenu-line):hover {
background: var(--jexcel_menu_background_highlighted);
}
.jexcel_dropdown .jdropdown-container,
.jexcel_dropdown .jdropdown-content {
background-color: var(--jexcel_content_background);
color: var(--jexcel_content_color);
}
.jexcel_dropdown .jdropdown-item {
color: var(--jexcel_content_color);
}
.jexcel_dropdown .jdropdown-item:hover,
.jexcel_dropdown .jdropdown-selected,
.jexcel_dropdown .jdropdown-cursor {
background-color: var(--jexcel_content_background_highlighted);
color: var(--jexcel_content_color_highlighted);
}
.jexcel .jcalendar-content {
background-color: var(--jexcel_header_background);
color: var(--jexcel_header_color);
}
.jexcel .jcalendar-content > table {
background-color: var(--jexcel_content_background);
color: var(--jexcel_content_color);
}
.jexcel .jcalendar-weekday {
background-color: var(--jexcel_content_background_highlighted);
color: var(--jexcel_content_color_highlighted);
}
.jexcel .jcalendar-sunday {
color: var(--jexcel_header_color);
}
.jexcel .jcalendar-selected {
background-color: var(--jexcel_content_background_highlighted);
color: var(--jexcel_content_color_highlighted);
}
.jexcel_toolbar i.jexcel_toolbar_item {
color: var(--jexcel_content_color);
}
.jexcel_toolbar i.jexcel_toolbar_item:hover {
background: var(--jexcel_content_background_highlighted);
color: var(--jexcel_content_color_highlighted);
}
.jexcel_toolbar {
background: var(--jexcel_header_background);
}
.jexcel_content::-webkit-scrollbar-track {
background: var(--jexcel_background_head);
}
.jexcel_content::-webkit-scrollbar-thumb {
background: var(--jexcel_background_head_highlighted);
}
.jexcel_border_main {
border: 1px solid #000;
border-color: var(--jexcel_border_color_highlighted);
}
.jexcel .highlight {
background-color: var(--jexcel_content_background_highlighted);
}
.jexcel .highlight-bottom {
border-bottom: 1px solid var(--jexcel_border_color_highlighted);
}
.jexcel .highlight-right {
border-right: 1px solid var(--jexcel_border_color_highlighted);
}
.jexcel .highlight-left {
border-left: 1px solid var(--jexcel_border_color_highlighted);
}
.jexcel .highlight-top {
border-top: 1px solid var(--jexcel_border_color_highlighted);
}
.jexcel .copying-top {
border-top-color: var(--jexcel_border_color_highlighted);
}
.jexcel .copying-right {
border-right-color: var(--jexcel_border_color_highlighted);
}
.jexcel .copying-left {
border-left-color: var(--jexcel_border_color_highlighted);
}
.jexcel .copying-bottom {
border-bottom-color: var(--jexcel_border_color_highlighted);
}
.jexcel_border_main, .jexcel .highlight-top.highlight-left, .jexcel .highlight-top, .jexcel .highlight-left {
-webkit-box-shadow: unset;
box-shadow: unset;
}
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.theme.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
class Jexcel extends HTMLElement {
constructor() {
super();
}
init(o) {
// Shadow root
const shadowRoot = this.attachShadow({mode: 'open'});
// Style
const cssJexcel = document.createElement('link');
cssJexcel.rel = 'stylesheet';
cssJexcel.type = 'text/css'
cssJexcel.href = 'jexcel.css';
shadowRoot.appendChild(cssJexcel);
const cssJsuites = document.createElement('link');
cssJsuites.rel = 'stylesheet';
cssJsuites.type = 'text/css'
cssJsuites.href = 'jsuites.css';
shadowRoot.appendChild(cssJsuites);
// Jexcel container
var container = document.createElement('div');
shadowRoot.appendChild(container);
// Garantee all elements are rendered
setTimeout(function() {
// Parse JSON
var config = JSON.parse(o.innerHTML);
// Root
config.root = shadowRoot;
// Reset container
o.innerHTML = '';
// Create jexcel element
jexcel(container, config);
}, 0);
}
connectedCallback() {
this.init(this);
}
disconnectedCallback() {
}
attributeChangedCallback() {
}
}
window.customElements.define('jexcel-spreadsheet', Jexcel);
\ No newline at end of file
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jexcel.webcomponent.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="Folder" module="OFS.Folder"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>_objects</string> </key>
<value>
<tuple/>
</value>
</item>
<item>
<key> <string>id</string> </key>
<value> <string>jsuites</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
/**
* (c) jSuites Javascript Web Components
*
* Author: Paul Hodel <paul.hodel@gmail.com>
* Website: https://bossanova.uk/jsuites/
* Description: Create amazing web based applications.
*
* MIT License
*
*/
/** General **/
:root {
--button-color: #298BA8;
--active-color: #007aff;
}
.jdragging {
opacity:0.2;
filter: alpha(opacity=20);
}
.jupload {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAACXBIWXMAAAsTAAALEwEAmpwYAAA7emlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxMzggNzkuMTU5ODI0LCAyMDE2LzA5LzE0LTAxOjA5OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3htcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMTctMTItMzFUMjI6NDM6MzBaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTgtMDEtMDFUMjA6MDM6MjNaPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxOC0wMS0wMVQyMDowMzoyM1o8L3htcDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bob3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDx4bXBNTTpJbnN0YW5jZUlEPnhtcC5paWQ6ZDE3NGVkY2UtNWZkNC0wODRkLTkzNzAtZDRhODVmMzdkNjdiPC94bXBNTTpJbnN0YW5jZUlEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjBmYzcxZDEyLTg1MGUtY2E0NS05MzE4LWRhYjI5YWZhMmQ4MjwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjBmYzcxZDEyLTg1MGUtY2E0NS05MzE4LWRhYjI5YWZhMmQ4MjwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDowZmM3MWQxMi04NTBlLWNhNDUtOTMxOC1kYWIyOWFmYTJkODI8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMzFUMjI6NDM6MzBaPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdhcmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdlbnQ+CiAgICAgICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjk2MTA5Y2Y0LTEwM2ItNTc0Ny1hZWE3LWI5NDMxOWY0NWFkZjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxOC0wMS0wMVQyMDowMjoyMFo8L3N0RXZ0OndoZW4+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6ZDE3NGVkY2UtNWZkNC0wODRkLTkzNzAtZDRhODVmMzdkNjdiPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE4LTAxLTAxVDIwOjAzOjIzWjwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj44MDwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj44MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+tc8AsgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAGjUlEQVR42uycW2xURRjHf91SoEIBUQpYI8VSVBDExniLERNUJBpQVEDFqE1AEYkX0JCC0YjgBdEYDOIFeVEEFRBilKBogg+KiQoV5Q6Khla8lrZRBLo+zLdazs7ZM2d3zsJu55/sy3dmz5797Vy+y8wWxONxnNJXzCFwAB1AB9ABdHIAHUAH0AF0Cq929fX1ufbMA4HLgSqgHOgPdJJrfwPbgb3AJuBD4KsoH6agrq4uF6CVAncC4wVYGP0ALAVeAva0NYDFwOPARKBzhvc6ArwG1AC/toU5cDSwFXjAAjyAQmACsAOozneATwLLgdMM2/8jLxN1AxYBC/J1CL8F3BjQZhOwCqgFvgd+AuJAT6ACOBMYCVwUcJ91siDlDcC3gRtSXF8IzAe+M7xfOXC3TAOFPm3WA0NzAeDp8oUGASeKrUF60R6Zn6an6CnTgI1pfnYFMAcY43N9GTDueAR4sQylK8RvS0dzgYcsPc9U4Bmfa9XA4uMF4GXypUdkeJ8Z0nNs6hbgdZ9rPcK6OLZX4XbisH5iAd68COABvAHc63NtwbHsgf2B94BKC/faAFwY8Zy8ErhWYx8EbM42wAuAj4ETAtptllh1N9AiC0t/YLCnXV9xT6JUJ6AOKPHYX5HIJ2sAK4BvgQ4+17fJ5LxKIgudzgBGySS/3sAPtKWZwCyPrQk4ydQxtwFwH9BbY4/LIvBEyF5RIF8iG+oC/K7xEUfLEI98EVnsA28/MCQkPIDmLMIDOCDOu1fXZGMVrgJu19gbZCKuJTek62mV2QD4XIoFZT+5o10a2ylRA6wCLtXYp8uikUv6Webr1uoOdIwS4HiNbS/wFLmnZuCgx9Y+hVdhBeBwjW1+BF9uFvBqFiDGDW3a0Cus+gADPLYWVB7PpiaJn5YYZjMigles6W2NskJH0gN1RZ1EJcyWJnvi0hpUbSQK9dRwaDGIqtIGeLbG9o3lnveCT2YmCogVPqvwdpOIKB2A7TU2W+XCiQEZkSggTvGxl8m0NNc2wDKNrcXCF5mASoUFaQYw2xK8Iv4vyvtpmsTxGQHsLPPQLp9frI+FYftyiPY1liAeBs5DZYNS/XgjgTXpApwq4Gaj0k86DbK4YISBmOlwjreaw+8CzvEDJa7bojAATwU+QtUQSg0Wlr4WFwxT2Z4Ta1GZ9Md8rlcDY00ADpFfZViID7/D8oJxrCACPCIjQ6elqOK8ryM9GPg64AM+B1YAW1BJ0r9M/aaQC0YYiAWWne0FQFf0dZnngdsgOaHaXVySLj43XSY3zCRVNclSz9NpTgQRywfAVRr7WcDWmKaxDl4TKuU+LkN4kyOEF1XEMk5GmFf3eOfAKcD5moY/ypy4OsMHeTjDBSPMcF5o8X4NPs70eKAoMYSLJIDuoOl5AwRiJroJWIIq1BwM8DcLDFyPpoAESTEqN/m0aVYlQF1RtRPviB2ZWEQeRJ//Gm0BHqhttieTutJVgkrGBu0FbEbtvmoMgNjLErxEL3yH5L01oxIA79O8aTVqj7ENmWSpGw1DwhZUJTBIf1ieGlZoAFbGxG3pESLIjkolBsMXaVNC9qWrnZTFZJh69SV283v5oHrNlNA9JvGfV0scL+3cm1Q7iaFPKNY6XimTD0fFwuWaRrscqyR11Hgqh2IkZ5gPy7LtdLRKNX7gnzHgkMdYGDIx0FZUrrHVxVBHBLzDup/jlaSrNbbdMWCn5sIAxyspsrlZY18TQ3/mYoxjdpQmkFx8OgKsjAHvat4wlFZZVyce1diWA80x4DOf7Ma8LD+kaYhmGvLZ0ovoa0LP0mpZ1qXXq4Fzs/igiSRBY8BrH3bq0Ca6HlWt82od6iTBfyn9Lj6+Xx2q2nYwSz3Q9FhrE/ZSVX66BPjU51q/RLCR6IEH0KfCe8sQL85SmNRo+Ioa3tgU8Ga2jtS8RaUdPj7gTtQRqS/yfLHogErf+6Xykk52ekOTESm67AbUrvuyPARXAtyPSvz6wduK5myx7pzIcPy3N4D6Z4w3pc0O1IbybAwrWyqSubZUOsYw4DrU4Ro/bUEd3m4wAZjoie8bPtARVNkvVwAWypxu6gqtRW0u0i6kqU4qDUEVUirasANdQ8BhoVSbizai/uRmbhsEtxp1lCPwpJXpWbmBqD++uTWPQ7xm1NaVJeIomzmvIQ8bdpO0zpWozea9Aibf41WHgd9QhaJtqAPia4FfQnv/7l98M5P79zYH0AF0AB1AJwfQAXQAHUCnNPTvAKemiFU6nb96AAAAAElFTkSuQmCC);
background-repeat: no-repeat;
background-size: 100px;
background-position: center;
background-color: rgba(230, 230, 230, 0.1);
border: 1px dotted #eee;
cursor: pointer;
box-sizing: border-box;
width:100%;
min-height:180px;
}
.jremove {
opacity: 0.2;
filter: alpha(opacity=20);
}
/** Animations **/
.fade-in {
animation: fade-in 2s forwards;
}
.fade-out {
animation: fade-out 1s forwards;
}
.slide-left-in {
animation: slide-left-in 0.4s forwards;
}
.slide-left-out {
animation: slide-left-out 0.4s forwards;
}
.slide-right-in {
animation: slide-right-in 0.4s forwards;
}
.slide-right-out {
animation: slide-right-out 0.4s forwards;
}
.slide-top-in {
animation: slide-top-in 0.4s forwards;
}
.slide-top-out {
animation: slide-top-out 0.2s forwards;
}
.slide-bottom-in {
animation: slide-bottom-in 0.4s forwards;
}
.slide-bottom-out {
animation: slide-bottom-out 0.1s forwards;
}
/** Fadein and Fadeout **/
@keyframes fade-in {
0% { opacity: 0; }
100% { opacity: 100; }
}
@-webkit-keyframes fade-in {
0% { opacity: 0; }
100% { opacity: 100; }
}
@keyframes fade-out {
0% { opacity: 100; }
100% { opacity: 0; }
}
@-webkit-keyframes fade-out {
0% { opacity: 100; }
100% { opacity: 0; }
}
/** Keyframes Left to Right **/
@keyframes slide-left-in {
0% { transform: translateX(-100%); }
100% { transform: translateX(0%); }
}
@-webkit-keyframes slide-left-in {
0% { transform: translateX(-100%); }
100% { -webkit-transform: translateX(0%); }
}
@keyframes slide-left-out {
0% { transform: translateX(0%); }
100% { transform: translateX(-100%); }
}
@-webkit-keyframes slide-left-out {
0% { -webkit-transform: translateX(0%); }
100% { -webkit-transform: translateX(-100%); }
}
/** Keyframes Right to Left **/
@keyframes slide-right-in {
0% { transform: translateX(100%); }
100% { transform: translateX(0%); }
}
@-webkit-keyframes slide-right-in
{
0% { transform: translateX(100%); }
100% { -webkit-transform: translateX(0%); }
}
@keyframes slide-right-out {
0% { transform: translateX(0%); }
100% { transform: translateX(100%); }
}
@-webkit-keyframes slide-right-out {
0% { -webkit-transform: translateX(0%); }
100% { -webkit-transform: translateX(100%); }
}
/** Keyframes Top to Bottom **/
@keyframes slide-top-in {
0% { transform: translateY(-100%); }
100% { transform: translateY(0%); }
}
@-webkit-keyframes slide-top-in {
0% { transform: translateY(-100%); }
100% { -webkit-transform: translateY(0%); }
}
@keyframes slide-top-out {
0% { transform: translateY(0%); }
100% { transform: translateY(-100%); }
}
@-webkit-keyframes slide-top-out {
0% { -webkit-transform: translateY(0%); }
100% { -webkit-transform: translateY(-100%); }
}
/** Keyframes Bottom to Top **/
@keyframes slide-bottom-in {
0% { transform: translateY(100%); }
100% { transform: translateY(0%); }
}
@-webkit-keyframes slide-bottom-in {
0% { transform: translateY(100%); }
100% { -webkit-transform: translateY(0%); }
}
@keyframes slide-bottom-out {
0% { transform: translateY(0%); }
100% { transform: translateY(100%); }
}
@-webkit-keyframes slide-bottom-out {
0% { -webkit-transform: translateY(0%); }
100% { -webkit-transform: translateY(100%); }
}
@supports (-webkit-overflow-scrolling: touch) {
.app .options input:checked:before {
top:-12px;
}
}
@-webkit-keyframes spin {
from {
-webkit-transform:rotate(0deg);
}
to {
-webkit-transform:rotate(360deg);
}
}
@keyframes spin {
from {
transform:rotate(0deg);
}
to {
transform:rotate(360deg);
}
}
.unselectable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.jbutton {
padding:4px;
padding-left:10px;
padding-right:20px;
border:1px solid #ddd;
display:inline-flex;
border-radius:4px;
cursor:pointer;
line-height: 24px;
-webkit-font-smoothing: antialiased;
}
.jbutton.blue {
border:1px solid transparent;
color:#fff;
background-color:#1a73e8;
}
.jbutton::before {
content: attr(data-icon);
width: 24px;
height: 24px;
font-size: 24px;
line-height: 24px;
font-family: 'Material icons';
color: #999;
margin-right:2px;
}
.jbutton.blue::before {
color: #fff;
}
.jbutton:hover {
background-color: #eee;
}
.jbutton.blue:hover {
background-color: #1a73e8;
opacity: 0.8;
}
/**
* Date & Datetime picker v1.0.1
* Author: paul.hodel@gmail.com
* https://github.com/paulhodel/jtools
*/
.jcalendar {
position:relative;
z-index:9000;
display:none;
box-sizing:border-box;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;
min-width:280px;
}
.jcalendar-focus {
display:block;
}
.jcalendar-backdrop {
position:fixed;
top:0px;
left:0px;
z-index:9000;
min-width:100%;
min-height:100%;
background-color:rgba(0,0,0,0.5);
border:0px;
padding:0px;
display:none;
}
.jcalendar-container {
position:relative;
box-sizing:border-box;
}
.jcalendar-content {
position:absolute;
z-index:9001;
-webkit-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
-moz-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
background-color:#fff;
}
.jcalendar-table > table {
width:100%;
background-color:#fff;
}
.jcalendar-table > table > tbody td {
box-sizing:border-box;
cursor:pointer;
padding:9px;
font-size:0.9em;
}
.jcalendar-table > table > thead {
cursor:pointer;
}
.jcalendar-header {
text-align:center;
}
.jcalendar-header span {
margin-right:4px;
font-size:1.1em;
font-weight:bold;
}
.jcalendar-prev {
cursor:pointer;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M15.41 16.59L10.83 12l4.58-4.59L14 6l-6 6 6 6 1.41-1.41z' fill='%23000' /%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3C/svg%3E");
background-position:center;
background-repeat:no-repeat;
}
.jcalendar-next {
cursor:pointer;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z' fill='%23000' /%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3C/svg%3E");
background-position:center;
background-repeat:no-repeat;
}
.jcalendar-weekday {
font-weight: 600;
background-color: #fcfcfc;
padding: 14px;
}
.jcalendar thead td {
padding:10px;
height:40px;
}
.jcalendar tfoot td {
padding:10px;
}
.jcalendar-months td, .jcalendar-years td {
height:24px;
}
.jcalendar-input {
padding-right:18px;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='gray'%3E%3Cpath d='M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z'/%3E%3Cpath fill='none' d='M0 0h24v24H0z'/%3E%3C/svg%3E");
background-position:top 50% right 5px;
background-repeat:no-repeat;
box-sizing: border-box;
}
.jcalendar-done {
-webkit-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
-moz-box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
box-shadow: 1px 1px 5px 0px rgba(0,0,0,0.39);
background-color:#fff;
}
.jcalendar-update {
border:1px solid #ccc;
background-color:#fff;
border-radius:4px;
padding:5px;
width:100%;
}
.jcalendar select {
width:55px;
display:inline-block;
border:0px;
padding:4px;
text-align:center;
font-size:1.1em;
user-select:none;
margin-right:10px;
}
.jcalendar select:first-child
{
margin-right:2px;
}
.jcalendar-selected {
background-color:#eee;
}
.jcalendar-reset, .jcalendar-confirm {
text-transform:uppercase;
cursor:pointer;
color: var(--active-color);
}
.jcalendar-controls {
padding:15px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
vertical-align:middle;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
justify-content: space-between;
align-items:center;
border-bottom:1px solid #ddd;
}
.jcalendar-controls div {
font-weight:bold;
}
.jcalendar-fullsize {
position:fixed;
width:100%;
top:0px;
left:0px;
}
.jcalendar-fullsize .jcalendar-content
{
position:fixed;
width:100%;
left:0px;
bottom:0px;
}
.jcalendar-focus.jcalendar-fullsize .jcalendar-backdrop {
display:block;
}
.jcalendar-sunday {
color: red;
}
.jcalendar-disabled {
color: #ccc;
}
.jcolor {
position: absolute;
display: none;
outline: none;
}
.jcolor-content {
position: absolute;
left: 0px;
z-index: 9000;
user-select: none;
-webkit-font-smoothing: antialiased;
font-size: .875rem;
letter-spacing: .2px;
-webkit-border-radius: 4px;
border-radius: 4px;
-webkit-box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
box-shadow: 0 8px 10px 1px rgba(0,0,0,0.14), 0 3px 14px 2px rgba(0,0,0,0.12), 0 5px 5px -3px rgba(0,0,0,0.2);
background-color:#fff;
box-sizing: border-box;
}
.jcolor-content table {
padding: 7px;
box-sizing: border-box;
}
.jcolor-focus {
display:block;
}
.jcolor table {
width:100%;
height:100%;
}
.jcolor td {
border:2px solid #fff;
}
.jcolor-selected {
border:2px solid #000 !important;
background-repeat:no-repeat;
background-size: cover;
background-position:0 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z' fill='white'/%3E%3C/svg%3E");
}
.jcolor-fullscreen {
position: fixed;
bottom: 0px;
width:100%;
max-height:250px;
border-radius: 0px;
box-sizing: border-box;
}
.jcolor-close {
display: none;
font-size: 1em;
color: var(--active-color);
text-transform: uppercase;
text-align: right;
padding: 15px;
font-weight: bold;
-webkit-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.39);
-moz-box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.39);
box-shadow: 1px 0px 1px 0px rgba(0,0,0,0.39);
width: 100%;
box-sizing: border-box;
}
.jcolor-fullscreen .jcolor-close {
display: block;
}
.jcolor-backdrop {
position: fixed;
top: 0px;
left: 0px;
min-width: 100%;
min-height: 100%;
background-color: rgba(0,0,0,0.5);
border: 0px;
padding: 0px;
z-index: 8000;
display: none;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
/**
* Contextmenu v1.0.1
* Author: paul.hodel@gmail.com
* https://github.com/paulhodel/jsuites
*/
.jcontextmenu {
position:fixed;
z-index:10000;
background:#fff;
color: #555;
font-size: 11px;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-box-shadow: 2px 2px 2px 0px rgba(143, 144, 145, 1);
-moz-box-shadow: 2px 2px 2px 0px rgba(143, 144, 145, 1);
box-shadow: 2px 2px 2px 0px rgba(143, 144, 145, 1);
border: 1px solid #C6C6C6;
padding: 0px;
padding-top:4px;
padding-bottom:4px;
margin:0px;
outline:none;
display:none;
}
.jcontextmenu.jcontextmenu-focus {
display:inline-block;
}
.jcontextmenu > div {
box-sizing: border-box;
display: block;
padding: 8px 8px 8px 28px;
width: 250px;
position: relative;
cursor: default;
font-size: 11px;
font-family:sans-serif;
}
.jcontextmenu > div a {
color: #555;
text-decoration: none;
}
.jcontextmenu > div span {
float: right;
margin-right:10px;
}
.jcontextmenu .contextmenu-disabled {
color: #a1a192;
}
.jcontextmenu > div:not(.contextmenu-line):hover {
background: #ebebeb;
}
.jcontextmenu > div.contextmenu-line {
border-top: 1px solid #e9e9e9;
margin-top:5px;
padding:2px;
}
.jcontextmenu hr {
border: 1px solid #e9e9e9;
border-bottom: 0;
margin-top:5px;
margin-bottom:5px;
}
/**
* Dialog v1.0.1
* Author: paul.hodel@gmail.com
* https://github.com/paulhodel/jtools
*/
.jdialog
{
position:fixed;
left: 0;
top: 0;
width: 100%;
min-height:100%;
z-index:10000;
background-color:rgba(0,0,0,0.5);
-webkit-transition-duration: .1s;
transition-duration: .1s;
display: flex;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
}
.jdialog .jdialog-container
{
width:100%;
max-width:280px;
box-sizing: border-box;
margin:0 auto;
vertical-align:middle;
background-color:#fff;
border-radius:10px;
opacity: 0;
transition: opacity .2s;
-webkit-transition: opacity .2s;
}
.jdialog .jdialog-header
{
padding:10px;
text-align:center;
}
.jdialog .jdialog-header .jdialog-title
{
font-size:1em;
font-weight:bold;
padding:8px;
}
.jdialog .jdialog-header .jdialog-message
{
padding: 4px;
}
.jdialog .jdialog-footer
{
border-top: 1px solid #ccc;
display: flex;
flex-wrap: wrap;
align-content: stretch;
align-items: center;
text-align: center;
}
.jdialog .jdialog-footer > div
{
padding:4px;
border-left:1px solid #ccc;
text-align:center;
width:100%;
}
.jdialog .jdialog-footer > div:first-child
{
border-left:0px;
}
.jdialog .jdialog-footer input
{
border: 0px;
margin: 0px;
background-color: transparent;
color: var(--active-color);
width: 100%;
outline: none;
}
/**
* (c) 2013 jDropdown
* http://www.github.com/paulhodel/jdropdown
*
* @author: Paul Hodel <paul.hodel@gmail.com>
* @description: Custom dropdowns
*/
.jdropdown
{
cursor:pointer;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
box-sizing: border-box;
background:#fff;
-webkit-tap-highlight-color: transparent;
display: inline-block;
}
.jdropdown-header::placeholder
{
color:#000;
}
.jdropdown-backdrop
{
position:fixed;
top:0px;
left:0px;
min-width:100%;
min-height:100%;
background-color:rgba(0,0,0,0.5);
border:0px;
padding:0px;
z-index:8000;
display:none;
}
.jdropdown-focus
{
position:relative;
}
.jdropdown-focus .jdropdown-container
{
transform: translate3d(0,0,0);
}
.jdropdown-focus .jdropdown-header
{
outline:auto 5px -webkit-focus-ring-color;
}
.jdropdown-container-header
{
padding:0px;
margin:0px;
position:relative;
}
.jdropdown-header
{
width:100%;
appearance: none;
background-repeat: no-repeat;
background-position:top 50% right 5px;
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='none' d='M0 0h24v24H0V0z'/%3E%3Cpath d='M7 10l5 5 5-5H7z' fill='gray'/%3E%3C/svg%3E");
text-overflow: ellipsis;
cursor:pointer;
box-sizing: border-box;
-webkit-appearance: none;
-moz-appearance: none;
padding-right:24px;
}
.jdropdown-insert-button
{
font-size: 1.4em;
text-transform: uppercase;
position:absolute;
right: 30px;
top: 4px;
display:none;
}
.jdropdown-container
{
min-width: inherit;
transform: translate3d(-10000px,0,0);
position:absolute;
z-index:9001;
}
.jdropdown-close
{
display:none;
font-size:1em;
color: var(--active-color);
text-transform:uppercase;
text-align:right;
padding:15px;
font-weight:bold;
}
.jdropdown-content
{
min-width:inherit;
margin:0px;
box-sizing:border-box;
}
.jdropdown-content:empty
{
}
.jdropdown-item
{
white-space: nowrap;
text-align: left;
text-overflow: ellipsis;
overflow-x: hidden;
color: #000;
display: flex;
align-items: center;
}
.jdropdown-image
{
margin-right:10px;
width: 32px;
height: 32px;
border-radius:20px;
}
.jdropdown-image-small
{
width:24px;
height:24px;
}
.jdropdown-title
{
font-size: 0.7em;
text-overflow: ellipsis;
overflow-x: hidden;
display: block;
}
/** Default visual **/
.jdropdown-default .jdropdown-header
{
border:1px solid #ccc;
padding:5px;
padding-left:10px;
padding-right:16px;
}
.jdropdown-default .jdropdown-container
{
background-color:#fff;
}
.jdropdown-default.jdropdown-focus.jdropdown-insert .jdropdown-header {
padding-right:50px;
}
.jdropdown-default.jdropdown-focus.jdropdown-insert .jdropdown-insert-button {
display:block;
}
.jdropdown-default .jdropdown-content
{
min-width:inherit;
border:1px solid #8fb1e3;
margin:0px;
background-color:#fff;
box-sizing:border-box;
min-height:10px;
max-height:215px;
overflow-y:auto;
}
.jdropdown-default .jdropdown-item
{
padding:4px;
padding-left:8px;
padding-right:40px;
}
.jdropdown-default .jdropdown-item:hover
{
background-color:#1f93ff;
color:#fff;
}
.jdropdown-default .jdropdown-cursor
{
background-color:#1f93ff;
color:#fff;
}
.jdropdown-default .jdropdown-selected
{
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPjxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiIGZpbGw9IndoaXRlIiAvPjwvc3ZnPgo=');
background-repeat:no-repeat;
background-position:top 50% right 5px;
background-color:#1f93ff;
color:#fff;
}
.jdropdown-default .jdropdown-group
{
margin-top:5px;
}
.jdropdown-default .jdropdown-group .jdropdown-item
{
padding-left:16px;
}
.jdropdown-default .jdropdown-group-name
{
padding-left:8px;
font-weight:bold;
}
/** Default render for mobile **/
.jdropdown-picker.jdropdown-focus .jdropdown-header {
outline: none;
}
.jdropdown-picker.jdropdown-focus .jdropdown-backdrop {
display:block;
}
.jdropdown-picker .jdropdown-container
{
position:fixed;
bottom:0px;
left:0px;
border-bottom:1px solid #e6e6e8;
width:100%;
background-color:#fff;
box-sizing: border-box;
}
.jdropdown-picker .jdropdown-close
{
-webkit-box-shadow: 0px -1px 5px 0px rgba(0,0,0,0.39);
-moz-box-shadow: 0px -1px 5px 0px rgba(0,0,0,0.39);
box-shadow: 0px -1px 5px 0px rgba(0,0,0,0.39);
background-color:#fff;
display:block;
}
.jdropdown-picker .jdropdown-content
{
overflow-y:scroll;
height:280px;
background-color:#fafafa;
border-top:1px solid #e6e6e8;
}
.jdropdown-picker .jdropdown-group-name
{
font-size: 1em;
text-transform: uppercase;
padding-top:10px;
padding-bottom:10px;
display: block;
border-bottom: 1px solid #e6e6e8;
padding-left:20px;
padding-right:20px;
text-align:center;
font-weight:bold;
}
.jdropdown-picker .jdropdown-item
{
font-size: 1em;
text-transform: uppercase;
padding-top:10px;
padding-bottom:10px;
border-bottom: 1px solid #e6e6e8;
padding-left:20px;
padding-right:20px;
}
.jdropdown-picker .jdropdown-selected
{
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPjxwYXRoIGQ9Ik05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXoiIGZpbGw9IndoaXRlIiAvPjwvc3ZnPgo=');
background-repeat:no-repeat;
background-position:top 50% right 15px;
background-color:#1f93ff;
color:#fff;
}
.jdropdown-picker .jdropdown-cursor
{
background-color:#1f93ff;
color:#fff;
}
/** Default render for mobile searchbar **/
.jdropdown-searchbar.jdropdown-focus
{
position:fixed;
top:0px;
left:0px;
width:100%;
height:100%;
background-color:#fafafa;
padding:0px;
z-index:9001;
overflow-y:scroll;
}
.jdropdown-searchbar.jdropdown-focus .jdropdown-container-header
{
padding:10px;
background-color:#fff;
box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
.jdropdown-searchbar.jdropdown-focus .jdropdown-header
{
border: 0px;
background-repeat: no-repeat;
background-position-x: 0%;
background-position-y: 40%;
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMTUuNSAxNGgtLjc5bC0uMjgtLjI3QzE1LjQxIDEyLjU5IDE2IDExLjExIDE2IDkuNSAxNiA1LjkxIDEzLjA5IDMgOS41IDNTMyA1LjkxIDMgOS41IDUuOTEgMTYgOS41IDE2YzEuNjEgMCAzLjA5LS41OSA0LjIzLTEuNTdsLjI3LjI4di43OWw1IDQuOTlMMjAuNDkgMTlsLTQuOTktNXptLTYgMEM3LjAxIDE0IDUgMTEuOTkgNSA5LjVTNy4wMSA1IDkuNSA1IDE0IDcuMDEgMTQgOS41IDExLjk5IDE0IDkuNSAxNHoiIGZpbGw9IiNlNmU2ZTgiLz48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PC9zdmc+);
padding-left: 30px !important;
padding-right: 60px !important;
outline: none;
}
.jdropdown-searchbar.jdropdown-focus .jdropdown-close
{
display:block;
}
.jdropdown-searchbar .jdropdown-container
{
width:100%;
}
.jdropdown-searchbar .jdropdown-close
{
position:fixed;
top:0px;
right:0px;
}
.jdropdown-searchbar .jdropdown-content
{
margin-top:10px;
}
.jdropdown-searchbar .jdropdown-group
{
margin-top:10px;
margin-bottom:15px;
background-color:#fff;
}
.jdropdown-searchbar .jdropdown-group-name
{
border-top: 1px solid #e6e6e8;
border-bottom: 1px solid #e6e6e8;
padding:10px;
padding-left:12px;
font-weight:bold;
}
.jdropdown-searchbar .jdropdown-group-arrow
{
float:right;
width:24px;
height:24px;
background-repeat:no-repeat;
}
.jdropdown-searchbar .jdropdown-group-arrow-down
{
background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNNy40MSA4LjU5TDEyIDEzLjE3bDQuNTktNC41OEwxOCAxMGwtNiA2LTYtNiAxLjQxLTEuNDF6Ii8+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNHYyNEgwVjB6Ii8+PC9zdmc+);
}
.jdropdown-searchbar .jdropdown-group-arrow-up
{
background-image: url(data:image/svg+xml;base64,CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTcuNDEgMTUuNDFMMTIgMTAuODNsNC41OSA0LjU4TDE4IDE0bC02LTYtNiA2eiIvPjxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz48L3N2Zz4=);
}
.jdropdown-searchbar .jdropdown-item
{
padding-top:10px;
padding-bottom:10px;
border-bottom: 1px solid #e6e6e8;
padding-left:15px;
padding-right:40px;
background-color:#fff;
font-size:0.9em;
}
.jdropdown-searchbar .jdropdown-description {
text-overflow: ellipsis;
overflow: hidden;
max-width: calc(100% - 20px);
}
.jdropdown-searchbar .jdropdown-content > .jdropdown-item:first-child
{
border-top: 1px solid #e6e6e8;
}
.jdropdown-searchbar .jdropdown-selected
{
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxeiIgZmlsbD0iIzAwN2FmZiIvPjwvc3ZnPg==');
background-repeat:no-repeat;
background-position:top 50% right 15px;
}
/** List render **/
.jdropdown-list
{
}
.jdropdown-list .jdropdown-container
{
display:block;
}
.jdropdown-list .jdropdown-header
{
display:none;
}
.jdropdown-list .jdropdown-group
{
background-color:#fff;
}
.jdropdown-list .jdropdown-group-name
{
border-bottom: 1px solid #e6e6e8;
padding-top:10px;
padding-bottom:10px;
font-weight:bold;
}
.jdropdown-list .jdropdown-item
{
padding-top:10px;
padding-bottom:10px;
border-bottom: 1px solid #e6e6e8;
padding-left:10px;
padding-right:40px;
background-color:#fff;
}
.jdropdown-list .jdropdown-selected
{
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxeiIgZmlsbD0iIzAwN2FmZiIvPjwvc3ZnPg==');
background-repeat:no-repeat;
background-position:top 50% right 10px;
}
@media only screen and (max-device-width : 800px)
{
.jdropdown-list
{
width:100% !important;
border:0px;
padding:0px;
}
.jdropdown-list .jdropdown-container
{
min-width:100%;
}
}
.app .jdropdown-item {
text-transform:uppercase;
}
/**
* (c) jTools Text Editor
* https://github.com/paulhodel/jtools
*
* @author: Paul Hodel <paul.hodel@gmail.com>
* @description: Inline richtext editor
*/
.jeditor-container {
border:1px solid #ccc;
}
.jeditor-dragging {
border:1px dashed #000;
}
.jeditor-container.jeditor-padding {
padding:10px;
}
.jeditor {
outline:none;
word-break: break-word;
}
.jeditor-container.jeditor-padding .jeditor {
min-height:120px;
margin-bottom:10px;
padding:10px;
}
.jeditor-toolbar {
cursor: pointer;
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-align-items: center;
align-items: center;
border: none;
-webkit-border-radius: 2px;
border-radius: 2px;
-webkit-box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.2);
box-shadow: 0 4px 5px 0 rgba(0,0,0,0.14), 0 1px 10px 0 rgba(0,0,0,0.12), 0 2px 4px -1px rgba(0,0,0,0.2);
margin: 0px;
margin-bottom:5px;
padding: 5px;
white-space: nowrap;
border-radius:2px;
}
.jeditor-toolbar .jeditor-toolbar-group {
background-color:#f3f3f3;
}
.jeditor-toolbar div {
padding:4px;
}
.jeditor-toolbar div.jeditor-toolbar-button {
padding-left:20px;
padding-right:20px;
}
.jeditor-toolbar div {
-webkit-user-select: none; /* Chrome all / Safari all */
-moz-user-select: none; /* Firefox all */
-ms-user-select: none; /* IE 10+ */
user-select: none; /* Likely future */
}
.jeditor-toolbar div i {
display:block;
font-size:20px;
width:20px;
height:20px;
line-height:20px;
color:#777;
}
.jeditor-toolbar select {
border:0px;
background-color:transparent;
padding:0px;
padding-left:5px;
padding-right:5px;
display:block;
height:32px;
outline:none;
border-radius:4px;
margin:1px;
}
.jeditor-toolbar .jtoolbar-divisor {
width: 2px;
height: 28px;
padding: 0px;
margin: 4px;
background-color: #f2f2f2;
}
.jeditor-toolbar select option {
background-color:#fff;
padding:20px;
}
.jeditor-toolbar div:hover, .toolbar select:hover {
background-color:#f2f2f2;
border-radius:2px;
}
.jeditor-toolbar div:hover i {
color:#222;
}
.jeditor-toolbar div.selected {
background-color:#cecece;
}
.jeditor-thumbs {
display:inline-block;
margin-right:5px;
}
.jeditor-thumbs-container {
margin-top:15px;
}
.jeditor-thumbs .close {
position:absolute;
height:1px;
}
.jeditor-thumbs .close i {
color:#fff;
text-shadow: 0px 0px 2px #000;
position:relative;
top:5px;
left:72px;
}
.jeditor-thumbs img {
border:1px solid #eee;
width:100px;
height:100px;
}
.jeditor-users {
position:absolute;
border:1px solid #ccc;
background-color:#fff;
padding-top:5px;
padding-bottom:5px;
max-height:220px;
overflow-y:scroll;
}
.jeditor-users > div
{
display:flex;
align-items:center;
min-width:220px;
padding:10px;
padding-top:5px;
padding-bottom:5px;
}
.jeditor-users > div:hover
{
background-color:#efefef;
}
.jeditor-users > div img
{
width:24px;
height:24px;
border-radius:12px;
margin-right:5px;
}
/** Snippet **/
.snippet {
margin-top:15px;
cursor:pointer;
border: 1px solid #eee;
position:relative;
}
.snippet:focus {
outline: none;
}
.snippet img {
width:25%;
max-width:120px;
float:left;
margin-right:10px;
margin-bottom:10px;
}
.snippet .snippet-title {
margin-top:15px;
font-size:1.4em;
}
.snippet .snippet-description {
margin-top:5px;
font-size:1em;
}
.snippet .snippet-host {
margin-top:10px;
margin-bottom:10px;
text-transform:uppercase;
font-size:0.8em;
color:#777;
text-align:right;
}
.snippet .snippet-url {
display:none;
}
.jeditor .snippet:after {
content:'';
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
position:absolute;
top:0;
right:0;
margin:14px;
font-size:24px;
width:24px;
height:24px;
cursor:pointer;
text-shadow: 0px 0px 5px #fff;
}
.snippet div, .snippet img {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;
-webkit-user-drag: none;
-khtml-user-drag: none;
-moz-user-drag: none;
-o-user-drag: none;
}
.jeditor img {
border:2px solid transparent;
box-sizing: border-box;
}
.jeditor img:focus {
border:2px solid #0096FD;
}
.jeditor .pdf {
background-image: url("data:image/svg+xml,%3Csvg version='1.1' id='Layer_1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' x='0px' y='0px' viewBox='0 0 512 512' style='enable-background:new 0 0 512 512;' xml:space='preserve'%3E%3Cpath style='fill:%23C30B15;' d='M511.344,274.266C511.77,268.231,512,262.143,512,256C512,114.615,397.385,0,256,0S0,114.615,0,256 c0,117.769,79.53,216.949,187.809,246.801L511.344,274.266z'/%3E%3Cpath style='fill:%2385080E;' d='M511.344,274.266L314.991,77.913L119.096,434.087l68.714,68.714C209.522,508.787,232.385,512,256,512 C391.243,512,501.976,407.125,511.344,274.266z'/%3E%3Cpolygon style='fill:%23FFFFFF;' points='278.328,333.913 255.711,77.913 119.096,77.913 119.096,311.652 '/%3E%3Cpolygon style='fill:%23E8E6E6;' points='392.904,311.652 392.904,155.826 337.252,133.565 314.991,77.913 255.711,77.913 256.067,333.913 '/%3E%3Cpolygon style='fill:%23FFFFFF;' points='314.991,155.826 314.991,77.913 392.904,155.826 '/%3E%3Crect x='119.096' y='311.652' style='fill:%23FC0F1A;' width='273.809' height='122.435'/%3E%3Cg%3E%3Cpath style='fill:%23FFFFFF;' d='M204.871,346.387c13.547,0,21.341,6.659,21.341,18.465c0,12.412-7.795,19.601-21.341,19.601h-9.611 v14.909h-13.471v-52.975L204.871,346.387L204.871,346.387z M195.26,373.858h8.93c5.904,0,9.308-2.952,9.308-8.552 c0-5.525-3.406-8.324-9.308-8.324h-8.93V373.858z'/%3E%3Cpath style='fill:%23FFFFFF;' d='M257.928,346.387c16.649,0,28.152,10.746,28.152,26.487c0,15.666-11.655,26.488-28.683,26.488 h-22.25v-52.975H257.928z M248.619,388.615h9.611c8.249,0,14.151-6.357,14.151-15.665c0-9.384-6.205-15.817-14.757-15.817h-9.006 V388.615z'/%3E%3Cpath style='fill:%23FFFFFF;' d='M308.563,356.982v12.26h23.763v10.596h-23.763v19.525h-13.471v-52.975h39.277v10.595h-25.806 V356.982z'/%3E%3C/g%3E%3C/svg%3E%0A");
background-repeat: no-repeat;
background-size: cover;
width:60px;
height:60px;
}
/**
* (c) jLoading
* https://github.com/paulhodel/jtools
*
* @author: Paul Hodel <paul.hodel@gmail.com>
* @description: Page loading spin
*/
.jloading {
position:fixed;
z-index:10001;
width:100%;
left:0;
right:0;
top:0;
bottom:0;
background-color: rgba(0,0,0,0.7);
}
.jloading::after {
content:'';
display:block;
margin:0 auto;
margin-top:50vh;
width:40px;
height:40px;
border-style:solid;
border-color:white;
border-top-color:transparent;
border-width:4px;
border-radius:50%;
-webkit-animation: spin .8s linear infinite;
animation: spin .8s linear infinite;
}
.jloading.spin {
background-color:transparent;
}
.jloading.spin::after {
margin:0 auto;
margin-top:80px;
border-color:#aaa;
border-top-color:transparent;
}
.jlogin {
width: 100%;
box-sizing: border-box;
margin:0 auto;
vertical-align:middle;
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
font-size:1em;
}
.jlogin-fullscreen {
position:absolute;
top:0px;
left:0px;
width:100%;
height:100%;
background-color:#fff;
z-index:9000;
}
.jlogin > form {
max-width:480px;
padding:20px;
margin: 0 auto;
}
.jlogin > form > div {
margin-bottom:10px;
}
.jlogin label {
display:block;
}
.jlogin > form > div > input {
width:100%;
outline:none;
padding:15px;
margin:0px;
}
.jlogin input[type='checkbox'] {
float:left;
}
.jlogin input[type='button'] {
padding:10px;
background-color: var(--button-color);
border: 1px solid var(--button-color);
color: #fff;
cursor:pointer;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
}
.jlogin span
{
margin:0 auto;
}
.jlogin img
{
text-align:center;
max-width:220px;
}
.jlogin .jlogin-logo
{
text-align:center;
padding:20px;
}
.jlogin .captcha
{
width:100%;
margin-top:4px;
margin-bottom:4px;
border:1px solid #ccc;
display:block;
}
.jlogin .facebookButton
{
padding:10px;
background-color: var(--button-color);
border: 1px solid var(--button-color);
color: #fff;
text-align:center;
background-repeat:no-repeat;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24px' height='24px'%3E%3Cpath d='M19,3H5C3.895,3,3,3.895,3,5v14c0,1.105,0.895,2,2,2h7.621v-6.961h-2.343v-2.725h2.343V9.309 c0-2.324,1.421-3.591,3.495-3.591c0.699-0.002,1.397,0.034,2.092,0.105v2.43h-1.428c-1.13,0-1.35,0.534-1.35,1.322v1.735h2.7 l-0.351,2.725h-2.365V21H19c1.105,0,2-0.895,2-2V5C21,3.895,20.105,3,19,3z' fill='white'/%3E%3C/svg%3E%0A");
background-position:10px 40%;
cursor:pointer;
}
.jlogin .rememberButton
{
padding:10px;
display:none;
}
.jlogin .requestButton, .jlogin .cancelButton, .jlogin .newProfileButton
{
padding:20px;
padding-bottom:0px;
text-align:center;
cursor:pointer;
}
.jlogin-captcha img {
min-width:280px;
}
.jlogin-loading:before {
content: "";
display: block;
position: fixed;
top: 0px;
left: 0px;
width: 200px;
height: 4px;
background-color: var(--button-color);
animation: loading 2s linear infinite;
}
@keyframes loading {
from { left: 0px; width: 25%; }
25% { width: 25%; }
50% { width: 50%; }
75% { left: 75%; }
100% { left: 100%; }
to { left: 100%; }
}
@media only screen and (max-device-width : 800px)
{
.jsuites * {
-webkit-tap-highlight-color: transparent;
-webkit-touch-callout: none;
}
html.jsuites {
height:100%;
}
.jsuites body {
margin:0px;
padding:0px;
width:100%;
height:100%;
min-height:100%;
line-height:1.4;
font-family:-apple-system,SF UI Text,Helvetica Neue,Helvetica,Arial,sans-serif !important;
background-color:#fff;
}
.jsuites input, .jsuites select, .jsuites textarea, .jsuites div {
font-family:-apple-system,SF UI Text,Helvetica Neue,Helvetica,Arial,sans-serif !important;
}
}
.japp
{
height:100%;
box-sizing: border-box;
overflow:scroll;
background-color:#fafafa;
}
.jwarning::before {
content:'No internet connection';
background-color:red;
color:#fff;
padding:2px;
position:fixed;
top:0px;
left:0px;
z-index:20000;
width:100%;
font-size:0.55em;
text-align:center;
}
/*
.japp .activeHighLight
{
color:var(--active-color);
}
.japp .active a, .japp .active span, .japp .active i
{
color:var(--active-color);
}
.japp .no-padding
{
padding:0px;
}
.japp .action
{
color:var(--active-color);
cursor:pointer;
}
.japp i.action
{
position:absolute;
right:0px;
margin-right:15px;
cursor:pointer;
}
*/
.japp button {
border-radius: 4px;
width: 100%;
border: 1px solid var(--active-color);
color: var(--active-color);
background-color: transparent;
padding: 4px;
outline: none;
}
.japp button:active {
border: 1px solid #000;
color: #000;
}
.japp .red {
color: red;
border-color: 1px solid red;
}
.japp .link {
color: var(--active-color);
cursor: pointer;
}
.japp .uppercase {
text-transform: uppercase;
}
/** Navbar **/
.japp .navbar {
position:fixed;
top: 0;
width: 100%;
z-index: 500;
margin: 0;
-webkit-backface-visibility: hidden;
-webkit-transform: translate3d(0,0,0);
-webkit-box-sizing: border-box;
backface-visibility: hidden;
box-sizing: border-box;
transform: translate3d(0,0,0);
height: 44px;
background-color: #fff;
box-shadow: 0 1px 2px rgba(0,0,0,.1);
}
.jwarning .navbar {
top:16px;
}
.japp .navbar-container {
padding: 0 8px;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
vertical-align:middle;
display: flex;
-webkit-flex-flow: row wrap;
justify-content: space-between;
align-items:center;
}
.japp .navbar-container div {
text-align:center;
}
.japp .navbar-container div.title {
display: flex;
}
.japp .navbar-container div.title div
{
line-height:24px;
}
.japp .navbar-container div.icon {
width:24px;
}
.japp .navbar-container div i {
display:block;
}
.japp .navbar-container div img {
height:28px;
display:block;
}
.japp .navbar-container div.title div img {
border-radius:12px;
width:24px;
height:24px;
margin-right:6px;
}
.japp .navbar .icon {
color:var(--active-color);
}
.japp .title {
font-size:1.2em;
}
.japp .block {
padding:15px;
color: #6d6d72;
font-size:0.9em;
box-sizing: border-box;
}
.japp .block-title {
text-transform: uppercase;
color: #6d6d72;
margin: 25px 15px 10px;
line-height: 17px;
position: relative;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
line-height: 1;
font-size:0.9em;
}
.japp .block-strong {
background-color:#fff;
color: #000;
}
.japp .block-border {
border-top:1px solid #ddd;
border-bottom:1px solid #ddd;
}
.japp .block-footer {
text-transform: uppercase;
padding:15px;
color: #6d6d72;
font-size:0.7em;
}
.japp .block-collapse {
max-height:100px;
overflow-y:hidden;
}
.japp .block-instruction {
text-transform: uppercase;
padding:15px;
color: #6d6d72;
font-size:0.7em;
text-align:center;
}
.japp .pages {
display: flex;
flex-wrap: nowrap;
align-items: flex-start;
height: 100%;
}
.japp .page {
padding-top: 45px;
padding-bottom: 45px;
min-height: 100%;
min-width: 100%;
box-sizing: border-box;
overflow-y: auto;
/*will-change: scroll-position;
-webkit-overflow-scrolling: touch;
-webkit-transform: translateZ(0px);
-webkit-transform: translate3d(0,0,0);
-webkit-perspective: 1000;*/
}
.warning .page {
padding-top: 60px;
}
.japp .progressbar-container {
margin: 15px;
margin-left: 0px;
margin-right: 0px;
margin-top: 5px;
}
.japp .progressbar {
width:100%;
border:1px solid var(--active-color);
border-radius:1px;
}
.japp .progressbar-title {
margin-bottom:2px;
text-transform:uppercase;
display:flex;
justify-content:space-between;
}
.japp .progressbar div {
background-color:var(--active-color);
height:4px;
width:0%;
}
.japp .panel {
position:fixed;
top: 0;
left: 0;
margin: 0;
width:60vw;
max-width:220px;
height:100vh;
background: #fff;
z-index: 1003;
-webkit-box-sizing: border-box;
box-sizing: border-box;
box-shadow: 0 -1px 2px rgba(0,0,0,.1);
padding:4px;
}
.japp .panel-left {
-webkit-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.7);
box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.7);
}
.japp .panel a {
color:var(--active-color);
}
/** Toolbar **/
.japp .jtoolbar
{
position:fixed;
bottom: 0;
margin: 0;
left: 0;
width: 100%;
background: #f7f7f8;
z-index: 500;
-webkit-box-sizing: border-box;
box-sizing: border-box;
box-shadow: 0 -1px 2px rgba(0,0,0,.1);
padding:4px;
}
.japp .jtoolbar > div
{
-webkit-box-sizing: border-box;
box-sizing: border-box;
vertical-align:middle;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row wrap;
justify-content: space-evenly;
align-items:center;
width: 100%;
cursor:pointer;
}
.japp .jtoolbar > div > div
{
text-align:center;
flex:1;
margin:auto;
}
.japp .jtoolbar a
{
text-decoration:none;
display:inline-block;
}
.japp .jtoolbar i
{
color:#929292;
}
.japp .jtoolbar span
{
font-size:0.7em;
display:block;
color:#929292;
}
.japp .jtoolbar .selected a,
.japp .jtoolbar .selected i,
.japp .jtoolbar .selected span
{
color:var(--active-color);
}
/** Options **/
.japp .options
{
background-color:#fff;
border-top:1px solid #e6e6e8;
border-bottom:1px solid #e6e6e8;
padding-left:15px;
margin-top:10px;
}
.japp .options:empty
{
display:none;
}
.japp .options .option
{
padding-top:10px;
padding-bottom:10px;
text-transform:uppercase;
font-size:1em;
border-bottom:1px solid #e6e6e8;
overflow-x:hidden;
-webkit-box-sizing: border-box;
box-sizing: border-box;
vertical-align:middle;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-flex-flow: row nowrap;
justify-content: space-between;
align-items:center;
flex-wrap:nowrap;
}
.japp .options .option:last-child
{
border-bottom:0px;
}
.japp .options label
{
width:100%;
}
.japp .options input[type='text'], .japp .options textarea
{
outline:none;
border:1px solid transparent;
font-size:1em;
margin:0px;
padding:0px;
width:100%;
box-sizing:border-box;
}
.japp .options textarea
{
height:100px;
}
.japp .options input[type='checkbox'], .japp .options input[type='radio']
{
visibility: hidden;
}
.japp .options input[type='checkbox'] ~ i, .japp .options input[type='radio'] ~ i
{
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij48cGF0aCBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTkgMTYuMTdMNC44MyAxMmwtMS40MiAxLjQxTDkgMTkgMjEgN2wtMS40MS0xLjQxeiIgZmlsbD0iIzAwN2FmZiIvPjwvc3ZnPg==');
background-repeat: no-repeat;
content:'';
visibility: hidden;
margin-right:10px;
line-height:24px;
width:24px;
height:24px;
}
.japp .options input[type='checkbox']:checked ~ i, .japp .options input[type='radio']:checked ~ i
{
visibility: visible;
}
.japp .options .jdropdown {
display: block;
}
.japp .options .jdropdown .jdropdown-header {
border: 0px;
border-bottom: 1px solid #e6e6e8;
padding: 15px;
text-transform: uppercase;
}
.japp .options .jdropdown:last-child .jdropdown-header {
border-bottom: 0px;
}
.japp .options .jdropdown-searchbar.jdropdown-focus .jdropdown-header {
border:0px;
padding: 5px;
}
.japp .options .icon {
float:left;
margin-right:10px;
max-width:40px;
max-height:40px;
border-radius:20px;
color:#929292;
}
.japp .options .option .option-actions {
display:flex;
transform: translateX(100%);
width:0px;
}
.japp .options .option .option-actions > div {
padding-right:5px;
}
.japp .options .option .option-actions > div > i {
width:40px;
height:40px;
color:#fff;
font-size:24px;
line-height:40px;
text-align:center;
border-radius:30px;
background-color:red;
}
.japp .options .option .option-actions.small > div > i
{
color:#000;
width:24px;
height:24px;
font-size:24px;
line-height:24px;
border-radius:24px;
background-color:transparent;
}
.japp .options .option-title {
display:block;
padding-top:10px;
padding-bottom:10px;
text-transform:uppercase;
font-size:1em;
vertical-align:center;
}
.japp .options .option-title::after {
content:'\e313';
font-family: 'material icons';
font-size:24px;
margin-right:10px;
float:right;
width:24px;
height:24px;
line-height:24px;
}
.japp .options .option-title.selected::after
{
content:'\e316';
}
.japp .options .option-title.selected ~ div {
display:block;
}
.japp .options .option-group {
border-top:1px solid #e6e6e8;
background-color:#fff;
display:none;
}
.japp .options .option-link:after {
content:'\e315';
font-family: 'material icons';
color:var(--active-color);
font-size:24px;
margin-right:10px;
float:right;
width:24px;
height:24px;
line-height:24px;
display:block;
}
.japp .options .option-header {
padding-left:10px;
padding-right:10px;
flex-grow:10;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.japp .options .option .option-name {
font-size:1em;
text-overflow: ellipsis;
width: 100%;
overflow: hidden;
}
.japp .options .option .option-small {
font-size:0.7em;
color: #6d6d72;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
display:block;
}
.japp .options .option .option-image img {
width:40px;
height:40px;
border-radius:20px;
display:block;
}
.japp .options .option .option-image-small img {
width:24px;
height:auto;
border-radius:50px;
display:block;
}
.japp .options .option .option-image .option-badge {
position: absolute;
background-color: red;
color: #fff;
width: 16px;
height: 16px;
line-height: 16px;
border-radius: 16px;
text-align: center;
font-size: 7px;
margin: 28px;
}
.japp .options .option .option-image-small .option-badge {
position: absolute;
background-color: red;
color: #fff;
width: 16px;
height: 16px;
line-height: 16px;
border-radius: 16px;
text-align: center;
font-size: 7px;
margin: 12px;
}
.japp .options .option .option-badge.solid {
background-color: red;
color: red;
}
.japp .options .option .option-badge.solid-green {
background-color: green;
color: green;
}
.japp .options .option .option-badge:empty {
display:none;
}
.japp .options .option .option-date {
float:right;
font-size:0.6em;
color:#888;
margin-right:15px;
white-space: nowrap;
}
.japp .options .option .option-right {
margin-right:15px;
}
.japp .options .option .option-badget {
background-color:red;
border-radius:12px;
width:24px;
height:24px;
line-height:24px;
font-size:0.7em;
color:#fff;
text-align:center;
}
.japp .options .option .option-badget:empty {
display:none;
}
/** Badge **/
.japp .jbadge
{
position:relative;
display:inline-block;
top:-12px;
left:-12px;
}
.japp .jbadge > div
{
background-color:red;
color:#fff;
width:16px;
height:16px;
line-height:16px;
border-radius:16px;
text-align:center;
font-size:8px;
position:absolute;
}
.japp .jbadge > div:empty
{
display:none;
}
/** Picker **/
.japp .picker
{
background-color:#fff;
border-top:1px solid #e6e6e8;
border-bottom:1px solid #e6e6e8;
padding-left:15px;
margin-top:10px;
position:absolute;
bottom:0px;
width:100%;
z-index:700;
}
.japp .picker .picker-options
{
-webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,1), rgba(0,0,0,.2)), linear-gradient(to top, rgba(0,0,0,1), rgba(0,0,0,.2));
-webkit-mask-size: 100% 50%;
-webkit-mask-repeat: no-repeat;
-webkit-mask-position: center bottom, top center;
overflow-y:scroll;
padding-top:100px;
padding-bottom:100px;
}
.japp .picker label
{
display: block;
padding-top: 10px;
padding-bottom: 10px;
}
.japp .picker .picker-selected
{
border-top:1px solid #e6e6e8;
border-bottom:1px solid #e6e6e8;
}
.japp .picker input
{
display:none;
}
/** Topsearch **/
.japp .top-search {
margin:0px;
padding:10px;
border-bottom:1px solid #ddd;
}
.japp .top-search input {
background-color: #e6e6e6;
border: 0px;
border-radius: 4px;
outline: none;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='gray'%3E%3Cpath d='M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: 5px center;
padding-left: 32px;
width: 100%;
}
.japp .searchbar-container i {
position:absolute;
margin-top:5px;
margin-left:8px;
color:#bbb;
}
/** Range **/
.japp .range
{
-webkit-appearance: none;
margin: 18px 0;
width: 100%;
}
.japp .range:focus
{
outline: none;
}
.japp .range::-webkit-slider-runnable-track
{
width: 100%;
height: 4px;
cursor: pointer;
animation: 0.2s;
background: #ccc;
border-radius: 1.3px;
}
.japp .range::-webkit-slider-thumb
{
-webkit-appearance:none;
appearance:none;
width:24px;
height:24px;
background:#fff;
cursor:pointer;
border-radius:24px;
margin-top:-10px;
border:0px;
box-shadow:0px 1px 3px 1px #bbb;
}
.japp .range::-moz-range-track
{
width:100%;
cursor:pointer;
animation:0.2s;
background:#ccc;
border-radius:1.3px;
}
.japp .range::-moz-range-thumb
{
width:24px;
height:24px;
background:#fff;
cursor:pointer;
border-radius:24px;
border:0px;
box-shadow:0px 1px 3px 1px #bbb;
}
.japp .range::-ms-track
{
width: 100%;
cursor: pointer;
animation: 0.2s;
background: transparent;
border-color: transparent;
border-width: 16px 0;
color: transparent;
border-radius:1.3px;
}
.japp .range::-ms-fill-lower
{
background:#ccc;
height:5px;
}
.japp .range::-ms-fill-upper
{
background:#ccc;
height:5px;
}
.japp .range::-ms-thumb {
width:24px;
height:24px;
background:#fff;
cursor:pointer;
border-radius:24px;
border:0px;
box-shadow:0px 1px 3px 1px #bbb;
}
.japp .range:focus::-ms-fill-lower
{
background: #ccc;
}
.japp .range:focus::-ms-fill-upper
{
background: #ccc;
}
/** Actionsheet **/
.jactionsheet
{
position:fixed;
left: 0;
bottom: 0;
width: 100%;
min-height:100%;
z-index:10000;
background-color:rgba(0,0,0,0.5);
-webkit-transition-duration: .2s;
transition-duration: .2s;
display: flex;
-ms-flex-align: baseline;
-webkit-align-items: baseline;
-webkit-box-align: baseline;
align-items: baseline;
}
.jactionsheet .jactionsheet-content
{
width:100%;
align-self: flex-end;
}
.jactionsheet .jactionsheet-title
{
font-size:1em;
font-weight:bold;
padding:8px;
}
.jactionsheet .jactionsheet-message
{
padding:4px;
}
.jactionsheet .jactionsheet-group
{
box-sizing: border-box;
margin:10px;
background-color:#fff;
border-radius:5px;
}
.jactionsheet .jactionsheet-group > div
{
font-size:1.4em;
font-weight:bold;
padding:4px;
border-top:1px solid #ccc;
text-align:center;
width:100%;
}
.jactionsheet .jactionsheet-group > div:first-child
{
border-top:0px;
}
.jactionsheet .jactionsheet-group input
{
border:0px;
margin:0px;
background-color:transparent;
color:var(--active-color);
width:100%;
outline:none;
font-size:1em;
}
.jactionsheet .jactionsheet-group input.jactionsheet-cancel
{
color:red;
}
/** Placeholders **/
.japp .options input::-webkit-input-placeholder
{
text-transform:uppercase;
}
.japp .options input::-moz-placeholder
{
text-transform:uppercase;
}
.japp .options input:-ms-input-placeholder
{
text-transform:uppercase;
}
.japp .options input:-moz-placeholder
{
text-transform:uppercase;
}
::placeholder
{
color: #cccccc;
opacity: 1;
}
:-ms-input-placeholder
{
color: #cccccc;
}
::-ms-input-placeholder
{
color: #cccccc;
}
::-webkit-input-placeholder
{
color: #cccccc;
}
.jmodal {
position:fixed;
top:50%;
left:50%;
width:60%;
height:60%;
-webkit-box-shadow: 0 2px 10px rgba(0,0,0,.2);
-moz-box-shadow: 0 2px 10px rgba(0,0,0,.2);
border:1px solid #ccc;
background-color:#fff;
transform: translate(-50%, -50%);
box-sizing: border-box;
padding-top:50px;
z-index:9002;
border-radius:5px;
}
.jmodal:before {
position:absolute;
top:0;
left:0;
width:100%;
content:attr(title);
padding:15px;
box-sizing: border-box;
background: #e3e3e3;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#e3e3e3');
background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#e3e3e3));
background: -moz-linear-gradient(top, #ededed, #e3e3e3);
font-size:1.2em;
}
.jmodal_content {
padding:20px;
overflow-y:auto;
max-height:100%;
box-sizing: border-box;
}
.jmodal.no-title {
padding-top:0px;
}
.jmodal.no-title:before {
display:none;
}
.jmodal:after {
content:'';
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
position:absolute;
top:0;
right:0;
margin:14px;
font-size:24px;
width:24px;
height:24px;
cursor:pointer;
text-shadow: 0px 0px 5px #fff;
}
.jmodal_fullscreen {
width: 100% !important;
height: 100% !important;
top: 0px;
left: 0px;
transform: none;
border-radius: 0px;
}
.jmodal_backdrop {
position: fixed;
top: 0px;
left: 0px;
min-width: 100%;
min-height: 100%;
background-color: rgba(0,0,0,0.5);
border: 0px;
padding: 0px;
z-index: 8000;
display: none;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently
supported by Chrome and Opera */
}
.jnotification {
position: fixed;
z-index: 10000;
-webkit-box-sizing: border-box;
box-sizing: border-box;
padding: 10px;
}
.jnotification-container {
-webkit-box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.7);
box-shadow: 0px 2px 15px -5px rgba(0, 0, 0, 0.7);
padding: 12px;
border-radius: 8px;
}
.jnotification-close {
content: '';
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='gray'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
font-size: 20px;
width: 20px;
height: 20px;
cursor: pointer;
}
.jnotification-title {
font-weight: bold;
}
.jnotification-header {
display: flex;
padding-bottom: 5px;
}
.jnotification-header:empty {
display: none;
}
.jnotification-image {
margin-right: 5px;
}
.jnotification-image:empty {
display: none;
}
.jnotification-image img {
width: 24px;
}
.jnotification-name {
text-transform: uppercase;
font-size: 0.9em;
flex: 1;
letter-spacing: 0.1em;
}
@media (min-width: 320px) and (max-width: 800px) {
.jnotification {
top: 0px;
width: 100%;
}
.jnotification-container {
background: rgba(255,255,255,0.95);
border: 1px solid #eee;
}
}
@media (min-width: 801px) {
.jnotification {
bottom: 0px;
}
.jnotification-container {
background-color: #000;
background: rgba(92,92,92,1);
background: linear-gradient(0deg, rgba(92,92,92,1) 0%, rgba(77,77,77,1) 100%);
color: #fff;
width: 320px;
margin: 30px;
padding: 20px;
}
}
.jnotification-header {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: start;
-webkit-justify-content: flex-start;
-ms-flex-pack: start;
justify-content: flex-start;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.jrating {
display:flex;
}
.jrating > div {
width:24px;
height:24px;
line-height:24px;
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z' fill='gray'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
}
.jrating .jrating-over {
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
opacity: 0.7;
}
.jrating .jrating-selected {
background-image: url("data:image/svg+xml,%0A%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='red'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
}
/**
* (c) Image slider
* https://github.com/paulhodel/jtools
*
* @author: Paul Hodel <paul.hodel@gmail.com>
* @description: Image Slider
*/
.jslider {
margin-top:10px;
margin-bottom:10px;
}
.jslider-container img {
width:60px;
margin-right:5px;
margin-bottom:5px;
}
.jslider-attach {
cursor:pointer;
}
.jslider-left::before {
position: fixed;
left: 10px;
content:'arrow_back_ios';
color: #fff;
width: 30px;
height: 30px;
font-family: 'Material Icons';
font-size: 30px;
text-shadow: 0px 0px 0px #000;
text-align: center;
}
.jslider-right::after {
position: fixed;
right: 5px;
content: 'arrow_forward_ios';
color: #fff;
width: 30px;
height: 30px;
font-family: 'Material Icons';
font-size: 30px;
text-shadow: 0px 0px 0px #000;
text-align: center;
}
.jslider-close {
width:24px;
height:24px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
position:fixed;
top:15px;
right:15px;
display:none;
cursor:pointer;
z-index:3000;
}
.jslider-preview {
position:fixed;
left:0;
top:0;
width: 100%;
min-height:100%;
z-index:2000;
margin:0px;
box-sizing:border-box;
background-color:rgba(0,0,0,0.9);
-webkit-transition-duration: .4s;
transition-duration: .4s;
display: flex;
-ms-flex-align: center;
-webkit-align-items: center;
-webkit-box-align: center;
align-items: center;
}
.jslider-preview img {
min-width:70%;
max-width:100%;
height:auto;
box-sizing: border-box;
margin:0 auto;
vertical-align:middle;
display:none;
}
.jswitch {
display: inline-block;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
}
.jswitch i {
position: relative;
display: inline-block;
margin-right: .5rem;
width: 46px;
height: 26px;
background-color: #e6e6e6;
border-radius: 23px;
vertical-align: text-bottom;
transition: all 0.3s linear;
}
.jswitch i::before {
content: "";
position: absolute;
left: 0;
width: 42px;
height: 22px;
background-color: #fff;
border-radius: 11px;
transform: translate3d(2px, 2px, 0) scale3d(1, 1, 1);
transition: all 0.25s linear;
}
.jswitch i::after {
content: "";
position: absolute;
left: 0;
width: 22px;
height: 22px;
background-color: #fff;
border-radius: 11px;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.24);
transform: translate3d(2px, 2px, 0);
transition: all 0.2s ease-in-out;
}
.jswitch:active i::after {
width: 28px;
transform: translate3d(2px, 2px, 0);
}
.jswitch:active input:checked + i::after { transform: translate3d(16px, 2px, 0); }
.jswitch input { display: none; }
.jswitch input:checked + i { background-color: #4BD763; }
.jswitch input:checked + i::before { transform: translate3d(18px, 2px, 0) scale3d(0, 0, 0); }
.jswitch input:checked + i::after { transform: translate3d(22px, 2px, 0); }
.jtabs {
max-width: calc(100vw - 24px);
position: relative;
}
.jtabs > .jtabs-headers {
display: flex;
overflow-x: auto;
}
.jtabs > .jtabs-headers > div {
padding: 6px;
padding-left: 20px;
padding-right: 20px;
margin-left: 1px;
margin-right: 1px;
margin-bottom: 1px;
background-color: #f1f1f1;
cursor: pointer;
}
.jtabs > .jtabs-headers > div.jtabs-selected {
background-color: #e8e8e8;
color: #000;
}
.jtabs > .jtabs-content > div {
display: none;
}
.jtabs > .jtabs-content > div.jtabs-selected {
display: block;
}
.jtabs > .jtabs-border {
position: absolute;
height: 2px;
background-color: #888;
transform-origin: left;
transition: all .2s cubic-bezier(0.4,0,0.2,1);
transition-property: color,left,transform;
}
.jtabs .jtabs-add {
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='24' viewBox='0 0 24 24' width='24'%3E%3Cpath d='M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z' fill='%23bbbbbb'/%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3C/svg%3E");
cursor: pointer;
background-position: center;
background-repeat: no-repeat;
width: 24px;
height: 24px;
line-height: 24px;
margin: 3px;
margin-left: 10px;
}
.jtags {
display: flex;
flex-wrap: wrap;
-ms-flex-direction: row;
-webkit-flex-direction: row;
flex-direction: row;
-ms-flex-pack: flex-start;
-webkit-justify-content: space-between;
justify-content: flex-start;
padding: 2px;
border: 1px solid #ccc;
}
.jtags > div {
padding: 3px;
padding-left: 10px;
padding-right: 22px;
position: relative;
border-radius: 1px;
margin: 2px;
display: block;
outline: none;
}
.jtags > div::after {
content: 'x';
position: absolute;
top: 4px;
right: 4px;
width: 12px;
height: 12px;
cursor: pointer;
font-size: 11px;
display: none;
}
.jtags_label {
background-color: #eeeeee !important;
}
.jtags_label::after {
display: inline-block !important;
}
.jtags_error::after {
color: #fff !important;
}
.jtags_error {
background-color: #d93025 !important;
color: #fff;
}
.jtags_search {
position: absolute;
display: none;
box-shadow: 0 1px 2px 0 rgba(60,64,67,0.302), 0 2px 6px 2px rgba(60,64,67,0.149);
border: none;
-webkit-border-radius: 4px;
border-radius: 4px;
width: 280px;
padding: 8px 0;
-webkit-box-shadow: 0 2px 4px rgba(0,0,0,0.2);
box-shadow: 0 2px 4px rgba(0,0,0,0.2);
-webkit-transition: opacity .218s;
transition: opacity .218s;
background: #fff;
border: 1px solid rgba(0,0,0,.2);
cursor: pointer;
margin: 0;
min-width: 300px;
outline: none;
width: auto;
user-select: none;
}
.jtags_search > div {
color: #333;
cursor: pointer;
display: -webkit-box;
display: -webkit-flex;
display: flex;
padding: 5px 10px;
user-select: none;
-webkit-align-items: center;
align-items: center;
}
.jtags_search > div:hover {
background-color: #e8eaed;
}
.jtags_search > div > img {
width: 32px;
height: 32px;
user-select: none;
border-radius: 16px;
margin-right: 2px;
}
.jtags_search > div > div {
overflow: hidden;
text-overflow: ellipsis;
margin-left: 2px;
max-width: 300px;
white-space: nowrap;
user-select: none;
}
.jtags_search .selected {
background-color: #e8eaed;
}
/**
* (c) jTools Template renderer
* https://github.com/paulhodel/jtools
*
* @author: Paul Hodel <paul.hodel@gmail.com>
* @description: Template renderer
*/
.jtemplate-pagination {
display:flex;
cursor:pointer;
margin-top:10px;
margin-bottom:10px;
}
.jtemplate-pagination div {
text-align:center;
font-size:0.8em;
width:30px;
height:30px;
line-height:30px;
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none;
}
.jtemplate-pagination div:hover {
background-color:#eee;
}
.jtemplate-results {
margin-top:15px;
margin-bottom:15px;
}
.app .jtemplate-empty {
text-align:center;
padding-top:10px;
padding-bottom:10px;
margin-right:10px;
}
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jsuites.css</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>text/css</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0"?>
<ZopeData>
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<global name="File" module="OFS.Image"/>
</pickle>
<pickle>
<dictionary>
<item>
<key> <string>__name__</string> </key>
<value> <string>jsuites.js</string> </value>
</item>
<item>
<key> <string>content_type</string> </key>
<value> <string>application/x-javascript</string> </value>
</item>
<item>
<key> <string>precondition</string> </key>
<value> <string></string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
Spreadsheet editor with Jexcel library.
\ No newline at end of file
erp5_jexcel_editor
\ No newline at end of file
erp5_jexcel_editor
\ No newline at end of file
001
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment