1
0
Fork 0
mirror of synced 2024-06-03 11:24:48 +12:00

Removed unused filters

This commit is contained in:
eldadfux 2019-08-10 22:05:36 +03:00
parent 272a27b44c
commit 5ddb52dfdf
12 changed files with 114 additions and 205 deletions

View file

@ -46,7 +46,7 @@ $cli
'gitUserName' => 'appwrite',
],
'js' => [
'version' => 'v1.0.10',
'version' => 'v1.0.11',
'result' => __DIR__ . '/../sdks/js/',
'gitURL' => 'https://github.com/appwrite/sdk-for-js.git',
'gitRepo' => 'git@github.com:appwrite/sdk-for-js.git',

View file

@ -220,7 +220,7 @@ use Utopia\Locale\Locale;
</form>
</span>
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowerCase}}?width=120&height=120,title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{session.client.short_name|lowercase}}?width=120&height=120,title={{session.client.name}},alt={{session.client.name}}" class="avatar trans pull-start margin-end" />
<span data-ls-bind="{{session.client.name}}"></span> <span data-ls-bind="{{session.client.version}}"></span> on <span data-ls-bind="{{session.model}}"></span> <span data-ls-bind="{{session.OS.name}}"></span> <span data-ls-bind="{{session.OS.version}}"></span>
&nbsp;
@ -275,7 +275,7 @@ use Utopia\Locale\Locale;
<td data-title="<?php echo $this->escape(Locale::getText('console.account.section.security.recent-activity.date')); ?>: "><span data-ls-bind="{{log.time|date-time}}"></span></td>
<td data-title="<?php echo $this->escape(Locale::getText('console.account.section.security.recent-activity.event')); ?>: "><span data-ls-bind="{{log.event}}"></span></td>
<td data-title="<?php echo $this->escape(Locale::getText('console.account.section.security.recent-activity.client')); ?>: ">
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowerCase}}?width=80&height=80,title={{log.client.name}},alt={{log.client.name}}" class="avatar xs inline margin-end-small" />
<img data-ls-attrs="src={{env.API}}/avatars/browsers/{{log.client.short_name|lowercase}}?width=80&height=80,title={{log.client.name}},alt={{log.client.name}}" class="avatar xs inline margin-end-small" />
<span data-ls-bind="{{log.client.name}} {{log.client.version}} on {{log.model}} {{log.OS.name}} {{log.OS.version}}"></span>
</td>
<td data-title="<?php echo $this->escape(Locale::getText('console.account.section.security.recent-activity.location')); ?>: ">

View file

@ -132,7 +132,7 @@ $graph = $this->getParam('graph', false);
<div class="drop-list pull-start" data-ls-ui-open="" data-button-text="Add Platform" data-button-class="button" data-blur="1" tabindex="1">
<ul>
<li>
<div class="link web-new"><img src="/images/clients/web.png" alt="Web Platform Logo" class="avatar xs margin-end" /> New Website</div>
<div class="link web-new"><img src="/images/clients/web.png" alt="Web Platform Logo" class="avatar xs margin-end" /> New Web App</div>
</li>
<li class="disabled">
<div class="link ios-new"><img src="/images/clients/ios.png" alt="iOS Platform Logo" class="avatar xs margin-end" /> New iOS App <span class="note">(soon)</span></div>
@ -182,8 +182,6 @@ $graph = $this->getParam('graph', false);
</div>
</div>
<hr />
<button type="submit">Register</button> &nbsp; <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
</form>
</div>

View file

@ -56,7 +56,7 @@ use Utopia\Locale\Locale;
<input name="url" id="url" type="url" class="full-width" autocomplete="off" placeholder="https://acme-corp.com" data-ls-bind="{{console-project.url}}">
<hr />
<button class="" type="submit">Save</button>
</div>
</div>
@ -175,7 +175,7 @@ use Utopia\Locale\Locale;
<img src="" data-ls-attrs="src={{member|gravatar}}" data-size="200" alt="User Avatar" class="avatar pull-start margin-end" />
<div class="margin-bottom-small">
<span data-ls-bind="{{member.name}}"></span> &nbsp;&nbsp;<span class="tag" data-ls-bind="{{member.roles.0|id2role}}"></span> &nbsp;&nbsp;<span data-ls-if="false === {{member.confirm}}" class="tag red" style="display: none;"><?php echo Locale::getText('console.settings.section.members.labels.pending'); ?></span>
<span data-ls-bind="{{member.name}}"></span> &nbsp;&nbsp;<span class="tag" data-ls-bind="{{member.roles.0}}"></span> &nbsp;&nbsp;<span data-ls-if="false === {{member.confirm}}" class="tag red" style="display: none;"><?php echo Locale::getText('console.settings.section.members.labels.pending'); ?></span>
</div>
<span class="note" data-ls-bind="{{member.email}}"></span>
</li>

View file

@ -12,130 +12,99 @@ $providers = $this->getParam('providers', []);
<ul class="phases clear" data-ui-phases data-selected="{{router.params.tab}}">
<li data-state="/console/users?project={{router.params.project}}">
<h2>Users</h2>
<h2 style="display: none;">Users</h2>
<div>
<div class="row responsive force-reverse clear margin-bottom-tiny">
<div class="col span-2">
<div class="clear">
<div data-ui-modal class="box modal close" data-button-text="" data-button-class="pull-end round" data-button-icon="icon-plus">
<button type="button" class="close pull-end" data-ui-modal-close=""><i class="icon-cancel"></i></button>
<h1>Create User</h1>
<form
data-service="users.createUser"
data-event="submit"
data-success="alert,trigger,reset"
data-success-param-alert-text="Created user successfully"
data-success-param-trigger-events="user-create,modal-close"
data-failure="alert"
data-failure-param-alert-text="Failed to create user"
data-failure-param-alert-classname="error">
<label for="user-name">Name</label>
<input type="text" class="full-width" id="user-name" name="name" required autocomplete="off" />
<label for="user-email">Email</label>
<input type="email" class="full-width" id="user-email" name="email" required autocomplete="off" />
<label for="user-password">Password</label>
<input type="password" class="full-width" id="user-password" name="password" required autocomplete="off" />
<hr />
<button type="submit">Create</button> &nbsp; <button data-ui-modal-close="" type="button" class="reverse">Cancel</button>
</form>
</div>
</div>
<form class="box padding-small margin-bottom"
data-service="users.listUsers"
data-event="submit"
data-scope="sdk"
data-name="project-users" data-debug="1">
<input type="hidden" name="offset" value="0">
<input type="hidden" name="limit" value="5">
<div class="row responsive">
<div class="col span-10">
<input name="search" id="searchUsers" type="search" autocomplete="off" placeholder="Search" class="margin-bottom-no">
</div>
<div class="col span-6">&nbsp;</div>
<div class="col span-4">
<div class="margin-bottom-small">
<form class="" data-forms-filter="filter-users" data-event="init">
<input type="hidden" name="offset" value="0">
<input type="hidden" name="limit" value="10">
<input name="search" id="searchUsers" type="search" autocomplete="off" placeholder="Search" class="strip margin-bottom-no">
</form>
</div>
<div class="col span-2">
<button class="fill">Search</button>
</div>
</div>
</form>
<div
data-service="users.listUsers"
data-event="load,user-create,user-update,user-delete"
data-param-search=""
data-param-limit="25"
data-param-offset="0"
data-scope="sdk"
data-name="project-users">
<div
data-service="users.listUsers"
data-event="load,user-create,user-update,user-delete"
data-param-search=""
data-param-limit="25"
data-param-offset="0"
data-scope="sdk"
data-name="project-users">
<div data-ls-if="0 == {{project-users.sum}}" class="box margin-bottom">
<h3 class="margin-bottom">No Users Found</h3>
<div data-ls-if="0 == {{project-users.sum}}" class="box margin-bottom">
<h3 class="margin-bottom">No Users Found</h3>
<p class="margin-bottom-no">Create your first user to get started</p>
<p class="margin-bottom-no">Create your first user to get started</p>
</div>
<div data-ls-if="0 != {{project-users.sum}}" style="display: none;">
<div class="box margin-bottom">
<table class="vertical">
<thead>
<tr>
<th width="30"></th>
<th width="180">Name</th>
<th width="200">Email</th>
<th>Status</th>
<th width="100">Created</th>
</tr>
</thead>
<tbody data-ls-loop="project-users.users" data-ls-as="user">
<tr>
<td>
<img src="" data-ls-attrs="src={{user.email|gravatar}}" alt="User Avatar" class="avatar pull-start" />
</td>
<td data-title="Name: ">
<a data-ls-attrs="href=/console/users/view?id={{user.$uid}}&project={{router.params.project}}" data-ls-bind="{{user.name}}"></a>
</td>
<td data-title="Email: ">
<span data-ls-bind="{{user.email}}" class="note"></span>
</td>
<td data-title="Status: ">
<span data-ls-if="{{user.confirm}} === true">
&nbsp;<span class="tag green">Verified</span>
</span>
<span data-ls-if="{{user.confirm}} !== true">
&nbsp;<span class="tag">Unverified</span>
</span>
<span data-ls-if="{{user.status}} === <?php echo \Auth\Auth::USER_STATUS_BLOCKED; ?>">
&nbsp;<span class="tag red">Blocked</span>
</span>
</td>
<td data-title="Created: "><span data-ls-bind="{{user.registration|date-text}}" class="note"></span></td>
</tr>
</tbody>
</table>
</div>
<div data-ls-if="0 != {{project-users.sum}}" style="display: none;">
<div class="clear">
<span class="pull-end paging" data-ls-ui-paging="" data-sum="{{project-users.sum}}" data-offset="{{filter-users.keys.offset}}" data-limit="{{filter-users.keys.limit}}"></span>
<div class="box margin-bottom">
<table class="vertical">
<thead>
<tr>
<th width="30"></th>
<th width="180">Name</th>
<th width="200">Email</th>
<th>Status</th>
<th width="100">Created</th>
</tr>
</thead>
<tbody data-ls-loop="project-users.users" data-ls-as="user">
<tr>
<td>
<img src="" data-ls-attrs="src={{user.email|gravatar}}" alt="User Avatar" class="avatar pull-start" />
</td>
<td data-title="Name: ">
<a data-ls-attrs="href=/console/users/view?id={{user.$uid}}&project={{router.params.project}}" data-ls-bind="{{user.name}}"></a>
</td>
<td data-title="Email: ">
<span data-ls-bind="{{user.email}}" class="note"></span>
</td>
<td data-title="Status: ">
<span data-ls-if="{{user.confirm}} === true">
&nbsp;<span class="tag green">Verified</span>
</span>
<span data-ls-if="{{filter-users.backward}} >= 0" style="display: none;">
<button type="button" class="margin-end round" data-forms-filter="filter-users" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-users.backward}}'])); ?>" aria-label="Back"><i class="icon-left-open"></i></button>
</span>
<span data-ls-if="{{filter-users.backward}} < 0" style="display: none;">
<button type="button" class="disabled margin-end round" disabled aria-label="Back"><i class="icon-left-open"></i></button>
</span>
<span data-ls-if="{{user.confirm}} !== true">
&nbsp;<span class="tag">Unverified</span>
</span>
<span data-ls-if="{{user.status}} === <?php echo \Auth\Auth::USER_STATUS_BLOCKED; ?>">
&nbsp;<span class="tag red">Blocked</span>
</span>
</td>
<td data-title="Created: "><span data-ls-bind="{{user.registration|date-text}}" class="note"></span></td>
</tr>
</tbody>
</table>
</div>
<div class="clear">
<span class="pull-end paging" data-ls-ui-paging="" data-sum="{{project-users.sum}}" data-offset="{{filter-users.keys.offset}}" data-limit="{{filter-users.keys.limit}}"></span>
<span data-ls-if="{{filter-users.backward}} >= 0" style="display: none;">
<button type="button" class="margin-end round" data-forms-filter="filter-users" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-users.backward}}'])); ?>" aria-label="Back"><i class="icon-left-open"></i></button>
</span>
<span data-ls-if="{{filter-users.backward}} < 0" style="display: none;">
<button type="button" class="disabled margin-end round" disabled aria-label="Back"><i class="icon-left-open"></i></button>
</span>
<span data-ls-if="{{filter-users.forward}} < {{project-users.sum}}" style="display: none;">
<button type="button" class="margin-end round" data-forms-filter="filter-users" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-users.forward}}'])); ?>" aria-label="Next"><i class="icon-right-open"></i></button>
</span>
<span data-ls-if="{{filter-users.forward}} >= {{project-users.sum}}" style="display: none;">
<button type="button" class="disabled margin-end round" disabled aria-label="Next"><i class="icon-right-open"></i></button>
</span>
</div>
<span data-ls-if="{{filter-users.forward}} < {{project-users.sum}}" style="display: none;">
<button type="button" class="margin-end round" data-forms-filter="filter-users" data-params="<?php echo $this->escape(json_encode(['offset' => '{{filter-users.forward}}'])); ?>" aria-label="Next"><i class="icon-right-open"></i></button>
</span>
<span data-ls-if="{{filter-users.forward}} >= {{project-users.sum}}" style="display: none;">
<button type="button" class="disabled margin-end round" disabled aria-label="Next"><i class="icon-right-open"></i></button>
</span>
</div>
</div>
</div>

29
composer.lock generated
View file

@ -1505,12 +1505,12 @@
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
"reference": "f07a7f388d9577265fa2bfafb7449505a1fcfc53"
"reference": "5168c0e2feac6b1c4c14810df4f8ac95efc1312e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/f07a7f388d9577265fa2bfafb7449505a1fcfc53",
"reference": "f07a7f388d9577265fa2bfafb7449505a1fcfc53",
"url": "https://api.github.com/repos/twigphp/Twig/zipball/5168c0e2feac6b1c4c14810df4f8ac95efc1312e",
"reference": "5168c0e2feac6b1c4c14810df4f8ac95efc1312e",
"shasum": ""
},
"require": {
@ -1521,7 +1521,6 @@
"require-dev": {
"psr/container": "^1.0",
"symfony/debug": "^3.4|^4.2",
"symfony/mime": "^4.3",
"symfony/phpunit-bridge": "^4.4@dev|^5.0"
},
"type": "library",
@ -1565,7 +1564,7 @@
"keywords": [
"templating"
],
"time": "2019-08-08 16:07:29"
"time": "2019-08-10 14:16:47"
},
{
"name": "utopia-php/abuse",
@ -1910,12 +1909,12 @@
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
"reference": "6c3e9f1c8315a93bcebdd5f21630c945439968e9"
"reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/6c3e9f1c8315a93bcebdd5f21630c945439968e9",
"reference": "6c3e9f1c8315a93bcebdd5f21630c945439968e9",
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/007c053ae6f31bba39dfa19a7726f56e9763bbea",
"reference": "007c053ae6f31bba39dfa19a7726f56e9763bbea",
"shasum": ""
},
"require": {
@ -1950,7 +1949,7 @@
"object",
"object graph"
],
"time": "2019-08-05T15:28:34+00:00"
"time": "2019-08-09T12:45:53+00:00"
},
{
"name": "phar-io/manifest",
@ -1994,18 +1993,18 @@
"authors": [
{
"name": "Arne Blankerts",
"email": "arne@blankerts.de",
"role": "Developer"
"role": "Developer",
"email": "arne@blankerts.de"
},
{
"name": "Sebastian Heuer",
"email": "sebastian@phpeople.de",
"role": "Developer"
"role": "Developer",
"email": "sebastian@phpeople.de"
},
{
"name": "Sebastian Bergmann",
"email": "sebastian@phpunit.de",
"role": "Developer"
"role": "Developer",
"email": "sebastian@phpunit.de"
}
],
"description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",

File diff suppressed because one or more lines are too long

View file

@ -15,7 +15,7 @@ params=formData;break;}
return new Promise(function(resolve,reject){let request=new XMLHttpRequest(),key;request.withCredentials=true;request.open(method,path,true);for(key in headers){if(headers.hasOwnProperty(key)){request.setRequestHeader(key,headers[key]);}}
request.onload=function(){if(4===request.readyState&&399>=request.status){let data=request.response;let contentType=this.getResponseHeader('content-type')||'';contentType=contentType.substring(0,contentType.indexOf(';'));switch(contentType){case'application/json':data=JSON.parse(data);break;}
resolve(data);}else{reject(new Error(request.statusText));}};if(progress){request.addEventListener('progress',progress);request.upload.addEventListener('progress',progress,false);}
request.onerror=function(){reject(new Error("Network Error"));};request.send(params);})};return{'get':function(path,headers={},params={}){return call('GET',path+((params.length>0)?'?'+buildQuery(params):''),headers,{});},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress);},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress);},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress);},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress);},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField);}}
request.onerror=function(){reject(new Error("Network Error"));};request.send(params);})};return{'get':function(path,headers={},params={}){return call('GET',path+((Object.keys(params).length>0)?'?'+buildQuery(params):''),headers,{});},'post':function(path,headers={},params={},progress=null){return call('POST',path,headers,params,progress);},'put':function(path,headers={},params={},progress=null){return call('PUT',path,headers,params,progress);},'patch':function(path,headers={},params={},progress=null){return call('PATCH',path,headers,params,progress);},'delete':function(path,headers={},params={},progress=null){return call('DELETE',path,headers,params,progress);},'addGlobalParam':addGlobalParam,'addGlobalHeader':addGlobalHeader}}(window.document);let iframe=function(method,url,params){let form=document.createElement('form');form.setAttribute('method',method);form.setAttribute('action',config.endpoint+url);for(let key in params){if(params.hasOwnProperty(key)){let hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden");hiddenField.setAttribute("name",key);hiddenField.setAttribute("value",params[key]);form.appendChild(hiddenField);}}
document.body.appendChild(form);return form.submit();};let account={get:function(){let path='/account';return http.get(path,{'content-type':'application/json'},{});},delete:function(){let path='/account';return http.delete(path,{'content-type':'application/json'},{});},updateEmail:function(email,password){if(email===undefined){throw new Error('Missing required parameter: "email"');}
if(password===undefined){throw new Error('Missing required parameter: "password"');}
let path='/account/email';return http.patch(path,{'content-type':'application/json'},{'email':email,'password':password});},updateName:function(name){if(name===undefined){throw new Error('Missing required parameter: "name"');}
@ -155,7 +155,7 @@ let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{te
if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"');}
if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
if(secret===undefined){throw new Error('Missing required parameter: "secret"');}
let path='/teams/{teamId}/memberships/{inviteId}/status'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return iframe('patch',path,{project:config.project,'userId':userId,'secret':secret,'success':success,'failure':failure});}};let users={listUsers:function(search='',limit=25,offset=0,orderType='ASC'){let path='/users';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createUser:function(email,password,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');}
let path='/teams/{teamId}/memberships/{inviteId}/status'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return iframe('patch',path,{project:config.project,'userId':userId,'secret':secret,'success':success,'failure':failure});}};let users={listUsers:function(search='',limit=25,offset=0,orderType='ASC'){let path='/users';console.log({'search':search,'limit':limit,'offset':offset,'orderType':orderType});return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createUser:function(email,password,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');}
if(password===undefined){throw new Error('Missing required parameter: "password"');}
let path='/users';return http.post(path,{'content-type':'application/json'},{'email':email,'password':password,'name':name});},getUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}
let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},getUserLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -35,9 +35,6 @@ window.ls.filter
return '//www.gravatar.com/avatar/' + MD5(email) + '.jpg?s=' + size + '&d=' + encodeURIComponent(def);
})
.add('lowerCase', function ($value) {
return (typeof $value === 'string') ? $value.toLowerCase() : $value;
})
.add('date', function ($value, date) {
return date.format('Y-m-d', $value);
})
@ -47,21 +44,6 @@ window.ls.filter
.add('date-text', function ($value, date) {
return date.format('d M Y', $value);
})
.add('date-long', function ($value, date) {
return date.format('l, j F, H:i', $value);
})
.add('min2hum', function ($value) {
if($value >= 60) {
if($value % 60 === 0) {
return Math.ceil($value / 60) + ' hours';
}
else {
return Math.ceil($value / 60) + ' hours and ' + ($value % 60) + ' minutes';
}
}
return $value + ' minutes';
})
.add('ms2hum', function ($value) {
let temp = $value;
const years = Math.floor( temp / 31536000 ),
@ -80,38 +62,9 @@ window.ls.filter
return "< 1s";
})
.add('nl2p', function ($value) {
let result = "<p>" + $value + "</p>";
result = result.replace(/\r\n\r\n/g, "</p><p>").replace(/\n\n/g, "</p><p>");
result = result.replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
return result;
})
.add('markdown', function ($value, markdown) {
return markdown.render($value);
})
.add('id2name', function ($value) {
let members = container.get('members');
if(members === null) {
return '';
}
for (let y = 0; y < members.length; y++) {
if(members[y]['$uid'] === $value) {
$value = members[y].name;
}
}
return $value;
})
.add('id2role', function ($value) {
if(APP_ENV.ROLES[$value]) {
return APP_ENV.ROLES[$value];
}
return '';
})
.add('humanFileSize', function ($value) {
if (!$value) {
return 0;

View file

@ -298,12 +298,12 @@ input[type=search].strip {
background: transparent;
-webkit-appearance: none;
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAdZJREFUWIXt1s2LjWEYBvDfnDMzFpNIamZIFrMiJYMyFmKhZKfOwoiFr2LFn2BByG6WVrKwMcjWxgoLIlKIUk6RrzAjZWZ8LO731FlwvB+PUbjq6X0X7/VeV/d9P9fz8IdRL8Hpw3x8w0xaOz9GNxq4gJeZcGs1cRab0fU7xLfgMSYzoT3YgNXYhIO4iM+4iTWphGs4jikcFSXvhEGczr4/UFW8C2N4jXUFudvwCYeqGNgnSr6yJH8rpkWLCqMfE9hdUryFE3iC3qLEk7ij+kT34Q32FiHV8Qr7K4q3cArXihCGxd5elMjARnzBvE4f1dreV+AtnicycC/7/7K8BhaIvqXCO3zFwrwGZtCT0EAtW9N5DTSxWGR/CizNns/yEgbFEK5NZGCnaEPHE7e9Ai9wA6OJDIzistgJubFdxHB/RfFVYgCHixJruI5x5dNwDm6J47sUhkTvjpUw0Y1zeOrXR3hHjOA9zmBuTs4Arog4/yhuUZWwHPdFMh7280BZgiP4ILJ/UuymqRQmejPxphiquzgvKnMJDzOxB9glZqiRiecykbfHdawX98EhcdxO4BGu4nYm2EJDzEKPSMIdYrBnFYUq8d/EP2di1gey3cS4ErflvxffASbhcakIINaMAAAAAElFTkSuQmCC");
background-position: @config-start 3px top 50%;
background-position: @config-start 15px top 50%;
background-repeat: no-repeat;
background-size: 20px 20px;
width: ~"calc(100% - 62px)";
width: ~"calc(100% - 60px)";
.text-one-liner;
.func-padding-start(35px);
.func-padding-start(45px);
}
select[multiple] {