Commit 3fdec62e authored by ibuler's avatar ibuler

Merge branch 'dev' of github.com:jumpserver/jumpserver into dev

parents 80415afa 9bcc325c
......@@ -35,7 +35,7 @@ __all__ = [
'NodeAddAssetsApi', 'NodeRemoveAssetsApi', 'NodeReplaceAssetsApi',
'NodeAddChildrenApi', 'RefreshNodeHardwareInfoApi',
'TestNodeConnectiveApi', 'NodeListAsTreeApi',
'NodeChildrenAsTreeApi', 'RefreshAssetsAmount',
'NodeChildrenAsTreeApi', 'RefreshNodesCacheApi',
]
......@@ -282,9 +282,13 @@ class TestNodeConnectiveApi(APIView):
return Response({"task": task.id})
class RefreshAssetsAmount(APIView):
class RefreshNodesCacheApi(APIView):
permission_classes = (IsOrgAdmin,)
model = Node
def get(self, request, *args, **kwargs):
Node.refresh_nodes()
return Response("Ok")
def delete(self, *args, **kwargs):
self.get(*args, **kwargs)
return Response(status=204)
......@@ -10,12 +10,14 @@ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.core.cache import cache
from common.utils import get_logger
from orgs.mixins.models import OrgModelMixin, OrgManager
from orgs.utils import set_current_org, get_current_org, tmp_to_org
from orgs.models import Organization
__all__ = ['Node']
logger = get_logger(__name__)
class NodeQuerySet(models.QuerySet):
......@@ -39,6 +41,7 @@ class TreeMixin:
tree_updated_time > cls.tree_created_time:
tree = TreeService.new()
cls.tree_created_time = time.time()
cls.refresh_tree(cls.tree_assets_created_time)
cls.tree_assets_created_time = time.time()
cls._tree_service = tree
return tree
......@@ -46,26 +49,41 @@ class TreeMixin:
if not cls.tree_assets_created_time or \
node_assets_updated_time > cls.tree_assets_created_time:
cls._tree_service.init_assets_async()
cls.tree_assets_created_time = time.time()
cls.refresh_node_assets(cls.tree_assets_created_time)
return cls._tree_service
@classmethod
def refresh_tree(cls):
def refresh_tree(cls, t=None):
logger.debug("Refresh node tree")
key = cls.tree_updated_time_cache_key
ttl = cls.tree_cache_time
value = time.time()
cache.set(key, value, ttl)
if not t:
t = time.time()
cache.set(key, t, ttl)
@classmethod
def refresh_node_assets(cls):
def refresh_node_assets(cls, t=None):
logger.debug("Refresh node tree assets")
key = cls.tree_assets_cache_key
ttl = cls.tree_cache_time
value = time.time()
cache.set(key, value, ttl)
if not t:
t = time.time()
cache.set(key, t, ttl)
@property
def _tree(self):
return self.__class__.tree()
@staticmethod
def refresh_user_tree_cache():
"""
当节点-节点关系,节点-资产关系发生变化时,应该刷新用户授权树缓存
:return:
"""
from perms.utils.asset_permission import AssetPermissionUtilV2
AssetPermissionUtilV2.expire_all_user_tree_cache()
class FamilyMixin:
__parents = None
......@@ -113,11 +131,8 @@ class FamilyMixin:
return self.get_ancestor(with_self=False)
def get_ancestor(self, with_self=False):
parents = self.parents
if with_self:
parents = list(parents)
parents.append(self)
return parents
ancestor_keys = self.get_ancestor_keys(with_self=with_self)
return self.__class__.objects.filter(key__in=ancestor_keys)
@property
def parent(self):
......@@ -155,9 +170,10 @@ class FamilyMixin:
children = self.get_all_children()
return [*tuple(ancestor), self, *tuple(children)]
def get_ancestor_keys(self, with_self=False):
@classmethod
def get_nodes_ancestor_keys_by_key(cls, key, with_self=False):
parent_keys = []
key_list = self.key.split(":")
key_list = key.split(":")
if not with_self:
key_list.pop()
for i in range(len(key_list)):
......@@ -165,6 +181,11 @@ class FamilyMixin:
key_list.pop()
return parent_keys
def get_ancestor_keys(self, with_self=False):
return self.__class__.get_nodes_ancestor_keys_by_key(
self.key, with_self=with_self
)
def is_children(self, other):
pattern = r'^{0}:[0-9]+$'.format(self.key)
return re.match(pattern, other.key)
......@@ -398,24 +419,13 @@ class Node(OrgModelMixin, SomeNodesMixin, TreeMixin, FamilyMixin, FullValueMixin
def level(self):
return len(self.key.split(':'))
@staticmethod
def refresh_user_tree_cache():
"""
当节点-节点关系,节点-资产关系发生变化时,应该刷新用户授权树缓存
:return:
"""
from perms.utils.asset_permission import AssetPermissionUtilV2
AssetPermissionUtilV2.expire_all_user_tree_cache()
@classmethod
def refresh_nodes(cls):
cls.refresh_tree()
cls.refresh_user_tree_cache()
@classmethod
def refresh_assets(cls):
cls.refresh_node_assets()
cls.refresh_user_tree_cache()
def as_tree_node(self):
from common.tree import TreeNode
......
......@@ -384,6 +384,15 @@ def get_push_linux_system_user_tasks(system_user):
),
}
},
{
'name': 'Add group {}'.format(system_user.username),
'action': {
'module': 'group',
'args': 'name={} state=present'.format(
system_user.username,
),
}
},
{
'name': 'Check home dir exists',
'action': {
......
......@@ -74,7 +74,6 @@ function initNodeTree(options) {
if (options.showAssets) {
treeUrl = setUrlParam(treeUrl, 'assets', '1')
}
var asyncTreeUrl = setUrlParam(treeUrl, 'refresh', '0');
var setting = {
view: {
dblClickExpand: false,
......@@ -87,7 +86,7 @@ function initNodeTree(options) {
},
async: {
enable: true,
url: asyncTreeUrl,
url: treeUrl,
autoParam: ["id=key", "name=n", "level=lv"],
type: 'get'
},
......@@ -115,9 +114,15 @@ function initNodeTree(options) {
$.get(treeUrl, function (data, status) {
zTree = $.fn.zTree.init($("#nodeTree"), setting, data);
rootNodeAddDom(zTree, function () {
treeUrl = setUrlParam(treeUrl, 'refresh', '1');
initNodeTree(options);
treeUrl = setUrlParam(treeUrl, 'refresh', '0');
const url = '{% url 'api-assets:refresh-nodes-cache' %}';
requestApi({
url: url,
method: 'GET',
flash_message: false,
success: function () {
initNodeTree(options);
}
});
});
inited = true;
});
......
......@@ -85,8 +85,8 @@ urlpatterns = [
api.RefreshNodeHardwareInfoApi.as_view(), name='node-refresh-hardware-info'),
path('nodes/<uuid:pk>/test-connective/',
api.TestNodeConnectiveApi.as_view(), name='node-test-connective'),
path('nodes/refresh-assets-amount/',
api.RefreshAssetsAmount.as_view(), name='refresh-assets-amount'),
path('nodes/cache/', api.RefreshNodesCacheApi.as_view(), name='refresh-nodes-cache'),
path('gateways/<uuid:pk>/test-connective/',
api.GatewayTestConnectionApi.as_view(), name='test-gateway-connective'),
......
......@@ -70,7 +70,6 @@ class TreeService(Tree):
@classmethod
@timeit
def new(cls):
print("Call new")
from .models import Node
from orgs.utils import tmp_to_root_org
......@@ -91,17 +90,14 @@ class TreeService(Tree):
t.start()
def init_assets(self):
from orgs.utils import get_current_org, set_to_root_org
origin_org = get_current_org()
set_to_root_org()
queryset = Asset.objects.all().valid().values_list('id', 'nodes__key')
if origin_org:
origin_org.change_to()
for asset_id, key in queryset:
if not key:
continue
self.nodes_assets_map[key].add(asset_id)
from orgs.utils import tmp_to_root_org
self.all_nodes_assets_map = {}
with tmp_to_root_org():
queryset = Asset.objects.all().values_list('id', 'nodes__key')
for asset_id, key in queryset:
if not key:
continue
self.nodes_assets_map[key].add(asset_id)
def all_children(self, nid, with_self=True, deep=False):
children_ids = self.expand_tree(nid)
......
# Generated by Django 2.1.7 on 2019-09-11 11:07
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('perms', '0007_remove_assetpermission_actions'),
]
operations = [
migrations.RemoveField(
model_name='nodepermission',
name='node',
),
migrations.RemoveField(
model_name='nodepermission',
name='system_user',
),
migrations.RemoveField(
model_name='nodepermission',
name='user_group',
),
migrations.AlterModelOptions(
name='assetpermission',
options={'ordering': ('name',), 'verbose_name': 'Asset permission'},
),
migrations.DeleteModel(
name='NodePermission',
),
]
......@@ -13,7 +13,7 @@ from .base import BasePermission
__all__ = [
'AssetPermission', 'NodePermission', 'Action',
'AssetPermission', 'Action',
]
......@@ -78,12 +78,12 @@ class AssetPermission(BasePermission):
assets = models.ManyToManyField('assets.Asset', related_name='granted_by_permissions', blank=True, verbose_name=_("Asset"))
nodes = models.ManyToManyField('assets.Node', related_name='granted_by_permissions', blank=True, verbose_name=_("Nodes"))
system_users = models.ManyToManyField('assets.SystemUser', related_name='granted_by_permissions', verbose_name=_("System user"))
# actions = models.ManyToManyField(Action, related_name='permissions', blank=True, verbose_name=_('Action'))
actions = models.IntegerField(choices=Action.DB_CHOICES, default=Action.ALL, verbose_name=_("Actions"))
class Meta:
unique_together = [('org_id', 'name')]
verbose_name = _("Asset permission")
ordering = ('name',)
@classmethod
def get_queryset_with_prefetch(cls):
......@@ -106,21 +106,3 @@ class AssetPermission(BasePermission):
args = reduce(lambda x, y: x | y, args)
assets = Asset.objects.filter(args).distinct()
return assets
class NodePermission(OrgModelMixin):
id = models.UUIDField(default=uuid.uuid4, primary_key=True)
node = models.ForeignKey('assets.Node', on_delete=models.CASCADE, verbose_name=_("Node"))
user_group = models.ForeignKey('users.UserGroup', on_delete=models.CASCADE, verbose_name=_("User group"))
system_user = models.ForeignKey('assets.SystemUser', on_delete=models.CASCADE, verbose_name=_("System user"))
is_active = models.BooleanField(default=True, verbose_name=_('Active'))
date_expired = models.DateTimeField(default=date_expired_default, verbose_name=_('Date expired'))
created_by = models.CharField(max_length=128, blank=True, verbose_name=_('Created by'))
date_created = models.DateTimeField(auto_now_add=True, verbose_name=_('Date created'))
comment = models.TextField(verbose_name=_('Comment'), blank=True)
def __str__(self):
return "{}:{}:{}".format(self.node.value, self.user_group.name, self.system_user.name)
class Meta:
verbose_name = _("Asset permission")
This source diff could not be displayed because it is too large. You can view the blob instead.
/*!
* elFinder - file manager for web
* Version 2.1.42 (2018-08-29)
* Version 2.1.50 (2019-08-20)
* http://elfinder.org
*
* Copyright 2009-2018, Studio 42
* Copyright 2009-2019, Studio 42
* Licensed under a 3-clauses BSD license
*/
......@@ -13,7 +13,7 @@
/******************************************************************/
/********************** COMMAND "RESIZE" ****************************/
.elfinder-dialog-resize {
.elfinder-resize-container {
margin-top: .3em;
}
......@@ -179,7 +179,17 @@
margin-left: -5px;
}
.elfinder-resize-spinner {
.elfinder-dialog.elfinder-dialog-resize .ui-resizable-e {
width: 10px;
height: 100%;
}
.elfinder-dialog.elfinder-dialog-resize .ui-resizable-s {
width: 100%;
height: 10px;
}
.elfinder-resize-loading {
position: absolute;
width: 200px;
height: 30px;
......@@ -206,55 +216,55 @@
border: 1px solid transparent;
}
.elfinder-dialog .elfinder-dialog-resize .elfinder-resize-whctrls {
.elfinder-dialog-resize .elfinder-resize-whctrls {
margin: -20px 5px 0 5px;
}
.elfinder-ltr .elfinder-dialog .elfinder-dialog-resize .elfinder-resize-whctrls {
.elfinder-ltr .elfinder-dialog-resize .elfinder-resize-whctrls {
float: right;
}
.elfinder-rtl .elfinder-dialog .elfinder-dialog-resize .elfinder-resize-whctrls {
.elfinder-rtl .elfinder-dialog-resize .elfinder-resize-whctrls {
float: left;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-e,
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-w {
.elfinder-dialog-resize .ui-resizable-e,
.elfinder-dialog-resize .ui-resizable-w {
height: 100%;
width: 10px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-s,
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-n {
.elfinder-dialog-resize .ui-resizable-s,
.elfinder-dialog-resize .ui-resizable-n {
width: 100%;
height: 10px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-e {
.elfinder-dialog-resize .ui-resizable-e {
margin-right: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-w {
.elfinder-dialog-resize .ui-resizable-w {
margin-left: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-s {
.elfinder-dialog-resize .ui-resizable-s {
margin-bottom: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-n {
.elfinder-dialog-resize .ui-resizable-n {
margin-top: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-se,
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-sw,
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-ne,
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-nw {
.elfinder-dialog-resize .ui-resizable-se,
.elfinder-dialog-resize .ui-resizable-sw,
.elfinder-dialog-resize .ui-resizable-ne,
.elfinder-dialog-resize .ui-resizable-nw {
width: 10px;
height: 10px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-se {
.elfinder-dialog-resize .ui-resizable-se {
background: transparent;
bottom: 0;
right: 0;
......@@ -262,40 +272,40 @@
margin-bottom: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-sw {
.elfinder-dialog-resize .ui-resizable-sw {
margin-left: -7px;
margin-bottom: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-ne {
.elfinder-dialog-resize .ui-resizable-ne {
margin-right: -7px;
margin-top: -7px;
}
.elfinder-dialog .elfinder-dialog-resize .ui-resizable-nw {
.elfinder-dialog-resize .ui-resizable-nw {
margin-left: -7px;
margin-top: -7px;
}
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-s,
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-n {
.elfinder-touch .elfinder-dialog-resize .ui-resizable-s,
.elfinder-touch .elfinder-dialog-resize .ui-resizable-n {
height: 20px;
}
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-e,
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-w {
.elfinder-touch .elfinder-dialog-resize .ui-resizable-e,
.elfinder-touch .elfinder-dialog-resize .ui-resizable-w {
width: 20px;
}
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-se,
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-sw,
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-ne,
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .ui-resizable-nw {
.elfinder-touch .elfinder-dialog-resize .ui-resizable-se,
.elfinder-touch .elfinder-dialog-resize .ui-resizable-sw,
.elfinder-touch .elfinder-dialog-resize .ui-resizable-ne,
.elfinder-touch .elfinder-dialog-resize .ui-resizable-nw {
width: 30px;
height: 30px;
}
.elfinder-touch .elfinder-dialog .elfinder-dialog-resize .elfinder-resize-preview .ui-resizable-se {
.elfinder-touch .elfinder-dialog-resize .elfinder-resize-preview .ui-resizable-se {
width: 30px;
height: 30px;
margin: 0;
......@@ -343,7 +353,7 @@
font-size: 90%;
}
.ui-widget-content .elfinder-dialog-resize .elfinder-resize-rotate-slider {
.ui-widget-content .elfinder-resize-container .elfinder-resize-rotate-slider {
width: 195px;
margin: 10px 7px;
background-color: #fafafa;
......@@ -362,7 +372,7 @@
/* edit text file textarea */
.elfinder-file-edit {
width: 100%;
height: 99%;
height: 100%;
margin: 0;
padding: 2px;
border: 1px solid #ccc;
......@@ -375,18 +385,18 @@
}
/* edit area */
.ui-dialog .ui-dialog-content.elfinder-edit-editor {
.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor {
background-color: #fff;
}
.ui-dialog .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor {
.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor {
width: 100%;
height: 300px;
max-height: 100%;
text-align: center;
}
.ui-dialog .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor * {
.elfinder-dialog-edit .ui-dialog-content.elfinder-edit-editor .elfinder-edit-imageeditor * {
-webkit-user-select: none;
-moz-user-select: none;
-khtml-user-select: none;
......@@ -401,17 +411,25 @@
display: none;
}
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-crop .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-flip .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-rotate .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-draw .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-shape .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-icon .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-text .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-mask .tui-image-editor-wrap,
.elfinder-edit-imageeditor .tui-image-editor-main.tui-image-editor-menu-filter .tui-image-editor-wrap {
height: calc(100% - 150px);
}
/* bottom margen for softkeyboard on fullscreen mode */
.elfinder-touch.elfinder-fullscreen-native textarea.elfinder-file-edit {
padding-bottom: 20em;
margin-bottom: -20em;
}
.std42-dialog .ui-dialog-titlebar select {
font-size: 12px;
}
.std42-dialog .ui-dialog-buttonpane .elfinder-dialog-confirm-encoding {
.elfinder-dialog-edit .ui-dialog-buttonpane .elfinder-dialog-confirm-encoding {
font-size: 12px;
}
......@@ -424,9 +442,31 @@
padding-top: 6px;
}
.ui-dialog-buttonpane .ui-icon {
.ui-dialog-buttonpane .ui-dialog-buttonset.elfinder-edit-extras select {
font-size: 12px;
margin-top: 8px;
}
.elfinder-dialog-edit .ui-dialog-buttonpane .ui-icon {
cursor: pointer;
}
.elfinder-edit-spinner {
position: absolute;
top: 50%;
text-align: center;
width: 100%;
font-size: 16pt;
}
.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner,
.elfinder-dialog-edit .elfinder-edit-spinner .elfinder-spinner-text {
float: none;
}
.elfinder-dialog-edit .elfinder-toast > div {
width: 280px;
}
.elfinder-edit-onlineconvert-button {
display: inline-block;
......@@ -508,6 +548,10 @@ div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon {
padding: 10px;
}
.elfinder-dialog .ui-tabs .ui-tabs-nav li {
overflow: hidden;
}
.elfinder-dialog .ui-tabs .ui-tabs-nav li a {
padding: .2em .8em;
display: inline-block;
......@@ -517,7 +561,7 @@ div.elfinder-cwd-wrapper-list tr.ui-state-default td span.ui-icon {
padding: .5em .5em;
}
.elfinder-dialog .ui-tabs-selected a {
.elfinder-dialog .ui-tabs-active a {
background: inherit;
}
......@@ -694,6 +738,11 @@ ul.elfinder-help-integrations a:hover {
}
/********************** COMMAND "PREFERENCE" ****************************/
.elfinder-dialog .elfinder-preference .ui-tabs-nav {
margin-bottom: 1px;
height: auto;
}
/* fix tabs */
.elfinder-preference .ui-tabs-panel {
padding: 10px 10px 0;
......@@ -769,6 +818,52 @@ ul.elfinder-help-integrations a:hover {
margin: 0 -10px;
}
.elfinder-preference .elfinder-preference-taball .elfinder-reference-hide-taball {
display: none;
}
.elfinder-preference-theme fieldset {
margin-bottom: 10px;
}
.elfinder-preference-theme legend a {
font-size: 1.8em;
text-decoration: none;
cursor: pointer;
}
.elfinder-preference-theme dt {
width: 20%;
word-break: break-all;
}
.elfinder-preference-theme dt:after {
content: " :";
}
.elfinder-preference-theme dd {
margin-inline-start: 20%;
}
.elfinder-preference img.elfinder-preference-theme-image {
display: block;
margin-left: auto;
margin-right: auto;
max-width: 90%;
max-height: 200px;
cursor: pointer;
}
.elfinder-preference-theme-btn {
text-align: center;
}
.elfinder-preference-theme button.elfinder-preference-theme-default {
display: inline;
margin: 0 10px;
font-size: 8pt;
}
/********************** COMMAND "INFO" ****************************/
.elfinder-rtl .elfinder-info-title .elfinder-cwd-icon:before {
right: 33px;
......@@ -849,8 +944,8 @@ ul.elfinder-help-integrations a:hover {
z-index: 100;
}
/* common container */
.elfinder {
/* base container */
div.elfinder {
padding: 0;
position: relative;
display: block;
......@@ -1242,6 +1337,10 @@ ul.elfinder-help-integrations a:hover {
overflow: hidden;
}
.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-icon {
transform-origin: center center;
}
/* command icon in rtl/ltr enviroment */
.elfinder .elfinder-contextmenu-ltr .elfinder-contextmenu-icon {
left: 8px;
......@@ -1279,10 +1378,9 @@ ul.elfinder-help-integrations a:hover {
/* command extra icon's <a>, <span> tag */
.elfinder .elfinder-contextmenu-extra-icon a,
.elfinder .elfinder-contextmenu-extra-icon span {
display: inline-block;
position: relative;
width: 100%;
height: 100%;
padding: 20px;
margin: 0;
color: transparent !important;
text-decoration: none;
......@@ -1303,8 +1401,8 @@ ul.elfinder-help-integrations a:hover {
}
/* for CSS style priority to ui-state-disabled - "background-image: none" */
.elfinder .elfinder-button-icon.ui-state-disabled {
background-image: url('../img/toolbar.png') !important;
.elfinder .elfinder-contextmenu-item .elfinder-button-icon.ui-state-disabled {
background-image: url('../img/toolbar.png');
}
/* File: /css/cwd.css */
......@@ -1385,10 +1483,15 @@ ul.elfinder-help-integrations a:hover {
.elfinder-cwd-wrapper-empty .elfinder-cwd:after {
display: block;
position: absolute;
top: 40%;
left: 0;
right: 0;
margin-top: -2em;
height: auto;
width: 90%;
width: calc(100% - 20px);
position: absolute;
top: 50%;
left: 50%;
-ms-transform: translateY(-50%) translateX(-50%);
-webkit-transform: translateY(-50%) translateX(-50%);
transform: translateY(-50%) translateX(-50%);
line-height: 1.5em;
text-align: center;
white-space: pre-wrap;
......@@ -1805,7 +1908,7 @@ ul.elfinder-help-integrations a:hover {
.elfinder-cwd .elfinder-navbar-root-zip.elfinder-droppable-active .elfinder-cwd-icon,
.elfinder-cwd-view-list .elfinder-navbar-root-zip td .elfinder-cwd-icon {
background-image: url("../img/volume_icon_zip.svg");
background-image: url("../img/volume_icon_zip.svg") \9;
background-image: url("../img/volume_icon_zip.png") \9;
background-position: 0 0;
background-size: contain;
}
......@@ -1842,6 +1945,7 @@ ul.elfinder-help-integrations a:hover {
border-radius: 4px;
font-family: Verdana;
font-size: 10px;
line-height: 1.3em;
-webkit-transform: scale(0.9);
-moz-transform: scale(0.9);
-ms-transform: scale(0.9);
......@@ -1919,6 +2023,12 @@ ul.elfinder-help-integrations a:hover {
transform: scale(.6);
}
/* thumbnail image and draging icon */
.elfinder-cwd-icon.elfinder-cwd-icon-drag {
width: 48px;
height: 48px;
}
/* thumbnail image and draging icon overlay none */
.elfinder-cwd-icon.elfinder-cwd-icon-drag:before,
.elfinder-cwd-icon.elfinder-cwd-icon-drag:after,
......@@ -2009,10 +2119,6 @@ ul.elfinder-help-integrations a:hover {
.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-excel-template-macroEnabled-12:after,
.elfinder-cwd-icon-vnd-ms-excel:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet:after,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-sheet:after,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-spreadsheetml-template,
......@@ -2020,6 +2126,13 @@ ul.elfinder-help-integrations a:hover {
background-position: 0 -1450px
}
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-spreadsheet:after {
background-position: 0 -1700px
}
.elfinder-cwd-icon-vnd-ms-powerpoint,
.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-powerpoint-addin-macroEnabled-12:after,
......@@ -2032,10 +2145,6 @@ ul.elfinder-help-integrations a:hover {
.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12,
.elfinder-cwd-icon-vnd-ms-powerpoint-template-macroEnabled-12:after,
.elfinder-cwd-icon-vnd-ms-powerpoint:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation:after,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-presentation:after,
.elfinder-cwd-icon-vnd-openxmlformats-officedocument-presentationml-slide,
......@@ -2047,6 +2156,13 @@ ul.elfinder-help-integrations a:hover {
background-position: 0 -1400px
}
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-presentation:after {
background-position: 0 -1650px
}
.elfinder-cwd-icon-msword,
.elfinder-cwd-icon-msword:after,
.elfinder-cwd-icon-vnd-ms-word,
......@@ -2062,8 +2178,22 @@ ul.elfinder-help-integrations a:hover {
background-position: 0 -1500px
}
.elfinder-cwd-icon-vnd-oasis-opendocument-text,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-master:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-web:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text:after {
background-position: 0 -1750px
}
.elfinder-cwd-icon-vnd-ms-office,
.elfinder-cwd-icon-vnd-ms-office:after,
.elfinder-cwd-icon-vnd-ms-office:after {
background-position: 0 -500px
}
.elfinder-cwd-icon-vnd-oasis-opendocument-chart,
.elfinder-cwd-icon-vnd-oasis-opendocument-chart:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-database,
......@@ -2076,17 +2206,9 @@ ul.elfinder-help-integrations a:hover {
.elfinder-cwd-icon-vnd-oasis-opendocument-graphics:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-image,
.elfinder-cwd-icon-vnd-oasis-opendocument-image:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-master,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-master:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-template,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-template:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-web,
.elfinder-cwd-icon-vnd-oasis-opendocument-text-web:after,
.elfinder-cwd-icon-vnd-oasis-opendocument-text:after,
.elfinder-cwd-icon-vnd-openofficeorg-extension,
.elfinder-cwd-icon-vnd-openofficeorg-extension:after {
background-position: 0 -500px
background-position: 0 -1600px
}
.elfinder-cwd-icon-html:after,
......@@ -2416,20 +2538,41 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
filter: Alpha(Opacity=60);
}
.elfinder-cwd-view-list .elfinder-perms {
bottom: -4px;
}
.elfinder-cwd-view-list .elfinder-lock {
top: 0px;
}
.elfinder-cwd-view-list .elfinder-symlink {
bottom: -4px;
}
/* markers in ltr/rtl enviroment */
.elfinder-ltr .elfinder-cwd-view-list .elfinder-perms {
left: 8px;
bottom: -4px;
}
.elfinder-rtl .elfinder-cwd-view-list .elfinder-perms {
right: -8px;
}
.elfinder-ltr .elfinder-cwd-view-list .elfinder-lock {
left: 10px;
top: 0px;
}
.elfinder-rtl .elfinder-cwd-view-list .elfinder-lock {
right: -10px;
}
.elfinder-ltr .elfinder-cwd-view-list .elfinder-symlink {
left: -7px;
bottom: -4px;
}
.elfinder-rtl .elfinder-cwd-view-list .elfinder-symlink {
right: 7px;
}
/* file icon */
......@@ -2584,12 +2727,6 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
border-left: 0 solid transparent;
border-top: 0 solid transparent;
border-right: 0 solid transparent;
-moz-border-radius-bottomleft: 0;
-webkit-border-bottom-left-radius: 0;
border-bottom-left-radius: 0;
-moz-border-radius-bottomright: 0;
-webkit-border-bottom-right-radius: 0;
border-bottom-right-radius: 0;
font-weight: normal;
padding: .2em 1em;
}
......@@ -2705,6 +2842,18 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
vertical-align: middle;
}
.elfinder-ltr .elfinder-spinner,
.elfinder-ltr .elfinder-spinner-text {
float: left;
}
.elfinder-rtl .elfinder-spinner,
.elfinder-rtl .elfinder-spinner-text {
float: right;
}
/* resize handle for touch devices */
.elfinder-touch .std42-dialog.ui-dialog:not(ui-resizable-disabled) .ui-resizable-se {
width: 12px;
......@@ -2810,8 +2959,29 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
padding-right: 56px;
}
.elfinder-dialog-error .elfinder-err-var {
word-break: break-all;
}
/*********************** NOTIFY DIALOG **************************/
.elfinder-dialog-notify {
top : 36px;
width : 280px;
}
.elfinder-ltr .elfinder-dialog-notify {
right : 12px;
}
.elfinder-rtl .elfinder-dialog-notify {
left : 12px;
}
.elfinder-dialog-notify .ui-dialog-titlebar {
height: 5px;
}
.elfinder-dialog-notify .ui-dialog-titlebar-close {
display: none;
}
......@@ -2998,18 +3168,27 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
}
.elfinder-info-tb td.elfinder-info-hash {
word-break: break-word;
max-width: 32em;
display: inline-block;
word-break: break-all;
max-width: 32ch;
}
.elfinder-info-tb tr td:first-child {
.elfinder-ltr .elfinder-info-tb tr td:first-child {
text-align: right;
}
.elfinder-info-tb span {
.elfinder-ltr .elfinder-info-tb span {
float: left;
}
.elfinder-rtl .elfinder-info-tb tr td:first-child {
text-align: left;
}
.elfinder-rtl .elfinder-info-tb span {
float: right;
}
.elfinder-info-tb a {
outline: none;
text-decoration: underline;
......@@ -3019,14 +3198,6 @@ tr.elfinder-cwd-file td .elfinder-cwd-select {
text-decoration: none;
}
.elfinder-info-spinner {
width: 14px;
height: 14px;
float: left;
background: url("../img/spinner-mini.gif") center center no-repeat;
margin: 0 5px;
}
.elfinder-netmount-tb {
margin: 0 auto;
}
......@@ -3150,12 +3321,6 @@ button.elfinder-info-button {
display: none;
}
/*********************** EDIT DIALOG **************************/
.ui-dialog-titlebar select.elfinder-edit-changed {
border-bottom: 1px solid #13ae10;
}
/* File: /css/fonts.css */
.elfinder-font-mono {
font-family: "Ricty Diminished", "Myrica M", Consolas, "Courier New", Courier, Monaco, monospace;
......@@ -3212,6 +3377,7 @@ button.elfinder-info-button {
.elfinder-quicklook-title {
font-size: .7em;
font-weight: normal;
}
.elfinder-quicklook-info-data {
......@@ -3250,6 +3416,7 @@ button.elfinder-info-button {
/* container */
.elfinder .elfinder-navbar {
/*box-sizing: border-box;*/
width: 230px;
padding: 3px 5px;
background-image: none;
......@@ -3500,23 +3667,19 @@ button.elfinder-info-button {
}
/* spinner */
.elfinder-navbar-spinner {
width: 14px;
height: 14px;
.elfinder-tree .elfinder-spinner {
position: absolute;
display: block;
top: 50%;
margin-top: -7px;
background: url("../img/spinner-mini.gif") center center no-repeat;
margin: -7px 0 0;
}
/* spinner ltr/rtl enviroment */
.elfinder-ltr .elfinder-navbar-spinner {
.elfinder-ltr .elfinder-tree .elfinder-spinner {
left: 0;
margin-left: -2px;
}
.elfinder-rtl .elfinder-navbar-spinner {
.elfinder-rtl .elfinder-tree .elfinder-spinner {
right: 0;
margin-right: -2px;
}
......@@ -3778,7 +3941,8 @@ button.elfinder-info-button {
-moz-border-radius-topright: 7px;
-webkit-border-top-right-radius: 7px;
border-top-right-radius: 7px;
cursor: move;
border: none;
line-height: 1.2;
}
.elfinder-navdock .elfinder-quicklook-titlebar {
......@@ -3797,10 +3961,9 @@ button.elfinder-info-button {
/* window title */
.elfinder-quicklook-title {
color: #fff;
display: inline-block;
white-space: nowrap;
overflow: hidden;
padding: 2px 0;
}
.elfinder-touch .elfinder-quicklook-title {
......@@ -3812,8 +3975,9 @@ button.elfinder-info-button {
position: absolute;
left: 4px;
top: 50%;
margin-top: -9px;
margin-top: -8px;
height: 16px;
border: none;
}
.elfinder-touch .elfinder-quicklook-titlebar-icon {
height: 22px;
......@@ -3842,13 +4006,13 @@ button.elfinder-info-button {
margin-top: -5px;
}
.elfinder-quicklook-titlebar-icon.elfinder-platformWin {
.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right {
left: auto;
right: 4px;
direction: rtl;
}
.elfinder-quicklook-titlebar-icon.elfinder-platformWin .ui-icon {
.elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon {
margin: -9px 0px 0px 3px;
}
......@@ -3862,7 +4026,7 @@ button.elfinder-info-button {
margin-right: 10px;
}
.elfinder-touch .elfinder-quicklook-titlebar-icon.elfinder-platformWin .ui-icon {
.elfinder-touch .elfinder-quicklook-titlebar-icon.elfinder-titlebar-button-right .ui-icon {
margin-left: 10px;
}
......@@ -3932,6 +4096,7 @@ button.elfinder-info-button {
/* other data in info */
.elfinder-quicklook-info-data {
clear: both;
padding-bottom: .2em;
color: #fff;
}
......@@ -4086,7 +4251,7 @@ button.elfinder-info-button {
height: 100%;
background: #fff;
color: #222;
font-size: 1.5ex;
font-size: 90%;
overflow: auto;
-webkit-overflow-scrolling: touch
}
......@@ -4412,6 +4577,16 @@ embed.elfinder-quicklook-preview-audio {
color: #046580;
}
.elfinder .elfinder-toast > .toast-warning button.ui-button {
background-color: #dd8c1a;
color: #FFF;
}
.elfinder .elfinder-toast > .toast-warning button.ui-button.ui-state-hover {
background-color: #e7ae5e;
color: #422a07;
}
/* File: /css/toolbar.css */
/*********************************************/
/* TOOLBAR STYLES */
......@@ -4432,9 +4607,7 @@ embed.elfinder-quicklook-preview-audio {
float: left;
background: transparent;
padding: 0;
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
overflow: hidden;
}
/*.elfinder-buttonset:first-child { margin:0; }*/
......@@ -4456,6 +4629,10 @@ embed.elfinder-quicklook-preview-audio {
cursor: default;
}
.elfinder-rtl .elfinder-button {
float: right;
}
.elfinder-touch .elfinder-button {
min-width: 20px;
height: 20px;
......@@ -4465,24 +4642,6 @@ embed.elfinder-quicklook-preview-audio {
cursor: pointer;
}
.elfinder-button:first-child {
-moz-border-radius-topleft: 4px;
-webkit-border-top-left-radius: 4px;
border-top-left-radius: 4px;
-moz-border-radius-bottomleft: 4px;
-webkit-border-bottom-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.elfinder-button:last-child {
-moz-border-radius-topright: 4px;
-webkit-border-top-right-radius: 4px;
border-top-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
-webkit-border-bottom-right-radius: 4px;
border-bottom-right-radius: 4px;
}
/* separator between buttons, required for berder between button with ui color */
.elfinder-toolbar-button-separator {
float: left;
......@@ -4494,6 +4653,10 @@ embed.elfinder-quicklook-preview-audio {
width: 0;
}
.elfinder-rtl .elfinder-toolbar-button-separator {
float: right;
}
.elfinder-touch .elfinder-toolbar-button-separator {
height: 28px;
}
......@@ -4533,16 +4696,32 @@ embed.elfinder-quicklook-preview-audio {
}
.elfinder-touch .elfinder-button-icon {
-moz-transform-origin: top left;
-moz-transform: scale(1.25);
zoom: 1.25;
transform: scale(1.25);
transform-origin: top left;
}
.elfinder-rtl.elfinder-touch .elfinder-button-icon {
transform-origin: top right;
}
.elfinder-touch .elfinder-button-text {
-moz-transform: translate(3px, 3px);
transform: translate(3px, 3px);
top: -5px;
}
.elfinder-rtl.elfinder-touch .elfinder-button-text {
transform: translate(-3px, 3px);
}
.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon {
transform: scale(2);
transform-origin: 12px 8px;
}
.elfinder-rtl.elfinder-touch .elfinder-button-icon.elfinder-contextmenu-extra-icon {
transform-origin: 4px 8px;
}
/* buttons icons */
.elfinder-button-icon-home {
background-position: 0 0;
......@@ -4704,10 +4883,6 @@ embed.elfinder-quicklook-preview-audio {
background-position: 0 -736px;
}
.elfinder-button-icon-opendir {
background-position: 0 -32px;
}
.elfinder-button-icon-menu {
background-position: 0 -752px;
}
......@@ -4764,6 +4939,41 @@ embed.elfinder-quicklook-preview-audio {
background-position: 0 -992px;
}
.elfinder-button-icon-text {
background-position: 0 -1008px;
}
/* button icon mirroring for rtl */
.elfinder-rtl .elfinder-button-icon-back,
.elfinder-rtl .elfinder-button-icon-forward,
.elfinder-rtl .elfinder-button-icon-getfile,
.elfinder-rtl .elfinder-button-icon-help,
.elfinder-rtl .elfinder-button-icon-redo,
.elfinder-rtl .elfinder-button-icon-rename,
.elfinder-rtl .elfinder-button-icon-search,
.elfinder-rtl .elfinder-button-icon-undo,
.elfinder-rtl .elfinder-button-icon-view-list,
.elfinder-rtl .ui-icon-search {
-ms-transform: scale(-1, 1);
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.elfinder-rtl.elfinder-touch .elfinder-button-icon-back,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-forward,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-getfile,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-help,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-redo,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-rename,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-search,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-undo,
.elfinder-rtl.elfinder-touch .elfinder-button-icon-view-list,
.elfinder-rtl.elfinder-touch .ui-icon-search {
-ms-transform: scale(-1.25, 1.25) translateX(16px);
-webkit-transform: scale(-1.25, 1.25) translateX(16px);
transform: scale(-1.25, 1.25) translateX(16px);
}
/* button with dropdown menu*/
.elfinder .elfinder-menubutton {
overflow: visible;
......@@ -4852,7 +5062,6 @@ embed.elfinder-quicklook-preview-audio {
margin: 1px 4px;
height: auto;
min-height: 26px;
float: right;
width: 70px;
overflow: visible;
}
......@@ -4910,6 +5119,10 @@ embed.elfinder-quicklook-preview-audio {
margin-left: 10px;
}
.elfinder-rtl .ui-controlgroup > .ui-controlgroup-item {
float: right;
}
/* search text field */
.elfinder-button-search input[type=text] {
box-sizing: border-box;
......
This source diff could not be displayed because it is too large. You can view the blob instead.
/*! jQuery UI - v1.12.1 - 2016-09-14
* http://jqueryui.com
* Includes: core.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, draggable.css, resizable.css, progressbar.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css
* To view and modify this theme, visit http://jqueryui.com/themeroller/?bgShadowXPos=&bgOverlayXPos=&bgErrorXPos=&bgHighlightXPos=&bgContentXPos=&bgHeaderXPos=&bgActiveXPos=&bgHoverXPos=&bgDefaultXPos=&bgShadowYPos=&bgOverlayYPos=&bgErrorYPos=&bgHighlightYPos=&bgContentYPos=&bgHeaderYPos=&bgActiveYPos=&bgHoverYPos=&bgDefaultYPos=&bgShadowRepeat=&bgOverlayRepeat=&bgErrorRepeat=&bgHighlightRepeat=&bgContentRepeat=&bgHeaderRepeat=&bgActiveRepeat=&bgHoverRepeat=&bgDefaultRepeat=&iconsHover=url(%22images%2Fui-icons_555555_256x240.png%22)&iconsHighlight=url(%22images%2Fui-icons_777620_256x240.png%22)&iconsHeader=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsError=url(%22images%2Fui-icons_cc0000_256x240.png%22)&iconsDefault=url(%22images%2Fui-icons_777777_256x240.png%22)&iconsContent=url(%22images%2Fui-icons_444444_256x240.png%22)&iconsActive=url(%22images%2Fui-icons_ffffff_256x240.png%22)&bgImgUrlShadow=&bgImgUrlOverlay=&bgImgUrlHover=&bgImgUrlHighlight=&bgImgUrlHeader=&bgImgUrlError=&bgImgUrlDefault=&bgImgUrlContent=&bgImgUrlActive=&opacityFilterShadow=Alpha(Opacity%3D30)&opacityFilterOverlay=Alpha(Opacity%3D30)&opacityShadowPerc=30&opacityOverlayPerc=30&iconColorHover=%23555555&iconColorHighlight=%23777620&iconColorHeader=%23444444&iconColorError=%23cc0000&iconColorDefault=%23777777&iconColorContent=%23444444&iconColorActive=%23ffffff&bgImgOpacityShadow=0&bgImgOpacityOverlay=0&bgImgOpacityError=95&bgImgOpacityHighlight=55&bgImgOpacityContent=75&bgImgOpacityHeader=75&bgImgOpacityActive=65&bgImgOpacityHover=75&bgImgOpacityDefault=75&bgTextureShadow=flat&bgTextureOverlay=flat&bgTextureError=flat&bgTextureHighlight=flat&bgTextureContent=flat&bgTextureHeader=flat&bgTextureActive=flat&bgTextureHover=flat&bgTextureDefault=flat&cornerRadius=3px&fwDefault=normal&ffDefault=Arial%2CHelvetica%2Csans-serif&fsDefault=1em&cornerRadiusShadow=8px&thicknessShadow=5px&offsetLeftShadow=0px&offsetTopShadow=0px&opacityShadow=.3&bgColorShadow=%23666666&opacityOverlay=.3&bgColorOverlay=%23aaaaaa&fcError=%235f3f3f&borderColorError=%23f1a899&bgColorError=%23fddfdf&fcHighlight=%23777620&borderColorHighlight=%23dad55e&bgColorHighlight=%23fffa90&fcContent=%23333333&borderColorContent=%23dddddd&bgColorContent=%23ffffff&fcHeader=%23333333&borderColorHeader=%23dddddd&bgColorHeader=%23e9e9e9&fcActive=%23ffffff&borderColorActive=%23003eff&bgColorActive=%23007fff&fcHover=%232b2b2b&borderColorHover=%23cccccc&bgColorHover=%23ededed&fcDefault=%23454545&borderColorDefault=%23c5c5c5&bgColorDefault=%23f6f6f6
* Copyright jQuery Foundation and other contributors; Licensed MIT */
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin:2px 0 0 0;padding:.5em .5em .5em .7em;font-size:100%}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0}.ui-button{padding:.4em 1em;display:inline-block;position:relative;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2em;box-sizing:border-box;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-button-icon-only{text-indent:0}.ui-button-icon-only .ui-icon{position:absolute;top:50%;left:50%;margin-top:-8px;margin-left:-8px}.ui-button.ui-icon-notext .ui-icon{padding:0;width:2.1em;height:2.1em;text-indent:-9999px;white-space:nowrap}input.ui-button.ui-icon-notext .ui-icon{width:auto;height:auto;text-indent:0;white-space:normal;padding:.4em 1em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-controlgroup{vertical-align:middle;display:inline-block}.ui-controlgroup > .ui-controlgroup-item{float:left;margin-left:0;margin-right:0}.ui-controlgroup > .ui-controlgroup-item:focus,.ui-controlgroup > .ui-controlgroup-item.ui-visual-focus{z-index:9999}.ui-controlgroup-vertical > .ui-controlgroup-item{display:block;float:none;width:100%;margin-top:0;margin-bottom:0;text-align:left}.ui-controlgroup-vertical .ui-controlgroup-item{box-sizing:border-box}.ui-controlgroup .ui-controlgroup-label{padding:.4em 1em}.ui-controlgroup .ui-controlgroup-label span{font-size:80%}.ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item{border-left:none}.ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item{border-top:none}.ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content{border-right:none}.ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content{border-bottom:none}.ui-controlgroup-vertical .ui-spinner-input{width:75%;width:calc( 100% - 2.4em )}.ui-controlgroup-vertical .ui-spinner .ui-spinner-up{border-top-style:solid}.ui-checkboxradio-label .ui-icon-background{box-shadow:inset 1px 1px 1px #ccc;border-radius:.12em;border:none}.ui-checkboxradio-radio-label .ui-icon-background{width:16px;height:16px;border-radius:1em;overflow:visible;border:none}.ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,.ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon{background-image:none;width:8px;height:8px;border-width:4px;border-style:solid}.ui-checkboxradio-disabled{pointer-events:none}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:45%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker .ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat;left:.5em;top:.3em}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;outline:0}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 0;white-space:nowrap;width:90%;overflow:hidden;text-overflow:ellipsis}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:20px;margin:-10px 0 0 0;padding:1px;height:20px}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin-top:.5em;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-n{height:2px;top:0}.ui-dialog .ui-resizable-e{width:2px;right:0}.ui-dialog .ui-resizable-s{height:2px;bottom:0}.ui-dialog .ui-resizable-w{width:2px;left:0}.ui-dialog .ui-resizable-se,.ui-dialog .ui-resizable-sw,.ui-dialog .ui-resizable-ne,.ui-dialog .ui-resizable-nw{width:7px;height:7px}.ui-dialog .ui-resizable-se{right:0;bottom:0}.ui-dialog .ui-resizable-sw{left:0;bottom:0}.ui-dialog .ui-resizable-ne{right:0;top:0}.ui-dialog .ui-resizable-nw{left:0;top:0}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-draggable-handle{-ms-touch-action:none;touch-action:none}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block;-ms-touch-action:none;touch-action:none}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-progressbar .ui-progressbar-overlay{background:url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");height:100%;filter:alpha(opacity=25);opacity:0.25}.ui-progressbar-indeterminate .ui-progressbar-value{background-image:none}.ui-selectable{-ms-touch-action:none;touch-action:none}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-selectmenu-menu{padding:0;margin:0;position:absolute;top:0;left:0;display:none}.ui-selectmenu-menu .ui-menu{overflow:auto;overflow-x:hidden;padding-bottom:1px}.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup{font-size:1em;font-weight:bold;line-height:1.5;padding:2px 0.4em;margin:0.5em 0 0 0;height:auto;border:0}.ui-selectmenu-open{display:block}.ui-selectmenu-text{display:block;margin-right:20px;overflow:hidden;text-overflow:ellipsis}.ui-selectmenu-button.ui-button{text-align:left;white-space:nowrap;width:14em}.ui-selectmenu-icon.ui-icon{float:right;margin-top:0}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default;-ms-touch-action:none;touch-action:none}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider.ui-state-disabled .ui-slider-handle,.ui-slider.ui-state-disabled .ui-slider-range{filter:inherit}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-sortable-handle{-ms-touch-action:none;touch-action:none}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;color:inherit;padding:.222em 0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:2em}.ui-spinner-button{width:1.6em;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top-style:none;border-bottom-style:none;border-right-style:none}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-tabs{position:relative;padding:.2em}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom-width:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav .ui-tabs-anchor{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor{cursor:text}.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Arial,Helvetica,sans-serif;font-size:1em}.ui-widget.ui-widget-content{border:1px solid #c5c5c5}.ui-widget-content{border:1px solid #ddd;background:#fff;color:#333}.ui-widget-content a{color:#333}.ui-widget-header{border:1px solid #ddd;background:#e9e9e9;color:#333;font-weight:bold}.ui-widget-header a{color:#333}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default,.ui-button,html .ui-button.ui-state-disabled:hover,html .ui-button.ui-state-disabled:active{border:1px solid #c5c5c5;background:#f6f6f6;font-weight:normal;color:#454545}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited,a.ui-button,a:link.ui-button,a:visited.ui-button,.ui-button{color:#454545;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus,.ui-button:hover,.ui-button:focus{border:1px solid #ccc;background:#ededed;font-weight:normal;color:#2b2b2b}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited,.ui-state-focus a,.ui-state-focus a:hover,.ui-state-focus a:link,.ui-state-focus a:visited,a.ui-button:hover,a.ui-button:focus{color:#2b2b2b;text-decoration:none}.ui-visual-focus{box-shadow:0 0 3px 1px rgb(94,158,214)}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active,a.ui-button:active,.ui-button:active,.ui-button.ui-state-active:hover{border:1px solid #003eff;background:#007fff;font-weight:normal;color:#fff}.ui-icon-background,.ui-state-active .ui-icon-background{border:#003eff;background-color:#fff}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#fff;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #dad55e;background:#fffa90;color:#777620}.ui-state-checked{border:1px solid #dad55e;background:#fffa90}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#777620}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #f1a899;background:#fddfdf;color:#5f3f3f}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#5f3f3f}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#5f3f3f}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px}.ui-icon,.ui-widget-content .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-widget-header .ui-icon{background-image:url("images/ui-icons_444444_256x240.png")}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon,.ui-button:hover .ui-icon,.ui-button:focus .ui-icon{background-image:url("images/ui-icons_555555_256x240.png")}.ui-state-active .ui-icon,.ui-button:active .ui-icon{background-image:url("images/ui-icons_ffffff_256x240.png")}.ui-state-highlight .ui-icon,.ui-button .ui-state-highlight.ui-icon{background-image:url("images/ui-icons_777620_256x240.png")}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url("images/ui-icons_cc0000_256x240.png")}.ui-button .ui-icon{background-image:url("images/ui-icons_777777_256x240.png")}.ui-icon-blank{background-position:16px 16px}.ui-icon-caret-1-n{background-position:0 0}.ui-icon-caret-1-ne{background-position:-16px 0}.ui-icon-caret-1-e{background-position:-32px 0}.ui-icon-caret-1-se{background-position:-48px 0}.ui-icon-caret-1-s{background-position:-65px 0}.ui-icon-caret-1-sw{background-position:-80px 0}.ui-icon-caret-1-w{background-position:-96px 0}.ui-icon-caret-1-nw{background-position:-112px 0}.ui-icon-caret-2-n-s{background-position:-128px 0}.ui-icon-caret-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-65px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-65px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:1px -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{border-top-left-radius:3px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{border-top-right-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{border-bottom-left-radius:3px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{border-bottom-right-radius:3px}.ui-widget-overlay{background:#aaa;opacity:.003;filter:Alpha(Opacity=.3)}.ui-widget-shadow{-webkit-box-shadow:0 0 5px #666;box-shadow:0 0 5px #666}
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -48,22 +48,59 @@
}
return ext;
},
changeImageType = function(src, toMime) {
var dfd = $.Deferred();
try {
var canvas = document.createElement('canvas'),
ctx = canvas.getContext('2d'),
img = new Image(),
conv = function() {
var url = canvas.toDataURL(toMime),
mime, m;
if (m = url.match(/^data:([a-z0-9]+\/[a-z0-9.+-]+)/i)) {
mime = m[1];
} else {
mime = '';
}
if (mime.toLowerCase() === toMime.toLowerCase()) {
dfd.resolve(canvas.toDataURL(toMime), canvas);
} else {
dfd.reject();
}
};
img.src = src;
$(img).on('load', function() {
try {
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img, 0, 0);
conv();
} catch(e) {
dfd.reject();
}
}).on('error', function () {
dfd.reject();
});
return dfd;
} catch(e) {
return dfd.reject();
}
},
initImgTag = function(id, file, content, fm) {
var node = $(this).children('img:first').data('ext', getExtention(file.mime, fm)),
spnr = $('<div/>')
.css({
position: 'absolute',
top: '50%',
textAlign: 'center',
width: '100%',
fontSize: '16pt'
})
.html(fm.i18n('ntfloadimg'))
spnr = $('<div class="elfinder-edit-spinner elfinder-edit-image"/>')
.html('<span class="elfinder-spinner-text">' + fm.i18n('ntfloadimg') + '</span><span class="elfinder-spinner"/>')
.hide()
.appendTo(this);
.appendTo(this),
url;
if (!content.match(/^data:/)) {
url = fm.openUrl(file.hash);
node.attr('_src', content);
}
node.attr('id', id+'-img')
.attr('src', content)
.attr('src', url || content)
.css({'height':'', 'max-width':'100%', 'max-height':'100%', 'cursor':'pointer'})
.data('loading', function(done) {
var btns = node.closest('.elfinder-dialog').find('button,.elfinder-titlebar-button');
......@@ -191,7 +228,7 @@
src += '&exit='+encodeURIComponent(myurl+'&image=0');
src += '&target='+encodeURIComponent(myurl);
src += '&title='+encodeURIComponent(file.name);
src += '&image='+encodeURIComponent(node.attr('src'));
src += '&image='+encodeURIComponent(node.attr('_src'));
opts.src = src;
opts.css = {
......@@ -289,13 +326,6 @@
fm.destroy();
window.close();
};
} else if (getfile === 'tinymce') {
elFinder.prototype._options.getFileCallback = function(file, fm) {
// pass selected file data to TinyMCE
parent.tinymce.activeEditor.windowManager.getParams().oninsert(file, fm);
// close popup window
parent.tinymce.activeEditor.windowManager.close();
};
}
}
......@@ -325,7 +355,9 @@
if (fm.UA.ltIE8 || fm.UA.Mobile) {
this.disabled = true;
} else {
this.opts = Object.assign({}, opts.extraOptions.tuiImgEditOpts || {}, {
this.opts = Object.assign({
version: 'v3.5.2'
}, opts.extraOptions.tuiImgEditOpts || {}, {
iconsPath : fm.baseUrl + 'img/tui-',
theme : {}
});
......@@ -344,11 +376,17 @@
fm = this.fm,
dfrd = $.Deferred(),
cdns = fm.options.cdns,
ver = 'latest',
ver = self.confObj.opts.version,
init = function(editor) {
var $base = $(base),
bParent = $base.parent(),
opts = self.confObj.opts,
iconsPath = opts.iconsPath,
tmpContainer = $('<div class="tui-image-editor-container">').appendTo(bParent),
tmpDiv = [
$('<div class="tui-image-editor-submenu"/>').appendTo(tmpContainer),
$('<div class="tui-image-editor-controls"/>').appendTo(tmpContainer)
],
iEditor = new editor(base, {
includeUI: {
loadImage: {
......@@ -356,53 +394,47 @@
name: self.file.name
},
theme: Object.assign(opts.theme, {
// main icons
'menu.normalIcon.path': iconsPath + 'icon-b.svg',
'menu.normalIcon.name': 'icon-b',
'menu.activeIcon.path': iconsPath + 'icon-a.svg',
'menu.activeIcon.name': 'icon-a',
// submenu icons
'submenu.normalIcon.path': iconsPath + 'icon-a.svg',
'submenu.normalIcon.name': 'icon-a',
'menu.normalIcon.path': iconsPath + 'icon-d.svg',
'menu.normalIcon.name': 'icon-d',
'menu.activeIcon.path': iconsPath + 'icon-b.svg',
'menu.activeIcon.name': 'icon-b',
'menu.disabledIcon.path': iconsPath + 'icon-a.svg',
'menu.disabledIcon.name': 'icon-a',
'menu.hoverIcon.path': iconsPath + 'icon-c.svg',
'menu.hoverIcon.name': 'icon-c',
'submenu.normalIcon.path': iconsPath + 'icon-d.svg',
'submenu.normalIcon.name': 'icon-d',
'submenu.activeIcon.path': iconsPath + 'icon-c.svg',
'submenu.activeIcon.name': 'icon-c',
'submenu.activeIcon.name': 'icon-c'
}),
initMenu: 'filter',
menuBarPosition: 'bottom'
},
cssMaxWidth: 700,
cssMaxHeight: 500
cssMaxWidth: Math.max(300, bParent.width()),
cssMaxHeight: Math.max(200, bParent.height() - (tmpDiv[0].height() + tmpDiv[1].height() + 3 /*margin*/)),
usageStatistics: false
}),
canvas = $base.find('canvas:first').get(0),
zoom = function(v) {
var c = $(canvas),
w = parseInt(c.attr('width')),
h = parseInt(c.attr('height')),
a = w / h,
mw, mh, css;
if (v === 0) {
mw = w;
mh = h;
} else {
mw = parseInt(c.css('max-width')) + Number(v);
mh = mw / a;
}
css = {
maxWidth: mw,
maxHeight: mh
};
per.text(Math.round(mw / w * 100) + '%');
if (typeof v !== 'undefined') {
// set editor config directly for change scale
iEditor._graphics.cssMaxWidth = mw;
iEditor._graphics.cssMaxHeight = mh;
// change scale
c.css(css).next().css(css);
c.parents('.tui-image-editor-canvas-container,tui-image-editor-canvas').css(css);
c.closest('.tui-image-editor').css({
width: mw,
height: mh
});
var c = $(canvas),
w = parseInt(c.attr('width')),
h = parseInt(c.attr('height')),
a = w / h,
mw, mh;
if (v === 0) {
mw = w;
mh = h;
} else {
mw = parseInt(c.css('max-width')) + Number(v);
mh = mw / a;
if (mw > w && mh > h) {
mw = w;
mh = h;
}
}
per.text(Math.round(mw / w * 100) + '%');
iEditor.resizeCanvasDimension({width: mw, height: mh});
// continually change more
if (zoomMore) {
setTimeout(function() {
......@@ -416,6 +448,7 @@
per = $('<button/>').css('width', '4em').text('%').attr('title', '100%').data('val', 0),
quty, qutyTm, zoomTm, zoomMore;
tmpContainer.remove();
$base.removeData('url').data('mime', self.file.mime);
// jpeg quality controls
if (self.file.mime === 'image/jpeg') {
......@@ -494,7 +527,7 @@
paths : {
'fabric/dist/fabric.require' : cdns.fabric16 + '/fabric.require.min',
'tui-code-snippet' : cdns.tui + '/tui.code-snippet/latest/tui-code-snippet.min',
'tui-color-picker' : cdns.tui + '/tui.code-snippet/latest/tui-color-picker.min',
'tui-color-picker' : cdns.tui + '/tui-color-picker/latest/tui-color-picker.min',
'tui-image-editor' : cdns.tui + '/tui-image-editor/'+ver+'/tui-image-editor.min'
}
});
......@@ -644,10 +677,10 @@
name : 'Photopea',
iconImg : 'img/editor-icons.png 0 -160',
single: true,
urlAsContent: true,
noContent: true,
arrayBufferContent: true,
openMaximized: true,
canMakeEmpty: true,
canMakeEmpty: ['image/jpeg', 'image/png', 'image/gif', 'image/x-ms-bmp', 'image/tiff', 'image/webp', 'image/vnd.adobe.photoshop', 'image/x-portable-pixmap', 'image/x-sketch'],
integrate: {
title: 'Photopea',
link: 'https://www.photopea.com/learn/'
......@@ -676,16 +709,10 @@
}),
editor = this.editor,
confObj = editor.confObj,
spnr = $('<div/>')
.css({
position: 'absolute',
top: '50%',
textAlign: 'center',
width: '100%',
fontSize: '16pt'
})
.html(fm.i18n('nowLoading') + '<span class="elfinder-spinner"/>')
spnr = $('<div class="elfinder-edit-spinner elfinder-edit-photopea"/>')
.html('<span class="elfinder-spinner-text">' + fm.i18n('nowLoading') + '</span><span class="elfinder-spinner"/>')
.appendTo(ifm.parent()),
saveMimes = fm.arrayFlip(confObj.info.canMakeEmpty),
getType = function(mime) {
var ext = getExtention(mime, fm),
extmime = ext2mime[ext];
......@@ -695,7 +722,7 @@
} else if (ext === 'jpeg') {
ext = 'jpg';
}
if (!ext || ext === 'xcf' || ext === 'dng' || ext === 'sketch') {
if (!ext || !!saveMimes[ext]) {
ext = 'psd';
extmime = ext2mime[ext];
ifm.closest('.ui-dialog').trigger('changeType', {
......@@ -707,7 +734,7 @@
return ext;
},
mime = file.mime,
liveMsg, type;
liveMsg, type, quty;
if (!confObj.mimesFlip) {
confObj.mimesFlip = fm.arrayFlip(confObj.mimes, true);
......@@ -773,7 +800,7 @@
};
this.getContent = function() {
var type;
var type, q;
if (phase > 1) {
dfdGet && dfdGet.state() === 'pending' && dfdGet.reject();
dfdGet = null;
......@@ -788,6 +815,9 @@
mime = ifm.data('mime');
type = getType(mime);
}
if (q = ifm.data('quality')) {
type += ':' + (q / 100);
}
wnd.postMessage('app.activeDocument.saveToOE("' + type + '")', orig);
return dfdGet;
}
......@@ -811,6 +841,25 @@
err && fm.error(err);
editor.initFail = true;
});
// jpeg quality controls
if (file.mime === 'image/jpeg' || file.mime === 'image/webp') {
ifm.data('quality', fm.storage('jpgQuality') || fm.option('jpgQuality'));
quty = $('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>')
.attr('min', '1')
.attr('max', '100')
.attr('title', '1 - 100')
.on('change', function() {
var q = quty.val();
ifm.data('quality', q);
})
.val(ifm.data('quality'));
$('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>')
.append(
$('<span>').html(fm.i18n('quality') + ' : '), quty, $('<span/>')
)
.prependTo(ifm.parent().next());
}
},
load : function(base) {
var dfd = $.Deferred(),
......@@ -850,6 +899,204 @@
liveMsg && $(window).off('message.' + this.fm.namespace, liveMsg.receive);
}
},
{
// Pixo is cross-platform image editor
info : {
id : 'pixo',
name : 'Pixo Editor',
iconImg : 'img/editor-icons.png 0 -208',
dataScheme: true,
schemeContent: true,
single: true,
canMakeEmpty: false,
integrate: {
title: 'Pixo Editor',
link: 'https://pixoeditor.com/privacy-policy/'
}
},
// MIME types to accept
mimes : ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'image/x-ms-bmp'],
// HTML of this editor
html : '<div class="elfinder-edit-imageeditor"><img/></div>',
// called on initialization of elFinder cmd edit (this: this editor's config object)
setup : function(opts, fm) {
if (fm.UA.ltIE8 || !opts.extraOptions || !opts.extraOptions.pixo || !opts.extraOptions.pixo.apikey) {
this.disabled = true;
} else {
this.editorOpts = opts.extraOptions.pixo;
}
},
// Initialization of editing node (this: this editors HTML node)
init : function(id, file, content, fm) {
initImgTag.call(this, id, file, content, fm);
},
// Get data uri scheme (this: this editors HTML node)
getContent : function() {
return $(this).children('img:first').attr('src');
},
// Launch Pixo editor when dialog open
load : function(base) {
var self = this,
fm = this.fm,
$base = $(base),
node = $base.children('img:first'),
dialog = $base.closest('.ui-dialog'),
elfNode = fm.getUI(),
dfrd = $.Deferred(),
container = $('#elfinder-pixo-container'),
init = function(onload) {
var opts;
if (!container.length) {
container = $('<div id="elfinder-pixo-container" class="ui-front"/>').css({
position: 'fixed',
top: 0,
right: 0,
width: '100%',
height: $(window).height(),
overflow: 'hidden'
}).hide().appendTo(elfNode.hasClass('elfinder-fullscreen')? elfNode : 'body');
// bind switch fullscreen event
elfNode.on('resize.'+fm.namespace, function(e, data) {
e.preventDefault();
e.stopPropagation();
data && data.fullscreen && container.appendTo(data.fullscreen === 'on'? elfNode : 'body');
});
fm.bind('destroy', function() {
editor && editor.cancelEditing();
container.remove();
});
} else {
// always moves to last
container.appendTo(container.parent());
}
node.on('click', launch);
// Constructor options
opts = Object.assign({
type: 'child',
parent: container.get(0),
onSave: function(arg) {
// Check current file.hash, all callbacks are called on multiple instances
var mime = arg.toBlob().type,
ext = getExtention(mime, fm),
draw = function(url) {
node.one('load error', function() {
node.data('loading') && node.data('loading')(true);
})
.attr('crossorigin', 'anonymous')
.attr('src', url);
},
url = arg.toDataURL();
node.data('loading')();
delete base._canvas;
if (node.data('ext') !== ext) {
changeImageType(url, self.file.mime).done(function(res, cv) {
if (cv) {
base._canvas = canvas = cv;
quty.trigger('change');
qBase && qBase.show();
}
draw(res);
}).fail(function() {
dialog.trigger('changeType', {
extention: ext,
mime : mime
});
draw(url);
});
} else {
draw(url);
}
},
onClose: function() {
dialog.removeClass(fm.res('class', 'preventback'));
fm.toggleMaximize(container, false);
container.hide();
fm.toFront(dialog);
}
}, self.confObj.editorOpts);
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: base,
editorObj: Pixo,
instance: void(0),
opts: opts
});
// make editor instance
editor = new Pixo.Bridge(opts);
dfrd.resolve(editor);
$base.on('saveAsFail', launch);
if (onload) {
onload();
}
},
launch = function() {
dialog.addClass(fm.res('class', 'preventback'));
fm.toggleMaximize(container, true);
fm.toFront(container);
container.show().data('curhash', self.file.hash);
editor.edit(node.get(0));
node.data('loading')(true);
},
qBase, quty, qutyTm, canvas, editor;
node.data('loading')();
// jpeg quality controls
if (self.file.mime === 'image/jpeg') {
quty = $('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>')
.attr('min', '1')
.attr('max', '100')
.attr('title', '1 - 100')
.on('change', function() {
var q = quty.val();
qutyTm && cancelAnimationFrame(qutyTm);
qutyTm = requestAnimationFrame(function() {
if (canvas) {
canvas.toBlob(function(blob) {
blob && quty.next('span').text(' (' + fm.formatSize(blob.size) + ')');
}, 'image/jpeg', Math.max(Math.min(q, 100), 1) / 100);
}
});
})
.val(fm.storage('jpgQuality') || fm.option('jpgQuality'));
qBase = $('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>')
.hide()
.append(
$('<span>').html(fm.i18n('quality') + ' : '), quty, $('<span/>')
)
.prependTo($base.parent().next());
$base.data('quty', quty);
}
// load script then init
if (typeof Pixo === 'undefined') {
fm.loadScript(['https://pixoeditor.com:8443/editor/scripts/bridge.m.js'], function() {
init(launch);
}, {loadType: 'tag'});
} else {
init();
launch();
}
return dfrd;
},
// Convert content url to data uri scheme to save content
save : function(base) {
var self = this,
$base = $(base),
node = $base.children('img:first'),
q;
if (base._canvas) {
q = $base.data('quty')? Math.max(Math.min($base.data('quty').val(), 100), 1) / 100 : void(0);
node.attr('src', base._canvas.toDataURL(self.file.mime, q));
} else if (node.attr('src').substr(0, 5) !== 'data:') {
node.attr('src', imgBase64(node, this.file.mime));
}
},
close : function(base, editor) {
editor && editor.destroy();
}
},
{
// Adobe Creative SDK Creative Tools Image Editor UI
// MIME types to accept
......@@ -1164,7 +1411,7 @@
$('#ace_settingsmenu')
.css('font-size', '80%')
.find('div[contains="setOptions"]').hide().end()
.parent().parent().appendTo($('#elfinder'));
.parent().appendTo($('#elfinder'));
})
)
.prependTo(taBase.next());
......@@ -1473,11 +1720,16 @@
},
exts : ['htm', 'html', 'xhtml'],
setup : function(opts, fm) {
var confObj = this;
if (!fm.options.cdns.ckeditor) {
this.disabled = true;
confObj.disabled = true;
} else {
if (opts.extraOptions && opts.extraOptions.managerUrl) {
this.managerUrl = opts.extraOptions.managerUrl;
confObj.ckeOpts = {};
if (opts.extraOptions) {
confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor || {});
if (opts.extraOptions.managerUrl) {
confObj.managerUrl = opts.extraOptions.managerUrl;
}
}
}
},
......@@ -1540,7 +1792,7 @@
});
// CKEditor configure
CKEDITOR.replace(textarea.id, opts);
CKEDITOR.replace(textarea.id, Object.assign(opts, self.confObj.ckeOpts));
CKEDITOR.on('dialogDefinition', function(e) {
var dlg = e.data.definition.dialog;
dlg.on('show', function(e) {
......@@ -1593,10 +1845,22 @@
var confObj = this;
// check cdn and ES6 support
if (!fm.options.cdns.ckeditor5 || typeof window.Symbol !== 'function' || typeof Symbol() !== 'symbol') {
this.disabled = true;
confObj.disabled = true;
} else {
if (opts.extraOptions && opts.extraOptions.ckeditor5Mode) {
this.ckeditor5Mode = opts.extraOptions.ckeditor5Mode;
confObj.ckeOpts = {};
if (opts.extraOptions) {
// @deprecated option extraOptions.ckeditor5Mode
if (opts.extraOptions.ckeditor5Mode) {
confObj.ckeditor5Mode = opts.extraOptions.ckeditor5Mode;
}
confObj.ckeOpts = Object.assign({}, opts.extraOptions.ckeditor5 || {});
if (confObj.ckeOpts.mode) {
confObj.ckeditor5Mode = confObj.ckeOpts.mode;
delete confObj.ckeOpts.mode;
}
if (opts.extraOptions.managerUrl) {
confObj.managerUrl = opts.extraOptions.managerUrl;
}
}
}
fm.bind('destroy', function() {
......@@ -1634,7 +1898,7 @@
var self = this,
fm = this.fm,
dfrd = $.Deferred(),
mode = self.confObj.ckeditor5Mode || 'balloon',
mode = self.confObj.ckeditor5Mode || 'inline',
lang = (function() {
var l = fm.lang.toLowerCase().replace('_', '-');
if (l.substr(0, 2) === 'zh' && l !== 'zh-cn') {
......@@ -1650,10 +1914,9 @@
base.height(fm.getUI().height() - 100);
// CKEditor5 configure options
opts = {
toolbar: ['heading', '|', 'bold', 'italic', 'link', 'imageUpload', 'bulletedList', 'numberedList', 'blockQuote', 'undo', 'redo' ],
opts = Object.assign({
language: lang
};
}, self.confObj.ckeOpts);
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
......@@ -1666,7 +1929,84 @@
cEditor
.create(editnode, opts)
.then(function(editor) {
var fileRepo = editor.plugins.get('FileRepository');
var ckf = editor.commands.get('ckfinder'),
fileRepo = editor.plugins.get('FileRepository'),
prevVars = {}, isImage, insertImages;
if (editor.ui.view.toolbar && (mode === 'classic' || mode === 'decoupled-document')) {
$(editnode).closest('.elfinder-dialog').children('.ui-widget-header').append(editor.ui.view.toolbar.element);
}
if (mode === 'classic') {
$(editnode).closest('.elfinder-edit-editor').css('overflow', 'auto');
}
// Set up this elFinder instead of CKFinder
if (ckf) {
isImage = function(f) {
return f && f.mime.match(/^image\//i);
};
insertImages = function(urls) {
var imgCmd = editor.commands.get('imageUpload');
if (!imgCmd.isEnabled) {
var ntf = editor.plugins.get('Notification'),
i18 = editor.locale.t;
ntf.showWarning(i18('Could not insert image at the current position.'), {
title: i18('Inserting image failed'),
namespace: 'ckfinder'
});
return;
}
editor.execute('imageInsert', { source: urls });
};
// Take over ckfinder execute()
ckf.execute = function() {
var dlg = base.closest('.elfinder-dialog'),
gf = fm.getCommand('getfile'),
rever = function() {
if (prevVars.hasVar) {
dlg.off('resize close', rever);
gf.callback = prevVars.callback;
gf.options.folders = prevVars.folders;
gf.options.multiple = prevVars.multi;
fm.commandMap.open = prevVars.open;
prevVars.hasVar = false;
}
};
dlg.trigger('togleminimize').one('resize close', rever);
prevVars.callback = gf.callback;
prevVars.folders = gf.options.folders;
prevVars.multi = gf.options.multiple;
prevVars.open = fm.commandMap.open;
prevVars.hasVar = true;
gf.callback = function(files) {
var imgs = [];
if (files.length === 1 && files[0].mime === 'directory') {
fm.one('open', function() {
fm.commandMap.open = 'getfile';
}).getCommand('open').exec(files[0].hash);
return;
}
fm.getUI('cwd').trigger('unselectall');
$.each(files, function(i, f) {
if (isImage(f)) {
imgs.push(fm.convAbsUrl(f.url));
} else {
editor.execute('link', fm.convAbsUrl(f.url));
}
});
if (imgs.length) {
insertImages(imgs);
}
dlg.trigger('togleminimize');
};
gf.options.folders = true;
gf.options.multiple = true;
fm.commandMap.open = 'getfile';
fm.toast({
mode: 'info',
msg: fm.i18n('dblclickToSelect')
});
};
}
// Set up image uploader
fileRepo.createUploadAdapter = function(loader) {
return new uploder(loader);
};
......@@ -1678,7 +2018,8 @@
});
dfrd.resolve(editor);
/*fm.log({
plugins: cEditor.build.plugins.map(function(p) { return p.pluginName; }),
defaultConfig: cEditor.defaultConfig,
plugins: cEditor.builtinPlugins.map(function(p) { return p.pluginName; }),
toolbars: Array.from(editor.ui.componentFactory.names())
});*/
})
......@@ -1687,29 +2028,39 @@
});
},
uploder = function(loader) {
var upload = function(file, resolve, reject) {
fm.exec('upload', {files: [file]}, void(0), fm.cwd().hash)
.done(function(data){
if (data.added && data.added.length) {
fm.url(data.added[0].hash, { async: true }).done(function(url) {
resolve({
'default': fm.convAbsUrl(url)
});
}).fail(function() {
reject('errFileNotFound');
});
} else {
reject(fm.i18n(data.error? data.error : 'errUpload'));
}
})
.fail(function(err) {
var error = fm.parseError(err);
reject(fm.i18n(error? (error === 'userabort'? 'errAbort' : error) : 'errUploadNoFiles'));
})
.progress(function(data) {
loader.uploadTotal = data.total;
loader.uploaded = data.progress;
});
};
this.upload = function() {
return new Promise(function(resolve, reject) {
fm.exec('upload', {files: [loader.file]}, void(0), fm.cwd().hash)
.done(function(data){
if (data.added && data.added.length) {
fm.url(data.added[0].hash, { async: true }).done(function(url) {
resolve({
'default': fm.convAbsUrl(url)
});
}).fail(function() {
reject('errFileNotFound');
});
} else {
reject(fm.i18n(data.error? data.error : 'errUpload'));
}
})
.fail(function(error) {
reject(fm.i18n(error? (error === 'userabort'? 'errAbort' : error) : 'errUploadNoFiles'));
})
.progress(function(data) {
loader.uploadTotal = data.total;
loader.uploaded = data.progress;
if (loader.file instanceof Promise || (loader.file && typeof loader.file.then === 'function')) {
loader.file.then(function(file) {
upload(file, resolve, reject);
});
} else {
upload(loader.file, resolve, reject);
}
});
};
this.abort = function() {
......@@ -1723,7 +2074,7 @@
fm.options.cdns.ckeditor5 + '/' + mode + '/ckeditor.js'
], function(editor) {
if (!editor) {
editor = window.BalloonEditor || window.InlineEditor || window.ClassicEditor;
editor = window.BalloonEditor || window.InlineEditor || window.ClassicEditor || window.DecoupledEditor;
}
if (fm.lang !== 'en') {
self.fm.loadScript([
......@@ -1782,11 +2133,16 @@
},
exts : ['htm', 'html', 'xhtml'],
setup : function(opts, fm) {
var confObj = this;
if (!fm.options.cdns.tinymce) {
this.disabled = true;
confObj.disabled = true;
} else {
if (opts.extraOptions && opts.extraOptions.managerUrl) {
this.managerUrl = opts.extraOptions.managerUrl;
confObj.mceOpts = {};
if (opts.extraOptions) {
confObj.uploadOpts = Object.assign({}, opts.extraOptions.uploadOpts || {});
confObj.mceOpts = Object.assign({}, opts.extraOptions.tinymce || {});
} else {
confObj.uploadOpts = {};
}
}
},
......@@ -1799,33 +2155,49 @@
dlg = base.closest('.elfinder-dialog'),
h = base.height(),
delta = base.outerHeight(true) - h,
opts;
// hide MCE dialog and modal block
hideMceDlg = function() {
var mceW;
if (tinymce.activeEditor.windowManager.windows) {
mceW = tinymce.activeEditor.windowManager.windows[0];
mceDlg = $(mceW? mceW.getEl() : void(0)).hide();
mceCv = $('#mce-modal-block').hide();
} else {
mceDlg = $('.tox-dialog-wrap').hide();
}
},
// Show MCE dialog and modal block
showMceDlg = function() {
mceCv && mceCv.show();
mceDlg && mceDlg.show();
},
tVer = tinymce.majorVersion,
opts, mceDlg, mceCv;
// set base height
base.height(h);
// fit height function
textarea._setHeight = function(height) {
var base = $(this).parent(),
h = height || base.height(),
ctrH = 0,
areaH;
base.find('.mce-container-body:first').children('.mce-top-part,.mce-statusbar').each(function() {
ctrH += $(this).outerHeight(true);
});
areaH = h - ctrH - delta;
base.find('.mce-edit-area iframe:first').height(areaH);
return areaH;
if (tVer < 5) {
var base = $(this).parent(),
h = height || base.innerHeight(),
ctrH = 0,
areaH;
base.find('.mce-container-body:first').children('.mce-top-part,.mce-statusbar').each(function() {
ctrH += $(this).outerHeight(true);
});
areaH = h - ctrH - delta;
base.find('.mce-edit-area iframe:first').height(areaH);
}
};
// TinyMCE configure options
opts = {
selector: '#' + textarea.id,
resize: false,
plugins: [
'fullpage', // require for getting full HTML
'image', 'link', 'media',
'code', 'fullscreen'
],
plugins: 'print preview fullpage searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern help',
toolbar: 'formatselect | bold italic strikethrough forecolor backcolor | link image media | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat',
image_advtab: true,
init_instance_callback : function(editor) {
// fit height on init
textarea._setHeight(h);
......@@ -1841,53 +2213,123 @@
dfrd.resolve(editor);
},
file_picker_callback : function (callback, value, meta) {
var reg = /([&?]getfile=)[^&]+/,
loc = self.confObj.managerUrl || window.location.href.replace(/#.*$/, ''),
name = 'tinymce';
// make manager location
if (reg.test(loc)) {
loc = loc.replace(reg, '$1' + name);
} else {
loc += '?getfile=' + name;
}
// launch TinyMCE
tinymce.activeEditor.windowManager.open({
file: loc,
title: 'elFinder',
width: 900,
height: 450,
resizable: 'yes'
}, {
oninsert: function (file, elf) {
var url, reg, info;
var gf = fm.getCommand('getfile'),
revar = function() {
if (prevVars.hasVar) {
gf.callback = prevVars.callback;
gf.options.folders = prevVars.folders;
gf.options.multiple = prevVars.multi;
fm.commandMap.open = prevVars.open;
prevVars.hasVar = false;
}
dlg.off('resize close', revar);
showMceDlg();
},
prevVars = {};
prevVars.callback = gf.callback;
prevVars.folders = gf.options.folders;
prevVars.multi = gf.options.multiple;
prevVars.open = fm.commandMap.open;
prevVars.hasVar = true;
gf.callback = function(file) {
var url, info;
// URL normalization
url = elf.convAbsUrl(file.url);
// Make file info
info = file.name + ' (' + elf.formatSize(file.size) + ')';
if (file.mime === 'directory') {
fm.one('open', function() {
fm.commandMap.open = 'getfile';
}).getCommand('open').exec(file.hash);
return;
}
// Provide file and text for the link dialog
if (meta.filetype == 'file') {
callback(url, {text: info, title: info});
}
// URL normalization
url = fm.convAbsUrl(file.url);
// Make file info
info = file.name + ' (' + fm.formatSize(file.size) + ')';
// Provide image and alt text for the image dialog
if (meta.filetype == 'image') {
callback(url, {alt: info});
}
// Provide file and text for the link dialog
if (meta.filetype == 'file') {
callback(url, {text: info, title: info});
}
// Provide alternative source and posted for the media dialog
if (meta.filetype == 'media') {
callback(url);
}
// Provide image and alt text for the image dialog
if (meta.filetype == 'image') {
callback(url, {alt: info});
}
// Provide alternative source and posted for the media dialog
if (meta.filetype == 'media') {
callback(url);
}
dlg.trigger('togleminimize');
};
gf.options.folders = true;
gf.options.multiple = false;
fm.commandMap.open = 'getfile';
hideMceDlg();
dlg.trigger('togleminimize').one('resize close', revar);
fm.toast({
mode: 'info',
msg: fm.i18n('dblclickToSelect')
});
return false;
},
images_upload_handler : function (blobInfo, success, failure) {
var file = blobInfo.blob(),
err = function(e) {
var dlg = e.data.dialog || {};
if (dlg.hasClass('elfinder-dialog-error') || dlg.hasClass('elfinder-confirm-upload')) {
hideMceDlg();
dlg.trigger('togleminimize').one('resize close', revert);
fm.unbind('dialogopened', err);
}
},
revert = function() {
dlg.off('resize close', revert);
showMceDlg();
},
clipdata = true;
// check file object
if (file.name) {
// file blob of client side file object
clipdata = void(0);
}
fm.bind('dialogopened', err).exec('upload', Object.assign({
files: [file],
clipdata: clipdata // to get unique name on connector
}, self.confObj.uploadOpts), void(0), fm.cwd().hash).done(function(data) {
if (data.added && data.added.length) {
fm.url(data.added[0].hash, { async: true }).done(function(url) {
showMceDlg();
success(fm.convAbsUrl(url));
}).fail(function() {
failure(fm.i18n('errFileNotFound'));
});
} else {
failure(fm.i18n(data.error? data.error : 'errUpload'));
}
}).fail(function(err) {
var error = fm.parseError(err);
if (error) {
if (error === 'errUnknownCmd') {
error = 'errPerm';
} else if (error === 'userabort') {
error = 'errAbort';
}
}
failure(fm.i18n(error? error : 'errUploadNoFiles'));
});
}
};
// TinyMCE 5 supports "height: 100%"
if (tVer >= 5) {
opts.height = '100%';
}
// trigger event 'editEditorPrepare'
self.trigger('Prepare', {
node: textarea,
......@@ -1897,15 +2339,15 @@
});
// TinyMCE configure
tinymce.init(opts);
tinymce.init(Object.assign(opts, self.confObj.mceOpts));
};
if (!self.confObj.loader) {
self.confObj.loader = $.Deferred();
$.getScript(fm.options.cdns.tinymce + '/tinymce.min.js', function() {
setTimeout(function() {
self.confObj.loader.resolve();
}, 0);
self.fm.loadScript([fm.options.cdns.tinymce + (fm.options.cdns.tinymce.match(/\.js/)? '' : '/tinymce.min.js')], function() {
self.confObj.loader.resolve();
}, {
loadType: 'tag'
});
}
self.confObj.loader.done(init);
......@@ -1976,15 +2418,9 @@
init : function(id, file, dum, fm) {
var ta = this,
ifm = $(this).hide(),
spnr = $('<div/>')
.css({
position: 'absolute',
top: '50%',
textAlign: 'center',
width: '100%',
fontSize: '16pt'
})
.html(fm.i18n('nowLoading') + '<span class="elfinder-spinner"/>')
uiToast = fm.getUI('toast'),
spnr = $('<div class="elfinder-edit-spinner elfinder-edit-zohoeditor"/>')
.html('<span class="elfinder-spinner-text">' + fm.i18n('nowLoading') + '</span><span class="elfinder-spinner"/>')
.appendTo(ifm.parent()),
cdata = function() {
var data = '';
......@@ -2001,7 +2437,7 @@
method: 'init',
'args[target]': file.hash,
'args[lang]' : fm.lang,
'args[cdata]' : cdata
'args[cdata]' : cdata()
},
preventDefault : true
}).done(function(data) {
......@@ -2021,6 +2457,20 @@
});
ifm.attr('src', data.zohourl).show().css(opts.css);
if (data.warning) {
uiToast.appendTo(ta.closest('.ui-dialog'));
fm.toast({
msg: fm.i18n(data.warning),
mode: 'warning',
timeOut: 0,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
},
button: {
text: 'btnYes'
}
});
}
} else {
data.error && fm.error(data.error);
ta.elfinderdialog('destroy');
......@@ -2154,7 +2604,6 @@
Hash: 'txt'
},
link : '<div class="elfinder-edit-onlineconvert-link"><a href="https://www.online-convert.com" target="_blank"><span class="elfinder-button-icon"></span>ONLINE-CONVERT.COM</a></div>',
toastWidth : 280,
useTabs : ($.fn.tabs && !fm.UA.iOS)? true : false // Can't work on iOS, I don't know why.
}, mOpts);
},
......@@ -2172,6 +2621,7 @@
uiToast = fm.getUI('toast'),
idxs = {},
allowZip = fm.uploadMimeCheck('application/zip', file.phash),
selfUrl = $('base').length? document.location.href.replace(/#.*$/, '') : '',
getExt = function(cat, con) {
var c;
if (set.catExts[cat]) {
......@@ -2348,7 +2798,7 @@
}
});
if (type.children().length) {
ul.append($('<li/>').append($('<a/>').attr('href', '#' + id).text(t)));
ul.append($('<li/>').append($('<a/>').attr('href', selfUrl + '#' + id).text(t)));
btns.append(type);
idxs[cname] = i++;
}
......@@ -2382,27 +2832,18 @@
(set.showLink? $(set.link) : null)
)
.appendTo(ifm.parent().css({overflow: 'auto'})),
spnr = $('<div class="elfinder-edit-spiner elfinder-edit-online-convert"/>')
spnr = $('<div class="elfinder-edit-spinner elfinder-edit-onlineconvert"/>')
.hide()
.css({
position: 'absolute',
top: '50%',
textAlign: 'center',
width: '100%',
fontSize: '16pt'
})
.html('<span class="elfinder-edit-loadingmsg">' + fm.i18n('nowLoading') + '</span><span class="elfinder-spinner"/>')
.html('<span class="elfinder-spinner-text">' + fm.i18n('nowLoading') + '</span><span class="elfinder-spinner"/>')
.appendTo(ifm.parent()),
_url = null,
url = function() {
var onetime;
if (_url) {
return $.Deferred().resolve(_url);
} else {
spnr.show();
return fm.url(file.hash, {
async: true,
temporary: true
}).done(function(url) {
return fm.forExternalUrl(file.hash).done(function(url) {
_url = url;
}).fail(function(error) {
error && fm.error(error);
......@@ -2451,7 +2892,7 @@
fm.error(err.length? err : status.info);
select.fadeIn();
} else if (status.code === 'completed') {
upload(res.output);
upload(res);
} else {
setStatus(status);
setTimeout(function() {
......@@ -2465,7 +2906,6 @@
msg: fm.i18n(res.message),
mode: 'error',
timeOut: 5000,
width: set.toastWidth,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
}
......@@ -2475,7 +2915,6 @@
msg: fm.i18n('editorConvNoApi'),
mode: 'warning',
timeOut: 3000,
width: set.toastWidth,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
open(cat, con);
......@@ -2484,7 +2923,7 @@
}
},
setStatus = function(status) {
spnr.show().children('.elfinder-edit-loadingmsg').text(status.info);
spnr.show().children('.elfinder-spinner-text').text(status.info);
},
polling = function(jobid) {
fm.request({
......@@ -2502,8 +2941,10 @@
ta.elfinderdialog('destroy');
});
},
upload = function(output) {
var url = '';
upload = function(res) {
var output = res.output,
id = res.id,
url = '';
spnr.hide();
if (output && output.length) {
ta.elfinderdialog('destroy');
......@@ -2515,7 +2956,10 @@
fm.upload({
target: file.phash,
files: [url],
type: 'text'
type: 'text',
extraData: {
contentSaveId: 'OnlineConvert-' + res.id
}
});
}
},
......@@ -2556,8 +3000,7 @@
fm.toast({
msg: fm.i18n('editorConvNeedUpload'),
mode: 'info',
timeOut: 10000,
width: set.toastWidth,
timeOut: 15000,
onHidden: function() {
uiToast.children().length === 1 && uiToast.appendTo(fm.getUI());
},
......
!function(e,t){if("function"==typeof define&&define.amd)define(["elfinder"],e);else if(t){var i=t.prototype._options.commandsOptions.edit.editors;t.prototype._options.commandsOptions.edit.editors=i.concat(e(t))}}(function(e){"use strict";var t,i=window.location.search.match(/getfile=([a-z]+)/),n=e.prototype.hasRequire,o=function(){var e;try{e=!!new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(t){e=!!("undefined"==typeof window.orientation||navigator&&navigator.mimeTypes["application/x-shockwave-flash"])}return e}(),a={bmp:"image/x-ms-bmp",dng:"image/x-adobe-dng",gif:"image/gif",jpeg:"image/jpeg",jpg:"image/jpeg",pdf:"application/pdf",png:"image/png",ppm:"image/x-portable-pixmap",psd:"image/vnd.adobe.photoshop",pxd:"image/x-pixlr-data",svg:"image/svg+xml",tiff:"image/tiff",webp:"image/webp",xcf:"image/x-xcf",sketch:"application/x-sketch"},r=function(e,i){t||(t=i.arrayFlip(a));var n=t[e]||i.mimeTypes[e];return"jpeg"===n&&(n="jpg"),n},s=function(e,t,i,n){var o=$(this).children("img:first").data("ext",r(t.mime,n)),a=$("<div/>").css({position:"absolute",top:"50%",textAlign:"center",width:"100%",fontSize:"16pt"}).html(n.i18n("ntfloadimg")).hide().appendTo(this);o.attr("id",e+"-img").attr("src",i).css({height:"","max-width":"100%","max-height":"100%",cursor:"pointer"}).data("loading",function(e){var t=o.closest(".elfinder-dialog").find("button,.elfinder-titlebar-button");return t.prop("disabled",!e)[e?"removeClass":"addClass"]("ui-state-disabled"),o.css("opacity",e?"":"0.3"),a[e?"hide":"show"](),o})},c=function(e,t){var i,n,o,a=e.attr("style");try{e.attr("style",""),i=e.get(0),n=document.createElement("canvas"),n.width=i.width,n.height=i.height,e.attr("style",a),n.getContext("2d").drawImage(i,0,0),o=n.toDataURL(t)}catch(r){o=e.attr("src")}return o},d=function(){if(o&&window.parent!==window){var e,t,i,n,r,s=window.location.search.match(/[?&]pixlr=([^&]+)/),c=window.location.search.match(/[?&]image=([^&]+)/);s&&(e=window.parent,t=e.$("#"+s[1]+"iframe").hide(),n=e.$("#"+s[1]).data("resizeoff")(),"http"===c[1].substr(0,4)?(i=c[1],r=i.replace(/.+\.([^.]+)$/,"$1"),n.data("ext")!==r&&n.closest(".ui-dialog").trigger("changeType",{extention:r,mime:a[r]}),"https:"===window.location.protocol&&(i=i.replace(/^http:/,"https:")),n.on("load error",function(){n.data("loading")(!0)}).attr("src",i).data("loading")()):n.data("loading")(!0),t.trigger("destroy").remove())}},l=function(e,t){o&&!t.UA.ltIE8||(this.disabled=!0)},p=function(e,t){var i,n=this,o=this.fm,a=o.res("class","preventback"),r=$(t).children("img:first").data("loading")().data("resizeoff",function(){return $(window).off("resize."+r.attr("id")),s.addClass(a),r}).on("click",function(){f()}),s=$(t).closest(".ui-dialog"),c=o.getUI(),d=o.getUI("toast"),l=$('<iframe class="ui-front" allowtransparency="true">'),p=this.file,m=15,u=function(e){e?(l.trigger("destroy").remove(),r.data("loading")(!0),o.error(e)):(d.appendTo(s.closest(".ui-dialog")),o.toast({mode:"info",msg:"Can not launch Pixlr yet. Waiting "+m+" seconds.",button:{text:"Abort",click:function(){l.trigger("destroy").remove(),r.data("loading")(!0)}},onHidden:function(){1===d.children().length&&d.appendTo(o.getUI())}}),i=setTimeout(e,1e3*m))},f=function(){var d="https://pixlr.com/"+e+"/?s=c",f=window.location.href.toString().replace(/#.*$/,""),g={};i=setTimeout(u,1e3*m),f+=(f.indexOf("?")===-1?"?":"&")+"pixlr="+r.attr("id"),d+="&referrer=elFinder&locktitle=true",d+="&exit="+encodeURIComponent(f+"&image=0"),d+="&target="+encodeURIComponent(f),d+="&title="+encodeURIComponent(p.name),d+="&image="+encodeURIComponent(r.attr("src")),g.src=d,g.css={width:"100%",height:$(window).height()+"px",position:"fixed",display:"block",backgroundColor:"transparent",border:"none",top:0,right:0},n.trigger("Prepare",{node:t,editorObj:void 0,instance:l,opts:g}),l.attr("id",r.attr("id")+"iframe").attr("src",g.src).css(g.css).one("load",function(){i&&clearTimeout(i),setTimeout(function(){l.is(":hidden")&&u("Please disable your ad blocker.")},1e3),s.addClass(a),o.toggleMaximize(l,!0),o.toFront(l)}).on("destroy",function(){o.toggleMaximize(l,!1)}).on("error",u).appendTo(c.hasClass("elfinder-fullscreen")?c:"body")};$(t).on("saveAsFail",f),f()},m=function(e){var t,i=$(e),n=$.Deferred().always(function(){i.off("load",r)}),o="about:blank",a=function(){t=setTimeout(function(){var e;try{e=base.contentWindow.location.href}catch(t){e=null}e===o?n.resolve():--s>0?a():n.reject()},500)},r=function(){t&&clearTimeout(t),n.resolve()},s=20;return i.one("load",r),e.src=o,a(),n};return d(),i&&(i=i[1],"ckeditor"===i?e.prototype._options.getFileCallback=function(e,t){window.opener.CKEDITOR.tools.callFunction(function(){var e=new RegExp("(?:[?&]|&amp;)CKEditorFuncNum=([^&]+)","i"),t=window.location.search.match(e);return t&&t.length>1?t[1]:""}(),t.convAbsUrl(e.url)),t.destroy(),window.close()}:"tinymce"===i&&(e.prototype._options.getFileCallback=function(e,t){parent.tinymce.activeEditor.windowManager.getParams().oninsert(e,t),parent.tinymce.activeEditor.windowManager.close()})),[{info:{id:"tuiimgedit",name:"TUI Image Editor",iconImg:"img/editor-icons.png 0 -48",dataScheme:!0,schemeContent:!0,openMaximized:!0,canMakeEmpty:!1,integrate:{title:"TOAST UI Image Editor",link:"http://ui.toast.com/tui-image-editor/"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],html:'<div class="elfinder-edit-imageeditor"><canvas></canvas></div>',setup:function(e,t){t.UA.ltIE8||t.UA.Mobile?this.disabled=!0:(this.opts=Object.assign({},e.extraOptions.tuiImgEditOpts||{},{iconsPath:t.baseUrl+"img/tui-",theme:{}}),t.isSameOrigin(this.opts.iconsPath)||(this.disabled=!0,t.debug("warning","Setting `commandOptions.edit.extraOptions.tuiImgEditOpts.iconsPath` MUST follow the same origin policy.")))},init:function(e,t,i,n){this.data("url",i)},load:function(e){var t,i=this,n=this.fm,o=$.Deferred(),a=n.options.cdns,r="latest",s=function(t){var a,r,s,c,d=$(e),l=i.confObj.opts,p=l.iconsPath,m=new t(e,{includeUI:{loadImage:{path:d.data("url"),name:i.file.name},theme:Object.assign(l.theme,{"menu.normalIcon.path":p+"icon-b.svg","menu.normalIcon.name":"icon-b","menu.activeIcon.path":p+"icon-a.svg","menu.activeIcon.name":"icon-a","submenu.normalIcon.path":p+"icon-a.svg","submenu.normalIcon.name":"icon-a","submenu.activeIcon.path":p+"icon-c.svg","submenu.activeIcon.name":"icon-c"}),initMenu:"filter",menuBarPosition:"bottom"},cssMaxWidth:700,cssMaxHeight:500}),u=d.find("canvas:first").get(0),f=function(e){var t,i,n,o=$(u),a=parseInt(o.attr("width")),r=parseInt(o.attr("height")),s=a/r;0===e?(t=a,i=r):(t=parseInt(o.css("max-width"))+Number(e),i=t/s),n={maxWidth:t,maxHeight:i},v.text(Math.round(t/a*100)+"%"),"undefined"!=typeof e&&(m._graphics.cssMaxWidth=t,m._graphics.cssMaxHeight=i,o.css(n).next().css(n),o.parents(".tui-image-editor-canvas-container,tui-image-editor-canvas").css(n),o.closest(".tui-image-editor").css({width:t,height:i}),c&&setTimeout(function(){c&&f(e)},50))},g=$('<span class="ui-icon ui-icon-plusthick"/>').data("val",10),h=$('<span class="ui-icon ui-icon-minusthick"/>').data("val",-10),v=$("<button/>").css("width","4em").text("%").attr("title","100%").data("val",0);d.removeData("url").data("mime",i.file.mime),"image/jpeg"===i.file.mime?(d.data("quality",n.storage("jpgQuality")||n.option("jpgQuality")),a=$('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>').attr("min","1").attr("max","100").attr("title","1 - 100").on("change",function(){var e=a.val();d.data("quality",e),r&&cancelAnimationFrame(r),r=requestAnimationFrame(function(){u.toBlob(function(e){e&&a.next("span").text(" ("+n.formatSize(e.size)+")")},"image/jpeg",Math.max(Math.min(e,100),1)/100)})}).val(d.data("quality")),$('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>').append($("<span>").html(n.i18n("quality")+" : "),a,$("<span/>")).prependTo(d.parent().next())):"image/svg+xml"===i.file.mime&&d.closest(".ui-dialog").trigger("changeType",{extention:"png",mime:"image/png",keepEditor:!0}),$('<div class="ui-dialog-buttonset elfinder-edit-extras"/>').append(h,v,g).attr("title",n.i18n("scale")).on("click","span,button",function(){f($(this).data("val"))}).on("mousedown mouseup mouseleave","span",function(e){c=!1,s&&clearTimeout(s),"mousedown"===e.type&&(s=setTimeout(function(){c=!0,f($(e.target).data("val"))},500))}).prependTo(d.parent().next()),setTimeout(function(){o.resolve(m),a&&(a.trigger("change"),m.on("redoStackChanged undoStackChanged",function(){a.trigger("change")})),f(null)},100)};return i.confObj.editor?s(i.confObj.editor):(t=$.Deferred(),n.loadCss([a.tui+"/tui-color-picker/latest/tui-color-picker.css",a.tui+"/tui-image-editor/"+r+"/tui-image-editor.css"]),n.hasRequire?(require.config({paths:{"fabric/dist/fabric.require":a.fabric16+"/fabric.require.min","tui-code-snippet":a.tui+"/tui.code-snippet/latest/tui-code-snippet.min","tui-color-picker":a.tui+"/tui.code-snippet/latest/tui-color-picker.min","tui-image-editor":a.tui+"/tui-image-editor/"+r+"/tui-image-editor.min"}}),require(["tui-image-editor"],function(e){t.resolve(e)})):n.loadScript([a.fabric16+"/fabric.min.js",a.tui+"/tui.code-snippet/latest/tui-code-snippet.min.js"],function(){n.loadScript([a.tui+"/tui-color-picker/latest/tui-color-picker.min.js"],function(){n.loadScript([a.tui+"/tui-image-editor/"+r+"/tui-image-editor.min.js"],function(){t.resolve(window.tui.ImageEditor)},{loadType:"tag"})},{loadType:"tag"})},{loadType:"tag"}),t.done(function(e){i.confObj.editor=e,s(e)})),o},getContent:function(e){var t=this.editor,i=t.fm,n=$(e),o=n.data("quality");if(t.instance)return"image/jpeg"===n.data("mime")&&(o=o||i.storage("jpgQuality")||i.option("jpgQuality"),o=Math.max(.1,Math.min(1,o/100))),t.instance.toDataURL({format:r(n.data("mime"),i),quality:o})},save:function(e){var t,i=$(e),n=i.data("quality"),o=i.data("hash");this.instance.deactivateAll(),"undefined"!=typeof n&&this.fm.storage("jpgQuality",n),o&&(t=this.fm.file(o),i.data("mime",t.mime))}},{info:{id:"pixlreditor",name:"Pixlr Editor",iconImg:"img/editor-icons.png 0 -128",urlAsContent:!0,schemeContent:!0,single:!0,canMakeEmpty:!0,integrate:{title:"PIXLR EDITOR",link:"https://pixlr.com/editor/"}},mimes:["image/jpeg","image/png","image/gif","image/x-ms-bmp","image/x-pixlr-data"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){l.call(this,e,t)},init:function(e,t,i,n){s.call(this,e,t,t.size>0?n.convAbsUrl(i):"",n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){p.call(this,"editor",e)},save:function(e){},close:function(e){}},{info:{id:"pixlrexpress",name:"Pixlr Express",iconImg:"img/editor-icons.png 0 -112",urlAsContent:!0,schemeContent:!0,single:!0,canMakeEmpty:!1,integrate:{title:"PIXLR EXPRESS",link:"https://pixlr.com/express/"}},mimes:["image/jpeg","image/png","image/gif"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){l.call(this,e,t)},init:function(e,t,i,n){s.call(this,e,t,t.size>0?n.convAbsUrl(i):"",n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){p.call(this,"express",e)},save:function(e){},close:function(e){}},{info:{id:"photopea",name:"Photopea",iconImg:"img/editor-icons.png 0 -160",single:!0,urlAsContent:!0,arrayBufferContent:!0,openMaximized:!0,canMakeEmpty:!0,integrate:{title:"Photopea",link:"https://www.photopea.com/learn/"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp","image/tiff","image/x-adobe-dng","image/webp","image/x-xcf","image/vnd.adobe.photoshop","application/pdf","image/x-portable-pixmap","image/x-sketch"],html:'<iframe style="width:100%;height:100%;border:none;"></iframe>',setup:function(e,t){(t.UA.IE||t.UA.Mobile)&&(this.disabled=!0)},init:function(e,t,i,n){var o,s,c="https://www.photopea.com",d=$(this).hide().on("load",function(){d.show()}).on("error",function(){m.remove(),d.show()}),l=this.editor,p=l.confObj,m=$("<div/>").css({position:"absolute",top:"50%",textAlign:"center",width:"100%",fontSize:"16pt"}).html(n.i18n("nowLoading")+'<span class="elfinder-spinner"/>').appendTo(d.parent()),u=function(e){var t=r(e,n),i=a[t];return p.mimesFlip[i]?"jpeg"===t&&(t="jpg"):t="",t&&"xcf"!==t&&"dng"!==t&&"sketch"!==t||(t="psd",i=a[t],d.closest(".ui-dialog").trigger("changeType",{extention:t,mime:i,keepEditor:!0})),t},f=t.mime;p.mimesFlip||(p.mimesFlip=n.arrayFlip(p.mimes,!0)),p.liveMsg||(p.liveMsg=function(e,t,i){var o=n.openUrl(i.hash);n.isSameOrigin(o)||(o=n.openUrl(i.hash,!0));var a,r=e.get(0).contentWindow,s=0,d=null,l=$.Deferred().done(function(){t.remove(),s=1,r.postMessage(d,"*")});this.load=function(){return n.request({data:{cmd:"get"},options:{url:o,type:"get",cache:!0,dataType:"binary",responseType:"arraybuffer",processData:!1}}).done(function(e){d=e})},this.receive=function(t){var i=t.originalEvent;i.origin===c&&i.source===r&&("done"===i.data?0===s?l.resolve():1===s?(s=2,e.trigger("contentsloaded")):a&&"pending"===a.state()&&a.reject("errDataEmpty"):a&&"pending"===a.state()&&("object"==typeof i.data?a.resolve("data:"+f+";base64,"+n.arrayBufferToBase64(i.data)):a.reject("errDataEmpty")))},this.getContent=function(){var t;if(s>1)return a&&"pending"===a.state()&&a.reject(),a=null,a=$.Deferred(),2===s?(s=3,a.resolve("data:"+f+";base64,"+n.arrayBufferToBase64(d)),d=null,a):(e.data("mime")&&(f=e.data("mime"),t=u(f)),r.postMessage('app.activeDocument.saveToOE("'+t+'")',c),a)}}),d.parent().css("padding",0),s=u(t.mime),o=l.liveMsg=new p.liveMsg(d,m,t),$(window).on("message."+n.namespace,o.receive),o.load().done(function(){var e=JSON.stringify({files:[],environment:{lang:n.lang.replace(/_/g,"-")}});d.attr("src",c+"/#"+encodeURI(e))}).fail(function(e){e&&n.error(e),l.initFail=!0})},load:function(e){var t=$.Deferred(),i=this,n=(this.fm,$(e));return i.initFail?t.reject():n.on("contentsloaded",function(){t.resolve(i.liveMsg)}),t},getContent:function(){return this.editor.liveMsg?this.editor.liveMsg.getContent():void 0},save:function(e,t){var i,n=$(e),o=n.data("quality"),a=n.data("hash");"undefined"!=typeof o&&this.fm.storage("jpgQuality",o),a?(i=this.fm.file(a),n.data("mime",i.mime)):n.removeData("mime")},close:function(e,t){$(e).attr("src",""),t&&$(window).off("message."+this.fm.namespace,t.receive)}},{info:{id:"creativecloud",name:"Creative Cloud",iconImg:"img/editor-icons.png 0 -192",dataScheme:!0,schemeContent:!0,single:!0,canMakeEmpty:!1,integrate:{title:"Adobe Creative Cloud",link:"https://www.adobe.io/apis/creativecloud.html"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){!t.UA.ltIE8&&e.extraOptions&&e.extraOptions.creativeCloudApiKey?this.apiKey=e.extraOptions.creativeCloudApiKey:this.disabled=!0},init:function(e,t,i,n){s.call(this,e,t,i,n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){var t,i=this,n=this.fm,o=$(e).children("img:first"),r=$(e).closest(".ui-dialog"),s=n.getUI(),c=$.Deferred(),d=$("#elfinder-aviary-container"),l=function(l){var m,u=function(){var e={zh_TW:"zh_HANT",zh_CN:"zh_HANS"};return e[n.lang]?e[n.lang]:n.lang};d.length?d.appendTo(d.parent()):(d=$('<div id="elfinder-aviary-container" class="ui-front"/>').css({position:"fixed",top:0,right:0,width:"100%",height:$(window).height(),overflow:"auto"}).hide().appendTo(s.hasClass("elfinder-fullscreen")?s:"body"),s.on("resize."+n.namespace,function(e,t){e.preventDefault(),e.stopPropagation(),t&&t.fullscreen&&d.appendTo("on"===t.fullscreen?s:"body")}),n.bind("destroy",function(){d.remove()})),o.on("click",p).data("loading")(),m={apiKey:i.confObj.apiKey,onSave:function(e,i){var n;t.showWaitIndicator(),n=i.replace(/.+\.([^.]+)$/,"$1"),o.data("ext")!==n&&o.closest(".ui-dialog").trigger("changeType",{extention:n,mime:a[n]}),o.on("load error",function(){o.data("loading")(!0)}).attr("crossorigin","anonymous").attr("src",i).data("loading")(),t.close()},onLoad:l||function(){},onClose:function(){r.removeClass(n.res("class","preventback")),n.toggleMaximize(d,!1),$(d).hide()},appendTo:d.get(0),maxSize:2048,language:u()},i.trigger("Prepare",{node:e,editorObj:Aviary,instance:void 0,opts:m}),t=new Aviary.Feather(m),c.resolve(t),$(e).on("saveAsFail",p)},p=function(){r.addClass(n.res("class","preventback")),n.toggleMaximize(d,!0),n.toFront(d),$(d).show(),t.launch({image:o.attr("id"),url:o.attr("src")}),o.data("loading")(!0)};return"undefined"==typeof Aviary?n.loadScript(["https://dme0ih8comzn4.cloudfront.net/imaging/v3/editor.js"],function(){l(p)},{loadType:"tag"}):(l(),p()),c},save:function(e){var t=$(e).children("img:first");"data:"!==t.attr("src").substr(0,5)&&t.attr("src",c(t,this.file.mime))}},{setup:function(e,t){!t.UA.ltIE8&&t.options.cdns.ace||(this.disabled=!0)},info:{id:"aceeditor",name:"ACE Editor",iconImg:"img/editor-icons.png 0 -96"},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=i.options.cdns.ace,a=function(){var i,a,r,s=$(e),c=s.parent(),d=c.parent(),l=e.id+"_ace",p=(t.file.name.replace(/^.+\.([^.]+)|(.+)$/,"$1$2").toLowerCase(),{"text/x-php":"php","application/x-php":"php","text/html":"html","application/xhtml+xml":"html","text/javascript":"javascript","application/javascript":"javascript","text/css":"css","text/x-c":"c_cpp","text/x-csrc":"c_cpp","text/x-chdr":"c_cpp","text/x-c++":"c_cpp","text/x-c++src":"c_cpp","text/x-c++hdr":"c_cpp","text/x-shellscript":"sh","application/x-csh":"sh","text/x-python":"python","text/x-java":"java","text/x-java-source":"java","text/x-ruby":"ruby","text/x-perl":"perl","application/x-perl":"perl","text/x-sql":"sql","text/xml":"xml","application/docbook+xml":"xml","application/xml":"xml"});c.height(c.height()),ace.config.set("basePath",o),a=$('<div id="'+l+'" style="width:100%; height:100%;"/>').text(s.val()).insertBefore(s.hide()),s.data("ace",!0),i=ace.edit(l),i.$blockScrolling=1/0,i.setOptions({theme:"ace/theme/monokai",fontSize:"14px",wrap:!0}),ace.config.loadModule("ace/ext/modelist",function(){r=ace.require("ace/ext/modelist").getModeForPath("/"+t.file.name).name,"text"===r&&p[t.file.mime]&&(r=p[t.file.mime]),c.prev().children(".elfinder-dialog-title").append(" ("+t.file.mime+" : "+r.split(/[\/\\]/).pop()+")"),i.setOptions({mode:"ace/mode/"+r}),"resolved"===n.state()&&d.trigger("resize")}),ace.config.loadModule("ace/ext/language_tools",function(){ace.require("ace/ext/language_tools"),i.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!1})}),ace.config.loadModule("ace/ext/settings_menu",function(){ace.require("ace/ext/settings_menu").init(i)}),i.commands.addCommand({name:"saveFile",bindKey:{win:"Ctrl-s",mac:"Command-s"},exec:function(e){t.doSave()}}),i.commands.addCommand({name:"closeEditor",bindKey:{win:"Ctrl-w|Ctrl-q",mac:"Command-w|Command-q"},exec:function(e){t.doCancel()}}),i.resize(),$('<div class="ui-dialog-buttonset"/>').css("float","left").append($("<button/>").html(t.fm.i18n("TextArea")).button().on("click",function(){s.data("ace")?(s.removeData("ace"),a.hide(),s.val(i.session.getValue()).show().trigger("focus"),$(this).text("AceEditor")):(s.data("ace",!0),a.show(),i.setValue(s.hide().val(),-1),i.focus(),$(this).html(t.fm.i18n("TextArea")))})).append($("<button>Ace editor setting</button>").button({icons:{primary:"ui-icon-gear",secondary:"ui-icon-triangle-1-e"},text:!1}).on("click",function(){i.showSettingsMenu(),$("#ace_settingsmenu").css("font-size","80%").find('div[contains="setOptions"]').hide().end().parent().parent().appendTo($("#elfinder"))})).prependTo(c.next()),t.trigger("Prepare",{node:e,editorObj:ace,instance:i,opts:{}}),n.resolve(i)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadScript([o+"/ace.js"],function(){t.confObj.loader.resolve()},void 0,{obj:window,name:"ace"})),t.confObj.loader.done(a),n},close:function(e,t){t&&t.destroy()},save:function(e,t){t&&$(e).data("ace")&&(e.value=t.session.getValue())},focus:function(e,t){t&&$(e).data("ace")&&t.focus()},resize:function(e,t,i,n){t&&t.resize()}},{setup:function(e,t){!t.UA.ltIE10&&t.options.cdns.codemirror||(this.disabled=!0)},info:{id:"codemirror",name:"CodeMirror",iconImg:"img/editor-icons.png 0 -176"},load:function(e){var t=this.fm,i=t.options.cdns.codemirror,o=$.Deferred(),a=this,r=function(t){var r,s,c,d=$(e),l=d.parent();l.height(l.height()),c={lineNumbers:!0,lineWrapping:!0,extraKeys:{"Ctrl-S":function(){a.doSave()},"Ctrl-Q":function(){a.doCancel()},"Ctrl-W":function(){a.doCancel()}}},a.trigger("Prepare",{node:e,editorObj:t,instance:void 0,opts:c}),r=t.fromTextArea(e,c),o.resolve(r);var p,m,u,f;p||(p=t.findModeByMIME(a.file.mime)),!p&&(m=a.file.name.match(/.+\.([^.]+)$/))&&(p=t.findModeByExtension(m[1])),p&&(t.modeURL=n?"codemirror/mode/%N/%N.min":i+"/mode/%N/%N.min.js",u=p.mode,f=p.mime,r.setOption("mode",f),t.autoLoadMode(r,u),l.prev().children(".elfinder-dialog-title").append(" ("+f+" : "+u+")")),s=$(r.getWrapperElement()).css({padding:0,border:"none"}),d.data("cm",!0),s.height("100%"),$('<div class="ui-dialog-buttonset"/>').css("float","left").append($("<button/>").html(a.fm.i18n("TextArea")).button().on("click",function(){d.data("cm")?(d.removeData("cm"),s.hide(),d.val(r.getValue()).show().trigger("focus"),$(this).text("CodeMirror")):(d.data("cm",!0),s.show(),r.setValue(d.hide().val()),r.refresh(),r.focus(),$(this).html(a.fm.i18n("TextArea")))})).prependTo(l.next())};return a.confObj.loader||(a.confObj.loader=$.Deferred(),n?(require.config({packages:[{name:"codemirror",location:i,main:"codemirror.min"}],map:{codemirror:{"codemirror/lib/codemirror":"codemirror"}}}),require(["codemirror","codemirror/addon/mode/loadmode.min","codemirror/mode/meta.min"],function(e){a.confObj.loader.resolve(e)})):a.fm.loadScript([i+"/codemirror.min.js"],function(){a.fm.loadScript([i+"/addon/mode/loadmode.min.js",i+"/mode/meta.min.js"],function(){a.confObj.loader.resolve(CodeMirror)})},{loadType:"tag"}),a.fm.loadCss(i+"/codemirror.css")),a.confObj.loader.done(r),o},close:function(e,t){t&&t.toTextArea()},save:function(e,t){t&&$(e).data("cm")&&(e.value=t.getValue())},focus:function(e,t){t&&$(e).data("cm")&&t.focus()},resize:function(e,t,i,n){t&&t.refresh()}},{setup:function(e,t){!t.UA.ltIE10&&t.options.cdns.simplemde||(this.disabled=!0)},info:{id:"simplemde",name:"SimpleMDE",iconImg:"img/editor-icons.png 0 -80"},exts:["md"],load:function(e){var t=this,i=this.fm,o=$(e).parent(),a=$.Deferred(),r=i.options.cdns.simplemde,s=function(i){var n,r,s,c=o.height(),d=o.outerHeight(!0)-c+14;e._setHeight=function(e){var t,i=e||o.height(),a=0;return o.children(".editor-toolbar,.editor-statusbar").each(function(){a+=$(this).outerHeight(!0)}),t=i-a-d,r.height(t),n.codemirror.refresh(),t},o.height(c),s={element:e,autofocus:!0},t.trigger("Prepare",{node:e,editorObj:i,instance:void 0,opts:s}),n=new i(s),a.resolve(n),r=$(n.codemirror.getWrapperElement()),r.css("min-height","50px").children(".CodeMirror-scroll").css("min-height","50px"),e._setHeight(c)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadCss(r+"/simplemde.min.css"),n?require([r+"/simplemde.min.js"],function(e){t.confObj.loader.resolve(e)}):t.fm.loadScript([r+"/simplemde.min.js"],function(){t.confObj.loader.resolve(SimpleMDE)},{loadType:"tag"})),t.confObj.loader.done(s),a},close:function(e,t){t&&t.toTextArea(),t=null},save:function(e,t){t&&(e.value=t.value())},focus:function(e,t){t&&t.codemirror.focus()},resize:function(e,t,i,n){t&&e._setHeight()}},{info:{id:"ckeditor",name:"CKEditor",iconImg:"img/editor-icons.png 0 0"},exts:["htm","html","xhtml"],setup:function(e,t){t.options.cdns.ckeditor?e.extraOptions&&e.extraOptions.managerUrl&&(this.managerUrl=e.extraOptions.managerUrl):this.disabled=!0},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=function(){var o,a=$(e).parent(),r=a.closest(".elfinder-dialog"),s=a.height(),c=/([&?]getfile=)[^&]+/,d=t.confObj.managerUrl||window.location.href.replace(/#.*$/,""),l="ckeditor";c.test(d)?d=d.replace(c,"$1"+l):d+="?getfile="+l,a.height(s),o={startupFocus:!0,fullPage:!0,allowedContent:!0,filebrowserBrowseUrl:d,toolbarCanCollapse:!0,toolbarStartupExpanded:!i.UA.Mobile,removePlugins:"resize",extraPlugins:"colorbutton,justify,docprops",on:{instanceReady:function(o){var a=o.editor;a.resize("100%",s),r.one("beforedommove."+i.namespace,function(){a.destroy()}).one("dommove."+i.namespace,function(){t.load(e).done(function(e){t.instance=e})}),n.resolve(o.editor)}}},t.trigger("Prepare",{node:e,editorObj:CKEDITOR,instance:void 0,opts:o}),CKEDITOR.replace(e.id,o),CKEDITOR.on("dialogDefinition",function(e){var t=e.data.definition.dialog;t.on("show",function(e){i.getUI().append($(".cke_dialog_background_cover")).append(this.getElement().$)}),t.on("hide",function(e){$("body:first").append($(".cke_dialog_background_cover")).append(this.getElement().$)})})};return t.confObj.loader||(t.confObj.loader=$.Deferred(),window.CKEDITOR_BASEPATH=i.options.cdns.ckeditor+"/",$.getScript(i.options.cdns.ckeditor+"/ckeditor.js",function(){t.confObj.loader.resolve()})),t.confObj.loader.done(o),n},close:function(e,t){t&&t.destroy()},save:function(e,t){t&&(e.value=t.getData())},focus:function(e,t){t&&t.focus()},resize:function(e,t,i,n){t&&"ready"===t.status&&t.resize("100%",$(e).parent().height())}},{info:{id:"ckeditor5",name:"CKEditor5",iconImg:"img/editor-icons.png 0 -16"},exts:["htm","html","xhtml"],html:'<div class="edit-editor-ckeditor5"></div>',setup:function(e,t){var i=this;t.options.cdns.ckeditor5&&"function"==typeof window.Symbol&&"symbol"==typeof Symbol()?e.extraOptions&&e.extraOptions.ckeditor5Mode&&(this.ckeditor5Mode=e.extraOptions.ckeditor5Mode):this.disabled=!0,t.bind("destroy",function(){i.editor=null})},prepare:function(e,t,i){$(e).height(e.editor.fm.getUI().height()-100)},init:function(e,t,i,n){var o=i.match(/^([\s\S]*<body[^>]*>)([\s\S]+)(<\/body>[\s\S]*)$/i),a="",r="",s="";this.css({width:"100%",height:"100%","box-sizing":"border-box"}),o?(a=o[1],r=o[2],s=o[3]):r=i,this.data("data",{header:a,body:r,footer:s})},load:function(e){var t,i=this,n=this.fm,o=$.Deferred(),a=i.confObj.ckeditor5Mode||"balloon",r=function(){var e=n.lang.toLowerCase().replace("_","-");return"zh"===e.substr(0,2)&&"zh-cn"!==e&&(e="zh"),e}(),s=function(t){var a,s=$(e).parent();s.height(n.getUI().height()-100),a={toolbar:["heading","|","bold","italic","link","imageUpload","bulletedList","numberedList","blockQuote","undo","redo"],language:r},i.trigger("Prepare",{node:e,editorObj:t,instance:void 0,opts:a}),t.create(e,a).then(function(t){var i=t.plugins.get("FileRepository");i.createUploadAdapter=function(e){return new c(e)},t.setData($(e).data("data").body),n.getUI().append($("body > div.ck-body")),$("div.ck-balloon-panel").css({"z-index":n.getMaximizeCss().zIndex+1}),o.resolve(t)})["catch"](function(e){n.error(e)})},c=function(e){this.upload=function(){return new Promise(function(t,i){n.exec("upload",{files:[e.file]},void 0,n.cwd().hash).done(function(e){e.added&&e.added.length?n.url(e.added[0].hash,{async:!0}).done(function(e){t({"default":n.convAbsUrl(e)})}).fail(function(){i("errFileNotFound")}):i(n.i18n(e.error?e.error:"errUpload"))}).fail(function(e){i(n.i18n(e?"userabort"===e?"errAbort":e:"errUploadNoFiles"))}).progress(function(t){e.uploadTotal=t.total,e.uploaded=t.progress})})},this.abort=function(){n.getUI().trigger("uploadabort")}};return i.confObj.editor?s(i.confObj.editor):(t=$.Deferred(),i.fm.loadScript([n.options.cdns.ckeditor5+"/"+a+"/ckeditor.js"],function(e){e||(e=window.BalloonEditor||window.InlineEditor||window.ClassicEditor),"en"!==n.lang?i.fm.loadScript([n.options.cdns.ckeditor5+"/"+a+"/translations/"+r+".js"],function(i){t.resolve(e)},{tryRequire:!0,loadType:"tag",error:function(i){r="en",t.resolve(e)}}):t.resolve(e)},{tryRequire:!0,loadType:"tag"}),t.done(function(e){i.confObj.editor=e,s(e)})),o},getContent:function(){var e=$(this).data("data");return e.header+e.body+e.footer},close:function(e,t){t&&t.destroy()},save:function(e,t){var i=$(e),n=i.data("data");t&&(n.body=t.getData(),i.data("data",n))},focus:function(e,t){$(e).trigger("focus")}},{info:{id:"tinymce",name:"TinyMCE",iconImg:"img/editor-icons.png 0 -64"},exts:["htm","html","xhtml"],setup:function(e,t){t.options.cdns.tinymce?e.extraOptions&&e.extraOptions.managerUrl&&(this.managerUrl=e.extraOptions.managerUrl):this.disabled=!0},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=function(){var o,a=$(e).show().parent(),r=a.closest(".elfinder-dialog"),s=a.height(),c=a.outerHeight(!0)-s;a.height(s),e._setHeight=function(e){var t,i=$(this).parent(),n=e||i.height(),o=0;return i.find(".mce-container-body:first").children(".mce-top-part,.mce-statusbar").each(function(){o+=$(this).outerHeight(!0)}),t=n-o-c,i.find(".mce-edit-area iframe:first").height(t),t},o={selector:"#"+e.id,resize:!1,plugins:["fullpage","image","link","media","code","fullscreen"],init_instance_callback:function(o){e._setHeight(s),r.one("beforedommove."+i.namespace,function(){tinymce.execCommand("mceRemoveEditor",!1,e.id)}).one("dommove."+i.namespace,function(){t.load(e).done(function(e){t.instance=e})}),n.resolve(o)},file_picker_callback:function(e,i,n){var o=/([&?]getfile=)[^&]+/,a=t.confObj.managerUrl||window.location.href.replace(/#.*$/,""),r="tinymce";return o.test(a)?a=a.replace(o,"$1"+r):a+="?getfile="+r,tinymce.activeEditor.windowManager.open({file:a,title:"elFinder",width:900,height:450,resizable:"yes"},{oninsert:function(t,i){var o,a;o=i.convAbsUrl(t.url),a=t.name+" ("+i.formatSize(t.size)+")","file"==n.filetype&&e(o,{text:a,title:a}),"image"==n.filetype&&e(o,{alt:a}),"media"==n.filetype&&e(o)}}),!1}},t.trigger("Prepare",{node:e,editorObj:tinymce,instance:void 0,opts:o}),tinymce.init(o)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),$.getScript(i.options.cdns.tinymce+"/tinymce.min.js",function(){setTimeout(function(){t.confObj.loader.resolve()},0)})),t.confObj.loader.done(o),n},close:function(e,t){t&&tinymce.execCommand("mceRemoveEditor",!1,e.id)},save:function(e,t){t&&t.save()},focus:function(e,t){t&&t.focus()},resize:function(e,t,i,n){t&&e._setHeight()}},{info:{id:"zohoeditor",name:"Zoho Editor",iconImg:"img/editor-icons.png 0 -32",cmdCheck:"ZohoOffice",preventGet:!0,hideButtons:!0,syncInterval:15e3,canMakeEmpty:!0,integrate:{title:"Zoho Office API",link:"https://www.zoho.com/officeapi/"}},mimes:["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.oasis.opendocument.text","application/rtf","text/html","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.spreadsheet","application/vnd.sun.xml.calc","text/csv","text/tab-separated-values","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/vnd.oasis.opendocument.presentation","application/vnd.sun.xml.impress"],html:'<iframe style="width:100%;max-height:100%;border:none;"></iframe>',setup:function(e,t){(t.UA.Mobile||t.UA.ltIE8)&&(this.disabled=!0)},prepare:function(e,t,i){var n=e.editor.fm.getUI();$(e).height(n.height()),t.width=Math.max(t.width||0,.8*n.width())},init:function(e,t,i,n){var o=this,a=$(this).hide(),r=$("<div/>").css({position:"absolute",top:"50%",textAlign:"center",width:"100%",fontSize:"16pt"}).html(n.i18n("nowLoading")+'<span class="elfinder-spinner"/>').appendTo(a.parent()),s=function(){var e="";return $.each(n.customData,function(t,i){e+="&"+encodeURIComponent(t)+"="+encodeURIComponent(i)}),e};$(o).data("xhr",n.request({data:{cmd:"editor",name:"ZohoOffice",method:"init","args[target]":t.hash,"args[lang]":n.lang,"args[cdata]":s},preventDefault:!0}).done(function(e){var t;e.zohourl?(t={css:{height:"100%"}},o.editor.trigger("Prepare",{node:o,editorObj:void 0,instance:a,opts:t}),a.attr("src",e.zohourl).show().css(t.css)):(e.error&&n.error(e.error),o.elfinderdialog("destroy"))}).fail(function(e){e&&n.error(e),o.elfinderdialog("destroy")}).always(function(){r.remove();
}))},load:function(){},getContent:function(){},save:function(){},beforeclose:m,close:function(e){var t=(this.fm,$(e).data("xhr"));"pending"===t.state()&&t.reject()}},{info:{id:"ziparchive",name:"btnMount",iconImg:"img/toolbar.png 0 -416",cmdCheck:"ZipArchive",edit:function(e,t){var i=this,n=$.Deferred();return i.request({data:{cmd:"netmount",protocol:"ziparchive",host:e.hash,path:e.phash},notify:{type:"netmount",cnt:1,hideCnt:!0}}).done(function(e){var t;e.added&&e.added.length&&(e.added[0].phash&&(t=i.file(e.added[0].phash))&&(t.dirs||(t.dirs=1,i.change({changed:[t]}))),i.one("netmountdone",function(){i.exec("open",e.added[0].hash),i.one("opendone",function(){e.toast&&i.toast(e.toast)})})),n.resolve()}).fail(function(e){n.reject(e)}),n}},mimes:["application/zip"],load:function(){},save:function(){}},{info:{id:"textarea",name:"TextArea",useTextAreaEvent:!0},load:function(e){this.trigger("Prepare",{node:e,editorObj:void 0,instance:void 0,opts:{}}),e.setSelectionRange&&e.setSelectionRange(0,0),$(e).trigger("focus").show()},save:function(){}},{info:{id:"onlineconvert",name:"Online Convert",iconImg:"img/editor-icons.png 0 -144",cmdCheck:"OnlineConvert",preventGet:!0,hideButtons:!0,single:!0,converter:!0,canMakeEmpty:!1,integrate:{title:"ONLINE-CONVERT.COM",link:"https://online-convert.com"}},mimes:["*"],html:'<iframe style="width:100%;max-height:100%;border:none;"></iframe>',setup:function(e,t){var i=e.extraOptions.onlineConvert||{maxSize:100,showLink:!0};i.maxSize&&(this.info.maxSize=1048576*i.maxSize),this.set=Object.assign({url:"https://%s.online-convert.com%s?external_url=",conv:{Archive:{"7Z":{},BZ2:{ext:"bz"},GZ:{},ZIP:{}},Audio:{MP3:{},OGG:{ext:"oga"},WAV:{},WMA:{},AAC:{},AIFF:{ext:"aif"},FLAC:{},M4A:{},MMF:{},OPUS:{ext:"oga"}},Document:{DOC:{},DOCX:{},HTML:{},ODT:{},PDF:{},PPT:{},PPTX:{},RTF:{},SWF:{},TXT:{}},eBook:{AZW3:{ext:"azw"},ePub:{},FB2:{ext:"xml"},LIT:{},LRF:{},MOBI:{},PDB:{},PDF:{},"PDF-eBook":{ext:"pdf"},TCR:{}},Hash:{Adler32:{},"Apache-htpasswd":{},Blowfish:{},CRC32:{},CRC32B:{},Gost:{},Haval128:{},MD4:{},MD5:{},RIPEMD128:{},RIPEMD160:{},SHA1:{},SHA256:{},SHA384:{},SHA512:{},Snefru:{},"Std-DES":{},Tiger128:{},"Tiger128-calculator":{},"Tiger128-converter":{},Tiger160:{},Tiger192:{},Whirlpool:{}},Image:{BMP:{},EPS:{ext:"ai"},GIF:{},EXR:{},ICO:{},JPG:{},PNG:{},SVG:{},TGA:{},TIFF:{ext:"tif"},WBMP:{},WebP:{}},Video:{"3G2":{},"3GP":{},AVI:{},FLV:{},HLS:{ext:"m3u8"},MKV:{},MOV:{},MP4:{},"MPEG-1":{ext:"mpeg"},"MPEG-2":{ext:"mpeg"},OGG:{ext:"ogv"},OGV:{},WebM:{},WMV:{},Android:{link:"/convert-video-for-%s",ext:"mp4"},Blackberry:{link:"/convert-video-for-%s",ext:"mp4"},DPG:{link:"/convert-video-for-%s",ext:"avi"},iPad:{link:"/convert-video-for-%s",ext:"mp4"},iPhone:{link:"/convert-video-for-%s",ext:"mp4"},iPod:{link:"/convert-video-for-%s",ext:"mp4"},"Nintendo-3DS":{link:"/convert-video-for-%s",ext:"avi"},"Nintendo-DS":{link:"/convert-video-for-%s",ext:"avi"},PS3:{link:"/convert-video-for-%s",ext:"mp4"},Wii:{link:"/convert-video-for-%s",ext:"avi"},Xbox:{link:"/convert-video-for-%s",ext:"wmv"}}},catExts:{Hash:"txt"},link:'<div class="elfinder-edit-onlineconvert-link"><a href="https://www.online-convert.com" target="_blank"><span class="elfinder-button-icon"></span>ONLINE-CONVERT.COM</a></div>',toastWidth:280,useTabs:!(!$.fn.tabs||t.UA.iOS)},i)},prepare:function(e,t,i){var n=e.editor.fm.getUI();$(e).height(n.height()),t.width=Math.max(t.width||0,.8*n.width())},init:function(e,t,i,n){var o,a,r=this,s=r.editor.confObj,c=s.set,d=n.getUI("toast"),l={},p=n.uploadMimeCheck("application/zip",t.phash),m=function(e,t){var i;return c.catExts[e]?c.catExts[e]:c.conv[e]&&(i=c.conv[e][t])?(i.ext||t).toLowerCase():t.toLowerCase()},u=function(e,t){var i,o,a;o="undefined"==typeof s.api?n.request({data:{cmd:"editor",name:"OnlineConvert",method:"init"},preventDefault:!0}):$.Deferred().resolve({api:s.api}),e=e.toLowerCase(),o.done(function(n){s.api=n.api,s.api&&(e?i="?category="+e:(i="",e="all"),s.conversions||(s.conversions={}),a=s.conversions[e]?$.Deferred().resolve(s.conversions[e]):$.getJSON("https://api2.online-convert.com/conversions"+i),a.done(function(i){s.conversions[e]=i,$.each(i,function(e,t){f[c.useTabs?"children":"find"](".onlineconvert-category-"+t.category).children(".onlineconvert-"+t.target).trigger("makeoption",t)}),t&&t()}))})},f=function(){var e=$("<div/>").on("click","button",function(){var e=$(this),t=e.data("opts")||null,i=e.closest(".onlineconvert-category").data("cname"),n=e.data("conv");s.api===!0?y({category:i,convert:n,options:t}):j(i,n)}).on("change",function(e){var t=$(e.target),i=t.parent(),o=t.closest(".elfinder-edit-onlineconvert-button").children("button:first"),a=o.data("opts")||{},r="boolean"===i.data("type")?t.is(":checked"):t.val();if(e.stopPropagation(),r&&("integer"===i.data("type")&&(r=parseInt(r)),i.data("pattern"))){var s=new RegExp(i.data("pattern"));s.test(r)||(requestAnimationFrame(function(){n.error('"'+n.escape(r)+'" is not match to "/'+n.escape(i.data("pattern"))+'/"')}),r=null)}r?a[t.parent().data("optkey")]=r:delete a[i.data("optkey")],o.data("opts",a)}),i=$("<ul/>"),o=function(e,t){var i,o,a,r=$("<p/>").data("optkey",e).data("type",t.type),s="",c="",d=!1;return t.description&&r.attr("title",n.i18n(t.description)),t.pattern&&r.data("pattern",t.pattern),r.append($("<span/>").text(n.i18n(e)+" : ")),"boolean"===t.type?((t["default"]||(d="allow_multiple_outputs"===e&&!p))&&(s=" checked",d&&(c=" disabled"),o=this.children("button:first"),i=o.data("opts")||{},i[e]=!0,o.data("opts",i)),r.append($('<input type="checkbox" value="true"'+s+c+"/>"))):t["enum"]?(a=$("<select/>").append($('<option value=""/>').text("Select...")),$.each(t["enum"],function(e,t){a.append($('<option value="'+t+'"/>').text(t))}),r.append(a)):r.append($('<input type="text" value=""/>')),r},a=function(e){var t=this,i=$('<span class="elfinder-button-icon elfinder-button-icon-preference"/>').on("click",function(){n.toggle()}),n=$('<div class="elfinder-edit-onlinconvert-options"/>').hide();e.options&&$.each(e.options,function(e,i){"download_password"!==e&&n.append(o.call(t,e,i))}),t.append(i,n)},r=+new Date,d=0;return s.ext2mime||(s.ext2mime=n.arrayFlip(n.mimeTypes)),$.each(c.conv,function(o,c){var p=o.toLowerCase(),u="elfinder-edit-onlineconvert-"+p+r,f=$('<div id="'+u+'" class="onlineconvert-category onlineconvert-category-'+p+'"/>').data("cname",o);$.each(c,function(e,i){var r=e.toLowerCase(),c=m(o,e);s.ext2mime[c]||("audio"===p||"image"===p||"video"===p?s.ext2mime[c]=p+"/x-"+r:s.ext2mime[c]="application/octet-stream"),n.uploadMimeCheck(s.ext2mime[c],t.phash)&&f.append($('<div class="elfinder-edit-onlineconvert-button onlineconvert-'+r+'"/>').on("makeoption",function(e,t){var i=$(this);i.children(".elfinder-button-icon-preference").length||a.call(i,t)}).append($("<button/>").text(e).data("conv",e)))}),f.children().length&&(i.append($("<li/>").append($("<a/>").attr("href","#"+u).text(o))),e.append(f),l[p]=d++)}),c.useTabs?e.prepend(i).tabs({beforeActivate:function(e,t){u(t.newPanel.data("cname"))}}):$.each(c.conv,function(t){var i=t.toLowerCase();e.append($('<fieldset class="onlineconvert-fieldset-'+i+'"/>').append($("<legend/>").text(t)).append(e.children(".onlineconvert-category-"+i)))}),e}(),g=$(this).hide(),h=$("<div/>").append(f,$('<div class="elfinder-edit-onlineconvert-bottom-btn"/>').append($("<button/>").addClass(n.UA.iOS?"elfinder-button-ios-multiline":"").html(n.i18n("convertOn","Online-Convert.com")).on("click",function(){j()})),c.showLink?$(c.link):null).appendTo(g.parent().css({overflow:"auto"})),v=$('<div class="elfinder-edit-spiner elfinder-edit-online-convert"/>').hide().css({position:"absolute",top:"50%",textAlign:"center",width:"100%",fontSize:"16pt"}).html('<span class="elfinder-edit-loadingmsg">'+n.i18n("nowLoading")+'</span><span class="elfinder-spinner"/>').appendTo(g.parent()),x=null,b=function(){return x?$.Deferred().resolve(x):(v.show(),n.url(t.hash,{async:!0,temporary:!0}).done(function(e){x=e}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")}).always(function(){v.hide()}))},y=function(e){$(r).data("dfrd",b().done(function(i){h.fadeOut(),C({info:"Start conversion request."}),n.request({data:{cmd:"editor",name:"OnlineConvert",method:"api","args[category]":e.category.toLowerCase(),"args[convert]":e.convert.toLowerCase(),"args[options]":JSON.stringify(e.options),"args[source]":n.convAbsUrl(i),"args[filename]":n.splitFileExtention(t.name)[0]+"."+m(e.category,e.convert),"args[mime]":t.mime},preventDefault:!0}).done(function(t){w(t.apires,e.category,e.convert)}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")})}))},w=function(e,t,i){var o,a=[];e&&e.id?(o=e.status,"failed"===o.code?(v.hide(),e.errors&&e.errors.length&&$.each(e.errors,function(e,t){t.message&&a.push(t.message)}),n.error(a.length?a:o.info),h.fadeIn()):"completed"===o.code?k(e.output):(C(o),setTimeout(function(){O(e.id)},1e3))):(d.appendTo(r.closest(".ui-dialog")),e.message&&n.toast({msg:n.i18n(e.message),mode:"error",timeOut:5e3,width:c.toastWidth,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI())}}),n.toast({msg:n.i18n("editorConvNoApi"),mode:"warning",timeOut:3e3,width:c.toastWidth,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI()),j(t,i)}}))},C=function(e){v.show().children(".elfinder-edit-loadingmsg").text(e.info)},O=function(e){n.request({data:{cmd:"editor",name:"OnlineConvert",method:"api","args[jobid]":e},preventDefault:!0}).done(function(e){w(e.apires)}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")})},k=function(e){var i="";v.hide(),e&&e.length&&(r.elfinderdialog("destroy"),$.each(e,function(e,t){t.uri&&(i+=t.uri+"\n")}),n.upload({target:t.phash,files:[i],type:"text"}))},j=function(e,t){var i;e&&t?(i=c.conv[e]&&c.conv[e][t]&&c.conv[e][t].link?c.conv[e][t].link.replace("%s",t):"hash"===e?"/"+t+"-generator":"/convert-to-"+t,i=c.url.replace("%s",e).replace("%s",i)):i=c.url.replace("%s",T+"-conversion").replace("%s",""),v.hide(),h.hide(),g.parent().css({overflow:n.UA.iOS?"auto":"hidden"}),$(r).data("dfrd",b().done(function(e){var t;e?(t={css:{height:"100%"}},r.editor.trigger("Prepare",{node:r,editorObj:void 0,instance:g,opts:t}),e=i+encodeURIComponent(n.convAbsUrl(e)),g.attr("src",e).show().css(t.css).one("load",function(){d.appendTo(r.closest(".ui-dialog")),n.toast({msg:n.i18n("editorConvNeedUpload"),mode:"info",timeOut:1e4,width:c.toastWidth,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI())},button:{text:"btnYes"}})})):(data.error&&n.error(data.error),r.elfinderdialog("destroy"))}))},T="document";g.parent().addClass("overflow-scrolling-touch"),(a=t.mime.match(/^(audio|image|video)/))&&(T=a[1]),c.useTabs?l[T]&&f.tabs("option","active",l[T]):(o=Object.keys(c.conv).length,$.each(c.conv,function(e){return e.toLowerCase()===T?(u(e,function(){$.each(c.conv,function(e){e.toLowerCase()!==T&&u(e)})}),!1):void o--}),o||$.each(c.conv,function(e){u(e)}),g.parent().scrollTop(f.children(".onlineconvert-fieldset-"+T).offset().top))},load:function(){},getContent:function(){},save:function(){},beforeclose:m,close:function(e){var t=(this.fm,$(e).data("dfrd"));t&&"pending"===t.state()&&t.reject()}}]},window.elFinder);
\ No newline at end of file
!function(e,t){if("function"==typeof define&&define.amd)define(["elfinder"],e);else if(t){var i=t.prototype._options.commandsOptions.edit.editors;t.prototype._options.commandsOptions.edit.editors=i.concat(e(t))}}(function(e){"use strict";var t,i=window.location.search.match(/getfile=([a-z]+)/),n=e.prototype.hasRequire,o=function(){var e;try{e=!!new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(t){e=!!("undefined"==typeof window.orientation||navigator&&navigator.mimeTypes["application/x-shockwave-flash"])}return e}(),a={bmp:"image/x-ms-bmp",dng:"image/x-adobe-dng",gif:"image/gif",jpeg:"image/jpeg",jpg:"image/jpeg",pdf:"application/pdf",png:"image/png",ppm:"image/x-portable-pixmap",psd:"image/vnd.adobe.photoshop",pxd:"image/x-pixlr-data",svg:"image/svg+xml",tiff:"image/tiff",webp:"image/webp",xcf:"image/x-xcf",sketch:"application/x-sketch"},r=function(e,i){t||(t=i.arrayFlip(a));var n=t[e]||i.mimeTypes[e];return"jpeg"===n&&(n="jpg"),n},s=function(e,t){var i=$.Deferred();try{var n=document.createElement("canvas"),o=n.getContext("2d"),a=new Image,r=function(){var e,o,a=n.toDataURL(t);e=(o=a.match(/^data:([a-z0-9]+\/[a-z0-9.+-]+)/i))?o[1]:"",e.toLowerCase()===t.toLowerCase()?i.resolve(n.toDataURL(t),n):i.reject()};return a.src=e,$(a).on("load",function(){try{n.width=a.width,n.height=a.height,o.drawImage(a,0,0),r()}catch(e){i.reject()}}).on("error",function(){i.reject()}),i}catch(s){return i.reject()}},c=function(e,t,i,n){var o,a=$(this).children("img:first").data("ext",r(t.mime,n)),s=$('<div class="elfinder-edit-spinner elfinder-edit-image"/>').html('<span class="elfinder-spinner-text">'+n.i18n("ntfloadimg")+'</span><span class="elfinder-spinner"/>').hide().appendTo(this);i.match(/^data:/)||(o=n.openUrl(t.hash),a.attr("_src",i)),a.attr("id",e+"-img").attr("src",o||i).css({height:"","max-width":"100%","max-height":"100%",cursor:"pointer"}).data("loading",function(e){var t=a.closest(".elfinder-dialog").find("button,.elfinder-titlebar-button");return t.prop("disabled",!e)[e?"removeClass":"addClass"]("ui-state-disabled"),a.css("opacity",e?"":"0.3"),s[e?"hide":"show"](),a})},d=function(e,t){var i,n,o,a=e.attr("style");try{e.attr("style",""),i=e.get(0),n=document.createElement("canvas"),n.width=i.width,n.height=i.height,e.attr("style",a),n.getContext("2d").drawImage(i,0,0),o=n.toDataURL(t)}catch(r){o=e.attr("src")}return o},l=function(){if(o&&window.parent!==window){var e,t,i,n,r,s=window.location.search.match(/[?&]pixlr=([^&]+)/),c=window.location.search.match(/[?&]image=([^&]+)/);s&&(e=window.parent,t=e.$("#"+s[1]+"iframe").hide(),n=e.$("#"+s[1]).data("resizeoff")(),"http"===c[1].substr(0,4)?(i=c[1],r=i.replace(/.+\.([^.]+)$/,"$1"),n.data("ext")!==r&&n.closest(".ui-dialog").trigger("changeType",{extention:r,mime:a[r]}),"https:"===window.location.protocol&&(i=i.replace(/^http:/,"https:")),n.on("load error",function(){n.data("loading")(!0)}).attr("src",i).data("loading")()):n.data("loading")(!0),t.trigger("destroy").remove())}},p=function(e,t){o&&!t.UA.ltIE8||(this.disabled=!0)},m=function(e,t){var i,n=this,o=this.fm,a=o.res("class","preventback"),r=$(t).children("img:first").data("loading")().data("resizeoff",function(){return $(window).off("resize."+r.attr("id")),s.addClass(a),r}).on("click",function(){u()}),s=$(t).closest(".ui-dialog"),c=o.getUI(),d=o.getUI("toast"),l=$('<iframe class="ui-front" allowtransparency="true">'),p=this.file,m=15,f=function(e){e?(l.trigger("destroy").remove(),r.data("loading")(!0),o.error(e)):(d.appendTo(s.closest(".ui-dialog")),o.toast({mode:"info",msg:"Can not launch Pixlr yet. Waiting "+m+" seconds.",button:{text:"Abort",click:function(){l.trigger("destroy").remove(),r.data("loading")(!0)}},onHidden:function(){1===d.children().length&&d.appendTo(o.getUI())}}),i=setTimeout(e,1e3*m))},u=function(){var d="https://pixlr.com/"+e+"/?s=c",u=window.location.href.toString().replace(/#.*$/,""),g={};i=setTimeout(f,1e3*m),u+=(u.indexOf("?")===-1?"?":"&")+"pixlr="+r.attr("id"),d+="&referrer=elFinder&locktitle=true",d+="&exit="+encodeURIComponent(u+"&image=0"),d+="&target="+encodeURIComponent(u),d+="&title="+encodeURIComponent(p.name),d+="&image="+encodeURIComponent(r.attr("_src")),g.src=d,g.css={width:"100%",height:$(window).height()+"px",position:"fixed",display:"block",backgroundColor:"transparent",border:"none",top:0,right:0},n.trigger("Prepare",{node:t,editorObj:void 0,instance:l,opts:g}),l.attr("id",r.attr("id")+"iframe").attr("src",g.src).css(g.css).one("load",function(){i&&clearTimeout(i),setTimeout(function(){l.is(":hidden")&&f("Please disable your ad blocker.")},1e3),s.addClass(a),o.toggleMaximize(l,!0),o.toFront(l)}).on("destroy",function(){o.toggleMaximize(l,!1)}).on("error",f).appendTo(c.hasClass("elfinder-fullscreen")?c:"body")};$(t).on("saveAsFail",u),u()},f=function(e){var t,i=$(e),n=$.Deferred().always(function(){i.off("load",r)}),o="about:blank",a=function(){t=setTimeout(function(){var e;try{e=base.contentWindow.location.href}catch(t){e=null}e===o?n.resolve():--s>0?a():n.reject()},500)},r=function(){t&&clearTimeout(t),n.resolve()},s=20;return i.one("load",r),e.src=o,a(),n};return l(),i&&(i=i[1],"ckeditor"===i&&(e.prototype._options.getFileCallback=function(e,t){window.opener.CKEDITOR.tools.callFunction(function(){var e=new RegExp("(?:[?&]|&amp;)CKEditorFuncNum=([^&]+)","i"),t=window.location.search.match(e);return t&&t.length>1?t[1]:""}(),t.convAbsUrl(e.url)),t.destroy(),window.close()})),[{info:{id:"tuiimgedit",name:"TUI Image Editor",iconImg:"img/editor-icons.png 0 -48",dataScheme:!0,schemeContent:!0,openMaximized:!0,canMakeEmpty:!1,integrate:{title:"TOAST UI Image Editor",link:"http://ui.toast.com/tui-image-editor/"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],html:'<div class="elfinder-edit-imageeditor"><canvas></canvas></div>',setup:function(e,t){t.UA.ltIE8||t.UA.Mobile?this.disabled=!0:(this.opts=Object.assign({version:"v3.5.2"},e.extraOptions.tuiImgEditOpts||{},{iconsPath:t.baseUrl+"img/tui-",theme:{}}),t.isSameOrigin(this.opts.iconsPath)||(this.disabled=!0,t.debug("warning","Setting `commandOptions.edit.extraOptions.tuiImgEditOpts.iconsPath` MUST follow the same origin policy.")))},init:function(e,t,i,n){this.data("url",i)},load:function(e){var t,i=this,n=this.fm,o=$.Deferred(),a=n.options.cdns,r=i.confObj.opts.version,s=function(t){var a,r,s,c,d=$(e),l=d.parent(),p=i.confObj.opts,m=p.iconsPath,f=$('<div class="tui-image-editor-container">').appendTo(l),u=[$('<div class="tui-image-editor-submenu"/>').appendTo(f),$('<div class="tui-image-editor-controls"/>').appendTo(f)],g=new t(e,{includeUI:{loadImage:{path:d.data("url"),name:i.file.name},theme:Object.assign(p.theme,{"menu.normalIcon.path":m+"icon-d.svg","menu.normalIcon.name":"icon-d","menu.activeIcon.path":m+"icon-b.svg","menu.activeIcon.name":"icon-b","menu.disabledIcon.path":m+"icon-a.svg","menu.disabledIcon.name":"icon-a","menu.hoverIcon.path":m+"icon-c.svg","menu.hoverIcon.name":"icon-c","submenu.normalIcon.path":m+"icon-d.svg","submenu.normalIcon.name":"icon-d","submenu.activeIcon.path":m+"icon-c.svg","submenu.activeIcon.name":"icon-c"}),initMenu:"filter",menuBarPosition:"bottom"},cssMaxWidth:Math.max(300,l.width()),cssMaxHeight:Math.max(200,l.height()-(u[0].height()+u[1].height()+3)),usageStatistics:!1}),h=d.find("canvas:first").get(0),v=function(e){if("undefined"!=typeof e){var t,i,n=$(h),o=parseInt(n.attr("width")),a=parseInt(n.attr("height")),r=o/a;0===e?(t=o,i=a):(t=parseInt(n.css("max-width"))+Number(e),i=t/r,t>o&&i>a&&(t=o,i=a)),y.text(Math.round(t/o*100)+"%"),g.resizeCanvasDimension({width:t,height:i}),c&&setTimeout(function(){c&&v(e)},50)}},x=$('<span class="ui-icon ui-icon-plusthick"/>').data("val",10),b=$('<span class="ui-icon ui-icon-minusthick"/>').data("val",-10),y=$("<button/>").css("width","4em").text("%").attr("title","100%").data("val",0);f.remove(),d.removeData("url").data("mime",i.file.mime),"image/jpeg"===i.file.mime?(d.data("quality",n.storage("jpgQuality")||n.option("jpgQuality")),a=$('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>').attr("min","1").attr("max","100").attr("title","1 - 100").on("change",function(){var e=a.val();d.data("quality",e),r&&cancelAnimationFrame(r),r=requestAnimationFrame(function(){h.toBlob(function(e){e&&a.next("span").text(" ("+n.formatSize(e.size)+")")},"image/jpeg",Math.max(Math.min(e,100),1)/100)})}).val(d.data("quality")),$('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>').append($("<span>").html(n.i18n("quality")+" : "),a,$("<span/>")).prependTo(d.parent().next())):"image/svg+xml"===i.file.mime&&d.closest(".ui-dialog").trigger("changeType",{extention:"png",mime:"image/png",keepEditor:!0}),$('<div class="ui-dialog-buttonset elfinder-edit-extras"/>').append(b,y,x).attr("title",n.i18n("scale")).on("click","span,button",function(){v($(this).data("val"))}).on("mousedown mouseup mouseleave","span",function(e){c=!1,s&&clearTimeout(s),"mousedown"===e.type&&(s=setTimeout(function(){c=!0,v($(e.target).data("val"))},500))}).prependTo(d.parent().next()),setTimeout(function(){o.resolve(g),a&&(a.trigger("change"),g.on("redoStackChanged undoStackChanged",function(){a.trigger("change")})),v(null)},100)};return i.confObj.editor?s(i.confObj.editor):(t=$.Deferred(),n.loadCss([a.tui+"/tui-color-picker/latest/tui-color-picker.css",a.tui+"/tui-image-editor/"+r+"/tui-image-editor.css"]),n.hasRequire?(require.config({paths:{"fabric/dist/fabric.require":a.fabric16+"/fabric.require.min","tui-code-snippet":a.tui+"/tui.code-snippet/latest/tui-code-snippet.min","tui-color-picker":a.tui+"/tui-color-picker/latest/tui-color-picker.min","tui-image-editor":a.tui+"/tui-image-editor/"+r+"/tui-image-editor.min"}}),require(["tui-image-editor"],function(e){t.resolve(e)})):n.loadScript([a.fabric16+"/fabric.min.js",a.tui+"/tui.code-snippet/latest/tui-code-snippet.min.js"],function(){n.loadScript([a.tui+"/tui-color-picker/latest/tui-color-picker.min.js"],function(){n.loadScript([a.tui+"/tui-image-editor/"+r+"/tui-image-editor.min.js"],function(){t.resolve(window.tui.ImageEditor)},{loadType:"tag"})},{loadType:"tag"})},{loadType:"tag"}),t.done(function(e){i.confObj.editor=e,s(e)})),o},getContent:function(e){var t=this.editor,i=t.fm,n=$(e),o=n.data("quality");if(t.instance)return"image/jpeg"===n.data("mime")&&(o=o||i.storage("jpgQuality")||i.option("jpgQuality"),o=Math.max(.1,Math.min(1,o/100))),t.instance.toDataURL({format:r(n.data("mime"),i),quality:o})},save:function(e){var t,i=$(e),n=i.data("quality"),o=i.data("hash");this.instance.deactivateAll(),"undefined"!=typeof n&&this.fm.storage("jpgQuality",n),o&&(t=this.fm.file(o),i.data("mime",t.mime))}},{info:{id:"pixlreditor",name:"Pixlr Editor",iconImg:"img/editor-icons.png 0 -128",urlAsContent:!0,schemeContent:!0,single:!0,canMakeEmpty:!0,integrate:{title:"PIXLR EDITOR",link:"https://pixlr.com/editor/"}},mimes:["image/jpeg","image/png","image/gif","image/x-ms-bmp","image/x-pixlr-data"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){p.call(this,e,t)},init:function(e,t,i,n){c.call(this,e,t,t.size>0?n.convAbsUrl(i):"",n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){m.call(this,"editor",e)},save:function(e){},close:function(e){}},{info:{id:"pixlrexpress",name:"Pixlr Express",iconImg:"img/editor-icons.png 0 -112",urlAsContent:!0,schemeContent:!0,single:!0,canMakeEmpty:!1,integrate:{title:"PIXLR EXPRESS",link:"https://pixlr.com/express/"}},mimes:["image/jpeg","image/png","image/gif"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){p.call(this,e,t)},init:function(e,t,i,n){c.call(this,e,t,t.size>0?n.convAbsUrl(i):"",n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){m.call(this,"express",e)},save:function(e){},close:function(e){}},{info:{id:"photopea",name:"Photopea",iconImg:"img/editor-icons.png 0 -160",single:!0,noContent:!0,arrayBufferContent:!0,openMaximized:!0,canMakeEmpty:["image/jpeg","image/png","image/gif","image/x-ms-bmp","image/tiff","image/webp","image/vnd.adobe.photoshop","image/x-portable-pixmap","image/x-sketch"],integrate:{title:"Photopea",link:"https://www.photopea.com/learn/"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp","image/tiff","image/x-adobe-dng","image/webp","image/x-xcf","image/vnd.adobe.photoshop","application/pdf","image/x-portable-pixmap","image/x-sketch"],html:'<iframe style="width:100%;height:100%;border:none;"></iframe>',setup:function(e,t){(t.UA.IE||t.UA.Mobile)&&(this.disabled=!0)},init:function(e,t,i,n){var o,s,c,d="https://www.photopea.com",l=$(this).hide().on("load",function(){l.show()}).on("error",function(){f.remove(),l.show()}),p=this.editor,m=p.confObj,f=$('<div class="elfinder-edit-spinner elfinder-edit-photopea"/>').html('<span class="elfinder-spinner-text">'+n.i18n("nowLoading")+'</span><span class="elfinder-spinner"/>').appendTo(l.parent()),u=n.arrayFlip(m.info.canMakeEmpty),g=function(e){var t=r(e,n),i=a[t];return m.mimesFlip[i]?"jpeg"===t&&(t="jpg"):t="",t&&!u[t]||(t="psd",i=a[t],l.closest(".ui-dialog").trigger("changeType",{extention:t,mime:i,keepEditor:!0})),t},h=t.mime;m.mimesFlip||(m.mimesFlip=n.arrayFlip(m.mimes,!0)),m.liveMsg||(m.liveMsg=function(e,t,i){var o=n.openUrl(i.hash);n.isSameOrigin(o)||(o=n.openUrl(i.hash,!0));var a,r=e.get(0).contentWindow,s=0,c=null,l=$.Deferred().done(function(){t.remove(),s=1,r.postMessage(c,"*")});this.load=function(){return n.request({data:{cmd:"get"},options:{url:o,type:"get",cache:!0,dataType:"binary",responseType:"arraybuffer",processData:!1}}).done(function(e){c=e})},this.receive=function(t){var i=t.originalEvent;i.origin===d&&i.source===r&&("done"===i.data?0===s?l.resolve():1===s?(s=2,e.trigger("contentsloaded")):a&&"pending"===a.state()&&a.reject("errDataEmpty"):a&&"pending"===a.state()&&("object"==typeof i.data?a.resolve("data:"+h+";base64,"+n.arrayBufferToBase64(i.data)):a.reject("errDataEmpty")))},this.getContent=function(){var t,i;if(s>1)return a&&"pending"===a.state()&&a.reject(),a=null,a=$.Deferred(),2===s?(s=3,a.resolve("data:"+h+";base64,"+n.arrayBufferToBase64(c)),c=null,a):(e.data("mime")&&(h=e.data("mime"),t=g(h)),(i=e.data("quality"))&&(t+=":"+i/100),r.postMessage('app.activeDocument.saveToOE("'+t+'")',d),a)}}),l.parent().css("padding",0),s=g(t.mime),o=p.liveMsg=new m.liveMsg(l,f,t),$(window).on("message."+n.namespace,o.receive),o.load().done(function(){var e=JSON.stringify({files:[],environment:{lang:n.lang.replace(/_/g,"-")}});l.attr("src",d+"/#"+encodeURI(e))}).fail(function(e){e&&n.error(e),p.initFail=!0}),"image/jpeg"!==t.mime&&"image/webp"!==t.mime||(l.data("quality",n.storage("jpgQuality")||n.option("jpgQuality")),c=$('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>').attr("min","1").attr("max","100").attr("title","1 - 100").on("change",function(){var e=c.val();l.data("quality",e)}).val(l.data("quality")),$('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>').append($("<span>").html(n.i18n("quality")+" : "),c,$("<span/>")).prependTo(l.parent().next()))},load:function(e){var t=$.Deferred(),i=this,n=(this.fm,$(e));return i.initFail?t.reject():n.on("contentsloaded",function(){t.resolve(i.liveMsg)}),t},getContent:function(){return this.editor.liveMsg?this.editor.liveMsg.getContent():void 0},save:function(e,t){var i,n=$(e),o=n.data("quality"),a=n.data("hash");"undefined"!=typeof o&&this.fm.storage("jpgQuality",o),a?(i=this.fm.file(a),n.data("mime",i.mime)):n.removeData("mime")},close:function(e,t){$(e).attr("src",""),t&&$(window).off("message."+this.fm.namespace,t.receive)}},{info:{id:"pixo",name:"Pixo Editor",iconImg:"img/editor-icons.png 0 -208",dataScheme:!0,schemeContent:!0,single:!0,canMakeEmpty:!1,integrate:{title:"Pixo Editor",link:"https://pixoeditor.com/privacy-policy/"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){!t.UA.ltIE8&&e.extraOptions&&e.extraOptions.pixo&&e.extraOptions.pixo.apikey?this.editorOpts=e.extraOptions.pixo:this.disabled=!0},init:function(e,t,i,n){c.call(this,e,t,i,n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){var t,i,n,o,a,c=this,d=this.fm,l=$(e),p=l.children("img:first"),m=l.closest(".ui-dialog"),f=d.getUI(),u=$.Deferred(),g=$("#elfinder-pixo-container"),h=function(n){var h;g.length?g.appendTo(g.parent()):(g=$('<div id="elfinder-pixo-container" class="ui-front"/>').css({position:"fixed",top:0,right:0,width:"100%",height:$(window).height(),overflow:"hidden"}).hide().appendTo(f.hasClass("elfinder-fullscreen")?f:"body"),f.on("resize."+d.namespace,function(e,t){e.preventDefault(),e.stopPropagation(),t&&t.fullscreen&&g.appendTo("on"===t.fullscreen?f:"body")}),d.bind("destroy",function(){a&&a.cancelEditing(),g.remove()})),p.on("click",v),h=Object.assign({type:"child",parent:g.get(0),onSave:function(n){var a=n.toBlob().type,l=r(a,d),f=function(e){p.one("load error",function(){p.data("loading")&&p.data("loading")(!0)}).attr("crossorigin","anonymous").attr("src",e)},u=n.toDataURL();p.data("loading")(),delete e._canvas,p.data("ext")!==l?s(u,c.file.mime).done(function(n,a){a&&(e._canvas=o=a,i.trigger("change"),t&&t.show()),f(n)}).fail(function(){m.trigger("changeType",{extention:l,mime:a}),f(u)}):f(u)},onClose:function(){m.removeClass(d.res("class","preventback")),d.toggleMaximize(g,!1),g.hide(),d.toFront(m)}},c.confObj.editorOpts),c.trigger("Prepare",{node:e,editorObj:Pixo,instance:void 0,opts:h}),a=new Pixo.Bridge(h),u.resolve(a),l.on("saveAsFail",v),n&&n()},v=function(){m.addClass(d.res("class","preventback")),d.toggleMaximize(g,!0),d.toFront(g),g.show().data("curhash",c.file.hash),a.edit(p.get(0)),p.data("loading")(!0)};return p.data("loading")(),"image/jpeg"===c.file.mime&&(i=$('<input type="number" class="ui-corner-all elfinder-resize-quality elfinder-tabstop"/>').attr("min","1").attr("max","100").attr("title","1 - 100").on("change",function(){var e=i.val();n&&cancelAnimationFrame(n),n=requestAnimationFrame(function(){o&&o.toBlob(function(e){e&&i.next("span").text(" ("+d.formatSize(e.size)+")")},"image/jpeg",Math.max(Math.min(e,100),1)/100)})}).val(d.storage("jpgQuality")||d.option("jpgQuality")),t=$('<div class="ui-dialog-buttonset elfinder-edit-extras elfinder-edit-extras-quality"/>').hide().append($("<span>").html(d.i18n("quality")+" : "),i,$("<span/>")).prependTo(l.parent().next()),l.data("quty",i)),"undefined"==typeof Pixo?d.loadScript(["https://pixoeditor.com:8443/editor/scripts/bridge.m.js"],function(){h(v)},{loadType:"tag"}):(h(),v()),u},save:function(e){var t,i=this,n=$(e),o=n.children("img:first");e._canvas?(t=n.data("quty")?Math.max(Math.min(n.data("quty").val(),100),1)/100:void 0,o.attr("src",e._canvas.toDataURL(i.file.mime,t))):"data:"!==o.attr("src").substr(0,5)&&o.attr("src",d(o,this.file.mime))},close:function(e,t){t&&t.destroy()}},{info:{id:"creativecloud",name:"Creative Cloud",iconImg:"img/editor-icons.png 0 -192",dataScheme:!0,schemeContent:!0,single:!0,canMakeEmpty:!1,integrate:{title:"Adobe Creative Cloud",link:"https://www.adobe.io/apis/creativecloud.html"}},mimes:["image/jpeg","image/png","image/gif","image/svg+xml","image/x-ms-bmp"],html:'<div class="elfinder-edit-imageeditor"><img/></div>',setup:function(e,t){!t.UA.ltIE8&&e.extraOptions&&e.extraOptions.creativeCloudApiKey?this.apiKey=e.extraOptions.creativeCloudApiKey:this.disabled=!0},init:function(e,t,i,n){c.call(this,e,t,i,n)},getContent:function(){return $(this).children("img:first").attr("src")},load:function(e){var t,i=this,n=this.fm,o=$(e).children("img:first"),r=$(e).closest(".ui-dialog"),s=n.getUI(),c=$.Deferred(),d=$("#elfinder-aviary-container"),l=function(l){var m,f=function(){var e={zh_TW:"zh_HANT",zh_CN:"zh_HANS"};return e[n.lang]?e[n.lang]:n.lang};d.length?d.appendTo(d.parent()):(d=$('<div id="elfinder-aviary-container" class="ui-front"/>').css({position:"fixed",top:0,right:0,width:"100%",height:$(window).height(),overflow:"auto"}).hide().appendTo(s.hasClass("elfinder-fullscreen")?s:"body"),s.on("resize."+n.namespace,function(e,t){e.preventDefault(),e.stopPropagation(),t&&t.fullscreen&&d.appendTo("on"===t.fullscreen?s:"body")}),n.bind("destroy",function(){d.remove()})),o.on("click",p).data("loading")(),m={apiKey:i.confObj.apiKey,onSave:function(e,i){var n;t.showWaitIndicator(),n=i.replace(/.+\.([^.]+)$/,"$1"),o.data("ext")!==n&&o.closest(".ui-dialog").trigger("changeType",{extention:n,mime:a[n]}),o.on("load error",function(){o.data("loading")(!0)}).attr("crossorigin","anonymous").attr("src",i).data("loading")(),t.close()},onLoad:l||function(){},onClose:function(){r.removeClass(n.res("class","preventback")),n.toggleMaximize(d,!1),$(d).hide()},appendTo:d.get(0),maxSize:2048,language:f()},i.trigger("Prepare",{node:e,editorObj:Aviary,instance:void 0,opts:m}),t=new Aviary.Feather(m),c.resolve(t),$(e).on("saveAsFail",p)},p=function(){r.addClass(n.res("class","preventback")),n.toggleMaximize(d,!0),n.toFront(d),$(d).show(),t.launch({image:o.attr("id"),url:o.attr("src")}),o.data("loading")(!0)};return"undefined"==typeof Aviary?n.loadScript(["https://dme0ih8comzn4.cloudfront.net/imaging/v3/editor.js"],function(){l(p)},{loadType:"tag"}):(l(),p()),c},save:function(e){var t=$(e).children("img:first");"data:"!==t.attr("src").substr(0,5)&&t.attr("src",d(t,this.file.mime))}},{setup:function(e,t){!t.UA.ltIE8&&t.options.cdns.ace||(this.disabled=!0)},info:{id:"aceeditor",name:"ACE Editor",iconImg:"img/editor-icons.png 0 -96"},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=i.options.cdns.ace,a=function(){var i,a,r,s=$(e),c=s.parent(),d=c.parent(),l=e.id+"_ace",p=(t.file.name.replace(/^.+\.([^.]+)|(.+)$/,"$1$2").toLowerCase(),{"text/x-php":"php","application/x-php":"php","text/html":"html","application/xhtml+xml":"html","text/javascript":"javascript","application/javascript":"javascript","text/css":"css","text/x-c":"c_cpp","text/x-csrc":"c_cpp","text/x-chdr":"c_cpp","text/x-c++":"c_cpp","text/x-c++src":"c_cpp","text/x-c++hdr":"c_cpp","text/x-shellscript":"sh","application/x-csh":"sh","text/x-python":"python","text/x-java":"java","text/x-java-source":"java","text/x-ruby":"ruby","text/x-perl":"perl","application/x-perl":"perl","text/x-sql":"sql","text/xml":"xml","application/docbook+xml":"xml","application/xml":"xml"});c.height(c.height()),ace.config.set("basePath",o),a=$('<div id="'+l+'" style="width:100%; height:100%;"/>').text(s.val()).insertBefore(s.hide()),s.data("ace",!0),i=ace.edit(l),i.$blockScrolling=1/0,i.setOptions({theme:"ace/theme/monokai",fontSize:"14px",wrap:!0}),ace.config.loadModule("ace/ext/modelist",function(){r=ace.require("ace/ext/modelist").getModeForPath("/"+t.file.name).name,"text"===r&&p[t.file.mime]&&(r=p[t.file.mime]),c.prev().children(".elfinder-dialog-title").append(" ("+t.file.mime+" : "+r.split(/[\/\\]/).pop()+")"),i.setOptions({mode:"ace/mode/"+r}),"resolved"===n.state()&&d.trigger("resize")}),ace.config.loadModule("ace/ext/language_tools",function(){ace.require("ace/ext/language_tools"),i.setOptions({enableBasicAutocompletion:!0,enableSnippets:!0,enableLiveAutocompletion:!1})}),ace.config.loadModule("ace/ext/settings_menu",function(){ace.require("ace/ext/settings_menu").init(i)}),i.commands.addCommand({name:"saveFile",bindKey:{win:"Ctrl-s",mac:"Command-s"},exec:function(e){t.doSave()}}),i.commands.addCommand({name:"closeEditor",bindKey:{win:"Ctrl-w|Ctrl-q",mac:"Command-w|Command-q"},exec:function(e){t.doCancel()}}),i.resize(),$('<div class="ui-dialog-buttonset"/>').css("float","left").append($("<button/>").html(t.fm.i18n("TextArea")).button().on("click",function(){s.data("ace")?(s.removeData("ace"),a.hide(),s.val(i.session.getValue()).show().trigger("focus"),$(this).text("AceEditor")):(s.data("ace",!0),a.show(),i.setValue(s.hide().val(),-1),i.focus(),$(this).html(t.fm.i18n("TextArea")))})).append($("<button>Ace editor setting</button>").button({icons:{primary:"ui-icon-gear",secondary:"ui-icon-triangle-1-e"},text:!1}).on("click",function(){i.showSettingsMenu(),$("#ace_settingsmenu").css("font-size","80%").find('div[contains="setOptions"]').hide().end().parent().appendTo($("#elfinder"))})).prependTo(c.next()),t.trigger("Prepare",{node:e,editorObj:ace,instance:i,opts:{}}),n.resolve(i)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadScript([o+"/ace.js"],function(){t.confObj.loader.resolve()},void 0,{obj:window,name:"ace"})),t.confObj.loader.done(a),n},close:function(e,t){t&&t.destroy()},save:function(e,t){t&&$(e).data("ace")&&(e.value=t.session.getValue())},focus:function(e,t){t&&$(e).data("ace")&&t.focus()},resize:function(e,t,i,n){t&&t.resize()}},{setup:function(e,t){!t.UA.ltIE10&&t.options.cdns.codemirror||(this.disabled=!0)},info:{id:"codemirror",name:"CodeMirror",iconImg:"img/editor-icons.png 0 -176"},load:function(e){var t=this.fm,i=t.options.cdns.codemirror,o=$.Deferred(),a=this,r=function(t){var r,s,c,d=$(e),l=d.parent();l.height(l.height()),c={lineNumbers:!0,lineWrapping:!0,extraKeys:{"Ctrl-S":function(){a.doSave()},"Ctrl-Q":function(){a.doCancel()},"Ctrl-W":function(){a.doCancel()}}},a.trigger("Prepare",{node:e,editorObj:t,instance:void 0,opts:c}),r=t.fromTextArea(e,c),o.resolve(r);var p,m,f,u;p||(p=t.findModeByMIME(a.file.mime)),!p&&(m=a.file.name.match(/.+\.([^.]+)$/))&&(p=t.findModeByExtension(m[1])),p&&(t.modeURL=n?"codemirror/mode/%N/%N.min":i+"/mode/%N/%N.min.js",f=p.mode,u=p.mime,r.setOption("mode",u),t.autoLoadMode(r,f),l.prev().children(".elfinder-dialog-title").append(" ("+u+" : "+f+")")),s=$(r.getWrapperElement()).css({padding:0,border:"none"}),d.data("cm",!0),s.height("100%"),$('<div class="ui-dialog-buttonset"/>').css("float","left").append($("<button/>").html(a.fm.i18n("TextArea")).button().on("click",function(){d.data("cm")?(d.removeData("cm"),s.hide(),d.val(r.getValue()).show().trigger("focus"),$(this).text("CodeMirror")):(d.data("cm",!0),s.show(),r.setValue(d.hide().val()),r.refresh(),r.focus(),$(this).html(a.fm.i18n("TextArea")))})).prependTo(l.next())};return a.confObj.loader||(a.confObj.loader=$.Deferred(),n?(require.config({packages:[{name:"codemirror",location:i,main:"codemirror.min"}],map:{codemirror:{"codemirror/lib/codemirror":"codemirror"}}}),require(["codemirror","codemirror/addon/mode/loadmode.min","codemirror/mode/meta.min"],function(e){a.confObj.loader.resolve(e)})):a.fm.loadScript([i+"/codemirror.min.js"],function(){a.fm.loadScript([i+"/addon/mode/loadmode.min.js",i+"/mode/meta.min.js"],function(){a.confObj.loader.resolve(CodeMirror)})},{loadType:"tag"}),a.fm.loadCss(i+"/codemirror.css")),a.confObj.loader.done(r),o},close:function(e,t){t&&t.toTextArea()},save:function(e,t){t&&$(e).data("cm")&&(e.value=t.getValue())},focus:function(e,t){t&&$(e).data("cm")&&t.focus()},resize:function(e,t,i,n){t&&t.refresh()}},{setup:function(e,t){!t.UA.ltIE10&&t.options.cdns.simplemde||(this.disabled=!0)},info:{id:"simplemde",name:"SimpleMDE",iconImg:"img/editor-icons.png 0 -80"},exts:["md"],load:function(e){var t=this,i=this.fm,o=$(e).parent(),a=$.Deferred(),r=i.options.cdns.simplemde,s=function(i){var n,r,s,c=o.height(),d=o.outerHeight(!0)-c+14;e._setHeight=function(e){var t,i=e||o.height(),a=0;return o.children(".editor-toolbar,.editor-statusbar").each(function(){a+=$(this).outerHeight(!0)}),t=i-a-d,r.height(t),n.codemirror.refresh(),t},o.height(c),s={element:e,autofocus:!0},t.trigger("Prepare",{node:e,editorObj:i,instance:void 0,opts:s}),n=new i(s),a.resolve(n),r=$(n.codemirror.getWrapperElement()),r.css("min-height","50px").children(".CodeMirror-scroll").css("min-height","50px"),e._setHeight(c)};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadCss(r+"/simplemde.min.css"),n?require([r+"/simplemde.min.js"],function(e){t.confObj.loader.resolve(e)}):t.fm.loadScript([r+"/simplemde.min.js"],function(){t.confObj.loader.resolve(SimpleMDE)},{loadType:"tag"})),t.confObj.loader.done(s),a},close:function(e,t){t&&t.toTextArea(),t=null},save:function(e,t){t&&(e.value=t.value())},focus:function(e,t){t&&t.codemirror.focus()},resize:function(e,t,i,n){t&&e._setHeight()}},{info:{id:"ckeditor",name:"CKEditor",iconImg:"img/editor-icons.png 0 0"},exts:["htm","html","xhtml"],setup:function(e,t){var i=this;t.options.cdns.ckeditor?(i.ckeOpts={},e.extraOptions&&(i.ckeOpts=Object.assign({},e.extraOptions.ckeditor||{}),e.extraOptions.managerUrl&&(i.managerUrl=e.extraOptions.managerUrl))):i.disabled=!0},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=function(){var o,a=$(e).parent(),r=a.closest(".elfinder-dialog"),s=a.height(),c=/([&?]getfile=)[^&]+/,d=t.confObj.managerUrl||window.location.href.replace(/#.*$/,""),l="ckeditor";c.test(d)?d=d.replace(c,"$1"+l):d+="?getfile="+l,a.height(s),o={startupFocus:!0,fullPage:!0,allowedContent:!0,filebrowserBrowseUrl:d,toolbarCanCollapse:!0,toolbarStartupExpanded:!i.UA.Mobile,removePlugins:"resize",extraPlugins:"colorbutton,justify,docprops",on:{instanceReady:function(o){var a=o.editor;a.resize("100%",s),r.one("beforedommove."+i.namespace,function(){a.destroy()}).one("dommove."+i.namespace,function(){t.load(e).done(function(e){t.instance=e})}),n.resolve(o.editor)}}},t.trigger("Prepare",{node:e,editorObj:CKEDITOR,instance:void 0,opts:o}),CKEDITOR.replace(e.id,Object.assign(o,t.confObj.ckeOpts)),CKEDITOR.on("dialogDefinition",function(e){var t=e.data.definition.dialog;t.on("show",function(e){i.getUI().append($(".cke_dialog_background_cover")).append(this.getElement().$)}),t.on("hide",function(e){$("body:first").append($(".cke_dialog_background_cover")).append(this.getElement().$)})})};return t.confObj.loader||(t.confObj.loader=$.Deferred(),window.CKEDITOR_BASEPATH=i.options.cdns.ckeditor+"/",$.getScript(i.options.cdns.ckeditor+"/ckeditor.js",function(){t.confObj.loader.resolve()})),t.confObj.loader.done(o),n},close:function(e,t){t&&t.destroy()},save:function(e,t){t&&(e.value=t.getData())},focus:function(e,t){t&&t.focus()},resize:function(e,t,i,n){t&&"ready"===t.status&&t.resize("100%",$(e).parent().height())}},{info:{id:"ckeditor5",name:"CKEditor5",iconImg:"img/editor-icons.png 0 -16"},exts:["htm","html","xhtml"],html:'<div class="edit-editor-ckeditor5"></div>',setup:function(e,t){var i=this;t.options.cdns.ckeditor5&&"function"==typeof window.Symbol&&"symbol"==typeof Symbol()?(i.ckeOpts={},e.extraOptions&&(e.extraOptions.ckeditor5Mode&&(i.ckeditor5Mode=e.extraOptions.ckeditor5Mode),i.ckeOpts=Object.assign({},e.extraOptions.ckeditor5||{}),i.ckeOpts.mode&&(i.ckeditor5Mode=i.ckeOpts.mode,delete i.ckeOpts.mode),e.extraOptions.managerUrl&&(i.managerUrl=e.extraOptions.managerUrl))):i.disabled=!0,t.bind("destroy",function(){i.editor=null})},prepare:function(e,t,i){$(e).height(e.editor.fm.getUI().height()-100)},init:function(e,t,i,n){var o=i.match(/^([\s\S]*<body[^>]*>)([\s\S]+)(<\/body>[\s\S]*)$/i),a="",r="",s="";this.css({width:"100%",height:"100%","box-sizing":"border-box"}),o?(a=o[1],r=o[2],s=o[3]):r=i,this.data("data",{header:a,body:r,footer:s})},load:function(e){var t,i=this,n=this.fm,o=$.Deferred(),a=i.confObj.ckeditor5Mode||"inline",r=function(){var e=n.lang.toLowerCase().replace("_","-");return"zh"===e.substr(0,2)&&"zh-cn"!==e&&(e="zh"),e}(),s=function(t){var s,d=$(e).parent();d.height(n.getUI().height()-100),s=Object.assign({language:r},i.confObj.ckeOpts),i.trigger("Prepare",{node:e,editorObj:t,instance:void 0,opts:s}),t.create(e,s).then(function(t){var i,r,s=t.commands.get("ckfinder"),l=t.plugins.get("FileRepository"),p={};!t.ui.view.toolbar||"classic"!==a&&"decoupled-document"!==a||$(e).closest(".elfinder-dialog").children(".ui-widget-header").append(t.ui.view.toolbar.element),"classic"===a&&$(e).closest(".elfinder-edit-editor").css("overflow","auto"),s&&(i=function(e){return e&&e.mime.match(/^image\//i)},r=function(e){var i=t.commands.get("imageUpload");if(!i.isEnabled){var n=t.plugins.get("Notification"),o=t.locale.t;return void n.showWarning(o("Could not insert image at the current position."),{title:o("Inserting image failed"),
namespace:"ckfinder"})}t.execute("imageInsert",{source:e})},s.execute=function(){var e=d.closest(".elfinder-dialog"),o=n.getCommand("getfile"),a=function(){p.hasVar&&(e.off("resize close",a),o.callback=p.callback,o.options.folders=p.folders,o.options.multiple=p.multi,n.commandMap.open=p.open,p.hasVar=!1)};e.trigger("togleminimize").one("resize close",a),p.callback=o.callback,p.folders=o.options.folders,p.multi=o.options.multiple,p.open=n.commandMap.open,p.hasVar=!0,o.callback=function(o){var a=[];return 1===o.length&&"directory"===o[0].mime?void n.one("open",function(){n.commandMap.open="getfile"}).getCommand("open").exec(o[0].hash):(n.getUI("cwd").trigger("unselectall"),$.each(o,function(e,o){i(o)?a.push(n.convAbsUrl(o.url)):t.execute("link",n.convAbsUrl(o.url))}),a.length&&r(a),void e.trigger("togleminimize"))},o.options.folders=!0,o.options.multiple=!0,n.commandMap.open="getfile",n.toast({mode:"info",msg:n.i18n("dblclickToSelect")})}),l.createUploadAdapter=function(e){return new c(e)},t.setData($(e).data("data").body),n.getUI().append($("body > div.ck-body")),$("div.ck-balloon-panel").css({"z-index":n.getMaximizeCss().zIndex+1}),o.resolve(t)})["catch"](function(e){n.error(e)})},c=function(e){var t=function(t,i,o){n.exec("upload",{files:[t]},void 0,n.cwd().hash).done(function(e){e.added&&e.added.length?n.url(e.added[0].hash,{async:!0}).done(function(e){i({"default":n.convAbsUrl(e)})}).fail(function(){o("errFileNotFound")}):o(n.i18n(e.error?e.error:"errUpload"))}).fail(function(e){var t=n.parseError(e);o(n.i18n(t?"userabort"===t?"errAbort":t:"errUploadNoFiles"))}).progress(function(t){e.uploadTotal=t.total,e.uploaded=t.progress})};this.upload=function(){return new Promise(function(i,n){e.file instanceof Promise||e.file&&"function"==typeof e.file.then?e.file.then(function(e){t(e,i,n)}):t(e.file,i,n)})},this.abort=function(){n.getUI().trigger("uploadabort")}};return i.confObj.editor?s(i.confObj.editor):(t=$.Deferred(),i.fm.loadScript([n.options.cdns.ckeditor5+"/"+a+"/ckeditor.js"],function(e){e||(e=window.BalloonEditor||window.InlineEditor||window.ClassicEditor||window.DecoupledEditor),"en"!==n.lang?i.fm.loadScript([n.options.cdns.ckeditor5+"/"+a+"/translations/"+r+".js"],function(i){t.resolve(e)},{tryRequire:!0,loadType:"tag",error:function(i){r="en",t.resolve(e)}}):t.resolve(e)},{tryRequire:!0,loadType:"tag"}),t.done(function(e){i.confObj.editor=e,s(e)})),o},getContent:function(){var e=$(this).data("data");return e.header+e.body+e.footer},close:function(e,t){t&&t.destroy()},save:function(e,t){var i=$(e),n=i.data("data");t&&(n.body=t.getData(),i.data("data",n))},focus:function(e,t){$(e).trigger("focus")}},{info:{id:"tinymce",name:"TinyMCE",iconImg:"img/editor-icons.png 0 -64"},exts:["htm","html","xhtml"],setup:function(e,t){var i=this;t.options.cdns.tinymce?(i.mceOpts={},e.extraOptions?(i.uploadOpts=Object.assign({},e.extraOptions.uploadOpts||{}),i.mceOpts=Object.assign({},e.extraOptions.tinymce||{})):i.uploadOpts={}):i.disabled=!0},load:function(e){var t=this,i=this.fm,n=$.Deferred(),o=function(){var o,a,r,s=$(e).show().parent(),c=s.closest(".elfinder-dialog"),d=s.height(),l=s.outerHeight(!0)-d,p=function(){var e;tinymce.activeEditor.windowManager.windows?(e=tinymce.activeEditor.windowManager.windows[0],a=$(e?e.getEl():void 0).hide(),r=$("#mce-modal-block").hide()):a=$(".tox-dialog-wrap").hide()},m=function(){r&&r.show(),a&&a.show()},f=tinymce.majorVersion;s.height(d),e._setHeight=function(e){if(f<5){var t,i=$(this).parent(),n=e||i.innerHeight(),o=0;i.find(".mce-container-body:first").children(".mce-top-part,.mce-statusbar").each(function(){o+=$(this).outerHeight(!0)}),t=n-o-l,i.find(".mce-edit-area iframe:first").height(t)}},o={selector:"#"+e.id,resize:!1,plugins:"print preview fullpage searchreplace autolink directionality visualblocks visualchars fullscreen image link media template codesample table charmap hr pagebreak nonbreaking anchor toc insertdatetime advlist lists wordcount imagetools textpattern help",toolbar:"formatselect | bold italic strikethrough forecolor backcolor | link image media | alignleft aligncenter alignright alignjustify | numlist bullist outdent indent | removeformat",image_advtab:!0,init_instance_callback:function(o){e._setHeight(d),c.one("beforedommove."+i.namespace,function(){tinymce.execCommand("mceRemoveEditor",!1,e.id)}).one("dommove."+i.namespace,function(){t.load(e).done(function(e){t.instance=e})}),n.resolve(o)},file_picker_callback:function(e,t,n){var o=i.getCommand("getfile"),a=function(){r.hasVar&&(o.callback=r.callback,o.options.folders=r.folders,o.options.multiple=r.multi,i.commandMap.open=r.open,r.hasVar=!1),c.off("resize close",a),m()},r={};return r.callback=o.callback,r.folders=o.options.folders,r.multi=o.options.multiple,r.open=i.commandMap.open,r.hasVar=!0,o.callback=function(t){var o,a;return"directory"===t.mime?void i.one("open",function(){i.commandMap.open="getfile"}).getCommand("open").exec(t.hash):(o=i.convAbsUrl(t.url),a=t.name+" ("+i.formatSize(t.size)+")","file"==n.filetype&&e(o,{text:a,title:a}),"image"==n.filetype&&e(o,{alt:a}),"media"==n.filetype&&e(o),void c.trigger("togleminimize"))},o.options.folders=!0,o.options.multiple=!1,i.commandMap.open="getfile",p(),c.trigger("togleminimize").one("resize close",a),i.toast({mode:"info",msg:i.i18n("dblclickToSelect")}),!1},images_upload_handler:function(e,n,o){var a=e.blob(),r=function(e){var t=e.data.dialog||{};(t.hasClass("elfinder-dialog-error")||t.hasClass("elfinder-confirm-upload"))&&(p(),t.trigger("togleminimize").one("resize close",s),i.unbind("dialogopened",r))},s=function(){c.off("resize close",s),m()},d=!0;a.name&&(d=void 0),i.bind("dialogopened",r).exec("upload",Object.assign({files:[a],clipdata:d},t.confObj.uploadOpts),void 0,i.cwd().hash).done(function(e){e.added&&e.added.length?i.url(e.added[0].hash,{async:!0}).done(function(e){m(),n(i.convAbsUrl(e))}).fail(function(){o(i.i18n("errFileNotFound"))}):o(i.i18n(e.error?e.error:"errUpload"))}).fail(function(e){var t=i.parseError(e);t&&("errUnknownCmd"===t?t="errPerm":"userabort"===t&&(t="errAbort")),o(i.i18n(t?t:"errUploadNoFiles"))})}},f>=5&&(o.height="100%"),t.trigger("Prepare",{node:e,editorObj:tinymce,instance:void 0,opts:o}),tinymce.init(Object.assign(o,t.confObj.mceOpts))};return t.confObj.loader||(t.confObj.loader=$.Deferred(),t.fm.loadScript([i.options.cdns.tinymce+(i.options.cdns.tinymce.match(/\.js/)?"":"/tinymce.min.js")],function(){t.confObj.loader.resolve()},{loadType:"tag"})),t.confObj.loader.done(o),n},close:function(e,t){t&&tinymce.execCommand("mceRemoveEditor",!1,e.id)},save:function(e,t){t&&t.save()},focus:function(e,t){t&&t.focus()},resize:function(e,t,i,n){t&&e._setHeight()}},{info:{id:"zohoeditor",name:"Zoho Editor",iconImg:"img/editor-icons.png 0 -32",cmdCheck:"ZohoOffice",preventGet:!0,hideButtons:!0,syncInterval:15e3,canMakeEmpty:!0,integrate:{title:"Zoho Office API",link:"https://www.zoho.com/officeapi/"}},mimes:["application/msword","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.oasis.opendocument.text","application/rtf","text/html","application/vnd.ms-excel","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","application/vnd.oasis.opendocument.spreadsheet","application/vnd.sun.xml.calc","text/csv","text/tab-separated-values","application/vnd.ms-powerpoint","application/vnd.openxmlformats-officedocument.presentationml.presentation","application/vnd.openxmlformats-officedocument.presentationml.slideshow","application/vnd.oasis.opendocument.presentation","application/vnd.sun.xml.impress"],html:'<iframe style="width:100%;max-height:100%;border:none;"></iframe>',setup:function(e,t){(t.UA.Mobile||t.UA.ltIE8)&&(this.disabled=!0)},prepare:function(e,t,i){var n=e.editor.fm.getUI();$(e).height(n.height()),t.width=Math.max(t.width||0,.8*n.width())},init:function(e,t,i,n){var o=this,a=$(this).hide(),r=n.getUI("toast"),s=$('<div class="elfinder-edit-spinner elfinder-edit-zohoeditor"/>').html('<span class="elfinder-spinner-text">'+n.i18n("nowLoading")+'</span><span class="elfinder-spinner"/>').appendTo(a.parent()),c=function(){var e="";return $.each(n.customData,function(t,i){e+="&"+encodeURIComponent(t)+"="+encodeURIComponent(i)}),e};$(o).data("xhr",n.request({data:{cmd:"editor",name:"ZohoOffice",method:"init","args[target]":t.hash,"args[lang]":n.lang,"args[cdata]":c()},preventDefault:!0}).done(function(e){var t;e.zohourl?(t={css:{height:"100%"}},o.editor.trigger("Prepare",{node:o,editorObj:void 0,instance:a,opts:t}),a.attr("src",e.zohourl).show().css(t.css),e.warning&&(r.appendTo(o.closest(".ui-dialog")),n.toast({msg:n.i18n(e.warning),mode:"warning",timeOut:0,onHidden:function(){1===r.children().length&&r.appendTo(n.getUI())},button:{text:"btnYes"}}))):(e.error&&n.error(e.error),o.elfinderdialog("destroy"))}).fail(function(e){e&&n.error(e),o.elfinderdialog("destroy")}).always(function(){s.remove()}))},load:function(){},getContent:function(){},save:function(){},beforeclose:f,close:function(e){var t=(this.fm,$(e).data("xhr"));"pending"===t.state()&&t.reject()}},{info:{id:"ziparchive",name:"btnMount",iconImg:"img/toolbar.png 0 -416",cmdCheck:"ZipArchive",edit:function(e,t){var i=this,n=$.Deferred();return i.request({data:{cmd:"netmount",protocol:"ziparchive",host:e.hash,path:e.phash},notify:{type:"netmount",cnt:1,hideCnt:!0}}).done(function(e){var t;e.added&&e.added.length&&(e.added[0].phash&&(t=i.file(e.added[0].phash))&&(t.dirs||(t.dirs=1,i.change({changed:[t]}))),i.one("netmountdone",function(){i.exec("open",e.added[0].hash),i.one("opendone",function(){e.toast&&i.toast(e.toast)})})),n.resolve()}).fail(function(e){n.reject(e)}),n}},mimes:["application/zip"],load:function(){},save:function(){}},{info:{id:"textarea",name:"TextArea",useTextAreaEvent:!0},load:function(e){this.trigger("Prepare",{node:e,editorObj:void 0,instance:void 0,opts:{}}),e.setSelectionRange&&e.setSelectionRange(0,0),$(e).trigger("focus").show()},save:function(){}},{info:{id:"onlineconvert",name:"Online Convert",iconImg:"img/editor-icons.png 0 -144",cmdCheck:"OnlineConvert",preventGet:!0,hideButtons:!0,single:!0,converter:!0,canMakeEmpty:!1,integrate:{title:"ONLINE-CONVERT.COM",link:"https://online-convert.com"}},mimes:["*"],html:'<iframe style="width:100%;max-height:100%;border:none;"></iframe>',setup:function(e,t){var i=e.extraOptions.onlineConvert||{maxSize:100,showLink:!0};i.maxSize&&(this.info.maxSize=1048576*i.maxSize),this.set=Object.assign({url:"https://%s.online-convert.com%s?external_url=",conv:{Archive:{"7Z":{},BZ2:{ext:"bz"},GZ:{},ZIP:{}},Audio:{MP3:{},OGG:{ext:"oga"},WAV:{},WMA:{},AAC:{},AIFF:{ext:"aif"},FLAC:{},M4A:{},MMF:{},OPUS:{ext:"oga"}},Document:{DOC:{},DOCX:{},HTML:{},ODT:{},PDF:{},PPT:{},PPTX:{},RTF:{},SWF:{},TXT:{}},eBook:{AZW3:{ext:"azw"},ePub:{},FB2:{ext:"xml"},LIT:{},LRF:{},MOBI:{},PDB:{},PDF:{},"PDF-eBook":{ext:"pdf"},TCR:{}},Hash:{Adler32:{},"Apache-htpasswd":{},Blowfish:{},CRC32:{},CRC32B:{},Gost:{},Haval128:{},MD4:{},MD5:{},RIPEMD128:{},RIPEMD160:{},SHA1:{},SHA256:{},SHA384:{},SHA512:{},Snefru:{},"Std-DES":{},Tiger128:{},"Tiger128-calculator":{},"Tiger128-converter":{},Tiger160:{},Tiger192:{},Whirlpool:{}},Image:{BMP:{},EPS:{ext:"ai"},GIF:{},EXR:{},ICO:{},JPG:{},PNG:{},SVG:{},TGA:{},TIFF:{ext:"tif"},WBMP:{},WebP:{}},Video:{"3G2":{},"3GP":{},AVI:{},FLV:{},HLS:{ext:"m3u8"},MKV:{},MOV:{},MP4:{},"MPEG-1":{ext:"mpeg"},"MPEG-2":{ext:"mpeg"},OGG:{ext:"ogv"},OGV:{},WebM:{},WMV:{},Android:{link:"/convert-video-for-%s",ext:"mp4"},Blackberry:{link:"/convert-video-for-%s",ext:"mp4"},DPG:{link:"/convert-video-for-%s",ext:"avi"},iPad:{link:"/convert-video-for-%s",ext:"mp4"},iPhone:{link:"/convert-video-for-%s",ext:"mp4"},iPod:{link:"/convert-video-for-%s",ext:"mp4"},"Nintendo-3DS":{link:"/convert-video-for-%s",ext:"avi"},"Nintendo-DS":{link:"/convert-video-for-%s",ext:"avi"},PS3:{link:"/convert-video-for-%s",ext:"mp4"},Wii:{link:"/convert-video-for-%s",ext:"avi"},Xbox:{link:"/convert-video-for-%s",ext:"wmv"}}},catExts:{Hash:"txt"},link:'<div class="elfinder-edit-onlineconvert-link"><a href="https://www.online-convert.com" target="_blank"><span class="elfinder-button-icon"></span>ONLINE-CONVERT.COM</a></div>',useTabs:!(!$.fn.tabs||t.UA.iOS)},i)},prepare:function(e,t,i){var n=e.editor.fm.getUI();$(e).height(n.height()),t.width=Math.max(t.width||0,.8*n.width())},init:function(e,t,i,n){var o,a,r=this,s=r.editor.confObj,c=s.set,d=n.getUI("toast"),l={},p=n.uploadMimeCheck("application/zip",t.phash),m=$("base").length?document.location.href.replace(/#.*$/,""):"",f=function(e,t){var i;return c.catExts[e]?c.catExts[e]:c.conv[e]&&(i=c.conv[e][t])?(i.ext||t).toLowerCase():t.toLowerCase()},u=function(e,t){var i,o,a;o="undefined"==typeof s.api?n.request({data:{cmd:"editor",name:"OnlineConvert",method:"init"},preventDefault:!0}):$.Deferred().resolve({api:s.api}),e=e.toLowerCase(),o.done(function(n){s.api=n.api,s.api&&(e?i="?category="+e:(i="",e="all"),s.conversions||(s.conversions={}),a=s.conversions[e]?$.Deferred().resolve(s.conversions[e]):$.getJSON("https://api2.online-convert.com/conversions"+i),a.done(function(i){s.conversions[e]=i,$.each(i,function(e,t){g[c.useTabs?"children":"find"](".onlineconvert-category-"+t.category).children(".onlineconvert-"+t.target).trigger("makeoption",t)}),t&&t()}))})},g=function(){var e=$("<div/>").on("click","button",function(){var e=$(this),t=e.data("opts")||null,i=e.closest(".onlineconvert-category").data("cname"),n=e.data("conv");s.api===!0?w({category:i,convert:n,options:t}):T(i,n)}).on("change",function(e){var t=$(e.target),i=t.parent(),o=t.closest(".elfinder-edit-onlineconvert-button").children("button:first"),a=o.data("opts")||{},r="boolean"===i.data("type")?t.is(":checked"):t.val();if(e.stopPropagation(),r&&("integer"===i.data("type")&&(r=parseInt(r)),i.data("pattern"))){var s=new RegExp(i.data("pattern"));s.test(r)||(requestAnimationFrame(function(){n.error('"'+n.escape(r)+'" is not match to "/'+n.escape(i.data("pattern"))+'/"')}),r=null)}r?a[t.parent().data("optkey")]=r:delete a[i.data("optkey")],o.data("opts",a)}),i=$("<ul/>"),o=function(e,t){var i,o,a,r=$("<p/>").data("optkey",e).data("type",t.type),s="",c="",d=!1;return t.description&&r.attr("title",n.i18n(t.description)),t.pattern&&r.data("pattern",t.pattern),r.append($("<span/>").text(n.i18n(e)+" : ")),"boolean"===t.type?((t["default"]||(d="allow_multiple_outputs"===e&&!p))&&(s=" checked",d&&(c=" disabled"),o=this.children("button:first"),i=o.data("opts")||{},i[e]=!0,o.data("opts",i)),r.append($('<input type="checkbox" value="true"'+s+c+"/>"))):t["enum"]?(a=$("<select/>").append($('<option value=""/>').text("Select...")),$.each(t["enum"],function(e,t){a.append($('<option value="'+t+'"/>').text(t))}),r.append(a)):r.append($('<input type="text" value=""/>')),r},a=function(e){var t=this,i=$('<span class="elfinder-button-icon elfinder-button-icon-preference"/>').on("click",function(){n.toggle()}),n=$('<div class="elfinder-edit-onlinconvert-options"/>').hide();e.options&&$.each(e.options,function(e,i){"download_password"!==e&&n.append(o.call(t,e,i))}),t.append(i,n)},r=+new Date,d=0;return s.ext2mime||(s.ext2mime=n.arrayFlip(n.mimeTypes)),$.each(c.conv,function(o,c){var p=o.toLowerCase(),u="elfinder-edit-onlineconvert-"+p+r,g=$('<div id="'+u+'" class="onlineconvert-category onlineconvert-category-'+p+'"/>').data("cname",o);$.each(c,function(e,i){var r=e.toLowerCase(),c=f(o,e);s.ext2mime[c]||("audio"===p||"image"===p||"video"===p?s.ext2mime[c]=p+"/x-"+r:s.ext2mime[c]="application/octet-stream"),n.uploadMimeCheck(s.ext2mime[c],t.phash)&&g.append($('<div class="elfinder-edit-onlineconvert-button onlineconvert-'+r+'"/>').on("makeoption",function(e,t){var i=$(this);i.children(".elfinder-button-icon-preference").length||a.call(i,t)}).append($("<button/>").text(e).data("conv",e)))}),g.children().length&&(i.append($("<li/>").append($("<a/>").attr("href",m+"#"+u).text(o))),e.append(g),l[p]=d++)}),c.useTabs?e.prepend(i).tabs({beforeActivate:function(e,t){u(t.newPanel.data("cname"))}}):$.each(c.conv,function(t){var i=t.toLowerCase();e.append($('<fieldset class="onlineconvert-fieldset-'+i+'"/>').append($("<legend/>").text(t)).append(e.children(".onlineconvert-category-"+i)))}),e}(),h=$(this).hide(),v=$("<div/>").append(g,$('<div class="elfinder-edit-onlineconvert-bottom-btn"/>').append($("<button/>").addClass(n.UA.iOS?"elfinder-button-ios-multiline":"").html(n.i18n("convertOn","Online-Convert.com")).on("click",function(){T()})),c.showLink?$(c.link):null).appendTo(h.parent().css({overflow:"auto"})),x=$('<div class="elfinder-edit-spinner elfinder-edit-onlineconvert"/>').hide().html('<span class="elfinder-spinner-text">'+n.i18n("nowLoading")+'</span><span class="elfinder-spinner"/>').appendTo(h.parent()),b=null,y=function(){return b?$.Deferred().resolve(b):(x.show(),n.forExternalUrl(t.hash).done(function(e){b=e}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")}).always(function(){x.hide()}))},w=function(e){$(r).data("dfrd",y().done(function(i){v.fadeOut(),k({info:"Start conversion request."}),n.request({data:{cmd:"editor",name:"OnlineConvert",method:"api","args[category]":e.category.toLowerCase(),"args[convert]":e.convert.toLowerCase(),"args[options]":JSON.stringify(e.options),"args[source]":n.convAbsUrl(i),"args[filename]":n.splitFileExtention(t.name)[0]+"."+f(e.category,e.convert),"args[mime]":t.mime},preventDefault:!0}).done(function(t){O(t.apires,e.category,e.convert)}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")})}))},O=function(e,t,i){var o,a=[];e&&e.id?(o=e.status,"failed"===o.code?(x.hide(),e.errors&&e.errors.length&&$.each(e.errors,function(e,t){t.message&&a.push(t.message)}),n.error(a.length?a:o.info),v.fadeIn()):"completed"===o.code?j(e):(k(o),setTimeout(function(){C(e.id)},1e3))):(d.appendTo(r.closest(".ui-dialog")),e.message&&n.toast({msg:n.i18n(e.message),mode:"error",timeOut:5e3,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI())}}),n.toast({msg:n.i18n("editorConvNoApi"),mode:"warning",timeOut:3e3,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI()),T(t,i)}}))},k=function(e){x.show().children(".elfinder-spinner-text").text(e.info)},C=function(e){n.request({data:{cmd:"editor",name:"OnlineConvert",method:"api","args[jobid]":e},preventDefault:!0}).done(function(e){O(e.apires)}).fail(function(e){e&&n.error(e),r.elfinderdialog("destroy")})},j=function(e){var i=e.output,o=(e.id,"");x.hide(),i&&i.length&&(r.elfinderdialog("destroy"),$.each(i,function(e,t){t.uri&&(o+=t.uri+"\n")}),n.upload({target:t.phash,files:[o],type:"text",extraData:{contentSaveId:"OnlineConvert-"+e.id}}))},T=function(e,t){var i;e&&t?(i=c.conv[e]&&c.conv[e][t]&&c.conv[e][t].link?c.conv[e][t].link.replace("%s",t):"hash"===e?"/"+t+"-generator":"/convert-to-"+t,i=c.url.replace("%s",e).replace("%s",i)):i=c.url.replace("%s",I+"-conversion").replace("%s",""),x.hide(),v.hide(),h.parent().css({overflow:n.UA.iOS?"auto":"hidden"}),$(r).data("dfrd",y().done(function(e){var t;e?(t={css:{height:"100%"}},r.editor.trigger("Prepare",{node:r,editorObj:void 0,instance:h,opts:t}),e=i+encodeURIComponent(n.convAbsUrl(e)),h.attr("src",e).show().css(t.css).one("load",function(){d.appendTo(r.closest(".ui-dialog")),n.toast({msg:n.i18n("editorConvNeedUpload"),mode:"info",timeOut:15e3,onHidden:function(){1===d.children().length&&d.appendTo(n.getUI())},button:{text:"btnYes"}})})):(data.error&&n.error(data.error),r.elfinderdialog("destroy"))}))},I="document";h.parent().addClass("overflow-scrolling-touch"),(a=t.mime.match(/^(audio|image|video)/))&&(I=a[1]),c.useTabs?l[I]&&g.tabs("option","active",l[I]):(o=Object.keys(c.conv).length,$.each(c.conv,function(e){return e.toLowerCase()===I?(u(e,function(){$.each(c.conv,function(e){e.toLowerCase()!==I&&u(e)})}),!1):void o--}),o||$.each(c.conv,function(e){u(e)}),h.parent().scrollTop(g.children(".onlineconvert-fieldset-"+I).offset().top))},load:function(){},getContent:function(){},save:function(){},beforeclose:f,close:function(e){var t=(this.fm,$(e).data("dfrd"));t&&"pending"===t.state()&&t.reject()}}]},window.elFinder);
\ No newline at end of file
......@@ -25,7 +25,7 @@ try {
preview.hide();
$('<div class="elfinder-quicklook-info-data"><button class="elfinder-info-button">'+fm.i18n('getLink')+'</button></div>').appendTo(ql.info.find('.elfinder-quicklook-info'))
.on('click', function() {
$(this).html('<span class="elfinder-info-spinner">');
$(this).html('<span class="elfinder-spinner">');
fm.request({
data : {cmd : 'url', target : file.hash},
preventDefault : true
......@@ -45,22 +45,27 @@ try {
}
if (file.url !== '' && file.url != '1') {
e.stopImmediatePropagation();
preview.one('change', function() {
loading.remove();
node.off('load').remove();
});
loading = $('<div class="elfinder-quicklook-info-data">'+fm.i18n('nowLoading')+'<span class="elfinder-info-spinner"></div>').appendTo(ql.info.find('.elfinder-quicklook-info'));
loading = $('<div class="elfinder-quicklook-info-data"><span class="elfinder-spinner-text">'+fm.i18n('nowLoading')+'</span><span class="elfinder-spinner"/></div>').appendTo(ql.info.find('.elfinder-quicklook-info'));
node = $('<iframe class="elfinder-quicklook-preview-iframe"/>')
.css('background-color', 'transparent')
.appendTo(preview)
.on('load', function() {
ql.hideinfo();
loading.remove();
$(this).css('background-color', '#fff').show();
node.css('background-color', '#fff');
})
.on('error', function() {
loading.remove();
node.remove();
})
.appendTo(preview)
.attr('src', fm.url(file.hash));
preview.one('change', function() {
loading.remove();
node.off('load').remove();
});
}
}
......
!function(n,e){"function"==typeof define&&define.amd?define(["elfinder"],e):"undefined"!=typeof exports?module.exports=e(require("elfinder")):e(n.elFinder)}(this,function(n){"use strict";try{n.prototype.commands.quicklook.plugins||(n.prototype.commands.quicklook.plugins=[]),n.prototype.commands.quicklook.plugins.push(function(n){var e=n.fm,o=n.preview;o.on("update",function(i){var t,l,r=(n.window,i.file);0===r.mime.indexOf("application/vnd.google-apps.")&&("1"==r.url&&(o.hide(),$('<div class="elfinder-quicklook-info-data"><button class="elfinder-info-button">'+e.i18n("getLink")+"</button></div>").appendTo(n.info.find(".elfinder-quicklook-info")).on("click",function(){$(this).html('<span class="elfinder-info-spinner">'),e.request({data:{cmd:"url",target:r.hash},preventDefault:!0}).always(function(){o.show(),$(this).html("")}).done(function(i){var t=e.file(r.hash);n.value.url=t.url=i.url||"",n.value.url&&o.trigger($.Event("update",{file:n.value}))})})),""!==r.url&&"1"!=r.url&&(i.stopImmediatePropagation(),o.one("change",function(){l.remove(),t.off("load").remove()}),l=$('<div class="elfinder-quicklook-info-data">'+e.i18n("nowLoading")+'<span class="elfinder-info-spinner"></div>').appendTo(n.info.find(".elfinder-quicklook-info")),t=$('<iframe class="elfinder-quicklook-preview-iframe"/>').css("background-color","transparent").appendTo(o).on("load",function(){n.hideinfo(),l.remove(),$(this).css("background-color","#fff").show()}).attr("src",e.url(r.hash))))})})}catch(e){}});
\ No newline at end of file
!function(e,n){"function"==typeof define&&define.amd?define(["elfinder"],n):"undefined"!=typeof exports?module.exports=n(require("elfinder")):n(e.elFinder)}(this,function(e){"use strict";try{e.prototype.commands.quicklook.plugins||(e.prototype.commands.quicklook.plugins=[]),e.prototype.commands.quicklook.plugins.push(function(e){var n=e.fm,o=e.preview;o.on("update",function(i){var r,t,a=(e.window,i.file);0===a.mime.indexOf("application/vnd.google-apps.")&&("1"==a.url&&(o.hide(),$('<div class="elfinder-quicklook-info-data"><button class="elfinder-info-button">'+n.i18n("getLink")+"</button></div>").appendTo(e.info.find(".elfinder-quicklook-info")).on("click",function(){$(this).html('<span class="elfinder-spinner">'),n.request({data:{cmd:"url",target:a.hash},preventDefault:!0}).always(function(){o.show(),$(this).html("")}).done(function(i){var r=n.file(a.hash);e.value.url=r.url=i.url||"",e.value.url&&o.trigger($.Event("update",{file:e.value}))})})),""!==a.url&&"1"!=a.url&&(i.stopImmediatePropagation(),t=$('<div class="elfinder-quicklook-info-data"><span class="elfinder-spinner-text">'+n.i18n("nowLoading")+'</span><span class="elfinder-spinner"/></div>').appendTo(e.info.find(".elfinder-quicklook-info")),r=$('<iframe class="elfinder-quicklook-preview-iframe"/>').css("background-color","transparent").on("load",function(){e.hideinfo(),t.remove(),r.css("background-color","#fff")}).on("error",function(){t.remove(),r.remove()}).appendTo(o).attr("src",n.url(a.hash)),o.one("change",function(){t.remove(),r.off("load").remove()})))})})}catch(n){}});
\ No newline at end of file
......@@ -121,6 +121,7 @@
'errEditorNotFound' : 'Editor not found to this file type.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Error occurred on the server side.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Unable to empty folder "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'There are $1 more errors.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Create archive',
......@@ -296,7 +297,8 @@
'untitled folder' : 'NewFolder', // added 10.11.2015
'Archive' : 'NewArchive', // from v2.1 added 10.11.2015
'untitled file' : 'NewFile.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 File', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: File', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Confirmation required',
......@@ -307,6 +309,7 @@
'confirmNonUTF8' : 'Character encoding of this file couldn\'t be detected. It need to temporarily convert to UTF-8 for editting.<br/>Please select character encoding of this file.', // from v2.1.19 added 28.11.2016
'confirmNotSave' : 'It has been modified.<br/>Losing work if you do not save changes.', // from v2.1 added 15.7.2015
'confirmTrash' : 'Are you sure you want to move items to trash bin?', //from v2.1.24 added 29.4.2017
'confirmMove' : 'Are you sure you want to move items to "$1"?', //from v2.1.50 added 27.7.2019
'apllyAll' : 'Apply to all',
'name' : 'Name',
'size' : 'Size',
......@@ -484,6 +487,16 @@
'makefileTypes' : 'File types to enable with "New file"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Type of the Text file', // from v2.1.41 added 7.8.2018
'add' : 'Add', // from v2.1.41 added 7.8.2018
'theme' : 'Theme', // from v2.1.43 added 19.10.2018
'default' : 'Default', // from v2.1.43 added 19.10.2018
'description' : 'Description', // from v2.1.43 added 19.10.2018
'website' : 'Website', // from v2.1.43 added 19.10.2018
'author' : 'Author', // from v2.1.43 added 19.10.2018
'email' : 'Email', // from v2.1.43 added 19.10.2018
'license' : 'License', // from v2.1.43 added 19.10.2018
'exportToSave' : 'This item can\'t be saved. To avoid losing the edits you need to export to your PC.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Double click on the file to select it.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Use fullscreen mode', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Unknown',
......
/**
* Czech translation
* @author Jay Gridley <gridley.jay@hotmail.com>
* @author RobiNN <kelcakrobo@gmail.com>
* @version 2018-05-05
* @author Jay Gridley <gridley.jay@hotmail.com>
* @version 2019-08-09
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -14,12 +14,12 @@
}
}(this, function(elFinder) {
elFinder.prototype.i18.cs = {
translator : 'Jay Gridley &lt;gridley.jay@hotmail.com&gt;, RobiNN &lt;kelcakrobo@gmail.com&gt;',
translator : 'RobiNN &lt;kelcakrobo@gmail.com&gt;, Jay Gridley &lt;gridley.jay@hotmail.com&gt;',
language : 'Čeština',
direction : 'ltr',
dateFormat : 'd. m. Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd. m. Y H:i', // will show like: 09. 08. 2019 14:18
fancyDateFormat : '$1 H:i', // will show like: Dnes 14:18
nonameDateFormat : 'ymd-His', // noname upload will show like: 190809-141840
messages : {
/********************************** errors **********************************/
......@@ -115,6 +115,7 @@
'errEditorNotFound' : 'Editor tohoto typu souboru nebyl nalezen.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Došlo k chybě na straně serveru.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Nelze vyprázdnit složku "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Existují ještě další $1 chyby.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Vytvořit archív',
......@@ -163,6 +164,7 @@
'cmdselectnone': 'Nic nevyberať', // from v2.1.28 added 15.08.2017
'cmdselectinvert': 'Invertovat výběr', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'Otevři v novém okně', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Skrýt (Předvolba)', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : 'Zavřít',
......@@ -224,6 +226,7 @@
'ntfchkdir' : 'Kontrola cílové složky', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Zrušit předchozí operaci', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Obnovit předchozí zrušení', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Kontrola obsahu', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Koš', //from v2.1.24 added 29.4.2017
......@@ -284,9 +287,12 @@
'sortAlsoTreeview' : 'Také stromové zobrazení', // from v2.1.15 added 01.08.2016
/********************************** new items **********************************/
'untitled file.txt' : 'Nový textový soubor.txt', // added 10.11.2015
'untitled file.txt' : 'Nový soubor.txt', // added 10.11.2015
'untitled folder' : 'Nová složka', // added 10.11.2015
'Archive' : 'Nový archiv', // from v2.1 added 10.11.2015
'untitled file' : 'Nový soubor.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 soubor', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Požadováno potvrzení',
......@@ -297,6 +303,7 @@
'confirmNonUTF8' : 'Kódování tohoto souboru nemoholo rozpoznán. Pro úpravy je třeba dočasně převést do kódování UTF-8.<br/>Prosím, vyberte kódování znaků souboru.', // from v2.1.19 added 28.11.2016
'confirmNotSave' : 'Byl změněn.<br/>Pokud obsahuje neuložené změny, dojde ke ztrátě práce.', // from v2.1 added 15.7.2015
'confirmTrash' : 'Opravdu chcete položky přesunout do koše?', //from v2.1.24 added 29.4.2017
'confirmMove' : 'Opravdu chcete položky přesunout do "$1"?', //from v2.1.50 added 27.7.2019
'apllyAll' : 'Pro všechny',
'name' : 'Název',
'size' : 'Velikost',
......@@ -314,6 +321,10 @@
'selectlfile' : 'Vybrat poslední položku',
'viewlist' : 'Seznam',
'viewicons' : 'Ikony',
'viewSmall' : 'Malé ikony', // from v2.1.39 added 22.5.2018
'viewMedium' : 'Střední ikony', // from v2.1.39 added 22.5.2018
'viewLarge' : 'Velké ikony', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : 'Extra velké ikony', // from v2.1.39 added 22.5.2018
'places' : 'Místa',
'calc' : 'Vypočítat',
'path' : 'Cesta',
......@@ -408,7 +419,7 @@
'contextmenu' : 'Kontextové menu', // from v2.1.15 added 9.9.2016
'pageTurning' : 'Otáčení stránky', // from v2.1.15 added 10.9.2016
'volumeRoots' : 'Kořeny média', // from v2.1.16 added 16.9.2016
'reset' : 'Reset', // from v2.1.16 added 1.10.2016
'reset' : 'Obnovit', // from v2.1.16 added 1.10.2016
'bgcolor' : 'Barva pozadí', // from v2.1.16 added 1.10.2016
'colorPicker' : 'Výběr barvy', // from v2.1.16 added 1.10.2016
'8pxgrid' : '8px mřížka', // from v2.1.16 added 4.10.2016
......@@ -427,7 +438,7 @@
'TextArea' : 'Textarea', // from v2.1.25 added 14.6.2017
'folderToEmpty' : 'Vyprázdnit složku "$1".', // from v2.1.25 added 22.6.2017
'filderIsEmpty' : 'Ve složce "$1" nejsou žádné položky.', // from v2.1.25 added 22.6.2017
'preference' : 'Preference', // from v2.1.26 added 28.6.2017
'preference' : 'Předvolby', // from v2.1.26 added 28.6.2017
'language' : 'Nastavte jazyk', // from v2.1.26 added 28.6.2017
'clearBrowserData': 'Inicializujte nastavení uložená v tomto prohlížeči', // from v2.1.26 added 28.6.2017
'toolbarPref' : 'Nastavení panelu nástrojů', // from v2.1.27 added 2.8.2017
......@@ -457,6 +468,29 @@
'workspace' : 'Pracovní prostor', // from v2.1.38 added 4.4.2018
'dialog' : 'Dialog', // from v2.1.38 added 4.4.2018
'all' : 'Všechno', // from v2.1.38 added 4.4.2018
'iconSize' : 'Velikost ikony (zobrazení ikon)', // from v2.1.39 added 7.5.2018
'editorMaximized' : 'Otevřete maximalizované okno editora', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Protože konverze podle API momentálně není k dispozici, převeďte na webové stránce.', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : 'Po konverzi musíte nahrát převeden soubor pomocí URL položky nebo stažený soubor k uložení převedeného souboru.', //from v2.1.40 added 8.7.2018
'convertOn' : 'Převést na stránce $1', // from v2.1.40 added 10.7.2018
'integrations' : 'Integrace', // from v2.1.40 added 11.7.2018
'integrationWith' : 'Tento elFinder má integrované následující externí služby. Před použitím zkontrolujte podmínky používání, zásady ochrany osobních údajů atd.', // from v2.1.40 added 11.7.2018
'showHidden' : 'Zobrazit skryté položky', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Skrýt skryté položky', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Zobrazit/skrýt skryté položky', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'Typy souborů, jež mají být povoleny pomocí "Nový soubor"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Typ textového souboru', // from v2.1.41 added 7.8.2018
'add' : 'Přidat', // from v2.1.41 added 7.8.2018
'theme' : 'Téma', // from v2.1.43 added 19.10.2018
'default' : 'Výchozí', // from v2.1.43 added 19.10.2018
'description' : 'Popis', // from v2.1.43 added 19.10.2018
'website' : 'Stránka', // from v2.1.43 added 19.10.2018
'author' : 'Autor', // from v2.1.43 added 19.10.2018
'email' : 'E-mail', // from v2.1.43 added 19.10.2018
'license' : 'Licence', // from v2.1.43 added 19.10.2018
'exportToSave' : 'Tuto položku nelze uložit. Abyste se vyhnuli ztrátě úprav, musíte je exportovat do počítače.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Poklepáním na soubor jej vyberte.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Použít režim celé obrazovky', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Neznámý',
......
......@@ -3,7 +3,7 @@
* @author Régis Guyomarch <regisg@gmail.com>
* @author Benoit Delachaux <benorde33@gmail.com>
* @author Jonathan Grunder <jonathan.grunder@gmail.com>
* @version 2018-06-06
* @version 2019-06-11
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -18,9 +18,9 @@
translator : 'Régis Guyomarch &lt;regisg@gmail.com&gt;, Benoit Delachaux &lt;benorde33@gmail.com&gt;, Jonathan Grunder &lt;jonathan.grunder@gmail.com&gt;',
language : 'française',
direction : 'ltr',
dateFormat : 'd/M/Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd/M/Y H:i', // will show like: 11/Jun/2019 19:33
fancyDateFormat : '$1 H:i', // will show like: Aujourd'hui 19:33
nonameDateFormat : 'ymd-His', // noname upload will show like: 190611-193346
messages : {
/********************************** errors **********************************/
......@@ -112,10 +112,11 @@
'errSearchTimeout' : 'Délai d’attente dépassé pour la recherche "$1". Le résultat de la recherche est partiel.', // from v2.1 added 12.1.2016
'errReauthRequire' : 'Réauthorisation requise.', // from v2.1.10 added 24.3.2016
'errMaxTargets' : 'Le nombre maximal d\'éléments pouvant être sélectionnés est $1.', // from v2.1.17 added 17.10.2016
'errRestore' : 'Impossible de restorer la corbeille. La destination de la restoration n\'a pu être identifiée.', // from v2.1.24 added 3.5.2017
'errRestore' : 'Impossible de restaurer la corbeille. La destination de la restauration n\'a pu être identifiée.', // from v2.1.24 added 3.5.2017
'errEditorNotFound' : 'Aucun éditeur n\'a été trouvé pour ce type de fichier.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Une erreur est survenue du côté serveur.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Impossible de vider le dossier "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'There are $1 more errors.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Créer une archive',
......@@ -141,7 +142,7 @@
'cmdrename' : 'Renommer',
'cmdrm' : 'Supprimer',
'cmdtrash' : 'À la corbeille', //from v2.1.24 added 29.4.2017
'cmdrestore' : 'Restorer', //from v2.1.24 added 3.5.2017
'cmdrestore' : 'Restaurer', //from v2.1.24 added 3.5.2017
'cmdsearch' : 'Trouver les fichiers',
'cmdup' : 'Remonter au dossier parent',
'cmdupload' : 'Envoyer les fichiers',
......@@ -150,7 +151,7 @@
'cmdsort' : 'Trier',
'cmdnetmount' : 'Monter un volume réseau', // added 18.04.2012
'cmdnetunmount': 'Démonter', // from v2.1 added 30.04.2012
'cmdplaces' : 'Vers Places', // added 28.12.2014
'cmdplaces' : 'Vers Favoris', // added 28.12.2014
'cmdchmod' : 'Changer de mode', // from v2.1 added 20.6.2015
'cmdopendir' : 'Ouvrir un dossier', // from v2.1 added 13.1.2016
'cmdcolwidth' : 'Réinitialiser largeur colone', // from v2.1.13 added 12.06.2016
......@@ -164,6 +165,7 @@
'cmdselectnone': 'Tout désélectionner', // from v2.1.28 added 15.08.2017
'cmdselectinvert': 'Inverser la sélection', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'Ouvrir dans une nouvelle fenêtre', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Hide (Preference)', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : 'Fermer',
......@@ -221,10 +223,11 @@
'ntfparents' : 'Traitement de l\'information du chemin', // from v2.1.17 added 2.11.2016
'ntfchunkmerge': 'Traitement du fichier envoyé', // from v2.1.17 added 2.11.2016
'ntftrash' : 'Mettre à la corbeille', // from v2.1.24 added 2.5.2017
'ntfrestore' : 'Restorer depuis la corbeille', // from v2.1.24 added 3.5.2017
'ntfrestore' : 'Restaurer depuis la corbeille', // from v2.1.24 added 3.5.2017
'ntfchkdir' : 'Validation du dossier de destination', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Annuler l\'opération précédente', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Refaire l\'opération annulée', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Checking contents', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Corbeille', //from v2.1.24 added 29.4.2017
......@@ -288,6 +291,9 @@
'untitled file.txt' : 'NouveauFichier.txt', // added 10.11.2015
'untitled folder' : 'NouveauDossier', // added 10.11.2015
'Archive' : 'NouvelleArchive', // from v2.1 added 10.11.2015
'untitled file' : 'NewFile.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: File', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Confirmation requise',
......@@ -319,7 +325,7 @@
'viewMedium' : 'Moyennes icônes', // from v2.1.39 added 22.5.2018
'viewLarge' : 'Grandes icônes', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : 'Très grandes icônes', // from v2.1.39 added 22.5.2018
'places' : 'Places',
'places' : 'Favoris',
'calc' : 'Calculer',
'path' : 'Chemin',
'aliasfor' : 'Raccourcis pour',
......@@ -358,8 +364,8 @@
'selectForUpload' : 'Sélectionner les fichiers à envoyer',
'moveFiles' : 'Déplacer les éléments',
'copyFiles' : 'Copier les éléments',
'restoreFiles' : 'Restorer les éléments', // from v2.1.24 added 5.5.2017
'rmFromPlaces' : 'Retirer des places',
'restoreFiles' : 'Restaurer les éléments', // from v2.1.24 added 5.5.2017
'rmFromPlaces' : 'Retirer des favoris',
'aspectRatio' : 'Ratio d’affichage',
'scale' : 'Mise à l\'échelle',
'width' : 'Largeur',
......@@ -462,7 +468,29 @@
'workspace' : 'Espace de travail', // from v2.1.38 added 4.4.2018
'dialog' : 'Dialogue', // from v2.1.38 added 4.4.2018
'all' : 'Tout', // from v2.1.38 added 4.4.2018
'iconSize' : 'Icon Size (Icons view)', // form v2.1.39 added 7.5.2018
'iconSize' : 'Icon Size (Icons view)', // from v2.1.39 added 7.5.2018
'editorMaximized' : 'Open the maximized editor window', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Because conversion by API is not currently available, please convert on the website.', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : 'After conversion, you must be upload with the item URL or a downloaded file to save the converted file.', //from v2.1.40 added 8.7.2018
'convertOn' : 'Convert on the site of $1', // from v2.1.40 added 10.7.2018
'integrations' : 'Integrations', // from v2.1.40 added 11.7.2018
'integrationWith' : 'This elFinder has the following external services integrated. Please check the terms of use, privacy policy, etc. before using it.', // from v2.1.40 added 11.7.2018
'showHidden' : 'Show hidden items', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Hide hidden items', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Show/Hide hidden items', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'File types to enable with "New file"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Type of the Text file', // from v2.1.41 added 7.8.2018
'add' : 'Add', // from v2.1.41 added 7.8.2018
'theme' : 'Theme', // from v2.1.43 added 19.10.2018
'default' : 'Default', // from v2.1.43 added 19.10.2018
'description' : 'Description', // from v2.1.43 added 19.10.2018
'website' : 'Website', // from v2.1.43 added 19.10.2018
'author' : 'Author', // from v2.1.43 added 19.10.2018
'email' : 'Email', // from v2.1.43 added 19.10.2018
'license' : 'License', // from v2.1.43 added 19.10.2018
'exportToSave' : 'This item can\'t be saved. To avoid losing the edits you need to export to your PC.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Double click on the file to select it.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Use fullscreen mode', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Inconnu',
......@@ -548,4 +576,3 @@
}
};
}));
......@@ -151,7 +151,7 @@
'cmdsort' : 'Ordina',
'cmdnetmount' : 'Monta disco di rete', // added 18.04.2012
'cmdnetunmount': 'Smonta', // from v2.1 added 30.04.2012
'cmdplaces' : 'Alle cartelle', // added 28.12.2014
'cmdplaces' : 'Aggiungi ad Accesso rapido', // added 28.12.2014
'cmdchmod' : 'Cambia modalità', // from v2.1 added 20.6.2015
'cmdopendir' : 'Apri una cartella', // from v2.1 added 13.1.2016
'cmdcolwidth' : 'Reimposta dimensione colonne', // from v2.1.13 added 12.06.2016
......@@ -320,7 +320,7 @@
'viewMedium' : 'Icone medie', // from v2.1.39 added 22.5.2018
'viewLarge' : 'Icone grandi', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : 'Icone molto grandi', // from v2.1.39 added 22.5.2018
'places' : 'Cartelle',
'places' : 'Accesso rapido',
'calc' : 'Calcola',
'path' : 'Percorso',
'aliasfor' : 'Alias per',
......@@ -360,7 +360,7 @@
'moveFiles' : 'Sposta file',
'copyFiles' : 'Copia file',
'restoreFiles' : 'Ripristina oggetti', // from v2.1.24 added 5.5.2017
'rmFromPlaces' : 'Rimuovi da places',
'rmFromPlaces' : 'Rimuovi da Accesso rapido',
'aspectRatio' : 'Proporzioni',
'scale' : 'Scala',
'width' : 'Larghezza',
......
......@@ -2,7 +2,7 @@
* Japanese translation
* @author Tomoaki Yoshida <info@yoshida-studio.jp>
* @author Naoki Sawada <hypweb+elfinder@gmail.com>
* @version 2018-08-24
* @version 2019-07-27
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -115,6 +115,7 @@
'errEditorNotFound' : 'このファイルタイプのエディターがありません。', // from v2.1.25 added 23.5.2017
'errServerError' : 'サーバー側でエラーが発生しました。', // from v2.1.25 added 16.6.2017
'errEmpty' : 'フォルダ"$1"を空にすることができません。', // from v2.1.25 added 22.6.2017
'moreErrors' : 'さらに $1 件のエラーがあります。', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'アーカイブ作成',
......@@ -290,7 +291,8 @@
'untitled folder' : '新規フォルダ', // added 10.11.2015
'Archive' : '新規アーカイブ', // from v2.1 added 10.11.2015
'untitled file' : '新規ファイル.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 ファイル', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: ファイル', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : '処理を実行しますか?',
......@@ -301,6 +303,7 @@
'confirmNonUTF8' : 'このファイルの文字エンコーディングを判別できませんでした。編集するには一時的に UTF-8 に変換する必要があります。<br/>文字エンコーディングを指定してください。', // from v2.1.19 added 28.11.2016
'confirmNotSave' : '変更されています。<br/>保存せずに閉じると編集内容が失われます。', // from v2.1 added 15.7.2015
'confirmTrash' : 'アイテムをごみ箱に移動してもよろしいですか?', //from v2.1.24 added 29.4.2017
'confirmMove' : 'アイテムを"$1"に移動してもよろしいですか?', //from v2.1.50 added 27.7.2019
'apllyAll' : '全てに適用します',
'name' : '名前',
'size' : 'サイズ',
......@@ -478,6 +481,16 @@
'makefileTypes' : '「新しいファイル」で有効にするファイルタイプ', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'テキストファイルのタイプ', // from v2.1.41 added 7.8.2018
'add' : '追加', // from v2.1.41 added 7.8.2018
'theme' : 'テーマ', // from v2.1.43 added 19.10.2018
'default' : 'デフォルト', // from v2.1.43 added 19.10.2018
'description' : '説明', // from v2.1.43 added 19.10.2018
'website' : 'ウェブサイト', // from v2.1.43 added 19.10.2018
'author' : '作者', // from v2.1.43 added 19.10.2018
'email' : 'Email', // from v2.1.43 added 19.10.2018
'license' : 'ライセンス', // from v2.1.43 added 19.10.2018
'exportToSave' : 'このアイテムは保存できません。 編集内容を失わないようにするには、PCにエクスポートする必要があります。', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'ファイルをダブルクリックして選択します。', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'フルスクリーンモードの利用', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : '不明',
......
/**
* Dutch translation
* @author Barry vd. Heuvel <barry@fruitcakestudio.nl>
* @version 2015-12-01
* @author Patrick Tingen <patrick@tingen.net>
* @version 2019-04-17
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -13,88 +14,89 @@
}
}(this, function(elFinder) {
elFinder.prototype.i18.nl = {
translator : 'Barry vd. Heuvel &lt;barry@fruitcakestudio.nl&gt;',
language : 'Nederlands',
direction : 'ltr',
dateFormat : 'd-m-Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
messages : {
translator : 'Barry vd. Heuvel &lt;barry@fruitcakestudio.nl&gt;, Patrick Tingen &lt;patrick@tingen.net&gt;',
language : 'Nederlands',
direction : 'ltr',
dateFormat : 'd-m-Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // noname upload will show like: 120513-172700
messages : {
/********************************** errors **********************************/
'error' : 'Fout',
'errUnknown' : 'Onbekend fout.',
'errUnknownCmd' : 'Onbekend commando.',
'errJqui' : 'Ongeldige jQuery UI configuratie. Selectable, draggable en droppable componenten moeten aanwezig zijn.',
'errNode' : 'Voor elFinder moet een DOM Element gemaakt worden.',
'errURL' : 'Ongeldige elFinder configuratie! URL optie is niet ingesteld.',
'errAccess' : 'Toegang geweigerd.',
'errConnect' : 'Kan geen verbinding met de backend maken.',
'errAbort' : 'Verbinding afgebroken.',
'errTimeout' : 'Verbinding time-out.',
'errNotFound' : 'Backend niet gevonden.',
'errResponse' : 'Ongeldige reactie van de backend.',
'errConf' : 'Ongeldige backend configuratie.',
'errJSON' : 'PHP JSON module niet geïnstalleerd.',
'errNoVolumes' : 'Leesbaar volume is niet beschikbaar.',
'errCmdParams' : 'Ongeldige parameters voor commando "$1".',
'errDataNotJSON' : 'Data is niet JSON.',
'errDataEmpty' : 'Data is leeg.',
'errCmdReq' : 'Backend verzoek heeft een commando naam nodig.',
'errOpen' : 'Kan "$1" niet openen.',
'errNotFolder' : 'Object is geen map.',
'errNotFile' : 'Object is geen bestand.',
'errRead' : 'Kan "$1" niet lezen.',
'errWrite' : 'Kan niet schrijven in "$1".',
'errPerm' : 'Toegang geweigerd.',
'errLocked' : '"$1" is vergrendeld en kan niet hernoemd, verplaats of verwijderd worden.',
'errExists' : 'Bestand "$1" bestaat al.',
'errInvName' : 'Ongeldige bestandsnaam.',
'errFolderNotFound' : 'Map niet gevonden.',
'errFileNotFound' : 'Bestand niet gevonden.',
'errTrgFolderNotFound' : 'Doelmap"$1" niet gevonden.',
'errPopup' : 'De browser heeft voorkomen dat de pop-up is geopend. Pas de browser instellingen aan om de popup te kunnen openen.',
'errMkdir' : 'Kan map "$1" niet aanmaken.',
'errMkfile' : 'Kan bestand "$1" niet aanmaken.',
'errRename' : 'Kan "$1" niet hernoemen.',
'errCopyFrom' : 'Bestanden kopiëren van "$1" is niet toegestaan.',
'errCopyTo' : 'Bestanden kopiëren naar "$1" is niet toegestaan.',
'errMkOutLink' : 'Kan geen link maken buiten de hoofdmap.', // from v2.1 added 03.10.2015
'errUpload' : 'Upload fout.', // old name - errUploadCommon
'errUploadFile' : 'Kan "$1" niet uploaden.', // old name - errUpload
'errUploadNoFiles' : 'Geen bestanden gevonden om te uploaden.',
'errUploadTotalSize' : 'Data overschrijdt de maximale grootte.', // old name - errMaxSize
'errUploadFileSize' : 'Bestand overschrijdt de maximale grootte.', // old name - errFileMaxSize
'errUploadMime' : 'Bestandstype niet toegestaan.',
'errUploadTransfer' : '"$1" overdrachtsfout.',
'errUploadTemp' : 'Kan geen tijdelijk bestand voor de upload maken.', // from v2.1 added 26.09.2015
'errNotReplace' : 'Object "$1" bestaat al op deze locatie en kan niet vervangen worden door een ander type object.', // new
'errReplace' : 'Kan "$1" niet vervangen.',
'errSave' : 'Kan "$1" niet opslaan.',
'errCopy' : 'Kan "$1" niet kopiëren.',
'errMove' : 'Kan "$1" niet verplaatsen.',
'errCopyInItself' : 'Kan "$1" niet in zichzelf kopiëren.',
'errRm' : 'Kan "$1" niet verwijderen.',
'errRmSrc' : 'Kan bronbestanden niet verwijderen.',
'errExtract' : 'Kan de bestanden van "$1" niet uitpakken.',
'errArchive' : 'Kan het archief niet maken.',
'errArcType' : 'Archief type is niet ondersteund.',
'errNoArchive' : 'Bestand is geen archief of geen ondersteund archief type.',
'errCmdNoSupport' : 'Backend ondersteund dit commando niet.',
'errReplByChild' : 'De map "$1" kan niet vervangen worden door een item uit die map.',
'errArcSymlinks' : 'Om veiligheidsredenen kan een bestand met symlinks of bestanden met niet toegestane namen niet worden uitgepakt .', // edited 24.06.2012
'errArcMaxSize' : 'Archief overschrijdt de maximale bestandsgrootte.',
'errResize' : 'Kan het formaat van "$1" niet wijzigen.',
'errResizeDegree' : 'Ongeldig aantal graden om te draaien.', // added 7.3.2013
'errResizeRotate' : 'Afbeelding kan niet gedraaid worden.', // added 7.3.2013
'errResizeSize' : 'Ongeldig afbeelding formaat.', // added 7.3.2013
'errResizeNoChange' : 'Afbeelding formaat is niet veranderd.', // added 7.3.2013
'errUsupportType' : 'Bestandstype wordt niet ondersteund.',
'errNotUTF8Content' : 'Bestand "$1" is niet in UTF-8 and kan niet aangepast worden.', // added 9.11.2011
'errNetMount' : 'Kan "$1" niet mounten.', // added 17.04.2012
'errNetMountNoDriver' : 'Niet ondersteund protocol.', // added 17.04.2012
'errNetMountFailed' : 'Mount mislukt.', // added 17.04.2012
'errNetMountHostReq' : 'Host is verplicht.', // added 18.04.2012
'errSessionExpires' : 'Uw sessie is verlopen vanwege inactiviteit.',
'errUnknown' : 'Onbekend fout',
'errUnknownCmd' : 'Onbekend commando',
'errJqui' : 'Ongeldige jQuery UI configuratie. Selectable, draggable en droppable componenten moeten aanwezig zijn',
'errNode' : 'Voor elFinder moet een DOM Element gemaakt worden',
'errURL' : 'Ongeldige elFinder configuratie! URL optie is niet ingesteld',
'errAccess' : 'Toegang geweigerd',
'errConnect' : 'Kan geen verbinding met de backend maken',
'errAbort' : 'Verbinding afgebroken',
'errTimeout' : 'Verbinding time-out',
'errNotFound' : 'Backend niet gevonden',
'errResponse' : 'Ongeldige reactie van de backend',
'errConf' : 'Ongeldige backend configuratie',
'errJSON' : 'PHP JSON module niet geïnstalleerd',
'errNoVolumes' : 'Leesbaar volume is niet beschikbaar',
'errCmdParams' : 'Ongeldige parameters voor commando "$1"',
'errDataNotJSON' : 'Data is niet JSON',
'errDataEmpty' : 'Data is leeg',
'errCmdReq' : 'Backend verzoek heeft een commando naam nodig',
'errOpen' : 'Kan "$1" niet openen',
'errNotFolder' : 'Object is geen map',
'errNotFile' : 'Object is geen bestand',
'errRead' : 'Kan "$1" niet lezen',
'errWrite' : 'Kan niet schrijven in "$1"',
'errPerm' : 'Toegang geweigerd',
'errLocked' : '"$1" is vergrendeld en kan niet hernoemd, verplaats of verwijderd worden',
'errExists' : 'Bestand "$1" bestaat al',
'errInvName' : 'Ongeldige bestandsnaam',
'errFolderNotFound' : 'Map niet gevonden',
'errFileNotFound' : 'Bestand niet gevonden',
'errTrgFolderNotFound' : 'Doelmap "$1" niet gevonden',
'errPopup' : 'De browser heeft voorkomen dat de pop-up is geopend. Pas de browser instellingen aan om de popup te kunnen openen',
'errMkdir' : 'Kan map "$1" niet aanmaken',
'errMkfile' : 'Kan bestand "$1" niet aanmaken',
'errRename' : 'Kan "$1" niet hernoemen',
'errCopyFrom' : 'Bestanden kopiëren van "$1" is niet toegestaan',
'errCopyTo' : 'Bestanden kopiëren naar "$1" is niet toegestaan',
'errMkOutLink' : 'Kan geen link maken buiten de hoofdmap', // from v2.1 added 03.10.2015
'errUpload' : 'Upload fout', // old name - errUploadCommon
'errUploadFile' : 'Kan "$1" niet uploaden', // old name - errUpload
'errUploadNoFiles' : 'Geen bestanden gevonden om te uploaden',
'errUploadTotalSize' : 'Data overschrijdt de maximale grootte', // old name - errMaxSize
'errUploadFileSize' : 'Bestand overschrijdt de maximale grootte', // old name - errFileMaxSize
'errUploadMime' : 'Bestandstype niet toegestaan',
'errUploadTransfer' : '"$1" overdrachtsfout',
'errUploadTemp' : 'Kan geen tijdelijk bestand voor de upload maken', // from v2.1 added 26.09.2015
'errNotReplace' : 'Object "$1" bestaat al op deze locatie en kan niet vervangen worden door een ander type object', // new
'errReplace' : 'Kan "$1" niet vervangen',
'errSave' : 'Kan "$1" niet opslaan',
'errCopy' : 'Kan "$1" niet kopiëren',
'errMove' : 'Kan "$1" niet verplaatsen',
'errCopyInItself' : 'Kan "$1" niet in zichzelf kopiëren',
'errRm' : 'Kan "$1" niet verwijderen',
'errRmSrc' : 'Kan bronbestanden niet verwijderen',
'errExtract' : 'Kan de bestanden van "$1" niet uitpakken',
'errArchive' : 'Kan het archief niet maken',
'errArcType' : 'Archief type is niet ondersteund',
'errNoArchive' : 'Bestand is geen archief of geen ondersteund archief type',
'errCmdNoSupport' : 'Backend ondersteund dit commando niet',
'errReplByChild' : 'De map "$1" kan niet vervangen worden door een item uit die map',
'errArcSymlinks' : 'Om veiligheidsredenen kan een bestand met symlinks of bestanden met niet toegestane namen niet worden uitgepakt ', // edited 24.06.2012
'errArcMaxSize' : 'Archief overschrijdt de maximale bestandsgrootte',
'errResize' : 'Kan het formaat van "$1" niet wijzigen',
'errResizeDegree' : 'Ongeldig aantal graden om te draaien', // added 7.3.2013
'errResizeRotate' : 'Afbeelding kan niet gedraaid worden', // added 7.3.2013
'errResizeSize' : 'Ongeldig afbeelding formaat', // added 7.3.2013
'errResizeNoChange' : 'Afbeelding formaat is niet veranderd', // added 7.3.2013
'errUsupportType' : 'Bestandstype wordt niet ondersteund',
'errNotUTF8Content' : 'Bestand "$1" is niet in UTF-8 and kan niet aangepast worden', // added 9.11.2011
'errNetMount' : 'Kan "$1" niet mounten', // added 17.04.2012
'errNetMountNoDriver' : 'Niet ondersteund protocol', // added 17.04.2012
'errNetMountFailed' : 'Mount mislukt', // added 17.04.2012
'errNetMountHostReq' : 'Host is verplicht', // added 18.04.2012
'errSessionExpires' : 'Uw sessie is verlopen vanwege inactiviteit',
'errCreatingTempDir' : 'Kan de tijdelijke map niet aanmaken: "$1" ',
'errFtpDownloadFile' : 'Kan het bestand niet downloaden vanaf FTP: "$1"',
'errFtpUploadFile' : 'Kan het bestand niet uploaden naar FTP: "$1"',
......@@ -102,317 +104,477 @@
'errArchiveExec' : 'Er is een fout opgetreden bij het archivering van de bestanden: "$1" ',
'errExtractExec' : 'Er is een fout opgetreden bij het uitpakken van de bestanden: "$1" ',
'errNetUnMount' : 'Kan niet unmounten', // from v2.1 added 30.04.2012
'errConvUTF8' : 'Kan niet converteren naar UTF-8', // from v2.1 added 08.04.2014
'errFolderUpload' : 'Probeer Google Chrome, als je de map wil uploaden.', // from v2.1 added 26.6.2015
'errConvUTF8' : 'Niet om te zetten naar UTF-8', // from v2.1 added 08.04.2014
'errFolderUpload' : 'Probeer een moderne browser als je bestanden wil uploaden', // from v2.1 added 26.6.2015
'errSearchTimeout' : 'Time-out bij zoeken naar "$1". Zoekresulataat is niet compleet', // from v2.1 added 12.1.2016
'errReauthRequire' : 'Je moet je opnieuw aanmelden', // from v2.1.10 added 24.3.2016
'errMaxTargets' : 'Max aantal selecteerbare items is $1', // from v2.1.17 added 17.10.2016
'errRestore' : 'Kan niet herstellen uit prullenbak, weet niet waar het heen moet', // from v2.1.24 added 3.5.2017
'errEditorNotFound' : 'Geen editor voor dit type bestand', // from v2.1.25 added 23.5.2017
'errServerError' : 'Fout opgetreden op de server', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Kan folder "$1" niet legen', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Er zijn nog $1 fouten', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Maak archief',
'cmdback' : 'Vorige',
'cmdcopy' : 'Kopieer',
'cmdcut' : 'Knip',
'cmddownload' : 'Download',
'cmdduplicate' : 'Dupliceer',
'cmdedit' : 'Pas bestand aan',
'cmdextract' : 'Bestanden uit archief uitpakken',
'cmdforward' : 'Volgende',
'cmdgetfile' : 'Kies bestanden',
'cmdhelp' : 'Over deze software',
'cmdhome' : 'Home',
'cmdinfo' : 'Bekijk info',
'cmdmkdir' : 'Nieuwe map',
'cmdmkfile' : 'Nieuw bestand',
'cmdopen' : 'Open',
'cmdpaste' : 'Plak',
'cmdquicklook' : 'Voorbeeld',
'cmdreload' : 'Vernieuwen',
'cmdrename' : 'Naam wijzigen',
'cmdrm' : 'Verwijder',
'cmdsearch' : 'Zoek bestanden',
'cmdup' : 'Ga een map hoger',
'cmdupload' : 'Upload bestanden',
'cmdview' : 'Bekijk',
'cmdresize' : 'Formaat wijzigen',
'cmdsort' : 'Sorteren',
'cmdnetmount' : 'Mount netwerk volume', // added 18.04.2012
'cmdnetunmount': 'Unmount', // from v2.1 added 30.04.2012
'cmdplaces' : 'Naar Plaatsen', // added 28.12.2014
'cmdchmod' : 'Wijzig modus', // from v2.1 added 20.6.2015
'cmdarchive' : 'Maak archief',
'cmdback' : 'Vorige',
'cmdcopy' : 'Kopieer',
'cmdcut' : 'Knip',
'cmddownload' : 'Download',
'cmdduplicate' : 'Dupliceer',
'cmdedit' : 'Pas bestand aan',
'cmdextract' : 'Bestanden uit archief uitpakken',
'cmdforward' : 'Volgende',
'cmdgetfile' : 'Kies bestanden',
'cmdhelp' : 'Over deze software',
'cmdhome' : 'Home',
'cmdinfo' : 'Bekijk info',
'cmdmkdir' : 'Nieuwe map',
'cmdmkdirin' : 'In nieuwe map', // from v2.1.7 added 19.2.2016
'cmdmkfile' : 'Nieuw bestand',
'cmdopen' : 'Open',
'cmdpaste' : 'Plak',
'cmdquicklook' : 'Voorbeeld',
'cmdreload' : 'Vernieuwen',
'cmdrename' : 'Naam wijzigen',
'cmdrm' : 'Verwijder',
'cmdtrash' : 'Naar prullenbak', //from v2.1.24 added 29.4.2017
'cmdrestore' : 'Herstellen', //from v2.1.24 added 3.5.2017
'cmdsearch' : 'Zoek bestanden',
'cmdup' : 'Ga een map hoger',
'cmdupload' : 'Upload bestanden',
'cmdview' : 'Bekijk',
'cmdresize' : 'Formaat wijzigen',
'cmdsort' : 'Sorteren',
'cmdnetmount' : 'Mount netwerk volume', // added 18.04.2012
'cmdnetunmount' : 'Unmount', // from v2.1 added 30.04.2012
'cmdplaces' : 'Naar Plaatsen', // added 28.12.2014
'cmdchmod' : 'Wijzig modus', // from v2.1 added 20.6.2015
'cmdopendir' : 'Open een map', // from v2.1 added 13.1.2016
'cmdcolwidth' : 'Herstel kolombreedtes', // from v2.1.13 added 12.06.2016
'cmdfullscreen' : 'Volledig scherm', // from v2.1.15 added 03.08.2016
'cmdmove' : 'Verplaatsen', // from v2.1.15 added 21.08.2016
'cmdempty' : 'Map leegmaken', // from v2.1.25 added 22.06.2017
'cmdundo' : 'Undo', // from v2.1.27 added 31.07.2017
'cmdredo' : 'Redo', // from v2.1.27 added 31.07.2017
'cmdpreference' : 'Voorkeuren', // from v2.1.27 added 03.08.2017
'cmdselectall' : 'Selecteer alles', // from v2.1.28 added 15.08.2017
'cmdselectnone' : 'Deselecteer alles', // from v2.1.28 added 15.08.2017
'cmdselectinvert' : 'Selectie omkeren', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'Open in nieuw venster', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Verberg (voorkeur)', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : 'Sluit',
'btnSave' : 'Opslaan',
'btnRm' : 'Verwijder',
'btnApply' : 'Toepassen',
'btnCancel' : 'Annuleren',
'btnNo' : 'Nee',
'btnYes' : 'Ja',
'btnMount' : 'Mount', // added 18.04.2012
'btnApprove': 'Ga naar $1 & keur goed', // from v2.1 added 26.04.2012
'btnUnmount': 'Unmount', // from v2.1 added 30.04.2012
'btnConv' : 'Converteer', // from v2.1 added 08.04.2014
'btnCwd' : 'Hier', // from v2.1 added 22.5.2015
'btnVolume' : 'Volume', // from v2.1 added 22.5.2015
'btnAll' : 'Alles', // from v2.1 added 22.5.2015
'btnMime' : 'MIME Type', // from v2.1 added 22.5.2015
'btnFileName':'Bestandsnaam', // from v2.1 added 22.5.2015
'btnSaveClose': 'Opslaan & Sluiten', // from v2.1 added 12.6.2015
'btnBackup' : 'Back-up', // fromv2.1 added 28.11.2015
'btnClose' : 'Sluit',
'btnSave' : 'Opslaan',
'btnRm' : 'Verwijder',
'btnApply' : 'Toepassen',
'btnCancel' : 'Annuleren',
'btnNo' : 'Nee',
'btnYes' : 'Ja',
'btnMount' : 'Mount', // added 18.04.2012
'btnApprove' : 'Ga naar $1 & keur goed', // from v2.1 added 26.04.2012
'btnUnmount' : 'Unmount', // from v2.1 added 30.04.2012
'btnConv' : 'Converteer', // from v2.1 added 08.04.2014
'btnCwd' : 'Hier', // from v2.1 added 22.5.2015
'btnVolume' : 'Volume', // from v2.1 added 22.5.2015
'btnAll' : 'Alles', // from v2.1 added 22.5.2015
'btnMime' : 'MIME Type', // from v2.1 added 22.5.2015
'btnFileName' : 'Bestandsnaam', // from v2.1 added 22.5.2015
'btnSaveClose' : 'Opslaan & Sluiten', // from v2.1 added 12.6.2015
'btnBackup' : 'Back-up', // fromv2.1 added 28.11.2015
'btnRename' : 'Hernoemen', // from v2.1.24 added 6.4.2017
'btnRenameAll' : 'Hernoem alles', // from v2.1.24 added 6.4.2017
'btnPrevious' : 'Vorige ($1/$2)', // from v2.1.24 added 11.5.2017
'btnNext' : 'Volgende ($1/$2)', // from v2.1.24 added 11.5.2017
'btnSaveAs' : 'Opslaan als', // from v2.1.25 added 24.5.2017
/******************************** notifications ********************************/
'ntfopen' : 'Bezig met openen van map',
'ntffile' : 'Bezig met openen bestand',
'ntfreload' : 'Herladen map inhoud',
'ntfmkdir' : 'Bezig met map maken',
'ntfmkfile' : 'Bezig met Bestanden maken',
'ntfrm' : 'Verwijderen bestanden',
'ntfcopy' : 'Kopieer bestanden',
'ntfmove' : 'Verplaats bestanden',
'ntfprepare' : 'Voorbereiden kopiëren',
'ntfrename' : 'Hernoem bestanden',
'ntfupload' : 'Bestanden uploaden actief',
'ntfdownload' : 'Bestanden downloaden actief',
'ntfsave' : 'Bestanden opslaan',
'ntfarchive' : 'Archief aan het maken',
'ntfextract' : 'Bestanden uitpakken actief',
'ntfsearch' : 'Zoeken naar bestanden',
'ntfresize' : 'Formaat wijzigen van afbeeldingen',
'ntfsmth' : 'Iets aan het doen',
'ntfloadimg' : 'Laden van plaatje',
'ntfnetmount' : 'Mounten van netwerk volume', // added 18.04.2012
'ntfnetunmount': 'Unmounten van netwerk volume', // from v2.1 added 30.04.2012
'ntfdim' : 'Opvragen afbeeldingen dimensies', // added 20.05.2013
'ntfreaddir' : 'Map informatie lezen', // from v2.1 added 01.07.2013
'ntfurl' : 'URL van link ophalen', // from v2.1 added 11.03.2014
'ntfchmod' : 'Bestandsmodus wijzigen', // from v2.1 added 20.6.2015
'ntfpreupload': 'Upload bestandsnaam verifiëren', // from v2.1 added 31.11.2015
'ntfopen' : 'Bezig met openen van map',
'ntffile' : 'Bezig met openen bestand',
'ntfreload' : 'Herladen map inhoud',
'ntfmkdir' : 'Bezig met map maken',
'ntfmkfile' : 'Bezig met Bestanden maken',
'ntfrm' : 'Verwijderen bestanden',
'ntfcopy' : 'Kopieer bestanden',
'ntfmove' : 'Verplaats bestanden',
'ntfprepare' : 'Voorbereiden kopiëren',
'ntfrename' : 'Hernoem bestanden',
'ntfupload' : 'Bestanden uploaden actief',
'ntfdownload' : 'Bestanden downloaden actief',
'ntfsave' : 'Bestanden opslaan',
'ntfarchive' : 'Archief aan het maken',
'ntfextract' : 'Bestanden uitpakken actief',
'ntfsearch' : 'Zoeken naar bestanden',
'ntfresize' : 'Formaat wijzigen van afbeeldingen',
'ntfsmth' : 'Iets aan het doen',
'ntfloadimg' : 'Laden van plaatje',
'ntfnetmount' : 'Mounten van netwerk volume', // added 18.04.2012
'ntfnetunmount' : 'Unmounten van netwerk volume', // from v2.1 added 30.04.2012
'ntfdim' : 'Opvragen afbeeldingen dimensies', // added 20.05.2013
'ntfreaddir' : 'Map informatie lezen', // from v2.1 added 01.07.2013
'ntfurl' : 'URL van link ophalen', // from v2.1 added 11.03.2014
'ntfchmod' : 'Bestandsmodus wijzigen', // from v2.1 added 20.6.2015
'ntfpreupload' : 'Upload bestandsnaam verifiëren', // from v2.1 added 31.11.2015
'ntfzipdl' : 'Zipbestand aan het maken', // from v2.1.7 added 23.1.2016
'ntfparents' : 'Verzamelen padinformatie', // from v2.1.17 added 2.11.2016
'ntfchunkmerge' : 'Aan het verwerken', // from v2.1.17 added 2.11.2016
'ntftrash' : 'Aan het verwijderen', // from v2.1.24 added 2.5.2017
'ntfrestore' : 'Aan het herstellen', // from v2.1.24 added 3.5.2017
'ntfchkdir' : 'Controleren doelmap', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Vorige bewerking ongedaan maken', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Opnieuw doen', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Inhoud controleren', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Prullenbak', //from v2.1.24 added 29.4.2017
/************************************ dates **********************************/
'dateUnknown' : 'onbekend',
'Today' : 'Vandaag',
'Yesterday' : 'Gisteren',
'msJan' : 'Jan',
'msFeb' : 'Feb',
'msMar' : 'Mar',
'msApr' : 'Apr',
'msMay' : 'Mei',
'msJun' : 'Jun',
'msJul' : 'Jul',
'msAug' : 'Aug',
'msSep' : 'Sep',
'msOct' : 'Okt',
'msNov' : 'Nov',
'msDec' : 'Dec',
'January' : 'Januari',
'February' : 'Februari',
'March' : 'Maart',
'April' : 'April',
'May' : 'Mei',
'June' : 'Juni',
'July' : 'Juli',
'August' : 'Augustus',
'September' : 'September',
'October' : 'Oktober',
'November' : 'November',
'December' : 'December',
'Sunday' : 'Zondag',
'Monday' : 'Maandag',
'Tuesday' : 'Dinsdag',
'Wednesday' : 'Woensdag',
'Thursday' : 'Donderdag',
'Friday' : 'Vrijdag',
'Saturday' : 'Zaterdag',
'Sun' : 'Zo',
'Mon' : 'Ma',
'Tue' : 'Di',
'Wed' : 'Wo',
'Thu' : 'Do',
'Fri' : 'Vr',
'Sat' : 'Za',
'dateUnknown' : 'onbekend',
'Today' : 'Vandaag',
'Yesterday' : 'Gisteren',
'msJan' : 'Jan',
'msFeb' : 'Feb',
'msMar' : 'Mar',
'msApr' : 'Apr',
'msMay' : 'Mei',
'msJun' : 'Jun',
'msJul' : 'Jul',
'msAug' : 'Aug',
'msSep' : 'Sep',
'msOct' : 'Okt',
'msNov' : 'Nov',
'msDec' : 'Dec',
'January' : 'Januari',
'February' : 'Februari',
'March' : 'Maart',
'April' : 'April',
'May' : 'Mei',
'June' : 'Juni',
'July' : 'Juli',
'August' : 'Augustus',
'September' : 'September',
'October' : 'Oktober',
'November' : 'November',
'December' : 'December',
'Sunday' : 'Zondag',
'Monday' : 'Maandag',
'Tuesday' : 'Dinsdag',
'Wednesday' : 'Woensdag',
'Thursday' : 'Donderdag',
'Friday' : 'Vrijdag',
'Saturday' : 'Zaterdag',
'Sun' : 'Zo',
'Mon' : 'Ma',
'Tue' : 'Di',
'Wed' : 'Wo',
'Thu' : 'Do',
'Fri' : 'Vr',
'Sat' : 'Za',
/******************************** sort variants ********************************/
'sortname' : 'op naam',
'sortkind' : 'op type',
'sortsize' : 'op grootte',
'sortdate' : 'op datum',
'sortFoldersFirst' : 'Mappen eerst',
'sortname' : 'op naam',
'sortkind' : 'op type',
'sortsize' : 'op grootte',
'sortdate' : 'op datum',
'sortFoldersFirst' : 'Mappen eerst',
'sortperm' : 'op rechten', // from v2.1.13 added 13.06.2016
'sortmode' : 'op mode', // from v2.1.13 added 13.06.2016
'sortowner' : 'op eigenaar', // from v2.1.13 added 13.06.2016
'sortgroup' : 'op groep', // from v2.1.13 added 13.06.2016
'sortAlsoTreeview' : 'Als boom', // from v2.1.15 added 01.08.2016
/********************************** new items **********************************/
'untitled file.txt' : 'NieuwBestand.txt', // added 10.11.2015
'untitled folder' : 'NieuweMap', // added 10.11.2015
'Archive' : 'NieuwArchief', // from v2.1 added 10.11.2015
'untitled file.txt' : 'NieuwBestand.txt', // added 10.11.2015
'untitled folder' : 'NieuweMap', // added 10.11.2015
'Archive' : 'NieuwArchief', // from v2.1 added 10.11.2015
'untitled file' : 'NieuwBestand.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: Bestand', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Bevestiging nodig',
'confirmRm' : 'Weet u zeker dat u deze bestanden wil verwijderen?<br/>Deze actie kan niet ongedaan gemaakt worden!',
'confirmRepl' : 'Oud bestand vervangen door het nieuwe bestand?',
'confirmConvUTF8' : 'Niet in UTF-8<br/>Converteren naar UTF-8?<br/>De inhoud wordt UTF-8 door op te slaan na de conversie.', // from v2.1 added 08.04.2014
'confirmNotSave' : 'Het is aangepast.<br/>Wijzigingen gaan verloren als je niet opslaat.', // from v2.1 added 15.7.2015
'apllyAll' : 'Toepassen op alles',
'name' : 'Naam',
'size' : 'Grootte',
'perms' : 'Rechten',
'modify' : 'Aangepast',
'kind' : 'Type',
'read' : 'lees',
'write' : 'schrijf',
'noaccess' : 'geen toegang',
'and' : 'en',
'unknown' : 'onbekend',
'selectall' : 'Selecteer alle bestanden',
'selectfiles' : 'Selecteer bestand(en)',
'selectffile' : 'Selecteer eerste bestand',
'selectlfile' : 'Selecteer laatste bestand',
'viewlist' : 'Lijst weergave',
'viewicons' : 'Icoon weergave',
'places' : 'Plaatsen',
'calc' : 'Bereken',
'path' : 'Pad',
'aliasfor' : 'Alias voor',
'locked' : 'Vergrendeld',
'dim' : 'Dimensies',
'files' : 'Bestanden',
'folders' : 'Mappen',
'items' : 'Items',
'yes' : 'ja',
'no' : 'nee',
'link' : 'Link',
'searcresult' : 'Zoek resultaten',
'selected' : 'geselecteerde items',
'about' : 'Over',
'shortcuts' : 'Snelkoppelingen',
'help' : 'Help',
'webfm' : 'Web bestandsmanager',
'ver' : 'Versie',
'protocolver' : 'protocol versie',
'homepage' : 'Project home',
'docs' : 'Documentatie',
'github' : 'Fork ons op Github',
'twitter' : 'Volg ons op twitter',
'facebook' : 'Wordt lid op facebook',
'team' : 'Team',
'chiefdev' : 'Hoofd ontwikkelaar',
'developer' : 'ontwikkelaar',
'contributor' : 'bijdrager',
'maintainer' : 'onderhouder',
'translator' : 'vertaler',
'icons' : 'Iconen',
'dontforget' : 'En vergeet je handdoek niet!',
'shortcutsof' : 'Snelkoppelingen uitgeschakeld',
'dropFiles' : 'Sleep hier uw bestanden heen',
'or' : 'of',
'selectForUpload' : 'Selecteer bestanden om te uploaden',
'moveFiles' : 'Verplaats bestanden',
'copyFiles' : 'Kopieer bestanden',
'rmFromPlaces' : 'Verwijder uit Plaatsen',
'aspectRatio' : 'Aspect ratio',
'scale' : 'Schaal',
'width' : 'Breedte',
'height' : 'Hoogte',
'resize' : 'Verkleinen',
'crop' : 'Bijsnijden',
'rotate' : 'Draaien',
'rotate-cw' : 'Draai 90 graden rechtsom',
'rotate-ccw' : 'Draai 90 graden linksom',
'degree' : '°',
'netMountDialogTitle' : 'Mount netwerk volume', // added 18.04.2012
'protocol' : 'Protocol', // added 18.04.2012
'host' : 'Host', // added 18.04.2012
'port' : 'Poort', // added 18.04.2012
'user' : 'Gebruikersnaams', // added 18.04.2012
'pass' : 'Wachtwoord', // added 18.04.2012
'confirmUnmount' : 'Weet u zeker dat u $1 wil unmounten?', // from v2.1 added 30.04.2012
'dropFilesBrowser': 'Sleep of plak bestanden vanuit de browser', // from v2.1 added 30.05.2012
'dropPasteFiles' : 'Sleep of plak bestanden hier', // from v2.1 added 07.04.2014
'encoding' : 'Encodering', // from v2.1 added 19.12.2014
'locale' : 'Locale', // from v2.1 added 19.12.2014
'searchTarget' : 'Doel: $1', // from v2.1 added 22.5.2015
'searchMime' : 'Zoek op invoer MIME Type', // from v2.1 added 22.5.2015
'owner' : 'Eigenaar', // from v2.1 added 20.6.2015
'group' : 'Groep', // from v2.1 added 20.6.2015
'other' : 'Overig', // from v2.1 added 20.6.2015
'execute' : 'Uitvoeren', // from v2.1 added 20.6.2015
'perm' : 'Rechten', // from v2.1 added 20.6.2015
'mode' : 'Modus', // from v2.1 added 20.6.2015
'confirmReq' : 'Bevestiging nodig',
'confirmRm' : 'Weet u zeker dat u deze bestanden wil verwijderen?<br/>Deze actie kan niet ongedaan gemaakt worden!',
'confirmRepl' : 'Oud bestand vervangen door het nieuwe bestand?',
'confirmRest' : 'Replace existing item with the item in trash?', // fromv2.1.24 added 5.5.2017
'confirmConvUTF8' : 'Niet in UTF-8<br/>Converteren naar UTF-8?<br/>De inhoud wordt UTF-8 door op te slaan na de conversie', // from v2.1 added 08.04.2014
'confirmNonUTF8' : 'Character encoding of this file couldn\'t be detected. It need to temporarily convert to UTF-8 for editting.<br/>Please select character encoding of this file.', // from v2.1.19 added 28.11.2016
'confirmNotSave' : 'Het is aangepast.<br/>Wijzigingen gaan verloren als je niet opslaat', // from v2.1 added 15.7.2015
'confirmTrash' : 'Are you sure you want to move items to trash bin?', //from v2.1.24 added 29.4.2017
'apllyAll' : 'Toepassen op alles',
'name' : 'Naam',
'size' : 'Grootte',
'perms' : 'Rechten',
'modify' : 'Aangepast',
'kind' : 'Type',
'read' : 'lees',
'write' : 'schrijf',
'noaccess' : 'geen toegang',
'and' : 'en',
'unknown' : 'onbekend',
'selectall' : 'Selecteer alle bestanden',
'selectfiles' : 'Selecteer bestand(en)',
'selectffile' : 'Selecteer eerste bestand',
'selectlfile' : 'Selecteer laatste bestand',
'viewlist' : 'Lijst weergave',
'viewicons' : 'Icoon weergave',
'viewSmall' : 'Klein', // from v2.1.39 added 22.5.2018
'viewMedium' : 'Middelgroot', // from v2.1.39 added 22.5.2018
'viewLarge' : 'Groot', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : 'Extra groot', // from v2.1.39 added 22.5.2018
'places' : 'Plaatsen',
'calc' : 'Bereken',
'path' : 'Pad',
'aliasfor' : 'Alias voor',
'locked' : 'Vergrendeld',
'dim' : 'Dimensies',
'files' : 'Bestanden',
'folders' : 'Mappen',
'items' : 'Items',
'yes' : 'ja',
'no' : 'nee',
'link' : 'Link',
'searcresult' : 'Zoek resultaten',
'selected' : 'geselecteerde items',
'about' : 'Over',
'shortcuts' : 'Snelkoppelingen',
'help' : 'Help',
'webfm' : 'Web bestandsmanager',
'ver' : 'Versie',
'protocolver' : 'protocol versie',
'homepage' : 'Project home',
'docs' : 'Documentatie',
'github' : 'Fork ons op Github',
'twitter' : 'Volg ons op twitter',
'facebook' : 'Wordt lid op facebook',
'team' : 'Team',
'chiefdev' : 'Hoofd ontwikkelaar',
'developer' : 'ontwikkelaar',
'contributor' : 'bijdrager',
'maintainer' : 'onderhouder',
'translator' : 'vertaler',
'icons' : 'Iconen',
'dontforget' : 'En vergeet je handdoek niet!',
'shortcutsof' : 'Snelkoppelingen uitgeschakeld',
'dropFiles' : 'Sleep hier uw bestanden heen',
'or' : 'of',
'selectForUpload' : 'Selecteer bestanden om te uploaden',
'moveFiles' : 'Verplaats bestanden',
'copyFiles' : 'Kopieer bestanden',
'restoreFiles' : 'Items herstellen', // from v2.1.24 added 5.5.2017
'rmFromPlaces' : 'Verwijder uit Plaatsen',
'aspectRatio' : 'Aspect ratio',
'scale' : 'Schaal',
'width' : 'Breedte',
'height' : 'Hoogte',
'resize' : 'Verkleinen',
'crop' : 'Bijsnijden',
'rotate' : 'Draaien',
'rotate-cw' : 'Draai 90 graden rechtsom',
'rotate-ccw' : 'Draai 90 graden linksom',
'degree' : '°',
'netMountDialogTitle' : 'Mount netwerk volume', // added 18.04.2012
'protocol' : 'Protocol', // added 18.04.2012
'host' : 'Host', // added 18.04.2012
'port' : 'Poort', // added 18.04.2012
'user' : 'Gebruikersnaams', // added 18.04.2012
'pass' : 'Wachtwoord', // added 18.04.2012
'confirmUnmount' : 'Weet u zeker dat u $1 wil unmounten?', // from v2.1 added 30.04.2012
'dropFilesBrowser' : 'Sleep of plak bestanden vanuit de browser', // from v2.1 added 30.05.2012
'dropPasteFiles' : 'Sleep of plak bestanden hier', // from v2.1 added 07.04.2014
'encoding' : 'Encodering', // from v2.1 added 19.12.2014
'locale' : 'Localisatie', // from v2.1 added 19.12.2014
'searchTarget' : 'Doel: $1', // from v2.1 added 22.5.2015
'searchMime' : 'Zoek op invoer MIME Type', // from v2.1 added 22.5.2015
'owner' : 'Eigenaar', // from v2.1 added 20.6.2015
'group' : 'Groep', // from v2.1 added 20.6.2015
'other' : 'Overig', // from v2.1 added 20.6.2015
'execute' : 'Uitvoeren', // from v2.1 added 20.6.2015
'perm' : 'Rechten', // from v2.1 added 20.6.2015
'mode' : 'Modus', // from v2.1 added 20.6.2015
'emptyFolder' : 'Map is leeg', // from v2.1.6 added 30.12.2015
'emptyFolderDrop' : 'Map is leeg\\A Sleep hier naar toe om toe te voegen', // from v2.1.6 added 30.12.2015
'emptyFolderLTap' : 'Map is leeg\\A Lang ingedrukt houden om toe te voegen', // from v2.1.6 added 30.12.2015
'quality' : 'Kwaliteit', // from v2.1.6 added 5.1.2016
'autoSync' : 'Auto sync', // from v2.1.6 added 10.1.2016
'moveUp' : 'Omhoog', // from v2.1.6 added 18.1.2016
'getLink' : 'Geef link', // from v2.1.7 added 9.2.2016
'selectedItems' : 'Geselecteerde items ($1)', // from v2.1.7 added 2.19.2016
'folderId' : 'Map ID', // from v2.1.10 added 3.25.2016
'offlineAccess' : 'Toestaan offline toegang', // from v2.1.10 added 3.25.2016
'reAuth' : 'Opnieuw autenticeren', // from v2.1.10 added 3.25.2016
'nowLoading' : 'Laden..', // from v2.1.12 added 4.26.2016
'openMulti' : 'Open meerdere bestanden', // from v2.1.12 added 5.14.2016
'openMultiConfirm' : 'Je probeert het $1 bestanden te openen. Weet je zeker dat je dat in je browser wil doen?', // from v2.1.12 added 5.14.2016
'emptySearch' : 'Geen zoekresultaten', // from v2.1.12 added 5.16.2016
'editingFile' : 'Bestand wordt bewerkt', // from v2.1.13 added 6.3.2016
'hasSelected' : 'Je hebt $1 items geselecteerd', // from v2.1.13 added 6.3.2016
'hasClipboard' : 'Je hebt $1 items op het clipboard', // from v2.1.13 added 6.3.2016
'incSearchOnly' : 'Verder zoeken kan alleen vanuit huidige view', // from v2.1.13 added 6.30.2016
'reinstate' : 'Herstellen', // from v2.1.15 added 3.8.2016
'complete' : '$1 compleet', // from v2.1.15 added 21.8.2016
'contextmenu' : 'Context menu', // from v2.1.15 added 9.9.2016
'pageTurning' : 'Pagina omslaan', // from v2.1.15 added 10.9.2016
'volumeRoots' : 'Volume roots', // from v2.1.16 added 16.9.2016
'reset' : 'Reset', // from v2.1.16 added 1.10.2016
'bgcolor' : 'Achtergrondkleur', // from v2.1.16 added 1.10.2016
'colorPicker' : 'Kleurkiezer', // from v2.1.16 added 1.10.2016
'8pxgrid' : '8px Grid', // from v2.1.16 added 4.10.2016
'enabled' : 'Actief', // from v2.1.16 added 4.10.2016
'disabled' : 'Inactief', // from v2.1.16 added 4.10.2016
'emptyIncSearch' : 'Zoekresultaten zijn leeg in actuele view\\ADruk [Enter] om zoekgebied uit te breiden', // from v2.1.16 added 5.10.2016
'emptyLetSearch' : 'Zoeken op eerste letter is leeg in actuele view', // from v2.1.23 added 24.3.2017
'textLabel' : 'Tekstlabel', // from v2.1.17 added 13.10.2016
'minsLeft' : '$1 minuten over', // from v2.1.17 added 13.11.2016
'openAsEncoding' : 'Opnieuw openen met geselecteerde encoding', // from v2.1.19 added 2.12.2016
'saveAsEncoding' : 'Opslaan met geselecteerde encoding', // from v2.1.19 added 2.12.2016
'selectFolder' : 'Selecteer map', // from v2.1.20 added 13.12.2016
'firstLetterSearch' : 'Zoeken op eerste letter', // from v2.1.23 added 24.3.2017
'presets' : 'Voorkeuren', // from v2.1.25 added 26.5.2017
'tooManyToTrash' : 'Teveel voor in de prullenbak', // from v2.1.25 added 9.6.2017
'TextArea' : 'Tekstgebied', // from v2.1.25 added 14.6.2017
'folderToEmpty' : 'Map "$1" legen', // from v2.1.25 added 22.6.2017
'filderIsEmpty' : 'Er zijn geen items in map "$1"', // from v2.1.25 added 22.6.2017
'preference' : 'Voorkeur', // from v2.1.26 added 28.6.2017
'language' : 'Taal', // from v2.1.26 added 28.6.2017
'clearBrowserData' : 'Initialiseer instellingen van deze browser', // from v2.1.26 added 28.6.2017
'toolbarPref' : 'Toolbar instellingen', // from v2.1.27 added 2.8.2017
'charsLeft' : '... $1 tekens over', // from v2.1.29 added 30.8.2017
'sum' : 'Totaal', // from v2.1.29 added 28.9.2017
'roughFileSize' : 'Geschatte bestandsgrootte', // from v2.1.30 added 2.11.2017
'autoFocusDialog' : 'Focus op het dialoogelement met mouseover', // from v2.1.30 added 2.11.2017
'select' : 'Selecteren', // from v2.1.30 added 23.11.2017
'selectAction' : 'Actie als bestand is geselecteerd', // from v2.1.30 added 23.11.2017
'useStoredEditor' : 'Open met laatstgebruikte editor', // from v2.1.30 added 23.11.2017
'selectinvert' : 'Selectie omkeren', // from v2.1.30 added 25.11.2017
'renameMultiple' : 'Weet je zeker dat je $1 items wil hernoemen naar $2?<br/>Dit kan niet ongedaan worden gemaakt!', // from v2.1.31 added 4.12.2017
'batchRename' : 'Batch hernoemen', // from v2.1.31 added 8.12.2017
'plusNumber' : '+ Nummer', // from v2.1.31 added 8.12.2017
'asPrefix' : 'Voeg prefix toe', // from v2.1.31 added 8.12.2017
'asSuffix' : 'Voeg suffix toe', // from v2.1.31 added 8.12.2017
'changeExtention' : 'Verander extentie', // from v2.1.31 added 8.12.2017
'columnPref' : 'Kolominstelllingen (List view)', // from v2.1.32 added 6.2.2018
'reflectOnImmediate' : 'Aanpassingen worden direct toegepast op het archief', // from v2.1.33 added 2.3.2018
'reflectOnUnmount' : 'Aanpassingen worden pas toegepast na re-mount van dit volume', // from v2.1.33 added 2.3.2018
'unmountChildren' : 'Deze volume(s) worden ook unmounted. Weet je het zeker?', // from v2.1.33 added 5.3.2018
'selectionInfo' : 'Selectie informatie', // from v2.1.33 added 7.3.2018
'hashChecker' : 'Algoritmes voor file hash', // from v2.1.33 added 10.3.2018
'infoItems' : 'Informatie Items (Selectie Info Panel)', // from v2.1.38 added 28.3.2018
'pressAgainToExit' : 'Druk nogmaals om te eindigen', // from v2.1.38 added 1.4.2018
'toolbar' : 'Toolbar', // from v2.1.38 added 4.4.2018
'workspace' : 'Work Space', // from v2.1.38 added 4.4.2018
'dialog' : 'Dialoog', // from v2.1.38 added 4.4.2018
'all' : 'Alles', // from v2.1.38 added 4.4.2018
'iconSize' : 'Icoongrootte (Icons view)', // from v2.1.39 added 7.5.2018
'editorMaximized' : 'Open de maximale editor', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Conversie via API is niet beschikbaar, converteer aub op de website', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : 'After conversion, you must be upload with the item URL or a downloaded file to save the converted file', //from v2.1.40 added 8.7.2018
'convertOn' : 'Converteer op de site $1', // from v2.1.40 added 10.7.2018
'integrations' : 'Integratie', // from v2.1.40 added 11.7.2018
'integrationWith' : 'Deze elFinder heeft de volgende externe services. Controleer de voorwaarden, privacy policy, etc. voor gebruik', // from v2.1.40 added 11.7.2018
'showHidden' : 'Toon verborgen items', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Verberg verborgen items', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Toon/verberg verborgen items', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'File types die aangemaakt mogen worden', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Type voor tekstbestand', // from v2.1.41 added 7.8.2018
'add' : 'Toevoegen', // from v2.1.41 added 7.8.2018
'theme' : 'Thema', // from v2.1.43 added 19.10.2018
'default' : 'Default', // from v2.1.43 added 19.10.2018
'description' : 'Beschrijving', // from v2.1.43 added 19.10.2018
'website' : 'Website', // from v2.1.43 added 19.10.2018
'author' : 'Auteur', // from v2.1.43 added 19.10.2018
'email' : 'Email', // from v2.1.43 added 19.10.2018
'license' : 'Licensie', // from v2.1.43 added 19.10.2018
'exportToSave' : 'Dit item kan niet worden opgeslagen, exporteer naar je pc om wijzingen te bewaren', // from v2.1.44 added 1.12.2018
/********************************** mimetypes **********************************/
'kindUnknown' : 'Onbekend',
'kindFolder' : 'Map',
'kindAlias' : 'Alias',
'kindAliasBroken' : 'Kapot alias',
// applications
'kindApp' : 'Applicatie',
'kindPostscript' : 'Postscript document',
'kindMsOffice' : 'Microsoft Office document',
'kindMsWord' : 'Microsoft Word document',
'kindMsExcel' : 'Microsoft Excel document',
'kindMsPP' : 'Microsoft Powerpoint presentation',
'kindOO' : 'Open Office document',
'kindAppFlash' : 'Flash applicatie',
'kindPDF' : 'Portable Document Format (PDF)',
'kindTorrent' : 'Bittorrent bestand',
'kind7z' : '7z archief',
'kindTAR' : 'TAR archief',
'kindGZIP' : 'GZIP archief',
'kindBZIP' : 'BZIP archief',
'kindXZ' : 'XZ archief',
'kindZIP' : 'ZIP archief',
'kindRAR' : 'RAR archief',
'kindJAR' : 'Java JAR bestand',
'kindTTF' : 'True Type font',
'kindOTF' : 'Open Type font',
'kindRPM' : 'RPM package',
// texts
'kindText' : 'Tekst bestand',
'kindTextPlain' : 'Tekst',
'kindPHP' : 'PHP bronbestand',
'kindCSS' : 'Cascading style sheet',
'kindHTML' : 'HTML document',
'kindJS' : 'Javascript bronbestand',
'kindRTF' : 'Rich Text Format',
'kindC' : 'C bronbestand',
'kindCHeader' : 'C header bronbestand',
'kindCPP' : 'C++ bronbestand',
'kindCPPHeader' : 'C++ header bronbestand',
'kindShell' : 'Unix shell script',
'kindPython' : 'Python bronbestand',
'kindJava' : 'Java bronbestand',
'kindRuby' : 'Ruby bronbestand',
'kindPerl' : 'Perl bronbestand',
'kindSQL' : 'SQL bronbestand',
'kindXML' : 'XML document',
'kindAWK' : 'AWK bronbestand',
'kindCSV' : 'Komma gescheiden waardes',
'kindDOCBOOK' : 'Docbook XML document',
'kindMarkdown' : 'Markdown tekst', // added 20.7.2015
// images
'kindImage' : 'Afbeelding',
'kindBMP' : 'BMP afbeelding',
'kindJPEG' : 'JPEG afbeelding',
'kindGIF' : 'GIF afbeelding',
'kindPNG' : 'PNG afbeelding',
'kindTIFF' : 'TIFF afbeelding',
'kindTGA' : 'TGA afbeelding',
'kindPSD' : 'Adobe Photoshop afbeelding',
'kindXBITMAP' : 'X bitmap afbeelding',
'kindPXM' : 'Pixelmator afbeelding',
// media
'kindAudio' : 'Audio media',
'kindAudioMPEG' : 'MPEG audio',
'kindAudioMPEG4' : 'MPEG-4 audio',
'kindAudioMIDI' : 'MIDI audio',
'kindAudioOGG' : 'Ogg Vorbis audio',
'kindAudioWAV' : 'WAV audio',
'AudioPlaylist' : 'MP3 playlist',
'kindVideo' : 'Video media',
'kindVideoDV' : 'DV video',
'kindVideoMPEG' : 'MPEG video',
'kindVideoMPEG4' : 'MPEG-4 video',
'kindVideoAVI' : 'AVI video',
'kindVideoMOV' : 'Quick Time video',
'kindVideoWM' : 'Windows Media video',
'kindVideoFlash' : 'Flash video',
'kindVideoMKV' : 'Matroska video',
'kindVideoOGG' : 'Ogg video'
'kindUnknown' : 'Onbekend',
'kindRoot' : 'Volume Root', // from v2.1.16 added 16.10.2016
'kindFolder' : 'Map',
'kindSelects' : 'Selecties', // from v2.1.29 added 29.8.2017
'kindAlias' : 'Alias',
'kindAliasBroken' : 'Verbroken alias',
/********************************** applications **********************************/
'kindApp' : 'Applicatie',
'kindPostscript' : 'Postscript document',
'kindMsOffice' : 'Microsoft Office document',
'kindMsWord' : 'Microsoft Word document',
'kindMsExcel' : 'Microsoft Excel document',
'kindMsPP' : 'Microsoft Powerpoint presentation',
'kindOO' : 'Open Office document',
'kindAppFlash' : 'Flash applicatie',
'kindPDF' : 'Portable Document Format (PDF)',
'kindTorrent' : 'Bittorrent bestand',
'kind7z' : '7z archief',
'kindTAR' : 'TAR archief',
'kindGZIP' : 'GZIP archief',
'kindBZIP' : 'BZIP archief',
'kindXZ' : 'XZ archief',
'kindZIP' : 'ZIP archief',
'kindRAR' : 'RAR archief',
'kindJAR' : 'Java JAR bestand',
'kindTTF' : 'True Type font',
'kindOTF' : 'Open Type font',
'kindRPM' : 'RPM package',
/********************************** texts **********************************/
'kindText' : 'Tekst bestand',
'kindTextPlain' : 'Tekst',
'kindPHP' : 'PHP bronbestand',
'kindCSS' : 'Cascading style sheet',
'kindHTML' : 'HTML document',
'kindJS' : 'Javascript bronbestand',
'kindRTF' : 'Rich Text Format',
'kindC' : 'C bronbestand',
'kindCHeader' : 'C header bronbestand',
'kindCPP' : 'C++ bronbestand',
'kindCPPHeader' : 'C++ header bronbestand',
'kindShell' : 'Unix shell script',
'kindPython' : 'Python bronbestand',
'kindJava' : 'Java bronbestand',
'kindRuby' : 'Ruby bronbestand',
'kindPerl' : 'Perl bronbestand',
'kindSQL' : 'SQL bronbestand',
'kindXML' : 'XML document',
'kindAWK' : 'AWK bronbestand',
'kindCSV' : 'Komma gescheiden waardes',
'kindDOCBOOK' : 'Docbook XML document',
'kindMarkdown' : 'Markdown tekst', // added 20.7.2015
/********************************** images **********************************/
//
'kindImage' : 'Afbeelding',
'kindBMP' : 'BMP afbeelding',
'kindJPEG' : 'JPEG afbeelding',
'kindGIF' : 'GIF afbeelding',
'kindPNG' : 'PNG afbeelding',
'kindTIFF' : 'TIFF afbeelding',
'kindTGA' : 'TGA afbeelding',
'kindPSD' : 'Adobe Photoshop afbeelding',
'kindXBITMAP' : 'X bitmap afbeelding',
'kindPXM' : 'Pixelmator afbeelding',
/********************************** media **********************************/
'kindAudio' : 'Audio media',
'kindAudioMPEG' : 'MPEG audio',
'kindAudioMPEG4' : 'MPEG-4 audio',
'kindAudioMIDI' : 'MIDI audio',
'kindAudioOGG' : 'Ogg Vorbis audio',
'kindAudioWAV' : 'WAV audio',
'AudioPlaylist' : 'MP3 playlist',
'kindVideo' : 'Video media',
'kindVideoDV' : 'DV video',
'kindVideoMPEG' : 'MPEG video',
'kindVideoMPEG4' : 'MPEG-4 video',
'kindVideoAVI' : 'AVI video',
'kindVideoMOV' : 'Quick Time video',
'kindVideoWM' : 'Windows Media video',
'kindVideoFlash' : 'Flash video',
'kindVideoMKV' : 'Matroska video',
'kindVideoOGG' : 'Ogg video'
}
};
}));
......
......@@ -2,7 +2,7 @@
* Polski translation
* @author Marcin Mikołajczyk <marcin@pjwstk.edu.pl>
* @author Bogusław Zięba <bobi@poczta.fm>
* @version 2018-08-23
* @version 2019-03-24
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -17,9 +17,9 @@
translator : 'Marcin Mikołajczyk &lt;marcin@pjwstk.edu.pl&gt;, Bogusław Zięba &lt;bobi@poczta.fm&gt;',
language : 'Polski',
direction : 'ltr',
dateFormat : 'd.m.Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd.m.Y H:i', // will show like: 24.03.2019 08:58
fancyDateFormat : '$1 H:i', // will show like: Dzisiaj 08:58
nonameDateFormat : 'ymd-His', // noname upload will show like: 190324-085845
messages : {
/********************************** errors **********************************/
......@@ -115,6 +115,7 @@
'errEditorNotFound' : 'Nie znaleziono edytora tego typu pliku.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Wystąpił błąd po stronie serwera .', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Nie można do pustego folderu "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Jest jeszcze $1 błąd/błędy.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Utwórz archiwum',
......@@ -225,7 +226,7 @@
'ntfchkdir' : 'Sprawdzanie folderu docelowego', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Cofanie poprzedniej operacji', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Ponownie poprzednio cofnięte', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Checking contents', // from v2.1.41 added 3.8.2018
'ntfchkcontent' : 'Sprawdzanie zawartości', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Śmieci', //from v2.1.24 added 29.4.2017
......@@ -289,8 +290,9 @@
'untitled file.txt' : 'NowyPlik.txt', // added 10.11.2015
'untitled folder' : 'NowyFolder', // added 10.11.2015
'Archive' : 'NoweArchiwum', // from v2.1 added 10.11.2015
'untitled file' : 'NewFile.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 File', // from v2.1.41 added 6.8.2018
'untitled file' : 'NowyPlik.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 Plik', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Wymagane potwierdzenie',
......@@ -432,7 +434,7 @@
'firstLetterSearch': 'Wyszukiwanie pierwszej litery', // from v2.1.23 added 24.3.2017
'presets' : 'Wstępnie ustalone', // from v2.1.25 added 26.5.2017
'tooManyToTrash' : 'To zbyt wiele rzeczy, więc nie mogą być w koszu.', // from v2.1.25 added 9.6.2017
'TextArea' : 'TextArea', // from v2.1.25 added 14.6.2017
'TextArea' : 'PoleTekstowe', // from v2.1.25 added 14.6.2017
'folderToEmpty' : 'Opróżnij folder "$1".', // from v2.1.25 added 22.6.2017
'filderIsEmpty' : 'Brak elementów w folderze "$1".', // from v2.1.25 added 22.6.2017
'preference' : 'Preferencje', // from v2.1.26 added 28.6.2017
......@@ -475,9 +477,19 @@
'showHidden' : 'Pokaż ukryte pozycje', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Ukryj ukryte pozycje', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Pokaż/Ukryj ukryte pozycje', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'File types to enable with "New file"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Type of the Text file', // from v2.1.41 added 7.8.2018
'add' : 'Add', // from v2.1.41 added 7.8.2018
'makefileTypes' : 'Typy plików, które można włączyć za pomocą "Nowy plik"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Typ pliku tekstowego', // from v2.1.41 added 7.8.2018
'add' : 'Dodaj', // from v2.1.41 added 7.8.2018
'theme' : 'Motyw', // from v2.1.43 added 19.10.2018
'default' : 'Domyślnie', // from v2.1.43 added 19.10.2018
'description' : 'Opis', // from v2.1.43 added 19.10.2018
'website' : 'Witryna', // from v2.1.43 added 19.10.2018
'author' : 'Autor', // from v2.1.43 added 19.10.2018
'email' : 'E-mail', // from v2.1.43 added 19.10.2018
'license' : 'Licencja', // from v2.1.43 added 19.10.2018
'exportToSave' : 'Tego elementu nie można zapisać. Aby uniknąć utraty zmian, musisz wyeksportować go na swój komputer.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Kliknij dwukrotnie plik, aby go wybrać.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Użyj trybu pełnoekranowego', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Nieznany',
......
......@@ -3,7 +3,7 @@
* @author Dmitry "dio" Levashov <dio@std42.ru>
* @author Andrew Berezovsky <andrew.berezovsky@gmail.com>
* @author Alex Yashkin <alex@yashkin.by>
* @version 2018-08-08
* @version 2019-03-06
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -18,9 +18,9 @@
translator : 'Dmitry "dio" Levashov &lt;dio@std42.ru&gt;, Andrew Berezovsky &lt;andrew.berezovsky@gmail.com&gt;, Alex Yashkin &lt;alex@yashkin.by&gt;',
language : 'Русский язык',
direction : 'ltr',
dateFormat : 'd M Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd M Y H:i', // will show like: 06 Мар 2019 16:56
fancyDateFormat : '$1 H:i', // will show like: Сегодня 16:56
nonameDateFormat : 'ymd-His', // noname upload will show like: 190306-165630
messages : {
/********************************** errors **********************************/
......@@ -116,6 +116,7 @@
'errEditorNotFound' : 'Не найден редактор для этого типа файлов.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Возникла ошибка на стороне сервера.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Невозможно очистить папку "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Еще ошибок: $1', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Создать архив',
......@@ -291,7 +292,8 @@
'untitled folder' : 'НоваяПапка', // added 10.11.2015
'Archive' : 'НовыйАрхив', // from v2.1 added 10.11.2015
'untitled file' : 'НовыйФайл.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 Файл', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 Файл', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Необходимо подтверждение',
......@@ -479,6 +481,16 @@
'makefileTypes' : 'Типы файлов в меню "Новый файл"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Тип текстового файла', // from v2.1.41 added 7.8.2018
'add' : 'Добавить', // from v2.1.41 added 7.8.2018
'theme' : 'Тема', // from v2.1.43 added 19.10.2018
'default' : 'По умолчанию', // from v2.1.43 added 19.10.2018
'description' : 'Описание', // from v2.1.43 added 19.10.2018
'website' : 'Веб-сайт', // from v2.1.43 added 19.10.2018
'author' : 'Автор', // from v2.1.43 added 19.10.2018
'email' : 'Email', // from v2.1.43 added 19.10.2018
'license' : 'Лицензия', // from v2.1.43 added 19.10.2018
'exportToSave' : 'Невозможно сохранить файл. Чтобы не потерять изменения, экспортируйте их на свой ПК.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Двойной клик по файлу для его выбора.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Использовать полноэкранный режим', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Неизвестный',
......
......@@ -2,7 +2,7 @@
* Slovak translation
* @author RobiNN <kelcakrobo@gmail.com>
* @author Jakub Ďuraš <jkblmr@gmail.com>
* @version 2018-06-09
* @version 2019-08-09
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -17,9 +17,9 @@
translator : 'RobiNN &lt;kelcakrobo@gmail.com&gt;, Jakub Ďuraš &lt;jkblmr@gmail.com&gt;',
language : 'Slovenčina',
direction : 'ltr',
dateFormat : 'd.m.Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd.m.Y H:i', // will show like: 09.08.2019 14:11
fancyDateFormat : '$1 H:i', // will show like: Dnes 14:11
nonameDateFormat : 'ymd-His', // noname upload will show like: 190809-141149
messages : {
/********************************** errors **********************************/
......@@ -115,6 +115,7 @@
'errEditorNotFound' : 'Editor tohto typu súboru nebol nájdený.', // from v2.1.25 added 23.5.2017
'errServerError' : 'Vyskytla sa chyba na strane servera.', // from v2.1.25 added 16.6.2017
'errEmpty' : 'Nepodarilo sa vyprázdniť priečinok "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : 'Existujú ešte ďalšie $1 chyby.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : 'Vytvoriť archív',
......@@ -163,6 +164,7 @@
'cmdselectnone': 'Nič nevyberať', // from v2.1.28 added 15.08.2017
'cmdselectinvert': 'Invertovať výber', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'Otvoriť v novom okne', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Skryť (Predvoľba)', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : 'Zavrieť',
......@@ -224,6 +226,7 @@
'ntfchkdir' : 'Kontrola cieľového priečinka', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Zrušiť predchádzajúcu operáciu', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Obnovenie predchádzajúceho zrušenia', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Kontrola obsahu', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Kôš', //from v2.1.24 added 29.4.2017
......@@ -284,9 +287,12 @@
'sortAlsoTreeview' : 'Tiež stromové zobrazenie', // from v2.1.15 added 01.08.2016
/********************************** new items **********************************/
'untitled file.txt' : 'Nový textový dokument.txt', // added 10.11.2015
'untitled file.txt' : 'Nový súbor.txt', // added 10.11.2015
'untitled folder' : 'Nový priečinok', // added 10.11.2015
'Archive' : 'Nový archív', // from v2.1 added 10.11.2015
'untitled file' : 'Nový súbor.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1 súbor', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Potrebné potvrdenie',
......@@ -297,6 +303,7 @@
'confirmNonUTF8' : 'Kódovanie tohto súboru nemohlo byť detekované. Pre úpravu dočasne potrebujete previesť na UTF-8 .<br/>Prosím, vyberte kódovanie znakov tohto súboru.', // from v2.1.19 added 28.11.2016
'confirmNotSave' : 'Bol upravený.<br/>Ak zmeny neuložíte, stratíte vykonanú prácu.', // from v2.1 added 15.7.2015
'confirmTrash' : 'Naozaj chcete presunúť položky do koša?', //from v2.1.24 added 29.4.2017
'confirmMove' : 'Naozaj chcete presunúť položky do "$1"?', //from v2.1.50 added 27.7.2019
'apllyAll' : 'Použiť na všetky',
'name' : 'Názov',
'size' : 'Veľkosť',
......@@ -344,11 +351,11 @@
'twitter' : 'Nasleduj nás na Twitteri',
'facebook' : 'Pripoj sa k nám na Facebooku',
'team' : 'Tím',
'chiefdev' : 'hlavný vývojár',
'developer' : 'vývojár',
'contributor' : 'prispievateľ',
'maintainer' : 'správca',
'translator' : 'prekladateľ',
'chiefdev' : 'Hlavný vývojár',
'developer' : 'Vývojár',
'contributor' : 'Prispievateľ',
'maintainer' : 'Správca',
'translator' : 'Prekladateľ',
'icons' : 'Ikony',
'dontforget' : 'a nezabudnite si plavky',
'shortcutsof' : 'Skratky nie sú povolené',
......@@ -461,7 +468,29 @@
'workspace' : 'Pracovný priestor', // from v2.1.38 added 4.4.2018
'dialog' : 'Dialóg', // from v2.1.38 added 4.4.2018
'all' : 'Všetko', // from v2.1.38 added 4.4.2018
'iconSize' : 'Veľkosť ikony (zobrazenie ikon)', // form v2.1.39 added 7.5.2018
'iconSize' : 'Veľkosť ikony (zobrazenie ikon)', // from v2.1.39 added 7.5.2018
'editorMaximized' : 'Otvorte maximalizované okno editora', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Pretože konverzia podľa rozhrania API momentálne nie je k dispozícii, skonvertujte na webovej stránke.', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : 'Po konverzii musíte nahrať skonvertovaný súbor pomocou URL položky alebo stiahnutý súbor na uloženie skonvertovaného súboru.', //from v2.1.40 added 8.7.2018
'convertOn' : 'Konvertovať na stránke $1', // from v2.1.40 added 10.7.2018
'integrations' : 'Integrácie', // from v2.1.40 added 11.7.2018
'integrationWith' : 'Tento elFinder má integrované nasledujúce externé služby. Pred použitím skontrolujte podmienky používania, zásady ochrany osobných údajov atď.', // from v2.1.40 added 11.7.2018
'showHidden' : 'Zobraziť skryté položky', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Skryť skryté položky', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Zobraziť/skryť skryté položky', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'Typy súborov, ktoré sa majú povoliť pomocou "Nový súbor"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Typ textového súboru', // from v2.1.41 added 7.8.2018
'add' : 'Pridať', // from v2.1.41 added 7.8.2018
'theme' : 'Téma', // from v2.1.43 added 19.10.2018
'default' : 'Predvolená', // from v2.1.43 added 19.10.2018
'description' : 'Popis', // from v2.1.43 added 19.10.2018
'website' : 'Stránka', // from v2.1.43 added 19.10.2018
'author' : 'Autor', // from v2.1.43 added 19.10.2018
'email' : 'E-mail', // from v2.1.43 added 19.10.2018
'license' : 'Licencia', // from v2.1.43 added 19.10.2018
'exportToSave' : 'Túto položku nemožno uložiť. Ak chcete zabrániť strate úprav, musíte ju exportovať do počítača.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': 'Dvakrát kliknite na súbor a vyberte ho.', // from v2.1.47 added 22.1.2019
'useFullscreen' : 'Použiť režim celej obrazovky', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : 'Neznámy',
......
......@@ -3,7 +3,8 @@
* @author I.Taskinoglu & A.Kaya <alikaya@armsyazilim.com>
* @author Abdullah ELEN <abdullahelen@msn.com>
* @author Osman KAYAN <osmnkayan@gmail.com>
* @version 2018-04-13
* @author alikayan95@gmail.com
* @version 2018-11-02
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -15,12 +16,12 @@
}
}(this, function(elFinder) {
elFinder.prototype.i18.tr = {
translator : 'I.Taskinoglu & A.Kaya &lt;alikaya@armsyazilim.com&gt;, Abdullah ELEN &lt;abdullahelen@msn.com&gt;, Osman KAYAN &lt;osmnkayan@gmail.com&gt;',
translator : 'I.Taskinoglu & A.Kaya &lt;alikaya@armsyazilim.com&gt;, Abdullah ELEN &lt;abdullahelen@msn.com&gt;, Osman KAYAN &lt;osmnkayan@gmail.com&gt;, alikayan95@gmail.com',
language : 'Türkçe',
direction : 'ltr',
dateFormat : 'd.m.Y H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'd.m.Y H:i', // will show like: 02.11.2018 11:51
fancyDateFormat : '$1 H:i', // will show like: Bugün 11:51
nonameDateFormat : 'ymd-His', // noname upload will show like: 181102-115159
messages : {
/********************************** errors **********************************/
......@@ -164,6 +165,7 @@
'cmdselectnone': 'Seçimi temizle', // from v2.1.28 added 15.08.2017
'cmdselectinvert': 'Diğerlerini seç', // from v2.1.28 added 15.08.2017
'cmdopennew' : 'Yeni Sekmede aç', // from v2.1.38 added 3.4.2018
'cmdhide' : 'Ögeyi Gizle', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : 'Kapat',
......@@ -225,6 +227,7 @@
'ntfchkdir' : 'Hedef klasör kontrol ediliyor', // from v2.1.24 added 3.5.2017
'ntfundo' : 'Önceki işlemi geri alma', // from v2.1.27 added 31.07.2017
'ntfredo' : 'Önceki geri almayı tekrarlama', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : 'Checking contents', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : 'Çöp', //from v2.1.24 added 29.4.2017
......@@ -288,6 +291,9 @@
'untitled file.txt' : 'YeniDosya.txt', // added 10.11.2015
'untitled folder' : 'YeniKlasor', // added 10.11.2015
'Archive' : 'YeniArsiv', // from v2.1 added 10.11.2015
'untitled file' : 'YeniDosya.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: Dosya', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : 'Onay gerekli',
......@@ -315,6 +321,10 @@
'selectlfile' : 'Son dosyayı seç',
'viewlist' : 'Liste görünümü',
'viewicons' : 'Simge görünümü',
'viewSmall' : 'Small iconlar', // from v2.1.39 added 22.5.2018
'viewMedium' : 'Medium iconlar', // from v2.1.39 added 22.5.2018
'viewLarge' : 'Large iconlar', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : 'Extra large iconlar', // from v2.1.39 added 22.5.2018
'places' : 'Yerler',
'calc' : 'Hesapla',
'path' : 'Yol',
......@@ -458,6 +468,26 @@
'workspace' : 'Çalışma alanı', // from v2.1.38 added 4.4.2018
'dialog' : 'Diyalog', // from v2.1.38 added 4.4.2018
'all' : 'Tümü', // from v2.1.38 added 4.4.2018
'iconSize' : 'İcon Boyutu (İcon Görünümü İçin)', // from v2.1.39 added 7.5.2018
'editorMaximized' : 'Maksimum düzenleyici penceresini aç', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : 'Because conversion by API is not currently available, please convert on the website.', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : 'After conversion, you must be upload with the item URL or a downloaded file to save the converted file.', //from v2.1.40 added 8.7.2018
'convertOn' : 'Convert on the site of $1', // from v2.1.40 added 10.7.2018
'integrations' : 'Entegrasyonlar', // from v2.1.40 added 11.7.2018
'integrationWith' : 'This elFinder has the following external services integrated. Please check the terms of use, privacy policy, etc. before using it.', // from v2.1.40 added 11.7.2018
'showHidden' : 'Gizli ögeleri aç.', // from v2.1.41 added 24.7.2018
'hideHidden' : 'Gizli ögeleri kapat.', // from v2.1.41 added 24.7.2018
'toggleHidden' : 'Gizli ögeleri aç/kapat', // from v2.1.41 added 24.7.2018
'makefileTypes' : 'File types to enable with "New file"', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : 'Text dosyası tipi.', // from v2.1.41 added 7.8.2018
'add' : 'Ekle', // from v2.1.41 added 7.8.2018
'theme' : 'Tema', // from v2.1.43 added 19.10.2018
'default' : 'Varsayılan', // from v2.1.43 added 19.10.2018
'description' : 'Açıklama', // from v2.1.43 added 19.10.2018
'website' : 'Websayfası', // from v2.1.43 added 19.10.2018
'author' : 'Yazar', // from v2.1.43 added 19.10.2018
'email' : 'E-mail', // from v2.1.43 added 19.10.2018
'license' : 'Lisans', // from v2.1.43 added 19.10.2018
/********************************** mimetypes **********************************/
'kindUnknown' : 'Bilinmiyor',
......
......@@ -5,7 +5,8 @@
* @author Max Wen<max.wen@qq.com>
* @author Kejun Chang <changkejun@hotmail.com>
* @author LDMING <china-live@live.cn>
* @version 2018-01-26
* @author Andy Lee <oraclei@126.com>
* @version 2019-06-26
*/
(function(root, factory) {
if (typeof define === 'function' && define.amd) {
......@@ -17,12 +18,12 @@
}
}(this, function(elFinder) {
elFinder.prototype.i18.zh_CN = {
translator : '翻译者 deerchao &lt;deerchao@gmail.com&gt;, Andy Hu &lt;andyhu7@yahoo.com.hk&gt;, Max Wen&lt;max.wen@qq.com&gt;, Kejun Chang &lt;changkejun@hotmail.com&gt;, LDMING &lt;china-live@live.cn&gt;',
translator : '翻译者 deerchao &lt;deerchao@gmail.com&gt;, Andy Hu &lt;andyhu7@yahoo.com.hk&gt;, Max Wen&lt;max.wen@qq.com&gt;, Kejun Chang &lt;changkejun@hotmail.com&gt;, LDMING &lt;china-live@live.cn&gt;, Andy Lee &lt;oraclei@126.com&gt;',
language : '简体中文',
direction : 'ltr',
dateFormat : 'Y-m-d H:i', // Mar 13, 2012 05:27 PM
fancyDateFormat : '$1 H:i', // will produce smth like: Today 12:25 PM
nonameDateFormat : 'ymd-His', // to apply if upload file is noname: 120513172700
dateFormat : 'Y-m-d H:i', // will show like: 2019-06-26 22:33
fancyDateFormat : '$1 H:i', // will show like: 今天 22:33
nonameDateFormat : 'ymd-His', // noname upload will show like: 190626-223309
messages : {
/********************************** errors **********************************/
......@@ -118,6 +119,7 @@
'errEditorNotFound' : '找不到这个文件的编辑器.', // from v2.1.25 added 23.5.2017
'errServerError' : '服务端发生错误.', // from v2.1.25 added 16.6.2017
'errEmpty' : '无法清空文件夹 "$1".', // from v2.1.25 added 22.6.2017
'moreErrors' : '存在 $1 多个错误.', // from v2.1.44 added 9.12.2018
/******************************* commands names ********************************/
'cmdarchive' : '创建压缩包',
......@@ -165,6 +167,8 @@
'cmdselectall' : '全选', // from v2.1.28 added 15.08.2017
'cmdselectnone': '全不选', // from v2.1.28 added 15.08.2017
'cmdselectinvert': '反向选择', // from v2.1.28 added 15.08.2017
'cmdopennew' : '在新窗口打开', // from v2.1.38 added 3.4.2018
'cmdhide' : '隐藏 (偏好)', // from v2.1.41 added 24.7.2018
/*********************************** buttons ***********************************/
'btnClose' : '关闭',
......@@ -187,8 +191,8 @@
'btnBackup' : '备份', // fromv2.1 added 28.11.2015
'btnRename' : '重命名', // from v2.1.24 added 6.4.2017
'btnRenameAll' : '重命名(All)', // from v2.1.24 added 6.4.2017
'btnPrevious' : 'Prev ($1/$2)', // from v2.1.24 added 11.5.2017
'btnNext' : 'Next ($1/$2)', // from v2.1.24 added 11.5.2017
'btnPrevious' : '向前 ($1/$2)', // from v2.1.24 added 11.5.2017
'btnNext' : '向后 ($1/$2)', // from v2.1.24 added 11.5.2017
'btnSaveAs' : '另存为', // from v2.1.25 added 24.5.2017
/******************************** notifications ********************************/
......@@ -226,6 +230,7 @@
'ntfchkdir' : '检查目标文件夹', // from v2.1.24 added 3.5.2017
'ntfundo' : '撤消上一个全局操作', // from v2.1.27 added 31.07.2017
'ntfredo' : '重做上一全局操作', // from v2.1.27 added 31.07.2017
'ntfchkcontent' : '检查内容', // from v2.1.41 added 3.8.2018
/*********************************** volumes *********************************/
'volume_Trash' : '回收站', //from v2.1.24 added 29.4.2017
......@@ -289,6 +294,9 @@
'untitled file.txt' : '新文件.txt', // added 10.11.2015
'untitled folder' : '新文件夹', // added 10.11.2015
'Archive' : '新压缩包', // from v2.1 added 10.11.2015
'untitled file' : '新文件.$1', // from v2.1.41 added 6.8.2018
'extentionfile' : '$1: 文件', // from v2.1.41 added 6.8.2018
'extentiontype' : '$1: $2', // from v2.1.43 added 17.10.2018
/********************************** messages **********************************/
'confirmReq' : '请确认',
......@@ -316,6 +324,10 @@
'selectlfile' : '选择最后一个文件',
'viewlist' : '列表视图',
'viewicons' : '图标视图',
'viewSmall' : '小图标', // from v2.1.39 added 22.5.2018
'viewMedium' : '中图标', // from v2.1.39 added 22.5.2018
'viewLarge' : '大图标', // from v2.1.39 added 22.5.2018
'viewExtraLarge' : '超大图标', // from v2.1.39 added 22.5.2018
'places' : '位置',
'calc' : '计算',
'path' : '路径',
......@@ -375,7 +387,7 @@
'pass' : '密码', // added 18.04.2012
'confirmUnmount' : '确实要卸载 $1?', // from v2.1 added 30.04.2012
'dropFilesBrowser': '从浏览器中拖放或粘贴文件', // from v2.1 added 30.05.2012
'dropPasteFiles' : '拖放文件,或粘贴剪贴板图像', // from v2.1 added 07.04.2014
'dropPasteFiles' : '拖放文件,粘贴网址或剪贴板图像', // from v2.1 added 07.04.2014
'encoding' : '编码', // from v2.1 added 19.12.2014
'locale' : '语言环境', // from v2.1 added 19.12.2014
'searchTarget' : '目标: $1', // from v2.1 added 22.5.2015
......@@ -447,6 +459,41 @@
'asPrefix' : '添加前缀', // from v2.1.31 added 8.12.2017
'asSuffix' : '添加后缀', // from v2.1.31 added 8.12.2017
'changeExtention' : '变化范围', // from v2.1.31 added 8.12.2017
'columnPref' : '列设置 (列表视图)', // from v2.1.32 added 6.2.2018
'reflectOnImmediate' : '所有修改将立即反馈到文档.', // from v2.1.33 added 2.3.2018
'reflectOnUnmount' : '所有修改在卸载本卷之前不会反馈', // from v2.1.33 added 2.3.2018
'unmountChildren' : '安装在本卷上的以下卷也会卸载.你确定要卸载吗?', // from v2.1.33 added 5.3.2018
'selectionInfo' : '选择信息', // from v2.1.33 added 7.3.2018
'hashChecker' : '显示文件散列值的算法', // from v2.1.33 added 10.3.2018
'infoItems' : '信息条目 (选择信息面板)', // from v2.1.38 added 28.3.2018
'pressAgainToExit': '再按退出', // from v2.1.38 added 1.4.2018
'toolbar' : '工具条', // from v2.1.38 added 4.4.2018
'workspace' : '工作空间', // from v2.1.38 added 4.4.2018
'dialog' : '对话框', // from v2.1.38 added 4.4.2018
'all' : '全部', // from v2.1.38 added 4.4.2018
'iconSize' : '图标尺寸 (图标视图)', // from v2.1.39 added 7.5.2018
'editorMaximized' : '打开最大化编辑器窗口', // from v2.1.40 added 30.6.2018
'editorConvNoApi' : '由于通过 API 转换功能当前不可用,请到网站上转换.', //from v2.1.40 added 8.7.2018
'editorConvNeedUpload' : '转换后,必须上传条目URL或一个下载的文件,以保存转换后的文件.', //from v2.1.40 added 8.7.2018
'convertOn' : '在 $1 站点上转换', // from v2.1.40 added 10.7.2018
'integrations' : '集成', // from v2.1.40 added 11.7.2018
'integrationWith' : '本 elFinder 集成以下外部服务.使用前请检查使用条款、隐私政策等.', // from v2.1.40 added 11.7.2018
'showHidden' : '显示已隐藏的条目', // from v2.1.41 added 24.7.2018
'hideHidden' : '隐藏已隐藏的条目', // from v2.1.41 added 24.7.2018
'toggleHidden' : '显示/隐藏已隐藏的条目', // from v2.1.41 added 24.7.2018
'makefileTypes' : '允许"新文件"使用的文件类型', // from v2.1.41 added 7.8.2018
'typeOfTextfile' : '文本文件类型', // from v2.1.41 added 7.8.2018
'add' : '添加', // from v2.1.41 added 7.8.2018
'theme' : '主题', // from v2.1.43 added 19.10.2018
'default' : '缺省', // from v2.1.43 added 19.10.2018
'description' : '描述', // from v2.1.43 added 19.10.2018
'website' : '网站', // from v2.1.43 added 19.10.2018
'author' : '作者', // from v2.1.43 added 19.10.2018
'email' : '邮箱', // from v2.1.43 added 19.10.2018
'license' : '许可证', // from v2.1.43 added 19.10.2018
'exportToSave' : '本条目不能保存. 为避免丢失编辑数据,须要导出到你的电脑.', // from v2.1.44 added 1.12.2018
'dblclickToSelect': '在文件上双击以选中它.', // from v2.1.47 added 22.1.2019
'useFullscreen' : '使用全屏模式', // from v2.1.47 added 19.2.2019
/********************************** mimetypes **********************************/
'kindUnknown' : '未知',
......@@ -532,3 +579,4 @@
}
};
}));
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