diff --git a/.dockerignore b/.dockerignore index 4165d6bf52..7fff0265d6 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,5 +1,4 @@ app/db/SQL -docs node_modules storage public/scripts diff --git a/CHANGES.md b/CHANGES.md index 81f8606070..656f24c823 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,7 +2,7 @@ ## Features -* Added 7 new locales for locale service and email templates (af, ar, cz, hu, lt, no, ru, si, sv, ta, vi, zh-cn, zh-tw) +* Added 16 new locales for locale service and email templates (af, ar, bn, cz, hu, hy, jv, lt, no, ru, si, sv, ta, vi, zh-cn, zh-tw) * New users service routes to allow updates pref and name update * 2 stage Docker build * New database rule validation options @@ -10,6 +10,11 @@ * Limit HTTP origin check only to browser integrations * Allow electron apps to not pass origin header * New OAuth adapters (Amazon, Dropbox, Microsoft, Slack, VK) +* Added support for ES6 require statements in JS SDK + +## Bugs +* Fix for typos in PT-BR translations +* Fix for UI crash when project user was missing a name ## Breaking Changs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e7b28d8bba..38752b5580 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,7 @@ Appwrite uses a package manager for managing code dependencies for both backend Many of Appwrite's internal modules are also used as dependencies to allow other Appwrite's projects to reuse them and as a way to contribute them back to the community. -Appwrite uses PHPs Composer for managing dependencies on the server-side and JS NPM for managing dependencies on the frontend side. +Appwrite uses PHP's Composer for managing dependencies on the server-side and JS NPM for managing dependencies on the frontend side. ## Coding Standards diff --git a/Dockerfile b/Dockerfile index dedf679080..db5e6c175c 100755 --- a/Dockerfile +++ b/Dockerfile @@ -78,6 +78,7 @@ RUN chmod 775 /entrypoint.sh # add PHP files COPY ./app /usr/share/nginx/html/app +COPY ./docs /usr/share/nginx/html/docs COPY ./public /usr/share/nginx/html/public COPY ./src /usr/share/nginx/html/src COPY ./vendor /usr/share/nginx/html/vendor diff --git a/README.md b/README.md index 4afc72376d..471e6cf37c 100644 --- a/README.md +++ b/README.md @@ -63,10 +63,10 @@ Getting started with Appwrite is as easy as creating a new project, choosing you * [**Account**](https://appwrite.io/docs/account) - Manage current user account. Track and manage the user sessions, devices, and security audit log. * [**Users**](https://appwrite.io/docs/users) - Manage and list all project users when in admin mode. * [**Teams**](https://appwrite.io/docs/teams) - Manage and group users in teams. Manage memberships, invites and user roles within a team. -* [**Database**](https://appwrite.io/docs/database) - Manage database collections and document. Read, create, update and delete documents and filter lists of documents collections using an advanced filter with graph-like capabilities. +* [**Database**](https://appwrite.io/docs/database) - Manage database collections and documents. Read, create, update and delete documents and filter lists of documents collections using an advanced filter with graph-like capabilities. * [**Storage**](https://appwrite.io/docs/storage) - Manage storage files. Read, create, delete and preview files. Manipulate the preview of your files to fit your app perfectly. All files are scanned by ClamAV and stored in a secure and encrypted way. * [**Locale**](https://appwrite.io/docs/locale) - Track user's location, and manage your app locale-based data. -* [**Avatars**](https://appwrite.io/docs/avatars) - Manage your user's avatars, country's flags, browser icons, credit card symbols and generate QR codes. +* [**Avatars**](https://appwrite.io/docs/avatars) - Manage your users' avatars, countries' flags, browser icons, credit card symbols and generate QR codes. For the complete API documentation, visit [https://appwrite.io/docs](https://appwrite.io/docs). For more tutorials, news and announcements check out our [blog](https://medium.com/appwrite-io). @@ -89,7 +89,7 @@ For security issues, kindly email us [security@appwrite.io](mailto:security@appw ## Follow Us -Join our growing community around the world! Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) or join our live [Gitter community](https://gitter.im/appwrite/community) for more help, ideas and discussions. +Join our growing community around the world! Follow us on [Twitter](https://twitter.com/appwrite_io), [Facebook Page](https://www.facebook.com/appwrite.io), [Facebook Group](https://www.facebook.com/groups/appwrite.developers/) or join our live [Gitter community](https://gitter.im/appwrite/community) for more help, ideas, and discussions. ## Contributing diff --git a/app/app.php b/app/app.php index 02637ccec1..2ef9d85acf 100644 --- a/app/app.php +++ b/app/app.php @@ -41,7 +41,7 @@ $clientsConsole = array_map(function ($node) { return false; })); -$clients = array_merge($clientsConsole, array_map(function ($node) { +$clients = array_unique(array_merge($clientsConsole, array_map(function ($node) { return $node['url']; }, array_filter($project->getAttribute('platforms', []), function ($node) { if (isset($node['type']) && $node['type'] === 'web' && isset($node['url']) && !empty($node['url'])) { @@ -49,7 +49,7 @@ $clients = array_merge($clientsConsole, array_map(function ($node) { } return false; -}))); +})))); $utopia->init(function () use ($utopia, $request, $response, $register, &$user, $project, $roles, $webhook, $audit, $usage, $domain, $clients) { $route = $utopia->match($request); @@ -72,7 +72,7 @@ $utopia->init(function () use ($utopia, $request, $response, $register, &$user, //->addHeader('X-Frame-Options', ($refDomain == 'http://localhost') ? 'SAMEORIGIN' : 'ALLOW-FROM ' . $refDomain) ->addHeader('X-Content-Type-Options', 'nosniff') ->addHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE') - ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-SDK-Version') + ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-SDK-Version') ->addHeader('Access-Control-Allow-Origin', $refDomain) ->addHeader('Access-Control-Allow-Credentials', 'true') ; @@ -82,8 +82,9 @@ $utopia->init(function () use ($utopia, $request, $response, $register, &$user, * Adding appwrite api domains to allow XDOMAIN communication */ $hostValidator = new Host($clients); - - if (!$hostValidator->isValid($request->getServer('HTTP_ORIGIN', $request->getServer('HTTP_REFERER', ''))) + $origin = $request->getServer('HTTP_ORIGIN', $request->getServer('HTTP_REFERER', '')); + + if (!$hostValidator->isValid($origin) && in_array($request->getMethod(), [Request::METHOD_POST, Request::METHOD_PUT, Request::METHOD_PATCH, Request::METHOD_DELETE]) && empty($request->getHeader('X-Appwrite-Key', ''))) { throw new Exception('Access from this client host is forbidden. '.$hostValidator->getDescription(), 403); @@ -251,7 +252,7 @@ $utopia->options(function () use ($request, $response, $domain, $project) { $response ->addHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, PATCH, DELETE') - ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-SDK-Version') + ->addHeader('Access-Control-Allow-Headers', 'Origin, Cookie, Set-Cookie, X-Requested-With, Content-Type, Access-Control-Allow-Origin, Access-Control-Request-Headers, Accept, X-Appwrite-Project, X-Appwrite-Key, X-Appwrite-Locale, X-SDK-Version') ->addHeader('Access-Control-Allow-Origin', $origin) ->addHeader('Access-Control-Allow-Credentials', 'true') ->send(); @@ -490,7 +491,7 @@ $utopia->get('/v1/open-api-2.json') 'url' => 'https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE', ], ], - 'host' => $request->getServer('_APP_HOME', $domain), + 'host' => parse_url($request->getServer('_APP_HOME', $domain), PHP_URL_HOST), 'basePath' => '/v1', 'schemes' => ['https'], 'consumes' => ['application/json', 'multipart/form-data'], @@ -499,13 +500,13 @@ $utopia->get('/v1/open-api-2.json') 'Project' => [ 'type' => 'apiKey', 'name' => 'X-Appwrite-Project', - 'description' => 'Your Appwrite project ID. You can find your project ID in your Appwrite console project settings.', + 'description' => 'Your Appwrite project ID', 'in' => 'header', ], 'Key' => [ 'type' => 'apiKey', 'name' => 'X-Appwrite-Key', - 'description' => 'Your Appwrite project secret key. You can can create a new API key from your Appwrite console API keys dashboard.', + 'description' => 'Your Appwrite project secret key', 'in' => 'header', ], 'Locale' => [ @@ -590,7 +591,7 @@ $utopia->get('/v1/open-api-2.json') 'operationId' => $route->getLabel('sdk.method', uniqid()), 'consumes' => [], 'tags' => [$route->getLabel('sdk.namespace', 'default')], - 'description' => $route->getLabel('sdk.description', ''), + 'description' => file_get_contents(realpath(__DIR__ . '/..' . $route->getLabel('sdk.description', ''))), 'responses' => [ 200 => [ 'description' => 'An paged array of pets', @@ -607,6 +608,9 @@ $utopia->get('/v1/open-api-2.json') 'cookies' => $route->getLabel('sdk.cookies', false), 'location' => $route->getLabel('sdk.location', false), 'demo' => 'docs/examples/'.fromCamelCaseToDash($route->getLabel('sdk.namespace', 'default')).'/'.fromCamelCaseToDash($temp['operationId']).'.md', + 'edit' => 'https://github.com/appwrite/appwrite/edit/master' . $route->getLabel('sdk.description', ''), + 'rate-limit' => $route->getLabel('abuse-limit', 0), + 'rate-time' => $route->getLabel('abuse-time', 3600), ]; } @@ -680,7 +684,7 @@ $utopia->get('/v1/open-api-2.json') case 'Utopia\Validator\Range': /* @var $validator \Utopia\Validator\Range */ $node['type'] = 'integer'; $node['format'] = 'int32'; - $node['x-example'] = rand($validator->getMin(), $validator->getMax()); + $node['x-example'] = $validator->getMin(); break; case 'Utopia\Validator\Numeric': $node['type'] = 'integer'; diff --git a/app/config/collections.php b/app/config/collections.php index 122b722f90..da563f3e25 100644 --- a/app/config/collections.php +++ b/app/config/collections.php @@ -38,12 +38,24 @@ $collections = [ '$collection' => Database::SYSTEM_COLLECTION_PLATFORMS, 'name' => 'Localhost (SSL)', 'type' => 'web', - 'url' => 'https://'.$request->getServer('HTTP_HOST'), + 'url' => 'https://localhost', ], [ '$collection' => Database::SYSTEM_COLLECTION_PLATFORMS, 'name' => 'Localhost (Non-SSL)', 'type' => 'web', + 'url' => 'http://localhost', + ], + [ + '$collection' => Database::SYSTEM_COLLECTION_PLATFORMS, + 'name' => 'Current Host (SSL)', + 'type' => 'web', + 'url' => 'https://'.$request->getServer('HTTP_HOST'), + ], + [ + '$collection' => Database::SYSTEM_COLLECTION_PLATFORMS, + 'name' => 'Current Host (Non-SSL)', + 'type' => 'web', 'url' => 'http://'.$request->getServer('HTTP_HOST'), ], ], diff --git a/app/config/locale/bn.continents.php b/app/config/locale/bn.continents.php new file mode 100644 index 0000000000..68b1dc1f62 --- /dev/null +++ b/app/config/locale/bn.continents.php @@ -0,0 +1,11 @@ + 'আফ্রিকা', + 'AN' => 'এন্টার্কটিকা', + 'AS' => 'এশিয়া', + 'EU' => 'ইউরোপ', + 'NA' => 'উত্তর আমেরিকা', + 'OC' => 'ওশেনিয়া', + 'SA' => 'দক্ষিণ আমেরিকা', +]; diff --git a/app/config/locale/bn.countries.php b/app/config/locale/bn.countries.php new file mode 100644 index 0000000000..24f1ef2fff --- /dev/null +++ b/app/config/locale/bn.countries.php @@ -0,0 +1,198 @@ + 'আফগানিস্তান', + 'AO' => 'অ্যাঙ্গোলা', + 'AL' => 'আলবেনিয়া', + 'AD' => 'এ্যান্ডোরা', + 'AE' => 'সংযুক্ত আরব আমিরাত', + 'AR' => 'আর্জেন্টিনা', + 'AM' => 'আর্মেনিয়া', + 'AG' => 'অ্যান্টিগুয়া এবং বার্বুডা', + 'AU' => 'অস্ট্রেলিয়া', + 'AT' => 'অস্ট্রিয়া', + 'AZ' => 'আজারবাইজান', + 'BI' => 'বুরুন্ডি', + 'BE' => 'বেলজিয়াম', + 'BJ' => 'বেনিন', + 'BF' => 'বুর্কিনা ফাসো', + 'BD' => 'বাংলাদেশ', + 'BG' => 'বুলগেরিয়া', + 'BH' => 'বাহরাইন', + 'BS' => 'বাহামা', + 'BA' => 'বসনিয়া ও হার্জেগোভিনা', + 'BY' => 'বেলারুশ', + 'BZ' => 'বেলিজ', + 'BO' => 'বলিভিয়া', + 'BR' => 'ব্রাজিল', + 'BB' => 'বার্বাডোস', + 'BN' => 'ব্রুনাই', + 'BT' => 'ভুটান', + 'BW' => 'বোতসোয়ানা', + 'CF' => 'মধ্য আফ্রিকান প্রজাতন্ত্র', + 'CA' => 'কানাডা', + 'CH' => 'সুইজারল্যান্ড', + 'CL' => 'চিলি', + 'CN' => 'চীন', + 'CI' => 'আইভরি কোস্ট', + 'CM' => 'ক্যামেরুন', + 'CD' => 'গণতান্ত্রিক কঙ্গো প্রজাতন্ত্র', + 'CG' => 'কঙ্গো প্রজাতন্ত্র', + 'CO' => 'কলম্বিয়া', + 'KM' => 'কোমোরোস', + 'CV' => 'কেপ ভার্দে', + 'CR' => 'কোস্টা রিকা', + 'CU' => 'কিউবা', + 'CY' => 'সাইপ্রাস', + 'CZ' => 'চেকিয়া', + 'DE' => 'জার্মানি', + 'DJ' => 'জিবুতি', + 'DM' => 'ডোমিনিকা', + 'DK' => 'ডেনমার্ক', + 'DO' => 'ডোমিনিকান প্রজাতন্ত্র', + 'DZ' => 'আলজেরিয়া', + 'EC' => 'ইকুয়েডর', + 'EG' => 'মিশর', + 'ER' => 'ইরিত্রিয়া', + 'ES' => 'স্পেন', + 'EE' => 'এস্তোনিয়া', + 'ET' => 'ইথিওপিয়া', + 'FI' => 'ফিনল্যান্ড', + 'FJ' => 'ফিজি', + 'FR' => 'ফ্রান্স', + 'FM' => 'মাইক্রোনেশিয়া', + 'GA' => 'গ্যাবন', + 'GB' => 'যুক্তরাজ্য', + 'GE' => 'জর্জিয়া', + 'GH' => 'ঘানা', + 'GN' => 'গিনি', + 'GM' => 'গাম্বিয়া', + 'GW' => 'গিনি-বিসাউ', + 'GQ' => 'নিরক্ষীয় গিনি', + 'GR' => 'গ্রীস', + 'GD' => 'গ্রেনাডা', + 'GT' => 'গুয়াতেমালা', + 'GY' => 'গায়ানা', + 'HN' => 'হন্ডুরাস', + 'HR' => 'ক্রোয়েশিয়া', + 'HT' => 'হাইতি', + 'HU' => 'হাঙ্গেরি', + 'ID' => 'ইন্দোনেশিয়া', + 'IN' => 'ভারত', + 'IE' => 'আয়ারল্যান্ড', + 'IR' => 'ইরান', + 'IQ' => 'ইরাক', + 'IS' => 'আইসল্যান্ড', + 'IL' => 'ইস্রায়েল', + 'IT' => 'ইতালি', + 'JM' => 'জামাইকা', + 'JO' => 'জর্ডান', + 'JP' => 'জাপান', + 'KZ' => 'কাজাখস্তান', + 'KE' => 'কেনিয়া', + 'KG' => 'কিরগিজস্তান', + 'KH' => 'কম্বোডিয়া', + 'KI' => 'কিরিবাতি', + 'KN' => 'সেন্ট কিটস ও নেভিস', + 'KR' => 'দক্ষিণ কোরিয়া', + 'KW' => 'কুয়েত', + 'LA' => 'লাওস', + 'LB' => 'লেবানন', + 'LR' => 'লাইবেরিয়া', + 'LY' => 'লিবিয়া', + 'LC' => 'সেন্ট লুসিয়া', + 'LI' => 'লিচটেনস্টাইন', + 'LK' => 'শ্রীলঙ্কা', + 'LS' => 'লেসোথো', + 'LT' => 'লিথুয়ানিয়া', + 'LU' => 'লাক্সেমবার্গ', + 'LV' => 'লাটভিয়া', + 'MA' => 'মরোক্কো', + 'MC' => 'মোনাকো', + 'MD' => 'মোল্দাভিয়া', + 'MG' => 'মাদাগাস্কার', + 'MV' => 'মালদ্বীপ', + 'MX' => 'মেক্সিকো', + 'MH' => 'মার্শাল দ্বীপপুঞ্জ', + 'MK' => 'ম্যাসেডোনিয়া', + 'ML' => 'মালি', + 'MT' => 'মাল্টা', + 'MM' => 'মায়ানমার', + 'ME' => 'মন্টিনিগ্রো', + 'MN' => 'মঙ্গোলিয়া', + 'MZ' => 'মোজাম্বিক', + 'MR' => 'মরিতানিয়া', + 'MU' => 'মরিশাস', + 'MW' => 'মালাভি', + 'MY' => 'মালয়েশিয়া', + 'NA' => 'নামিবিয়া', + 'NE' => 'নাইজার', + 'NG' => 'নাইজেরিয়া', + 'NI' => 'নিকারাগুয়া', + 'NL' => 'নেদারল্যান্ডস', + 'NO' => 'নরওয়ে', + 'NP' => 'নেপাল', + 'NR' => 'নাউরু', + 'NZ' => 'নিউজিল্যান্ড', + 'OM' => 'ওমান', + 'PK' => 'পাকিস্তান', + 'PA' => 'পানামা', + 'PE' => 'পেরু', + 'PH' => 'ফিলিপাইন', + 'PW' => 'পালাউ', + 'PG' => 'পাপুয়া নিউ গিনি', + 'PL' => 'পোল্যান্ড', + 'KP' => 'উত্তর কোরিয়া', + 'PT' => 'পর্তুগাল', + 'PY' => 'প্যারাগুয়ে', + 'QA' => 'কাতার', + 'RO' => 'রোমানিয়া', + 'RU' => 'রাশিয়া', + 'RW' => 'রুয়ান্ডা', + 'SA' => 'সৌদি আরব', + 'SD' => 'সুদান', + 'SN' => 'সেনেগাল', + 'SG' => 'সিঙ্গাপুর', + 'SB' => 'সলোমন দ্বীপপুঞ্জ', + 'SL' => 'সিয়েরা লিওন', + 'SV' => 'এল সালভাদোর', + 'SM' => 'সান মেরিনো', + 'SO' => 'সোমালিয়া', + 'RS' => 'সার্বিয়া', + 'SS' => 'দক্ষিণ সুদান', + 'ST' => 'সাও টোমে এবং প্রানসিপে', + 'SR' => 'সুরিনাম', + 'SK' => 'স্লোভাকিয়া', + 'SI' => 'স্লোভেনিয়া', + 'SE' => 'সুইডেন', + 'SZ' => 'সোয়াজিল্যান্ড', + 'SC' => 'সেচেলস', + 'SY' => 'সিরিয়া', + 'TD' => 'চাদ', + 'TG' => 'টোগো', + 'TH' => 'থাইল্যান্ড', + 'TJ' => 'তাজিকিস্তান', + 'TM' => 'তুর্কমেনিস্তান', + 'TL' => 'টিমর-লেস্টে', + 'TO' => 'টঙ্গা', + 'TT' => 'ত্রিনিদাদ ও টোবাগো', + 'TN' => 'তিউনিসিয়া', + 'TR' => 'তুরস্ক', + 'TV' => 'টুভালু', + 'TZ' => 'তানজানিয়া', + 'UG' => 'উগান্ডা', + 'UA' => 'ইউক্রেন', + 'UY' => 'উরুগুয়ে', + 'US' => 'মার্কিন যুক্তরাষ্ট্র', + 'UZ' => 'উজবেকিস্তান', + 'VA' => 'ভ্যাটিকান সিটি', + 'VC' => 'সেন্ট ভিনসেন্ট ও গ্রেনাডাইনস', + 'VE' => 'ভেনিজুয়েলা', + 'VN' => 'ভিয়েতনাম', + 'VU' => 'ভানুয়াতু', + 'WS' => 'সামোয়া', + 'YE' => 'ইয়ামেন', + 'ZA' => 'দক্ষিণ আফ্রিকা', + 'ZM' => 'জাম্বিয়া', + 'ZW' => 'জিম্বাবুয়ে', +]; diff --git a/app/config/locale/bn.php b/app/config/locale/bn.php new file mode 100644 index 0000000000..c592128c12 --- /dev/null +++ b/app/config/locale/bn.php @@ -0,0 +1,21 @@ + '"জ্ঞানী হওয়ার শিল্প হলো কোন বিষয়টিকে উপেক্ষা করা উচিত তা জানার শিল্প"', // This is the line printed in the homepage and console 'view-source' + 'settings.locale' => 'bn', + 'settings.direction' => 'ltr', + + // Service - Users + 'auth.emails.team' => '%s টীম', + 'auth.emails.confirm.title' => 'অ্যাকাউন্ট নিশ্চিতকরণ', + 'auth.emails.confirm.body' => 'bn.email.auth.confirm.tpl', + 'auth.emails.recovery.title' => 'পাসওয়ার্ড রিসেট', + 'auth.emails.recovery.body' => 'bn.email.auth.recovery.tpl', + 'auth.emails.invitation.title' => 'আমন্ত্রণ %s এই টীম-এ যেটি এখানের %s', + 'auth.emails.invitation.body' => 'bn.email.auth.invitation.tpl', + + 'locale.country.unknown' => 'অজানা', + + 'countries' => include 'bn.countries.php', + 'continents' => include 'bn.continents.php', +]; diff --git a/app/config/locale/es.countries.php b/app/config/locale/es.countries.php index 18fe488c17..4479c27806 100644 --- a/app/config/locale/es.countries.php +++ b/app/config/locale/es.countries.php @@ -145,7 +145,7 @@ return [ 'KP' => 'Corea del Norte', 'PT' => 'Portugal', 'PY' => 'Paraguay', - 'QA' => 'Katar', + 'QA' => 'Catar', 'RO' => 'Rumania', 'RU' => 'Rusia', 'RW' => 'Ruanda', diff --git a/app/config/locale/hi.continents.php b/app/config/locale/hi.continents.php index d1f95ddd8e..57713feb16 100644 --- a/app/config/locale/hi.continents.php +++ b/app/config/locale/hi.continents.php @@ -1,7 +1,7 @@ 'अफ्रीका', + 'AF' => 'अफ़्रीका', 'AN' => 'अंटार्कटिका', 'AS' => 'एशिया', 'EU' => 'यूरोप', diff --git a/app/config/locale/hi.php b/app/config/locale/hi.php index f48dcdb70a..fb1979fe5b 100644 --- a/app/config/locale/hi.php +++ b/app/config/locale/hi.php @@ -1,7 +1,7 @@ '"यह जान लेना की क्या अनदेखा किया जा सकता है, ही बुद्धिमता का प्रतीक है |"', // This is the line printed in the homepage and console 'view-source' + 'settings.inspire' => '"बुद्धिमान होने की कला यह जानने की कला है कि क्या अनदेखा करना चाहिए |"', // This is the line printed in the homepage and console 'view-source' 'settings.locale' => 'hi', 'settings.direction' => 'ltr', diff --git a/app/config/locale/hy.continents.php b/app/config/locale/hy.continents.php new file mode 100644 index 0000000000..142928a353 --- /dev/null +++ b/app/config/locale/hy.continents.php @@ -0,0 +1,11 @@ + 'Աֆրիկա', + 'AN' => 'Անտարկտիկա', + 'AS' => 'Ասիա', + 'EU' => 'Եվրոպա', + 'NA' => 'Հյուսիսային Ամերիկա', + 'OC' => 'Օկեանիա', + 'SA' => 'Հարավային Ամերիկա', +]; diff --git a/app/config/locale/hy.countries.php b/app/config/locale/hy.countries.php new file mode 100644 index 0000000000..424f891c00 --- /dev/null +++ b/app/config/locale/hy.countries.php @@ -0,0 +1,198 @@ + 'Աֆղանստան', + 'AO' => 'Անգոլա', + 'AL' => 'Ալբանիա', + 'AD' => 'Անդորա', + 'AE' => 'Արաբական Միացյալ Էմիրություններ', + 'AR' => 'Արգենտինա', + 'AM' => 'Հայաստան', + 'AG' => 'Անտիգուա և Բարբուդա', + 'AU' => 'Ավստրալիա', + 'AT' => 'Ավստրիա', + 'AZ' => 'Ադրբեջան', + 'BI' => 'Բուրունդի', + 'BE' => 'Բելգիա', + 'BJ' => 'Բենին', + 'BF' => 'Բուրկինա Ֆասո', + 'BD' => 'Բանգլադեշ', + 'BG' => 'Բուլղարիա', + 'BH' => 'Բահրեին', + 'BS' => 'Բահամյան Կղզիներ', + 'BA' => 'Բոսնիա և Հերցոգովինա', + 'BY' => 'Բելառուս', + 'BZ' => 'Բեյլիզ', + 'BO' => 'Բոլիվիա', + 'BR' => 'Բրազիլիա', + 'BB' => 'Բարբադոս', + 'BN' => 'Բրունեյ', + 'BT' => 'Բութան', + 'BW' => 'Բոթսվանա', + 'CF' => 'Կենտրոնաֆրիկյան Հանրապետություն', + 'CA' => 'Կանադա', + 'CH' => 'Շվեցարիա', + 'CL' => 'Չիլի', + 'CN' => 'Չինաստան', + 'CI' => 'Կոտ դ\'Իվուար', + 'CM' => 'Կամերուն', + 'CD' => 'Կոնգոյի Դեմոկրատական Հանրապետություն', + 'CG' => 'Կոնգոյի Հանրապետություն', + 'CO' => 'Կոլումբիա', + 'KM' => 'Կոմորյան կղզիներ', + 'CV' => 'Կաբո-Վերդե', + 'CR' => 'Կոստա-Ռիկա', + 'CU' => 'Կուբա', + 'CY' => 'Կիպրոս', + 'CZ' => 'Չեխիա', + 'DE' => 'Գերմանիա', + 'DJ' => 'Ջիբութի', + 'DM' => 'Դոմինիկա', + 'DK' => 'Դանիա', + 'DO' => 'Դոմինիկյան Հանրապետություն', + 'DZ' => 'Ալժիր', + 'EC' => 'Էկվադոր', + 'EG' => 'Եգիպտոս', + 'ER' => 'Էրիթրեյա', + 'ES' => 'Իսպանիա', + 'EE' => 'Էստոնիա', + 'ET' => 'Եփովպիա', + 'FI' => 'Ֆինլանդիա', + 'FJ' => 'Ֆիջի', + 'FR' => 'Ֆրանսիա', + 'FM' => 'Միկրոնեզիա', + 'GA' => 'Գաբոն', + 'GB' => 'Մեծ Բրիտանիա', + 'GE' => 'Վրաստան', + 'GH' => 'Գանա', + 'GN' => 'Գվինեա', + 'GM' => 'Գամբիա', + 'GW' => 'Գվինեա Բիսաու', + 'GQ' => 'Հասարակածային Գվինեա', + 'GR' => 'Հունաստան', + 'GD' => 'Գրենադա', + 'GT' => 'Գվատեմալա', + 'GY' => 'Գայանա', + 'HN' => 'Գոնդուրաս', + 'HR' => 'Խորվաթիա', + 'HT' => 'Հաիթի', + 'HU' => 'Վենգերիա', + 'ID' => 'Ինդոնեզիա', + 'IN' => 'Հնդկաստան', + 'IE' => 'Իռլանդիա', + 'IR' => 'Իրան', + 'IQ' => 'Իրաք', + 'IS' => 'Իսլանդիա', + 'IL' => 'Իսրաել', + 'IT' => 'Իտալիս', + 'JM' => 'Ճամայկա', + 'JO' => 'Հորդանան', + 'JP' => 'Ճապոնիա', + 'KZ' => 'Ղազախստան', + 'KE' => 'Քենիա', + 'KG' => 'Ղրղզստան', + 'KH' => 'Կամբոջա', + 'KI' => 'Կիրիբաթի', + 'KN' => 'Սենտ-Կիտս և Նևիս', + 'KR' => 'Հարավային Կորեա', + 'KW' => 'Քուվեյթ', + 'LA' => 'Լաոս', + 'LB' => 'Լիբանան', + 'LR' => 'Լիբերիա', + 'LY' => 'Լիբիա', + 'LC' => 'Սենտ-Լյուսիա', + 'LI' => 'Լիխտենշտեյն', + 'LK' => 'Շրի Լանկա', + 'LS' => 'Լեսոտո', + 'LT' => 'Լիտվա', + 'LU' => 'Լյուսկեմբուրգ', + 'LV' => 'Լատվիա', + 'MA' => 'Մարոկո', + 'MC' => 'Մոնակո', + 'MD' => 'Մոլդովա', + 'MG' => 'Մադագասկար', + 'MV' => 'Մալդիվներ', + 'MX' => 'Մեքսիկա', + 'MH' => 'Մարշալյան կղզիներ', + 'MK' => 'Մակեդոնիա', + 'ML' => 'Մալի', + 'MT' => 'Մալթա', + 'MM' => 'Մյանմա', + 'ME' => 'Չերնոգորիա', + 'MN' => 'Մոնղոլիա', + 'MZ' => 'Մոզամբիկ', + 'MR' => 'Մավրիտանիա', + 'MU' => 'Մավրիկիոս', + 'MW' => 'Մալիվի', + 'MY' => 'Մալազիա', + 'NA' => 'Նամիբիա', + 'NE' => 'Նիգեր', + 'NG' => 'Նիգերիա', + 'NI' => 'Նիկարագուա', + 'NL' => 'Նիդեռլանդներ', + 'NO' => 'Նորվեգիա', + 'NP' => 'Նեպալ', + 'NR' => 'Նաուրու', + 'NZ' => 'Նոր Զելանդիա', + 'OM' => 'Օման', + 'PK' => 'Պակիստան', + 'PA' => 'Պանամա', + 'PE' => 'Պերու', + 'PH' => 'Ֆիլիպիններ', + 'PW' => 'Պալաու', + 'PG' => 'Պապուա Նոր Գվինեա', + 'PL' => 'Լեհաստան', + 'KP' => 'Հյուսիսային Կորեա', + 'PT' => 'Պորտուգալիա', + 'PY' => 'Պարագվայ', + 'QA' => 'Քաթար', + 'RO' => 'Ռումինիա', + 'RU' => 'Ռուսաստան', + 'RW' => 'Ռուանդա', + 'SA' => 'Սաուդյան Արաբիա', + 'SD' => 'Սուդան', + 'SN' => 'Սենեգալ', + 'SG' => 'Սինգապուր', + 'SB' => 'Սողոմոնյան Կղզիներ', + 'SL' => 'Սյերա Լեոնե', + 'SV' => 'Էլ Սալվադոր', + 'SM' => 'Սան Մարինո', + 'SO' => 'Սոմալի', + 'RS' => 'Սերբիա', + 'SS' => 'Հարավային Սուդան', + 'ST' => 'Սան-Տոմե և Պրինսիպի', + 'SR' => 'Սուրինամ', + 'SK' => 'Սլովակիա', + 'SI' => 'Սլովենիա', + 'SE' => 'Շվեցիա', + 'SZ' => 'Սվազիլենդ', + 'SC' => 'Սեյշելներ', + 'SY' => 'Սիրիա', + 'TD' => 'Չադ', + 'TG' => 'Տոգո', + 'TH' => 'Թայլանդ', + 'TJ' => 'Տաջիկստան', + 'TM' => 'Թուրքմենստան', + 'TL' => 'Արևելյան Թիմոր', + 'TO' => 'Տոնգա', + 'TT' => 'Տրինիդադ և Տոբագո', + 'TN' => 'Թունիս', + 'TR' => 'Թուրքիա', + 'TV' => 'Տուվալու', + 'TZ' => 'Տանզանիա', + 'UG' => 'Ուգանդա', + 'UA' => 'Ուկրաինա', + 'UY' => 'Ուրիուգվայ', + 'US' => 'Ամերիկայի Միացյալ Նահանգներ', + 'UZ' => 'Ուզբեկստան', + 'VA' => 'Վատիկան', + 'VC' => 'Սենտ-Վինսենթ և Գրենադիններ', + 'VE' => 'Վենեսուելլա', + 'VN' => 'Վիետնամ', + 'VU' => 'Վանուատու', + 'WS' => 'Սամոա', + 'YE' => 'Եմեն', + 'ZA' => 'Հարավաֆրիկյան Հանրապետություն', + 'ZM' => 'Զամբիա', + 'ZW' => 'Զիմբաբվե', +]; diff --git a/app/config/locale/hy.php b/app/config/locale/hy.php new file mode 100644 index 0000000000..00ca681096 --- /dev/null +++ b/app/config/locale/hy.php @@ -0,0 +1,20 @@ + '"Искусство быть мудрым — это искусство знать, чем можно пренебречь."', // This is the line printed in the homepage and console 'view-source' + 'settings.locale' => 'ru', + 'settings.direction' => 'ltr', + + 'auth.emails.team' => 'Թիմ %s', + 'auth.emails.confirm.title' => 'Հաշվեհամարի հաստատում', + 'auth.emails.confirm.body' => 'hy.email.auth.confirm.tpl', + 'auth.emails.recovery.title' => 'Գաղտնաբառի փոփոխում', + 'auth.emails.recovery.body' => 'hy.email.auth.recovery.tpl', + 'auth.emails.invitation.title' => 'Հրավիրում ենք %s թիմ, %s պրոեկտի համար', + 'auth.emails.invitation.body' => 'hy.email.auth.invitation.tpl', + + 'locale.country.unknown' => 'Անհայտ', + + 'countries' => include 'hy.countries.php', + 'continents' => include 'hy.continents.php', +]; diff --git a/app/config/locale/ja.continents.php b/app/config/locale/ja.continents.php new file mode 100644 index 0000000000..5461618b65 --- /dev/null +++ b/app/config/locale/ja.continents.php @@ -0,0 +1,11 @@ + 'アフリカ', + 'AN' => '南極', + 'AS' => 'アジア', + 'EU' => 'ヨーロッパ', + 'NA' => '北米', + 'OC' => 'オセアニア', + 'SA' => '南アメリカ', +]; diff --git a/app/config/locale/ja.countries.php b/app/config/locale/ja.countries.php new file mode 100644 index 0000000000..f4ce285fef --- /dev/null +++ b/app/config/locale/ja.countries.php @@ -0,0 +1,198 @@ + 'アフガニスタン', + 'AO' => 'アンゴラ', + 'AL' => 'アルバニア', + 'AD' => 'アンドラ', + 'AE' => 'アラブ首長国連邦', + 'AR' => 'アルゼンチン', + 'AM' => 'アルメニア', + 'AG' => 'アンチグアバーブーダ', + 'AU' => 'オーストラリア', + 'AT' => 'オーストリア', + 'AZ' => 'アゼルバイジャン', + 'BI' => 'ブルンディ', + 'BE' => 'ベルギー', + 'BJ' => 'ベニン', + 'BF' => 'ブルキナファソ', + 'BD' => 'バングラデシュ', + 'BG' => 'ブルガリア', + 'BH' => 'バーレーン', + 'BS' => 'バハマ', + 'BA' => 'ボスニア・ヘルツェゴビナ', + 'BY' => 'ベラルーシ', + 'BZ' => 'ベリーズ', + 'BO' => 'ボリビア', + 'BR' => 'ブラジル', + 'BB' => 'バルバドス', + 'BN' => 'ブルネイ', + 'BT' => 'ブータン', + 'BW' => 'ボツワナ', + 'CF' => '中央アフリカ共和国', + 'CA' => 'カナダ', + 'CH' => 'スイス', + 'CL' => 'チリ', + 'CN' => '中国', + 'CI' => 'コートジボワール', + 'CM' => 'カメルーン', + 'CD' => 'DRコンゴ', + 'CG' => 'コンゴ共和国', + 'CO' => 'コロンビア', + 'KM' => 'コモロ', + 'CV' => 'カーボベルデ', + 'CR' => 'コスタリカ', + 'CU' => 'キューバ', + 'CY' => 'キプロス', + 'CZ' => 'チェコ', + 'DE' => 'ドイツ', + 'DJ' => 'ジブチ', + 'DM' => 'ドミニカ', + 'DK' => 'デンマーク', + 'DO' => 'ドミニカ共和国', + 'DZ' => 'アルジェリア', + 'EC' => 'エクアドル', + 'EG' => 'エジプト', + 'ER' => 'エリトリア', + 'ES' => 'スペイン', + 'EE' => 'エストニア', + 'ET' => 'エチオピア', + 'FI' => 'フィンランド', + 'FJ' => 'フィジー', + 'FR' => 'フランス', + 'FM' => 'ミクロネシア', + 'GA' => 'ガボン', + 'GB' => 'イギリス', + 'GE' => 'ジョージア', + 'GH' => 'ガーナ', + 'GN' => 'ギニア', + 'GM' => 'ガンビア', + 'GW' => 'ギニアビサウ', + 'GQ' => '赤道ギニア', + 'GR' => 'ギリシャ', + 'GD' => 'グレナダ', + 'GT' => 'グアテマラ', + 'GY' => 'ガイアナ', + 'HN' => 'ホンジュラス', + 'HR' => 'クロアチア', + 'HT' => 'ハイチ', + 'HU' => 'ハンガリー', + 'ID' => 'インドネシア', + 'IN' => 'インド', + 'IE' => 'アイルランド', + 'IR' => 'イラン', + 'IQ' => 'イラク', + 'IS' => 'アイスランド', + 'IL' => 'イスラエル', + 'IT' => 'イタリア', + 'JM' => 'ジャマイカ', + 'JO' => 'ヨルダン', + 'JP' => '日本', + 'KZ' => 'カザフスタン', + 'KE' => 'ケニア', + 'KG' => 'キルギスタン', + 'KH' => 'カンボジア', + 'KI' => 'キリバティ', + 'KN' => 'セントクリストファー・ネイビス', + 'KR' => '韓国', + 'KW' => 'クウェート', + 'LA' => 'ラオス', + 'LB' => 'レバノン', + 'LR' => 'リベリア', + 'LY' => 'リビア', + 'LC' => 'セントルシア', + 'LI' => 'リヒテンシュタイン', + 'LK' => 'スリランカ', + 'LS' => 'レソト', + 'LT' => 'リトアニア', + 'LU' => 'ルクセンブルク', + 'LV' => 'ラトビア', + 'MA' => 'モロッコ', + 'MC' => 'モナコ', + 'MD' => 'モルドバ', + 'MG' => 'マダガスカル', + 'MV' => 'モルディブ', + 'MX' => 'メキシコ', + 'MH' => 'マーシャル諸島', + 'MK' => 'マケドニア', + 'ML' => 'マリ', + 'MT' => 'マルタ', + 'MM' => 'ミャンマー', + 'ME' => 'モンテネグロ', + 'MN' => 'モンゴル', + 'MZ' => 'モザンビーク', + 'MR' => 'モーリタニア', + 'MU' => 'モーリシャス', + 'MW' => 'マラウィ', + 'MY' => 'マレーシア', + 'NA' => 'ナミビア', + 'NE' => 'ニジェール', + 'NG' => 'ナイジェリア', + 'NI' => 'ニカラグア', + 'NL' => 'オランダ', + 'NO' => 'ノルウェー', + 'NP' => 'ネパール', + 'NR' => 'ナウル', + 'NZ' => 'ニュージーランド', + 'OM' => 'オマーン', + 'PK' => 'パキスタン', + 'PA' => 'パナマ', + 'PE' => 'ペルー', + 'PH' => 'フィリピン', + 'PW' => 'パラオ', + 'PG' => 'パプアニューギニア', + 'PL' => 'ポーランド', + 'KP' => '北朝鮮', + 'PT' => 'ポルトガル', + 'PY' => 'パラグアイ', + 'QA' => 'カタール', + 'RO' => 'ルーマニア', + 'RU' => 'ロシア', + 'RW' => 'ルワンダ', + 'SA' => 'サウジアラビア', + 'SD' => 'スーダン', + 'SN' => 'セネガル', + 'SG' => 'シンガポール', + 'SB' => 'ソロモン諸島', + 'SL' => 'シエラレオネ', + 'SV' => 'エルサルバドル', + 'SM' => 'サンマリノ', + 'SO' => 'ソマリア', + 'RS' => 'セルビア', + 'SS' => '南スーダン', + 'ST' => 'サントメとプリンシペ', + 'SR' => 'スリナム', + 'SK' => 'スロバキア', + 'SI' => 'スロベニア', + 'SE' => 'スウェーデン', + 'SZ' => 'スワジランド', + 'SC' => 'セイシェル', + 'SY' => 'シリア', + 'TD' => 'チャド', + 'TG' => 'トーゴ', + 'TH' => 'タイ', + 'TJ' => 'タジキスタン', + 'TM' => 'トルクメニスタン', + 'TL' => '東ティモール民主共和国', + 'TO' => 'トンガ', + 'TT' => 'トリニダード・トバゴ', + 'TN' => 'チュニジア', + 'TR' => 'トルコ', + 'TV' => 'ツバル', + 'TZ' => 'タンザニア', + 'UG' => 'ウガンダ', + 'UA' => 'ウクライナ', + 'UY' => 'ウルグアイ', + 'US' => 'アメリカ', + 'UZ' => 'ウズベキスタン', + 'VA' => 'バチカン', + 'VC' => 'セントビンセントおよびグレナディーン諸島', + 'VE' => 'ベネズエラ', + 'VN' => 'ベトナム', + 'VU' => 'バヌアツ', + 'WS' => 'サモア', + 'YE' => 'イエメン', + 'ZA' => '南アフリカ', + 'ZM' => 'ザンビア', + 'ZW' => 'ジンバブエ', +]; diff --git a/app/config/locale/ja.php b/app/config/locale/ja.php new file mode 100644 index 0000000000..65be7c84bb --- /dev/null +++ b/app/config/locale/ja.php @@ -0,0 +1,21 @@ + '"賢明になる術は何を捨てるべきかを心得る術である。"', // This is the line printed in the homepage and console 'view-source' + 'settings.locale' => 'ja', + 'settings.direction' => 'ltr', + + // Service - Users + 'auth.emails.team' => '%s チーム', + 'auth.emails.confirm.title' => 'アカウント確認のお願い', + 'auth.emails.confirm.body' => 'ja.email.auth.confirm.tpl', + 'auth.emails.recovery.title' => 'パスワード再設定のお願い', + 'auth.emails.recovery.body' => 'ja.email.auth.recovery.tpl', + 'auth.emails.invitation.title' => '%s チーム(%s プロジェクト)への招待', + 'auth.emails.invitation.body' => 'ja.email.auth.invitation.tpl', + + 'locale.country.unknown' => '不明', + + 'countries' => include 'ja.countries.php', + 'continents' => include 'ja.continents.php', +]; diff --git a/app/config/locale/sv.countries.php b/app/config/locale/sv.countries.php index 7bfc8f22a2..5d96cf34e5 100644 --- a/app/config/locale/sv.countries.php +++ b/app/config/locale/sv.countries.php @@ -1,11 +1,11 @@ 'Afganistan', + 'AF' => 'Afghanistan', 'AO' => 'Angola', 'AL' => 'Albanien', 'AD' => 'Andorra', - 'AE' => 'Förenade Arabemiraterna', + 'AE' => 'Förenade Arabemiraten', 'AR' => 'Argentina', 'AM' => 'Armenien', 'AG' => 'Antigua och Barbuda', @@ -21,13 +21,13 @@ return [ 'BH' => 'Bahrain', 'BS' => 'Bahamas', 'BA' => 'Bosnien och Hercegovina', - 'BY' => 'Vitrysslnd', + 'BY' => 'Vitryssland', 'BZ' => 'Belize', - 'BO' => 'Bolivien', + 'BO' => 'Bolivia', 'BR' => 'Brasilien', 'BB' => 'Barbados', - 'BN' => 'Brune', - 'BT' => 'Butan', + 'BN' => 'Brunei', + 'BT' => 'Bhutan', 'BW' => 'Botswana', 'CF' => 'Centralafrikanska republiken', 'CA' => 'Kanada', @@ -51,18 +51,18 @@ return [ 'DK' => 'Danmark', 'DO' => 'Dominikanska republiken', 'DZ' => 'Algeriet', - 'EC' => 'Ekvador', + 'EC' => 'Ecuador', 'EG' => 'Egypten', 'ER' => 'Eritrea', 'ES' => 'Spanien', - 'EE' => 'Estonia', + 'EE' => 'Estland', 'ET' => 'Etiopien', 'FI' => 'Finland', 'FJ' => 'Fiji', 'FR' => 'Frankrike', 'FM' => 'Mikronesien', 'GA' => 'Gabon', - 'GB' => 'Storbrittannien', + 'GB' => 'Storbritannien', 'GE' => 'Georgien', 'GH' => 'Ghana', 'GN' => 'Guinea', @@ -98,7 +98,7 @@ return [ 'KW' => 'Kuwait', 'LA' => 'Laos', 'LB' => 'Libanon', - 'LR' => 'Liberien', + 'LR' => 'Liberia', 'LY' => 'Libyen', 'LC' => 'Saint Lucia', 'LI' => 'Liechtenstein', @@ -106,22 +106,22 @@ return [ 'LS' => 'Lesotho', 'LT' => 'Litauen', 'LU' => 'Luxemburg', - 'LV' => 'Latvien', + 'LV' => 'Lettland', 'MA' => 'Marocko', 'MC' => 'Monaco', 'MD' => 'Moldavien', 'MG' => 'Madagaskar', 'MV' => 'Maldiverna', 'MX' => 'Mexiko', - 'MH' => 'Marshall Islands', + 'MH' => 'Marshallöarna', 'MK' => 'Nordmakedonien', 'ML' => 'Mali', 'MT' => 'Malta', 'MM' => 'Myanmar', 'ME' => 'Montenegro', - 'MN' => 'Mongolien', + 'MN' => 'Mongoliet', 'MZ' => 'Moçambique', - 'MR' => 'Mauritanien', + 'MR' => 'Mauretanien', 'MU' => 'Mauritius', 'MW' => 'Malawi', 'MY' => 'Malaysia', @@ -133,14 +133,14 @@ return [ 'NO' => 'Norge', 'NP' => 'Nepal', 'NR' => 'Nauru', - 'NZ' => 'Nya Zealand', + 'NZ' => 'Nya Zeeland', 'OM' => 'Oman', 'PK' => 'Pakistan', 'PA' => 'Panama', 'PE' => 'Peru', - 'PH' => 'Filppinerna', + 'PH' => 'Filippinerna', 'PW' => 'Palau', - 'PG' => 'Papua New Guinea', + 'PG' => 'Papua Nya Guinea', 'PL' => 'Polen', 'KP' => 'Nordkorea', 'PT' => 'Portugal', @@ -152,12 +152,12 @@ return [ 'SA' => 'Saudiarabien', 'SD' => 'Sudan', 'SN' => 'Senegal', - 'SG' => 'Singapor', - 'SB' => 'Solomonöarna', + 'SG' => 'Singapore', + 'SB' => 'Salomonöarna', 'SL' => 'Sierra Leone', 'SV' => 'El Salvador', 'SM' => 'San Marino', - 'SO' => 'Somalien', + 'SO' => 'Somalia', 'RS' => 'Serbien', 'SS' => 'Sydsudan', 'ST' => 'São Tomé och Príncipe', diff --git a/app/config/locale/sv.php b/app/config/locale/sv.php index 9f34de341a..7101fc0629 100644 --- a/app/config/locale/sv.php +++ b/app/config/locale/sv.php @@ -1,7 +1,7 @@ '"The art of being wise is the art of knowing what to overlook."', // This is the line printed in the homepage and console 'view-source' + 'settings.inspire' => '"Vishet är konsten att förstå vad man ska förbise."', // This is the line printed in the homepage and console 'view-source' 'settings.locale' => 'sv', 'settings.direction' => 'ltr', diff --git a/app/config/locale/templates/bn.email.auth.confirm.tpl b/app/config/locale/templates/bn.email.auth.confirm.tpl new file mode 100644 index 0000000000..dabf4f1222 --- /dev/null +++ b/app/config/locale/templates/bn.email.auth.confirm.tpl @@ -0,0 +1,24 @@ + + +
+ হ্যালো {{name}}, +
+
+ এই লিংকটি অনুসরণ করুন আপনার ইমেইল এড্রেস যাচাই করতে | +
+ {{redirect}} +
+
+ আপনি যদি আপনার ইমেইল এড্রেস যাচাই করতে অনুরোধ করেননি, আপনি এই মেসেজটি অগ্রাহ্য করতে পারেন | +
+
+ ধন্যবাদান্তে, +
+ {{project}} টীম +
diff --git a/app/config/locale/templates/bn.email.auth.invitation.tpl b/app/config/locale/templates/bn.email.auth.invitation.tpl new file mode 100644 index 0000000000..f09c23adf9 --- /dev/null +++ b/app/config/locale/templates/bn.email.auth.invitation.tpl @@ -0,0 +1,27 @@ + + +
+ Hello, +
+
+ এই মেইলটি আপনাকে পাঠানো হয়েছে কারণ {{owner}} আমন্ত্রণ করেছেন আপনাকে {{team}} এই টীমর মেম্বার হতে যেটি {{project}} এই প্রজেক্টর অন্তর্গত | +
+
+ এই লিংকটি অনুসরণ করুন {{team}} এই টীম-এ যোগ দিতে: +
+ {{redirect}} +
+
+ আপনি যদি অনাগ্রহী হন, এই মেসেজটি অগ্রাহ্য করতে পারেন | +
+
+ ধন্যবাদান্তে, +
+ {{project}} টীম +
diff --git a/app/config/locale/templates/bn.email.auth.recovery.tpl b/app/config/locale/templates/bn.email.auth.recovery.tpl new file mode 100644 index 0000000000..4a356d9889 --- /dev/null +++ b/app/config/locale/templates/bn.email.auth.recovery.tpl @@ -0,0 +1,24 @@ + + +
+ হ্যালো {{name}}, +
+
+ এই লিংকটি অনুসরণ করুন আপনার {{project}} পাসওয়ার্ড রিসেট করতে | +
+ {{redirect}} +
+
+ আপনি যদি পাসওয়ার্ড রিসেট করতে অনুরোধ করেননি, আপনি এই মেসেজটি অগ্রাহ্য করতে পারেন | +
+
+ ধন্যবাদান্তে, +
+ {{project}} টীম +
diff --git a/app/config/locale/templates/hi.email.auth.invitation.tpl b/app/config/locale/templates/hi.email.auth.invitation.tpl index c0da3d646c..53eea9b70a 100644 --- a/app/config/locale/templates/hi.email.auth.invitation.tpl +++ b/app/config/locale/templates/hi.email.auth.invitation.tpl @@ -10,7 +10,7 @@ नमस्ते,

- यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको टीम मेंबर बनने के लिए आमंत्रित करना चाहता है {{team}} टीम के लिए {{project}} प्रोजेक्ट पर + यह मेल आपको इसलिए भेजा गया था क्योंकि {{owner}} आपको {{project}} के लिए {{team}} टीम में टीम मेंबर बनने के लिए आमंत्रित करना चाहते थे।

टीम {{team}} ज्वाइन करने के लिए इस लिंक पर क्लिक करे : diff --git a/app/config/locale/templates/hi.email.auth.recovery.tpl b/app/config/locale/templates/hi.email.auth.recovery.tpl index 163cd0c285..697c839480 100644 --- a/app/config/locale/templates/hi.email.auth.recovery.tpl +++ b/app/config/locale/templates/hi.email.auth.recovery.tpl @@ -10,7 +10,7 @@ नमस्ते {{name}},

- {{project}} का पासवर्ड रिसेट करने के लिए लिंक पर क्लिक करे + {{project}} का पासवर्ड रिसेट करने के लिए इस लिंक पर क्लिक करे।
{{redirect}}
diff --git a/app/config/locale/templates/hy.email.auth.confirm.tpl b/app/config/locale/templates/hy.email.auth.confirm.tpl new file mode 100644 index 0000000000..f8c8f99670 --- /dev/null +++ b/app/config/locale/templates/hy.email.auth.confirm.tpl @@ -0,0 +1,24 @@ + + +
+ Ողջույն, {{name}}, +
+
+ Անցեք հղումով, որպեսզի հաստատեք Ձեր էլեկտրոնային հասցեն։ +
+ {{redirect}} +
+
+ Եթե չեք պահանջել էլեկտրոնային հասցեի հաստատում, պարզապես արհամարհեք այս նամակը։ +
+
+ Շնորհակալություն, +
+ {{project}} թիմ +
\ No newline at end of file diff --git a/app/config/locale/templates/hy.email.auth.invitation.tpl b/app/config/locale/templates/hy.email.auth.invitation.tpl new file mode 100644 index 0000000000..e471c81b63 --- /dev/null +++ b/app/config/locale/templates/hy.email.auth.invitation.tpl @@ -0,0 +1,27 @@ + + +
+ Ողջույն, +
+
+ Դուք ստացել եք այս նամակը, քանի որ {{owner}}-ը հրավիրում է Ձեզ {{team}} խումբ, {{project}} պրոեկտում։ +
+
+ Անցեք հղումով, որ միանաք {{team}} թիմին՝ +
+ {{redirect}} +
+
+ Եթե հետաքրքրված չեք դրանով, պարզապես արհամարհեք այս նամակը։ +
+
+ Շնորհակալություն, +
+ {{project}} թիմ +
diff --git a/app/config/locale/templates/hy.email.auth.recovery.tpl b/app/config/locale/templates/hy.email.auth.recovery.tpl new file mode 100644 index 0000000000..d08068efab --- /dev/null +++ b/app/config/locale/templates/hy.email.auth.recovery.tpl @@ -0,0 +1,24 @@ + + +
+ Ողջույն, {{name}}, +
+
+ Անցեք հղումով, որպեսզի փոխեք գաղտնաբառը {{project}} պրոեկտի համար։ +
+ {{redirect}} +
+
+ Եթե չեք պահանջել գաղտնաբառի փոփոխություն, արհամարհեք այս նամակը։ +
+
+ Շնորհակալություն +
+ {{project}} թիմ +
diff --git a/app/config/locale/templates/ja.email.auth.confirm.tpl b/app/config/locale/templates/ja.email.auth.confirm.tpl new file mode 100644 index 0000000000..6c7a89f355 --- /dev/null +++ b/app/config/locale/templates/ja.email.auth.confirm.tpl @@ -0,0 +1,24 @@ + + +
+ {{name}}さん こんにちは。 +
+
+ 下記のリンクからメールアドレスを認証してください。 +
+ {{redirect}} +
+
+ お手数ですが、心当たりがない場合このメールを破棄してください。 +
+
+ ありがとうございます。 +
+ {{project}} チーム +
\ No newline at end of file diff --git a/app/config/locale/templates/ja.email.auth.invitation.tpl b/app/config/locale/templates/ja.email.auth.invitation.tpl new file mode 100644 index 0000000000..ed59caff07 --- /dev/null +++ b/app/config/locale/templates/ja.email.auth.invitation.tpl @@ -0,0 +1,27 @@ + + +
+ こんにちは。 +
+
+ {{owner}} さんから {{project}} プロジェクトの {{team}} チームへの参加招待が届きました。 +
+
+ 下記のリンクから {{team}} へ参加してください。 +
+ {{redirect}} +
+
+ お手数ですが、心当たりがない場合このメールを破棄してください。 +
+
+ ありがとうございます。 +
+ {{project}} チーム +
diff --git a/app/config/locale/templates/ja.email.auth.recovery.tpl b/app/config/locale/templates/ja.email.auth.recovery.tpl new file mode 100644 index 0000000000..108c7aebee --- /dev/null +++ b/app/config/locale/templates/ja.email.auth.recovery.tpl @@ -0,0 +1,24 @@ + + +
+ {{name}}さん こんにちは。 +
+
+ 下記のリンクから {{project}} プロジェクトのパスワードを再設定してください。 +
+ {{redirect}} +
+
+ お手数ですが、心当たりがない場合このメールを破棄してください。 +
+
+ ありがとうございます。 +
+ {{project}} チーム +
diff --git a/app/config/locale/templates/pt-br.email.auth.confirm.tpl b/app/config/locale/templates/pt-br.email.auth.confirm.tpl index f949c3f248..7cb959914e 100644 --- a/app/config/locale/templates/pt-br.email.auth.confirm.tpl +++ b/app/config/locale/templates/pt-br.email.auth.confirm.tpl @@ -15,10 +15,10 @@ {{redirect}}

- Se a confirmação de email não foi solicitada por você, ignore esta mensagem. + Caso a confirmação de email não foi solicitada por você, ignore esta mensagem.

Atenciosamente,
Equipe {{project}} - \ No newline at end of file + diff --git a/app/config/locale/templates/pt-br.email.auth.invitation.tpl b/app/config/locale/templates/pt-br.email.auth.invitation.tpl index d0dceefb2f..f4255ffafa 100644 --- a/app/config/locale/templates/pt-br.email.auth.invitation.tpl +++ b/app/config/locale/templates/pt-br.email.auth.invitation.tpl @@ -10,15 +10,15 @@ Olá,

- Este email foi enviado a você porque
{{owner}} deseja convida-lo para se tornar membro da equipe {{team}} no {{project}}. + Este email foi enviado a você porque
{{owner}} deseja convidá-lo para se tornar membro da equipe {{team}} no {{project}}.

- Siga o link abaixo para se juntar a equipe {{team}}: + Entre no link abaixo para se juntar a equipe {{team}}:
{{redirect}}

- Se não estiver interessado, por favor ignore esta mensagem. + Caso não estiver interessado, por favor ignore esta mensagem.

Atenciosamente, diff --git a/app/config/locale/templates/pt-br.email.auth.recovery.tpl b/app/config/locale/templates/pt-br.email.auth.recovery.tpl index 4e722f2aee..e2d710f38f 100644 --- a/app/config/locale/templates/pt-br.email.auth.recovery.tpl +++ b/app/config/locale/templates/pt-br.email.auth.recovery.tpl @@ -15,7 +15,7 @@ {{redirect}}

- Se você não solicitou a redefinição de senha, por favor ignore esta mensagem. + Caso você não solicitou a redefinição de senha, por favor ignore esta mensagem.

Atenciosamente, diff --git a/app/config/locale/templates/pt-pt.email.auth.invitation.tpl b/app/config/locale/templates/pt-pt.email.auth.invitation.tpl index e4ebbfa35f..429a30be9a 100644 --- a/app/config/locale/templates/pt-pt.email.auth.invitation.tpl +++ b/app/config/locale/templates/pt-pt.email.auth.invitation.tpl @@ -10,7 +10,7 @@ Olá,

- Recebeu este email porque
{{owner}} deseja convida-lo a tornar-se membro da equipa {{team}} no {{project}}. + Recebeu este email porque
{{owner}} deseja convidá-lo a tornar-se membro da equipa {{team}} no {{project}}.

Use este link para se juntar à equipa {{team}}: @@ -23,5 +23,5 @@
Com os melhores cumprimentos,
- Equipe {{project}} + Equipa {{project}} diff --git a/app/config/locale/templates/sv.email.auth.recovery.tpl b/app/config/locale/templates/sv.email.auth.recovery.tpl index dba9221559..673d914bd1 100644 --- a/app/config/locale/templates/sv.email.auth.recovery.tpl +++ b/app/config/locale/templates/sv.email.auth.recovery.tpl @@ -15,7 +15,7 @@ {{redirect}}

- Om du inte bett om att ändr ditt lösenord så kan du ignorera detta meddelande. + Om du inte bett om att ändra ditt lösenord så kan du ignorera detta meddelande.

Tack, diff --git a/app/config/services.php b/app/config/services.php index 9b83eb1c56..0f4c44599d 100644 --- a/app/config/services.php +++ b/app/config/services.php @@ -13,31 +13,31 @@ return [ ], 'v1/account' => [ 'name' => 'Account', - 'description' => '/docs/service/account.md', + 'description' => '/docs/services/account.md', 'controller' => 'controllers/account.php', 'sdk' => true, ], 'v1/auth' => [ // Add to docs later: You can also learn how to [configure support for our supported OAuth providers](/docs/oauth) 'name' => 'Auth', - 'description' => '/docs/service/auth.md', + 'description' => '/docs/services/auth.md', 'controller' => 'controllers/auth.php', 'sdk' => true, ], 'v1/avatars' => [ 'name' => 'Avatars', - 'description' => '/docs/service/avatars.md', + 'description' => '/docs/services/avatars.md', 'controller' => 'controllers/avatars.php', 'sdk' => true, ], 'v1/database' => [ 'name' => 'Database', - 'description' => '/docs/service/database.md', + 'description' => '/docs/services/database.md', 'controller' => 'controllers/database.php', 'sdk' => true, ], 'v1/locale' => [ 'name' => 'Locale', - 'description' => '/docs/service/locale.md', + 'description' => '/docs/services/locale.md', 'controller' => 'controllers/locale.php', 'sdk' => true, ], @@ -53,19 +53,19 @@ return [ ], 'v1/storage' => [ 'name' => 'Storage', - 'description' => '/docs/service/storage.md', + 'description' => '/docs/services/storage.md', 'controller' => 'controllers/storage.php', 'sdk' => true, ], 'v1/teams' => [ 'name' => 'Teams', - 'description' => '/docs/service/teams.md', + 'description' => '/docs/services/teams.md', 'controller' => 'controllers/teams.php', 'sdk' => true, ], 'v1/users' => [ 'name' => 'Users', - 'description' => '/docs/service/users.md', + 'description' => '/docs/services/users.md', 'controller' => 'controllers/users.php', 'sdk' => true, ], diff --git a/app/controllers/auth.php b/app/controllers/auth.php index 8a3fe7f317..68c30212ab 100644 --- a/app/controllers/auth.php +++ b/app/controllers/auth.php @@ -310,8 +310,8 @@ $utopia->post('/v1/auth/login') ->label('abuse-key', 'url:{url},email:{param-email}') ->param('email', '', function () { return new Email(); }, 'User account email address') ->param('password', '', function () { return new Password(); }, 'User account password') - ->param('success', null, function () use ($clients) { return new Host($clients); }, 'URL to redirect back to your app after a successful login attempt.') - ->param('failure', null, function () use ($clients) { return new Host($clients); }, 'URL to redirect back to your app after a failed login attempt.') + ->param('success', null, function () use ($clients) { return new Host($clients); }, 'URL to redirect back to your app after a successful login attempt.', true) + ->param('failure', null, function () use ($clients) { return new Host($clients); }, 'URL to redirect back to your app after a failed login attempt.', true) ->action( function ($email, $password, $success, $failure) use ($response, $request, $projectDB, $audit, $webhook) { $profile = $projectDB->getCollection([ // Get user by email address @@ -597,6 +597,7 @@ $utopia->get('/v1/auth/oauth/:provider') ->label('sdk.namespace', 'auth') ->label('sdk.method', 'oauth') ->label('sdk.location', true) + ->label('sdk.cookies', true) ->label('abuse-limit', 50) ->label('abuse-key', 'ip:{ip}') ->param('provider', '', function () use ($providers) { return new WhiteList(array_keys($providers)); }, 'OAuth Provider') diff --git a/app/controllers/avatars.php b/app/controllers/avatars.php index 8d6dcde882..432fd0c62c 100644 --- a/app/controllers/avatars.php +++ b/app/controllers/avatars.php @@ -1,6 +1,6 @@ get('/v1/avatars/credit-cards/:code') ->label('scope', 'avatars.read') ->label('sdk.namespace', 'avatars') ->label('sdk.method', 'getCreditCard') - ->label('sdk.description', '/docs/references/avatars/get-credit-cards.md') + ->label('sdk.description', '/docs/references/avatars/get-credit-card.md') ->action(function ($code, $width, $height, $quality) use ($avatarCallback) { return $avatarCallback('credit-cards', $code, $width, $height, $quality); }); @@ -134,7 +134,7 @@ $utopia->get('/v1/avatars/image') ->label('sdk.method', 'getImage') ->label('sdk.description', '/docs/references/avatars/get-image.md') ->action( - function ($url, $width, $height) use ($response, $request, $version) { + function ($url, $width, $height) use ($response) { $quality = 80; $output = 'png'; $date = date('D, d M Y H:i:s', time() + (60 * 60 * 24 * 45)).' GMT'; // 45 days cache @@ -199,7 +199,7 @@ $utopia->get('/v1/avatars/favicon') ->label('sdk.method', 'getFavicon') ->label('sdk.description', '/docs/references/avatars/get-favicon.md') ->action( - function ($url) use ($response, $request, $version) { + function ($url) use ($response, $version) { $width = 56; $height = 56; $quality = 80; diff --git a/app/controllers/console.php b/app/controllers/console.php index b213158d2a..6b3e36a862 100644 --- a/app/controllers/console.php +++ b/app/controllers/console.php @@ -197,9 +197,13 @@ $utopia->get('/console/storage') ->desc('Platform console project settings') ->label('permission', 'public') ->label('scope', 'console') - ->action(function () use ($layout) { + ->action(function () use ($request, $layout) { $page = new View(__DIR__.'/../views/console/storage/index.phtml'); + $page + ->setParam('home', $request->getServer('_APP_HOME', '')) + ; + $layout ->setParam('title', APP_NAME.' - Storage') ->setParam('body', $page); diff --git a/app/controllers/locale.php b/app/controllers/locale.php index 1126701d6d..62c7c0b24b 100644 --- a/app/controllers/locale.php +++ b/app/controllers/locale.php @@ -68,7 +68,7 @@ $utopia->get('/v1/locale/countries') ->label('scope', 'locale.read') ->label('sdk.namespace', 'locale') ->label('sdk.method', 'getCountries') - ->label('sdk.description', '/docs/references/locale/get-countires.md') + ->label('sdk.description', '/docs/references/locale/get-countries.md') ->action( function () use ($response, $request) { $list = Locale::getText('countries'); /* @var $list array */ diff --git a/app/controllers/users.php b/app/controllers/users.php index eff5010aec..76153386bd 100644 --- a/app/controllers/users.php +++ b/app/controllers/users.php @@ -327,7 +327,7 @@ $utopia->post('/v1/users') ); $utopia->patch('/v1/users/:userId/status') - ->desc('Update user status') + ->desc('Update User Status') ->label('scope', 'users.write') ->label('sdk.namespace', 'users') ->label('sdk.method', 'updateUserStatus') @@ -356,7 +356,7 @@ $utopia->patch('/v1/users/:userId/status') ); $utopia->patch('/v1/users/:userId/prefs') - ->desc('Update Account Prefs') + ->desc('Update User Prefs') ->label('scope', 'users.write') ->label('sdk.namespace', 'users') ->label('sdk.method', 'updateUserPrefs') @@ -419,7 +419,7 @@ $utopia->delete('/v1/users/:userId/sessions') ->label('scope', 'users.write') ->label('sdk.namespace', 'users') ->label('sdk.method', 'deleteUserSessions') - ->label('sdk.description', 'Delete all user sessions by its unique ID.') + ->label('sdk.description', '/docs/references/users/delete-user-sessions.md') ->label('abuse-limit', 100) ->param('userId', '', function () { return new UID(); }, 'User unique ID.') ->action( diff --git a/app/init.php b/app/init.php index d399a59dc6..1ade533f35 100644 --- a/app/init.php +++ b/app/init.php @@ -24,7 +24,7 @@ const APP_EMAIL_TEAM = 'team@'.APP_DOMAIN; const APP_EMAIL_SECURITY = 'security@'.APP_DOMAIN; const APP_USERAGENT = APP_NAME.'-Server/%s Please report abuse at '.APP_EMAIL_SECURITY; const APP_MODE_ADMIN = 'admin'; -const APP_LOCALES = ['af', 'ar', 'cat', 'cz', 'de', 'en', 'es', 'fi', 'fr', 'gr', 'he', 'hi', 'hu', 'id', 'it', 'jv', 'lt', 'nl', 'no', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'si', 'sl', 'sv', 'ta', 'tr', 'ua', 'vi', 'zh-cn', 'zh-tw']; +const APP_LOCALES = ['af', 'ar', 'bn', 'cat', 'cz', 'de', 'en', 'es', 'fi', 'fr', 'gr', 'he', 'hi', 'hu', 'hy', 'id', 'it', 'ja', 'jv', 'lt', 'nl', 'no', 'pl', 'pt-br', 'pt-pt', 'ro', 'ru', 'si', 'sl', 'sv', 'ta', 'tr', 'ua', 'vi', 'zh-cn', 'zh-tw']; const APP_PAGING_LIMIT = 15; const APP_VERSION_STABLE = '0.2.0'; @@ -128,9 +128,9 @@ $locale = $request->getParam('locale', $request->getHeader('X-Appwrite-Locale', Locale::$exceptions = false; - Locale::setLanguage('af', include __DIR__.'/config/locale/af.php'); Locale::setLanguage('ar', include __DIR__.'/config/locale/ar.php'); +Locale::setLanguage('bn', include __DIR__.'/config/locale/bn.php'); Locale::setLanguage('cat', include __DIR__.'/config/locale/cat.php'); Locale::setLanguage('cz', include __DIR__.'/config/locale/cz.php'); Locale::setLanguage('de', include __DIR__.'/config/locale/de.php'); @@ -142,8 +142,10 @@ Locale::setLanguage('gr', include __DIR__.'/config/locale/gr.php'); Locale::setLanguage('he', include __DIR__.'/config/locale/he.php'); Locale::setLanguage('hi', include __DIR__.'/config/locale/hi.php'); Locale::setLanguage('hu', include __DIR__.'/config/locale/hu.php'); +Locale::setLanguage('hy', include __DIR__.'/config/locale/hy.php'); Locale::setLanguage('id', include __DIR__.'/config/locale/id.php'); Locale::setLanguage('it', include __DIR__.'/config/locale/it.php'); +Locale::setLanguage('jv', include __DIR__.'/config/locale/ja.php'); Locale::setLanguage('jv', include __DIR__.'/config/locale/jv.php'); Locale::setLanguage('lt', include __DIR__.'/config/locale/lt.php'); Locale::setLanguage('nl', include __DIR__.'/config/locale/nl.php'); @@ -163,6 +165,8 @@ Locale::setLanguage('vi', include __DIR__.'/config/locale/vi.php'); Locale::setLanguage('zh-cn', include __DIR__.'/config/locale/zh-cn.php'); Locale::setLanguage('zh-tw', include __DIR__.'/config/locale/zh-tw.php'); +Locale::setDefault('en'); + if (in_array($locale, APP_LOCALES)) { Locale::setDefault($locale); } diff --git a/app/sdks/dart/README.md b/app/sdks/dart/README.md index de99069bd5..effbe7922c 100644 --- a/app/sdks/dart/README.md +++ b/app/sdks/dart/README.md @@ -1,7 +1,7 @@ # Appwrite SDK for Dart ![License](https://img.shields.io/github/license/appwrite/sdk-for-dart.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).** diff --git a/app/sdks/dart/lib/client.dart b/app/sdks/dart/lib/client.dart index 77a4092f08..c03342e33e 100644 --- a/app/sdks/dart/lib/client.dart +++ b/app/sdks/dart/lib/client.dart @@ -9,7 +9,7 @@ class Client { Dio http; Client() { - this.endPoint = 'https://https://appwrite.io/v1'; + this.endPoint = 'https://appwrite.io/v1'; this.headers = { 'content-type': 'application/json', 'x-sdk-version': 'appwrite:dart:0.0.2', @@ -23,7 +23,7 @@ class Client { } - /// Your Appwrite project ID. You can find your project ID in your Appwrite console project settings. + /// Your Appwrite project ID Client setProject(value) { this.addHeader('X-Appwrite-Project', value); @@ -31,7 +31,7 @@ class Client { } - /// Your Appwrite project secret key. You can can create a new API key from your Appwrite console API keys dashboard. + /// Your Appwrite project secret key Client setKey(value) { this.addHeader('X-Appwrite-Key', value); diff --git a/app/sdks/dart/lib/services/auth.dart b/app/sdks/dart/lib/services/auth.dart index 0db9f429db..45c0be71a7 100644 --- a/app/sdks/dart/lib/services/auth.dart +++ b/app/sdks/dart/lib/services/auth.dart @@ -15,7 +15,7 @@ class Auth extends Service { /// the only valid redirect URL's are the once from domains you have set when /// added your platforms in the console interface. /// - /// When accessing this route using JavaScript from the browser, success and + /// When accessing this route using Javascript from the browser, success and /// failure parameter URLs are required. Appwrite server will respond with a /// 301 redirect status code and will set the user session cookie. This /// behavior is enforced because modern browsers are limiting 3rd party cookies @@ -116,7 +116,7 @@ class Auth extends Service { /// the only valid redirect URL's are the once from domains you have set when /// added your platforms in the console interface. /// - /// When accessing this route using JavaScript from the browser, success and + /// When accessing this route using Javascript from the browser, success and /// failure parameter URLs are required. Appwrite server will respond with a /// 301 redirect status code and will set the user session cookie. This /// behavior is enforced because modern browsers are limiting 3rd party cookies diff --git a/app/sdks/dart/lib/services/locale.dart b/app/sdks/dart/lib/services/locale.dart index 406d25bbb9..29f87ac5ea 100644 --- a/app/sdks/dart/lib/services/locale.dart +++ b/app/sdks/dart/lib/services/locale.dart @@ -49,9 +49,9 @@ class Locale extends Service { return await this.client.call('get', path: path, params: params); } - /// List of all currencies, including currency symbol, name, plural, and - /// decimal digits for all major and minor currencies. You can use the locale - /// header to get the data in supported language. + /// List of all currencies, including currency symol, name, plural, and decimal + /// digits for all major and minor currencies. You can use the locale header to + /// get the data in supported language. Future getCurrencies() async { String path = '/locale/currencies'; diff --git a/app/sdks/dart/lib/services/users.dart b/app/sdks/dart/lib/services/users.dart index 761206fb1b..3e84ddd287 100644 --- a/app/sdks/dart/lib/services/users.dart +++ b/app/sdks/dart/lib/services/users.dart @@ -58,6 +58,17 @@ class Users extends Service { }; return await this.client.call('get', path: path, params: params); + } + /// Update user preferences by its unique ID. You can pass only the specific + /// settings you wish to update. + Future updateUserPrefs({userId, prefs}) async { + String path = '/users/{userId}/prefs'.replaceAll(RegExp('{userId}'), userId); + + Map params = { + 'prefs': prefs, + }; + + return await this.client.call('patch', path: path, params: params); } /// Get user sessions list by its unique ID. Future getUserSessions({userId}) async { @@ -78,7 +89,7 @@ class Users extends Service { return await this.client.call('delete', path: path, params: params); } /// Delete user sessions by its unique ID. - Future deleteUsersSession({userId, sessionId}) async { + Future deleteUserSession({userId, sessionId}) async { String path = '/users/{userId}/sessions/:session'.replaceAll(RegExp('{userId}'), userId); Map params = { diff --git a/app/sdks/js/README.md b/app/sdks/js/README.md index 4e6cd6bc0f..65711154fa 100644 --- a/app/sdks/js/README.md +++ b/app/sdks/js/README.md @@ -1,28 +1,52 @@ -# Appwrite SDK for Javascript +# Appwrite SDK for JavaScript ![License](https://img.shields.io/github/license/appwrite/sdk-for-js.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **This SDK is compatible with Appwrite server version 0.2.0. For older versions, please check previous releases.** Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs) - - ![Appwrite](https://appwrite.io/images/github.png) ## Installation +### NPM + To install via [NPM](https://www.npmjs.com/): ```bash npm install appwrite --save ``` -Install with CDN: +If you're using a bundler (like [Browserify](http://browserify.org/) or [webpack](https://webpack.js.org/)), you can import the Appwrite module when you need it: + +```js +import * as Appwrite from "appwrite"; +``` + +### CDN + +To install with a CDN (content delivery network) add the following scripts to the bottom of your tag, but before you use any Appwrite services: ```html - + +``` + +## Getting Started + +Initialise the Appwrite SDK in your code, and setup your API credentials: + +```js + +// Init your JS SDK +var appwrite = new Appwrite(); + +appwrite + .setEndpoint('http://localhost/v1') // Set only when using self-hosted solution + .setProject('455x34dfkj') // Your Appwrite Project UID +; + ``` ## License diff --git a/app/sdks/js/docs/examples/projects/create-task.md b/app/sdks/js/docs/examples/projects/create-task.md index 3262b4d9fe..4338198465 100644 --- a/app/sdks/js/docs/examples/projects/create-task.md +++ b/app/sdks/js/docs/examples/projects/create-task.md @@ -4,7 +4,7 @@ sdk .setProject('') ; -let promise = sdk.projects.createTask('[PROJECT_ID]', '[NAME]', 'play', '', 0, 'GET', 'https://example.com'); +let promise = sdk.projects.createTask('[PROJECT_ID]', '[NAME]', 'play', '', 1, 'GET', 'https://example.com'); promise.then(function (response) { console.log(response); diff --git a/app/sdks/js/docs/examples/projects/create-webhook.md b/app/sdks/js/docs/examples/projects/create-webhook.md index 66a76c26c2..1136c5eedf 100644 --- a/app/sdks/js/docs/examples/projects/create-webhook.md +++ b/app/sdks/js/docs/examples/projects/create-webhook.md @@ -4,7 +4,7 @@ sdk .setProject('') ; -let promise = sdk.projects.createWebhook('[PROJECT_ID]', '[NAME]', [], '[URL]', 0); +let promise = sdk.projects.createWebhook('[PROJECT_ID]', '[NAME]', [], '[URL]', 1); promise.then(function (response) { console.log(response); diff --git a/app/sdks/js/docs/examples/users/delete-user-session.md b/app/sdks/js/docs/examples/users/delete-user-session.md new file mode 100644 index 0000000000..4b5df53439 --- /dev/null +++ b/app/sdks/js/docs/examples/users/delete-user-session.md @@ -0,0 +1,13 @@ +let sdk = new Appwrite(); + +sdk + .setProject('') +; + +let promise = sdk.users.deleteUserSession('[USER_ID]', '[SESSION_ID]'); + +promise.then(function (response) { + console.log(response); +}, function (error) { + console.log(error); +}); \ No newline at end of file diff --git a/app/sdks/js/docs/examples/users/update-user-prefs.md b/app/sdks/js/docs/examples/users/update-user-prefs.md new file mode 100644 index 0000000000..54208f5f96 --- /dev/null +++ b/app/sdks/js/docs/examples/users/update-user-prefs.md @@ -0,0 +1,13 @@ +let sdk = new Appwrite(); + +sdk + .setProject('') +; + +let promise = sdk.users.updateUserPrefs('[USER_ID]', '{}'); + +promise.then(function (response) { + console.log(response); +}, function (error) { + console.log(error); +}); \ No newline at end of file diff --git a/app/sdks/js/package.json b/app/sdks/js/package.json index 13499d41ed..db7a1916ab 100644 --- a/app/sdks/js/package.json +++ b/app/sdks/js/package.json @@ -2,7 +2,7 @@ "name": "appwrite", "homepage": "https://appwrite.io/support", "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)", - "version": "1.0.22", + "version": "1.0.23", "license": "BSD-3-Clause", "main": "src/sdk.js", "repository": { diff --git a/app/sdks/js/src/sdk.js b/app/sdks/js/src/sdk.js index f142af9c29..5c8a0bc134 100644 --- a/app/sdks/js/src/sdk.js +++ b/app/sdks/js/src/sdk.js @@ -1,8 +1,11 @@ (function (window) { + + 'use strict'; + window.Appwrite = function () { let config = { - endpoint: 'https://https://appwrite.io/v1', + endpoint: 'https://appwrite.io/v1', project: '', key: '', locale: '', @@ -22,8 +25,7 @@ /** * Set Project * - * Your Appwrite project ID. You can find your project ID in your Appwrite -\ * console project settings. + * Your Appwrite project ID * * @param value string * @@ -41,8 +43,7 @@ /** * Set Key * - * Your Appwrite project secret key. You can can create a new API key from -\ * your Appwrite console API keys dashboard. + * Your Appwrite project secret key * * @param value string * @@ -138,7 +139,7 @@ globalParams.push({key: key, value: value}); }; - addGlobalHeader('x-sdk-version', 'appwrite:javascript:1.0.22'); + addGlobalHeader('x-sdk-version', 'appwrite:javascript:1.0.23'); addGlobalHeader('content-type', ''); /** @@ -304,14 +305,15 @@ * Get currently logged in user data as JSON object. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ get: function() { let path = '/account'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -320,14 +322,15 @@ * Delete currently logged in user account. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ delete: function() { let path = '/account'; + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -341,7 +344,8 @@ * @param {string} email * @param {string} password * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateEmail: function(email, password) { if(email === undefined) { throw new Error('Missing required parameter: "email"'); @@ -353,12 +357,18 @@ let path = '/account/email'; + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(password) { + payload['password'] = password; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'email': email, - 'password': password - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -368,7 +378,8 @@ * * @param {string} name * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateName: function(name) { if(name === undefined) { throw new Error('Missing required parameter: "name"'); @@ -376,11 +387,14 @@ let path = '/account/name'; + let payload = {}; + + if(name) { + payload['name'] = name; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'name': name - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -392,7 +406,8 @@ * @param {string} password * @param {string} oldPassword * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updatePassword: function(password, oldPassword) { if(password === undefined) { throw new Error('Missing required parameter: "password"'); @@ -404,12 +419,18 @@ let path = '/account/password'; + let payload = {}; + + if(password) { + payload['password'] = password; + } + + if(oldPassword) { + payload['old-password'] = oldPassword; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'password': password, - 'old-password': oldPassword - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -418,14 +439,15 @@ * Get currently logged in user preferences key-value object. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getPrefs: function() { let path = '/account/prefs'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -436,7 +458,8 @@ * * @param {string} prefs * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updatePrefs: function(prefs) { if(prefs === undefined) { throw new Error('Missing required parameter: "prefs"'); @@ -444,11 +467,14 @@ let path = '/account/prefs'; + let payload = {}; + + if(prefs) { + payload['prefs'] = prefs; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'prefs': prefs - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -458,14 +484,15 @@ * log returns user IP address, location and date and time of log. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getSecurity: function() { let path = '/account/security'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -475,14 +502,15 @@ * devices. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getSessions: function() { let path = '/account/sessions'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); } }; @@ -500,7 +528,7 @@ * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies @@ -511,7 +539,8 @@ * @param {string} success * @param {string} failure * @throws {Error} - * @return {null} */ + * @return {null} + */ login: function(email, password, success, failure) { if(email === undefined) { throw new Error('Missing required parameter: "email"'); @@ -531,12 +560,27 @@ let path = '/auth/login'; - return iframe('post', path, {project: config.project, - 'email': email, - 'password': password, - 'success': success, - 'failure': failure - }); + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(password) { + payload['password'] = password; + } + + if(success) { + payload['success'] = success; + } + + if(failure) { + payload['failure'] = failure; + } + + payload['project'] = config.project; + + return iframe('post', path, payload); }, /** @@ -547,14 +591,15 @@ * session secret cookie from the user client. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ logout: function() { let path = '/auth/logout'; + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -566,7 +611,8 @@ * * @param {string} id * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ logoutBySession: function(id) { if(id === undefined) { throw new Error('Missing required parameter: "id"'); @@ -574,10 +620,10 @@ let path = '/auth/logout/{id}'.replace(new RegExp('{id}', 'g'), id); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -588,7 +634,8 @@ * @param {string} success * @param {string} failure * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ oauth: function(provider, success = '', failure = '') { if(provider === undefined) { throw new Error('Missing required parameter: "provider"'); @@ -596,12 +643,18 @@ let path = '/auth/oauth/{provider}'.replace(new RegExp('{provider}', 'g'), provider); + let payload = {}; + + if(success) { + payload['success'] = success; + } + + if(failure) { + payload['failure'] = failure; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'success': success, - 'failure': failure - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -617,7 +670,8 @@ * @param {string} email * @param {string} reset * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ recovery: function(email, reset) { if(email === undefined) { throw new Error('Missing required parameter: "email"'); @@ -629,12 +683,18 @@ let path = '/auth/recovery'; + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(reset) { + payload['reset'] = reset; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'email': email, - 'reset': reset - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -655,7 +715,8 @@ * @param {string} passwordA * @param {string} passwordB * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ recoveryReset: function(userId, token, passwordA, passwordB) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -675,14 +736,26 @@ let path = '/auth/recovery/reset'; + let payload = {}; + + if(userId) { + payload['userId'] = userId; + } + + if(token) { + payload['token'] = token; + } + + if(passwordA) { + payload['password-a'] = passwordA; + } + + if(passwordB) { + payload['password-b'] = passwordB; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'userId': userId, - 'token': token, - 'password-a': passwordA, - 'password-b': passwordB - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -703,7 +776,7 @@ * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies @@ -716,7 +789,8 @@ * @param {string} failure * @param {string} name * @throws {Error} - * @return {null} */ + * @return {null} + */ register: function(email, password, confirm, success = '', failure = '', name = '') { if(email === undefined) { throw new Error('Missing required parameter: "email"'); @@ -732,14 +806,35 @@ let path = '/auth/register'; - return iframe('post', path, {project: config.project, - 'email': email, - 'password': password, - 'confirm': confirm, - 'success': success, - 'failure': failure, - 'name': name - }); + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(password) { + payload['password'] = password; + } + + if(confirm) { + payload['confirm'] = confirm; + } + + if(success) { + payload['success'] = success; + } + + if(failure) { + payload['failure'] = failure; + } + + if(name) { + payload['name'] = name; + } + + payload['project'] = config.project; + + return iframe('post', path, payload); }, /** @@ -753,7 +848,8 @@ * @param {string} userId * @param {string} token * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ confirm: function(userId, token) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -765,12 +861,18 @@ let path = '/auth/register/confirm'; + let payload = {}; + + if(userId) { + payload['userId'] = userId; + } + + if(token) { + payload['token'] = token; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'userId': userId, - 'token': token - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -787,7 +889,8 @@ * * @param {string} confirm * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ confirmResend: function(confirm) { if(confirm === undefined) { throw new Error('Missing required parameter: "confirm"'); @@ -795,11 +898,14 @@ let path = '/auth/register/confirm/resend'; + let payload = {}; + + if(confirm) { + payload['confirm'] = confirm; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'confirm': confirm - }); + .post(path, {'content-type': 'application/json'}, payload); } }; @@ -818,7 +924,8 @@ * @param {number} height * @param {number} quality * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getBrowser: function(code, width = 100, height = 100, quality = 100) { if(code === undefined) { throw new Error('Missing required parameter: "code"'); @@ -826,13 +933,22 @@ let path = '/avatars/browsers/{code}'.replace(new RegExp('{code}', 'g'), code); + let payload = {}; + + if(width) { + payload['width'] = width; + } + + if(height) { + payload['height'] = height; + } + + if(quality) { + payload['quality'] = quality; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'width': width, - 'height': height, - 'quality': quality - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -848,7 +964,8 @@ * @param {number} height * @param {number} quality * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCreditCard: function(code, width = 100, height = 100, quality = 100) { if(code === undefined) { throw new Error('Missing required parameter: "code"'); @@ -856,13 +973,22 @@ let path = '/avatars/credit-cards/{code}'.replace(new RegExp('{code}', 'g'), code); + let payload = {}; + + if(width) { + payload['width'] = width; + } + + if(height) { + payload['height'] = height; + } + + if(quality) { + payload['quality'] = quality; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'width': width, - 'height': height, - 'quality': quality - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -873,7 +999,8 @@ * * @param {string} url * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFavicon: function(url) { if(url === undefined) { throw new Error('Missing required parameter: "url"'); @@ -881,11 +1008,14 @@ let path = '/avatars/favicon'; + let payload = {}; + + if(url) { + payload['url'] = url; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'url': url - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -900,7 +1030,8 @@ * @param {number} height * @param {number} quality * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFlag: function(code, width = 100, height = 100, quality = 100) { if(code === undefined) { throw new Error('Missing required parameter: "code"'); @@ -908,13 +1039,22 @@ let path = '/avatars/flags/{code}'.replace(new RegExp('{code}', 'g'), code); + let payload = {}; + + if(width) { + payload['width'] = width; + } + + if(height) { + payload['height'] = height; + } + + if(quality) { + payload['quality'] = quality; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'width': width, - 'height': height, - 'quality': quality - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -929,7 +1069,8 @@ * @param {number} width * @param {number} height * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getImage: function(url, width = 400, height = 400) { if(url === undefined) { throw new Error('Missing required parameter: "url"'); @@ -937,13 +1078,22 @@ let path = '/avatars/image'; + let payload = {}; + + if(url) { + payload['url'] = url; + } + + if(width) { + payload['width'] = width; + } + + if(height) { + payload['height'] = height; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'url': url, - 'width': width, - 'height': height - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -957,7 +1107,8 @@ * @param {number} margin * @param {number} download * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getQR: function(text, size = 400, margin = 1, download = 0) { if(text === undefined) { throw new Error('Missing required parameter: "text"'); @@ -965,14 +1116,26 @@ let path = '/avatars/qr'; + let payload = {}; + + if(text) { + payload['text'] = text; + } + + if(size) { + payload['size'] = size; + } + + if(margin) { + payload['margin'] = margin; + } + + if(download) { + payload['download'] = download; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'text': text, - 'size': size, - 'margin': margin, - 'download': download - }); + .get(path, {'content-type': 'application/json'}, payload); } }; @@ -991,18 +1154,31 @@ * @param {number} offset * @param {string} orderType * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listCollections: function(search = '', limit = 25, offset = 0, orderType = 'ASC') { let path = '/database'; + let payload = {}; + + if(search) { + payload['search'] = search; + } + + if(limit) { + payload['limit'] = limit; + } + + if(offset) { + payload['offset'] = offset; + } + + if(orderType) { + payload['orderType'] = orderType; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'search': search, - 'limit': limit, - 'offset': offset, - 'orderType': orderType - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1015,7 +1191,8 @@ * @param {array} write * @param {array} rules * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createCollection: function(name, read = [], write = [], rules = []) { if(name === undefined) { throw new Error('Missing required parameter: "name"'); @@ -1023,14 +1200,26 @@ let path = '/database'; + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + + if(rules) { + payload['rules'] = rules; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'read': read, - 'write': write, - 'rules': rules - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1041,7 +1230,8 @@ * * @param {string} collectionId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCollection: function(collectionId) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1049,10 +1239,10 @@ let path = '/database/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1066,7 +1256,8 @@ * @param {array} write * @param {array} rules * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateCollection: function(collectionId, name, read = [], write = [], rules = []) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1078,14 +1269,26 @@ let path = '/database/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + + if(rules) { + payload['rules'] = rules; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name, - 'read': read, - 'write': write, - 'rules': rules - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -1096,7 +1299,8 @@ * * @param {string} collectionId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteCollection: function(collectionId) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1104,10 +1308,10 @@ let path = '/database/{collectionId}'.replace(new RegExp('{collectionId}', 'g'), collectionId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -1129,7 +1333,8 @@ * @param {number} first * @param {number} last * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listDocuments: function(collectionId, filters = [], offset = 0, limit = 50, orderField = '$uid', orderType = 'ASC', orderCast = 'string', search = '', first = 0, last = 0) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1137,19 +1342,46 @@ let path = '/database/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId); + let payload = {}; + + if(filters) { + payload['filters'] = filters; + } + + if(offset) { + payload['offset'] = offset; + } + + if(limit) { + payload['limit'] = limit; + } + + if(orderField) { + payload['order-field'] = orderField; + } + + if(orderType) { + payload['order-type'] = orderType; + } + + if(orderCast) { + payload['order-cast'] = orderCast; + } + + if(search) { + payload['search'] = search; + } + + if(first) { + payload['first'] = first; + } + + if(last) { + payload['last'] = last; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'filters': filters, - 'offset': offset, - 'limit': limit, - 'order-field': orderField, - 'order-type': orderType, - 'order-cast': orderCast, - 'search': search, - 'first': first, - 'last': last - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1165,7 +1397,8 @@ * @param {string} parentProperty * @param {string} parentPropertyType * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createDocument: function(collectionId, data, read = [], write = [], parentDocument = '', parentProperty = '', parentPropertyType = 'assign') { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1177,16 +1410,34 @@ let path = '/database/{collectionId}/documents'.replace(new RegExp('{collectionId}', 'g'), collectionId); + let payload = {}; + + if(data) { + payload['data'] = data; + } + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + + if(parentDocument) { + payload['parentDocument'] = parentDocument; + } + + if(parentProperty) { + payload['parentProperty'] = parentProperty; + } + + if(parentPropertyType) { + payload['parentPropertyType'] = parentPropertyType; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'data': data, - 'read': read, - 'write': write, - 'parentDocument': parentDocument, - 'parentProperty': parentProperty, - 'parentPropertyType': parentPropertyType - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1198,7 +1449,8 @@ * @param {string} collectionId * @param {string} documentId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getDocument: function(collectionId, documentId) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1210,10 +1462,10 @@ let path = '/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1226,7 +1478,8 @@ * @param {array} read * @param {array} write * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateDocument: function(collectionId, documentId, data, read = [], write = []) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1242,13 +1495,22 @@ let path = '/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId); + let payload = {}; + + if(data) { + payload['data'] = data; + } + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'data': data, - 'read': read, - 'write': write - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -1261,7 +1523,8 @@ * @param {string} collectionId * @param {string} documentId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteDocument: function(collectionId, documentId) { if(collectionId === undefined) { throw new Error('Missing required parameter: "collectionId"'); @@ -1273,10 +1536,10 @@ let path = '/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}', 'g'), collectionId).replace(new RegExp('{documentId}', 'g'), documentId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); } }; @@ -1291,14 +1554,15 @@ * supported language. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getLocale: function() { let path = '/locale'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1308,14 +1572,15 @@ * supported language. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCountries: function() { let path = '/locale/countries'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1326,14 +1591,15 @@ * currently set to 2019-10-31 and will be updated if and when needed. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCountriesEU: function() { let path = '/locale/countries/eu'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1343,32 +1609,34 @@ * data in supported language. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCountriesPhones: function() { let path = '/locale/countries/phones'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** * List of currencies * - * List of all currencies, including currency symbol, name, plural, and - * decimal digits for all major and minor currencies. You can use the locale - * header to get the data in supported language. + * List of all currencies, including currency symol, name, plural, and decimal + * digits for all major and minor currencies. You can use the locale header to + * get the data in supported language. * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getCurrencies: function() { let path = '/locale/currencies'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); } }; @@ -1379,14 +1647,15 @@ * * * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listProjects: function() { let path = '/projects'; + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1405,7 +1674,8 @@ * @param {string} legalAddress * @param {string} legalTaxId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createProject: function(name, teamId, description = '', logo = '', url = '', legalName = '', legalCountry = '', legalState = '', legalCity = '', legalAddress = '', legalTaxId = '') { if(name === undefined) { throw new Error('Missing required parameter: "name"'); @@ -1417,21 +1687,54 @@ let path = '/projects'; + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(teamId) { + payload['teamId'] = teamId; + } + + if(description) { + payload['description'] = description; + } + + if(logo) { + payload['logo'] = logo; + } + + if(url) { + payload['url'] = url; + } + + if(legalName) { + payload['legalName'] = legalName; + } + + if(legalCountry) { + payload['legalCountry'] = legalCountry; + } + + if(legalState) { + payload['legalState'] = legalState; + } + + if(legalCity) { + payload['legalCity'] = legalCity; + } + + if(legalAddress) { + payload['legalAddress'] = legalAddress; + } + + if(legalTaxId) { + payload['legalTaxId'] = legalTaxId; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'teamId': teamId, - 'description': description, - 'logo': logo, - 'url': url, - 'legalName': legalName, - 'legalCountry': legalCountry, - 'legalState': legalState, - 'legalCity': legalCity, - 'legalAddress': legalAddress, - 'legalTaxId': legalTaxId - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1440,7 +1743,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getProject: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1448,10 +1752,10 @@ let path = '/projects/{projectId}'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1470,7 +1774,8 @@ * @param {string} legalAddress * @param {string} legalTaxId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateProject: function(projectId, name, description = '', logo = '', url = '', legalName = '', legalCountry = '', legalState = '', legalCity = '', legalAddress = '', legalTaxId = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1482,20 +1787,50 @@ let path = '/projects/{projectId}'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(description) { + payload['description'] = description; + } + + if(logo) { + payload['logo'] = logo; + } + + if(url) { + payload['url'] = url; + } + + if(legalName) { + payload['legalName'] = legalName; + } + + if(legalCountry) { + payload['legalCountry'] = legalCountry; + } + + if(legalState) { + payload['legalState'] = legalState; + } + + if(legalCity) { + payload['legalCity'] = legalCity; + } + + if(legalAddress) { + payload['legalAddress'] = legalAddress; + } + + if(legalTaxId) { + payload['legalTaxId'] = legalTaxId; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'name': name, - 'description': description, - 'logo': logo, - 'url': url, - 'legalName': legalName, - 'legalCountry': legalCountry, - 'legalState': legalState, - 'legalCity': legalCity, - 'legalAddress': legalAddress, - 'legalTaxId': legalTaxId - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -1504,7 +1839,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteProject: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1512,10 +1848,10 @@ let path = '/projects/{projectId}'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -1524,7 +1860,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listKeys: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1532,10 +1869,10 @@ let path = '/projects/{projectId}/keys'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1546,7 +1883,8 @@ * @param {string} name * @param {array} scopes * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createKey: function(projectId, name, scopes) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1562,12 +1900,18 @@ let path = '/projects/{projectId}/keys'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(scopes) { + payload['scopes'] = scopes; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'scopes': scopes - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1577,7 +1921,8 @@ * @param {string} projectId * @param {string} keyId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getKey: function(projectId, keyId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1589,10 +1934,10 @@ let path = '/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{keyId}', 'g'), keyId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1604,7 +1949,8 @@ * @param {string} name * @param {array} scopes * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateKey: function(projectId, keyId, name, scopes) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1624,12 +1970,18 @@ let path = '/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{keyId}', 'g'), keyId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(scopes) { + payload['scopes'] = scopes; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name, - 'scopes': scopes - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -1639,7 +1991,8 @@ * @param {string} projectId * @param {string} keyId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteKey: function(projectId, keyId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1651,10 +2004,10 @@ let path = '/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{keyId}', 'g'), keyId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -1666,7 +2019,8 @@ * @param {string} appId * @param {string} secret * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateProjectOAuth: function(projectId, provider, appId = '', secret = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1678,13 +2032,22 @@ let path = '/projects/{projectId}/oauth'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(provider) { + payload['provider'] = provider; + } + + if(appId) { + payload['appId'] = appId; + } + + if(secret) { + payload['secret'] = secret; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'provider': provider, - 'appId': appId, - 'secret': secret - }); + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -1693,7 +2056,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listPlatforms: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1701,10 +2065,10 @@ let path = '/projects/{projectId}/platforms'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1718,7 +2082,8 @@ * @param {string} store * @param {string} url * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createPlatform: function(projectId, type, name, key = '', store = '', url = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1734,15 +2099,30 @@ let path = '/projects/{projectId}/platforms'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(type) { + payload['type'] = type; + } + + if(name) { + payload['name'] = name; + } + + if(key) { + payload['key'] = key; + } + + if(store) { + payload['store'] = store; + } + + if(url) { + payload['url'] = url; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'type': type, - 'name': name, - 'key': key, - 'store': store, - 'url': url - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1752,7 +2132,8 @@ * @param {string} projectId * @param {string} platformId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getPlatform: function(projectId, platformId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1764,10 +2145,10 @@ let path = '/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{platformId}', 'g'), platformId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1781,7 +2162,8 @@ * @param {string} store * @param {string} url * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updatePlatform: function(projectId, platformId, name, key = '', store = '', url = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1797,14 +2179,26 @@ let path = '/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{platformId}', 'g'), platformId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(key) { + payload['key'] = key; + } + + if(store) { + payload['store'] = store; + } + + if(url) { + payload['url'] = url; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name, - 'key': key, - 'store': store, - 'url': url - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -1814,7 +2208,8 @@ * @param {string} projectId * @param {string} platformId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deletePlatform: function(projectId, platformId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1826,10 +2221,10 @@ let path = '/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{platformId}', 'g'), platformId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -1838,7 +2233,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listTasks: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1846,10 +2242,10 @@ let path = '/projects/{projectId}/tasks'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1867,7 +2263,8 @@ * @param {string} httpUser * @param {string} httpPass * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createTask: function(projectId, name, status, schedule, security, httpMethod, httpUrl, httpHeaders = [], httpUser = '', httpPass = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1899,19 +2296,46 @@ let path = '/projects/{projectId}/tasks'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(status) { + payload['status'] = status; + } + + if(schedule) { + payload['schedule'] = schedule; + } + + if(security) { + payload['security'] = security; + } + + if(httpMethod) { + payload['httpMethod'] = httpMethod; + } + + if(httpUrl) { + payload['httpUrl'] = httpUrl; + } + + if(httpHeaders) { + payload['httpHeaders'] = httpHeaders; + } + + if(httpUser) { + payload['httpUser'] = httpUser; + } + + if(httpPass) { + payload['httpPass'] = httpPass; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'status': status, - 'schedule': schedule, - 'security': security, - 'httpMethod': httpMethod, - 'httpUrl': httpUrl, - 'httpHeaders': httpHeaders, - 'httpUser': httpUser, - 'httpPass': httpPass - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -1921,7 +2345,8 @@ * @param {string} projectId * @param {string} taskId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getTask: function(projectId, taskId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1933,10 +2358,10 @@ let path = '/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{taskId}', 'g'), taskId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -1955,7 +2380,8 @@ * @param {string} httpUser * @param {string} httpPass * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateTask: function(projectId, taskId, name, status, schedule, security, httpMethod, httpUrl, httpHeaders = [], httpUser = '', httpPass = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -1991,19 +2417,46 @@ let path = '/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{taskId}', 'g'), taskId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(status) { + payload['status'] = status; + } + + if(schedule) { + payload['schedule'] = schedule; + } + + if(security) { + payload['security'] = security; + } + + if(httpMethod) { + payload['httpMethod'] = httpMethod; + } + + if(httpUrl) { + payload['httpUrl'] = httpUrl; + } + + if(httpHeaders) { + payload['httpHeaders'] = httpHeaders; + } + + if(httpUser) { + payload['httpUser'] = httpUser; + } + + if(httpPass) { + payload['httpPass'] = httpPass; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name, - 'status': status, - 'schedule': schedule, - 'security': security, - 'httpMethod': httpMethod, - 'httpUrl': httpUrl, - 'httpHeaders': httpHeaders, - 'httpUser': httpUser, - 'httpPass': httpPass - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -2013,7 +2466,8 @@ * @param {string} projectId * @param {string} taskId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteTask: function(projectId, taskId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2025,10 +2479,10 @@ let path = '/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{taskId}', 'g'), taskId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2037,7 +2491,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getProjectUsage: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2045,10 +2500,10 @@ let path = '/projects/{projectId}/usage'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2057,7 +2512,8 @@ * * @param {string} projectId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listWebhooks: function(projectId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2065,10 +2521,10 @@ let path = '/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2083,7 +2539,8 @@ * @param {string} httpUser * @param {string} httpPass * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createWebhook: function(projectId, name, events, url, security, httpUser = '', httpPass = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2107,16 +2564,34 @@ let path = '/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}', 'g'), projectId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(events) { + payload['events'] = events; + } + + if(url) { + payload['url'] = url; + } + + if(security) { + payload['security'] = security; + } + + if(httpUser) { + payload['httpUser'] = httpUser; + } + + if(httpPass) { + payload['httpPass'] = httpPass; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'events': events, - 'url': url, - 'security': security, - 'httpUser': httpUser, - 'httpPass': httpPass - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -2126,7 +2601,8 @@ * @param {string} projectId * @param {string} webhookId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getWebhook: function(projectId, webhookId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2138,10 +2614,10 @@ let path = '/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{webhookId}', 'g'), webhookId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2157,7 +2633,8 @@ * @param {string} httpUser * @param {string} httpPass * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateWebhook: function(projectId, webhookId, name, events, url, security, httpUser = '', httpPass = '') { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2185,16 +2662,34 @@ let path = '/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{webhookId}', 'g'), webhookId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(events) { + payload['events'] = events; + } + + if(url) { + payload['url'] = url; + } + + if(security) { + payload['security'] = security; + } + + if(httpUser) { + payload['httpUser'] = httpUser; + } + + if(httpPass) { + payload['httpPass'] = httpPass; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name, - 'events': events, - 'url': url, - 'security': security, - 'httpUser': httpUser, - 'httpPass': httpPass - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -2204,7 +2699,8 @@ * @param {string} projectId * @param {string} webhookId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteWebhook: function(projectId, webhookId) { if(projectId === undefined) { throw new Error('Missing required parameter: "projectId"'); @@ -2216,10 +2712,10 @@ let path = '/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}', 'g'), projectId).replace(new RegExp('{webhookId}', 'g'), webhookId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); } }; @@ -2237,18 +2733,31 @@ * @param {number} offset * @param {string} orderType * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listFiles: function(search = '', limit = 25, offset = 0, orderType = 'ASC') { let path = '/storage/files'; + let payload = {}; + + if(search) { + payload['search'] = search; + } + + if(limit) { + payload['limit'] = limit; + } + + if(offset) { + payload['offset'] = offset; + } + + if(orderType) { + payload['orderType'] = orderType; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'search': search, - 'limit': limit, - 'offset': offset, - 'orderType': orderType - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2263,7 +2772,8 @@ * @param {array} write * @param {string} folderId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createFile: function(files, read = [], write = [], folderId = '') { if(files === undefined) { throw new Error('Missing required parameter: "files"'); @@ -2271,14 +2781,26 @@ let path = '/storage/files'; + let payload = {}; + + if(files) { + payload['files'] = files; + } + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + + if(folderId) { + payload['folderId'] = folderId; + } + return http - .post(path, {'content-type': 'multipart/form-data'}, - { - 'files': files, - 'read': read, - 'write': write, - 'folderId': folderId - }); + .post(path, {'content-type': 'multipart/form-data'}, payload); }, /** @@ -2289,7 +2811,8 @@ * * @param {string} fileId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFile: function(fileId) { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2297,10 +2820,10 @@ let path = '/storage/files/{fileId}'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2314,7 +2837,8 @@ * @param {array} write * @param {string} folderId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateFile: function(fileId, read = [], write = [], folderId = '') { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2322,13 +2846,22 @@ let path = '/storage/files/{fileId}'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + + if(read) { + payload['read'] = read; + } + + if(write) { + payload['write'] = write; + } + + if(folderId) { + payload['folderId'] = folderId; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'read': read, - 'write': write, - 'folderId': folderId - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -2339,7 +2872,8 @@ * * @param {string} fileId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteFile: function(fileId) { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2347,10 +2881,10 @@ let path = '/storage/files/{fileId}'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2362,7 +2896,8 @@ * * @param {string} fileId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFileDownload: function(fileId) { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2370,10 +2905,10 @@ let path = '/storage/files/{fileId}/download'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2391,7 +2926,8 @@ * @param {string} background * @param {string} output * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFilePreview: function(fileId, width = 0, height = 0, quality = 100, background = '', output = '') { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2399,15 +2935,30 @@ let path = '/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + + if(width) { + payload['width'] = width; + } + + if(height) { + payload['height'] = height; + } + + if(quality) { + payload['quality'] = quality; + } + + if(background) { + payload['background'] = background; + } + + if(output) { + payload['output'] = output; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'width': width, - 'height': height, - 'quality': quality, - 'background': background, - 'output': output - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2419,7 +2970,8 @@ * @param {string} fileId * @param {string} as * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getFileView: function(fileId, as = '') { if(fileId === undefined) { throw new Error('Missing required parameter: "fileId"'); @@ -2427,11 +2979,14 @@ let path = '/storage/files/{fileId}/view'.replace(new RegExp('{fileId}', 'g'), fileId); + let payload = {}; + + if(as) { + payload['as'] = as; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'as': as - }); + .get(path, {'content-type': 'application/json'}, payload); } }; @@ -2449,18 +3004,31 @@ * @param {number} offset * @param {string} orderType * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listTeams: function(search = '', limit = 25, offset = 0, orderType = 'ASC') { let path = '/teams'; + let payload = {}; + + if(search) { + payload['search'] = search; + } + + if(limit) { + payload['limit'] = limit; + } + + if(offset) { + payload['offset'] = offset; + } + + if(orderType) { + payload['orderType'] = orderType; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'search': search, - 'limit': limit, - 'offset': offset, - 'orderType': orderType - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2474,7 +3042,8 @@ * @param {string} name * @param {array} roles * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createTeam: function(name, roles = ["owner"]) { if(name === undefined) { throw new Error('Missing required parameter: "name"'); @@ -2482,12 +3051,18 @@ let path = '/teams'; + let payload = {}; + + if(name) { + payload['name'] = name; + } + + if(roles) { + payload['roles'] = roles; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'name': name, - 'roles': roles - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -2498,7 +3073,8 @@ * * @param {string} teamId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getTeam: function(teamId) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2506,10 +3082,10 @@ let path = '/teams/{teamId}'.replace(new RegExp('{teamId}', 'g'), teamId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2521,7 +3097,8 @@ * @param {string} teamId * @param {string} name * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateTeam: function(teamId, name) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2533,11 +3110,14 @@ let path = '/teams/{teamId}'.replace(new RegExp('{teamId}', 'g'), teamId); + let payload = {}; + + if(name) { + payload['name'] = name; + } + return http - .put(path, {'content-type': 'application/json'}, - { - 'name': name - }); + .put(path, {'content-type': 'application/json'}, payload); }, /** @@ -2548,7 +3128,8 @@ * * @param {string} teamId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteTeam: function(teamId) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2556,10 +3137,10 @@ let path = '/teams/{teamId}'.replace(new RegExp('{teamId}', 'g'), teamId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2570,7 +3151,8 @@ * * @param {string} teamId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getTeamMembers: function(teamId) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2578,10 +3160,10 @@ let path = '/teams/{teamId}/members'.replace(new RegExp('{teamId}', 'g'), teamId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2607,7 +3189,8 @@ * @param {string} redirect * @param {string} name * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createTeamMembership: function(teamId, email, roles, redirect, name = '') { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2627,14 +3210,26 @@ let path = '/teams/{teamId}/memberships'.replace(new RegExp('{teamId}', 'g'), teamId); + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(name) { + payload['name'] = name; + } + + if(roles) { + payload['roles'] = roles; + } + + if(redirect) { + payload['redirect'] = redirect; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'email': email, - 'name': name, - 'roles': roles, - 'redirect': redirect - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -2646,7 +3241,8 @@ * @param {string} teamId * @param {string} inviteId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteTeamMembership: function(teamId, inviteId) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2658,10 +3254,10 @@ let path = '/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{inviteId}', 'g'), inviteId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2674,7 +3270,8 @@ * @param {string} inviteId * @param {string} redirect * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createTeamMembershipResend: function(teamId, inviteId, redirect) { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2690,11 +3287,14 @@ let path = '/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}', 'g'), teamId).replace(new RegExp('{inviteId}', 'g'), inviteId); + let payload = {}; + + if(redirect) { + payload['redirect'] = redirect; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'redirect': redirect - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -2723,7 +3323,8 @@ * @param {string} success * @param {string} failure * @throws {Error} - * @return {null} */ + * @return {null} + */ updateTeamMembershipStatus: function(teamId, inviteId, userId, secret, success = '', failure = '') { if(teamId === undefined) { throw new Error('Missing required parameter: "teamId"'); @@ -2743,12 +3344,27 @@ 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 payload = {}; + + if(userId) { + payload['userId'] = userId; + } + + if(secret) { + payload['secret'] = secret; + } + + if(success) { + payload['success'] = success; + } + + if(failure) { + payload['failure'] = failure; + } + + payload['project'] = config.project; + + return iframe('patch', path, payload); } }; @@ -2765,18 +3381,31 @@ * @param {number} offset * @param {string} orderType * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ listUsers: function(search = '', limit = 25, offset = 0, orderType = 'ASC') { let path = '/users'; + let payload = {}; + + if(search) { + payload['search'] = search; + } + + if(limit) { + payload['limit'] = limit; + } + + if(offset) { + payload['offset'] = offset; + } + + if(orderType) { + payload['orderType'] = orderType; + } + return http - .get(path, {'content-type': 'application/json'}, - { - 'search': search, - 'limit': limit, - 'offset': offset, - 'orderType': orderType - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2788,7 +3417,8 @@ * @param {string} password * @param {string} name * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ createUser: function(email, password, name = '') { if(email === undefined) { throw new Error('Missing required parameter: "email"'); @@ -2800,13 +3430,22 @@ let path = '/users'; + let payload = {}; + + if(email) { + payload['email'] = email; + } + + if(password) { + payload['password'] = password; + } + + if(name) { + payload['name'] = name; + } + return http - .post(path, {'content-type': 'application/json'}, - { - 'email': email, - 'password': password, - 'name': name - }); + .post(path, {'content-type': 'application/json'}, payload); }, /** @@ -2816,7 +3455,8 @@ * * @param {string} userId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getUser: function(userId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2824,10 +3464,10 @@ let path = '/users/{userId}'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2837,7 +3477,8 @@ * * @param {string} userId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getUserLogs: function(userId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2845,10 +3486,10 @@ let path = '/users/{userId}/logs'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2858,7 +3499,8 @@ * * @param {string} userId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getUserPrefs: function(userId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2866,10 +3508,42 @@ let path = '/users/{userId}/prefs'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); + }, + + /** + * Update Account Prefs + * + * Update user preferences by its unique ID. You can pass only the specific + * settings you wish to update. + * + * @param {string} userId + * @param {string} prefs + * @throws {Error} + * @return {Promise} + */ + updateUserPrefs: function(userId, prefs) { + if(userId === undefined) { + throw new Error('Missing required parameter: "userId"'); + } + + if(prefs === undefined) { + throw new Error('Missing required parameter: "prefs"'); + } + + let path = '/users/{userId}/prefs'.replace(new RegExp('{userId}', 'g'), userId); + + let payload = {}; + + if(prefs) { + payload['prefs'] = prefs; + } + + return http + .patch(path, {'content-type': 'application/json'}, payload); }, /** @@ -2879,7 +3553,8 @@ * * @param {string} userId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ getUserSessions: function(userId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2887,10 +3562,10 @@ let path = '/users/{userId}/sessions'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + return http - .get(path, {'content-type': 'application/json'}, - { - }); + .get(path, {'content-type': 'application/json'}, payload); }, /** @@ -2900,7 +3575,8 @@ * * @param {string} userId * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ deleteUserSessions: function(userId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2908,10 +3584,10 @@ let path = '/users/{userId}/sessions'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + return http - .delete(path, {'content-type': 'application/json'}, - { - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2922,8 +3598,9 @@ * @param {string} userId * @param {string} sessionId * @throws {Error} - * @return {Promise} */ - deleteUsersSession: function(userId, sessionId) { + * @return {Promise} + */ + deleteUserSession: function(userId, sessionId) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); } @@ -2934,11 +3611,14 @@ let path = '/users/{userId}/sessions/:session'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + + if(sessionId) { + payload['sessionId'] = sessionId; + } + return http - .delete(path, {'content-type': 'application/json'}, - { - 'sessionId': sessionId - }); + .delete(path, {'content-type': 'application/json'}, payload); }, /** @@ -2949,7 +3629,8 @@ * @param {string} userId * @param {string} status * @throws {Error} - * @return {Promise} */ + * @return {Promise} + */ updateUserStatus: function(userId, status) { if(userId === undefined) { throw new Error('Missing required parameter: "userId"'); @@ -2961,11 +3642,14 @@ let path = '/users/{userId}/status'.replace(new RegExp('{userId}', 'g'), userId); + let payload = {}; + + if(status) { + payload['status'] = status; + } + return http - .patch(path, {'content-type': 'application/json'}, - { - 'status': status - }); + .patch(path, {'content-type': 'application/json'}, payload); } }; @@ -2987,4 +3671,8 @@ }; }; -})(window); \ No newline at end of file + if(typeof module !== "undefined") { + module.exports = window.Appwrite; + } + +})((typeof window !== "undefined") ? window : {}); \ No newline at end of file diff --git a/app/sdks/js/src/sdk.min.js b/app/sdks/js/src/sdk.min.js index 4bd61f2d4c..a1d7e392a1 100644 --- a/app/sdks/js/src/sdk.min.js +++ b/app/sdks/js/src/sdk.min.js @@ -1,5 +1,5 @@ -(function(window){window.Appwrite=function(){let config={endpoint:'https://https://appwrite.io/v1',project:'',key:'',locale:'',mode:'',};let setEndpoint=function(endpoint){config.endpoint=endpoint;return this};let setProject=function(value){http.addGlobalHeader('X-Appwrite-Project',value);config.project=value;return this};let setKey=function(value){http.addGlobalHeader('X-Appwrite-Key',value);config.key=value;return this};let setLocale=function(value){http.addGlobalHeader('X-Appwrite-Locale',value);config.locale=value;return this};let setMode=function(value){http.addGlobalHeader('X-Appwrite-Mode',value);config.mode=value;return this};let http=function(document){let globalParams=[],globalHeaders=[];let addParam=function(url,param,value){let a=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;let match,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search))if(param!==match[1])str.push(match[1]+(match[2]?"="+match[2]:""));str.push(param+(value?"="+encodeURIComponent(value):""));a.search=str.join("&");return a.href};let buildQuery=function(params){let str=[];for(let p in params){if(Array.isArray(params[p])){for(let index=0;index=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,!1)} 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"')} +document.body.appendChild(form);return form.submit()};let account={get:function(){let path='/account';let payload={};return http.get(path,{'content-type':'application/json'},payload)},delete:function(){let path='/account';let payload={};return http.delete(path,{'content-type':'application/json'},payload)},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"')} -let path='/account/name';return http.patch(path,{'content-type':'application/json'},{'name':name})},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"')} +let path='/account/email';let payload={};if(email){payload.email=email} +if(password){payload.password=password} +return http.patch(path,{'content-type':'application/json'},payload)},updateName:function(name){if(name===undefined){throw new Error('Missing required parameter: "name"')} +let path='/account/name';let payload={};if(name){payload.name=name} +return http.patch(path,{'content-type':'application/json'},payload)},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"')} if(oldPassword===undefined){throw new Error('Missing required parameter: "oldPassword"')} -let path='/account/password';return http.patch(path,{'content-type':'application/json'},{'password':password,'old-password':oldPassword})},getPrefs:function(){let path='/account/prefs';return http.get(path,{'content-type':'application/json'},{})},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"')} -let path='/account/prefs';return http.patch(path,{'content-type':'application/json'},{'prefs':prefs})},getSecurity:function(){let path='/account/security';return http.get(path,{'content-type':'application/json'},{})},getSessions:function(){let path='/account/sessions';return http.get(path,{'content-type':'application/json'},{})}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"')} +let path='/account/password';let payload={};if(password){payload.password=password} +if(oldPassword){payload['old-password']=oldPassword} +return http.patch(path,{'content-type':'application/json'},payload)},getPrefs:function(){let path='/account/prefs';let payload={};return http.get(path,{'content-type':'application/json'},payload)},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"')} +let path='/account/prefs';let payload={};if(prefs){payload.prefs=prefs} +return http.patch(path,{'content-type':'application/json'},payload)},getSecurity:function(){let path='/account/security';let payload={};return http.get(path,{'content-type':'application/json'},payload)},getSessions:function(){let path='/account/sessions';let payload={};return http.get(path,{'content-type':'application/json'},payload)}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"')} if(password===undefined){throw new Error('Missing required parameter: "password"')} if(success===undefined){throw new Error('Missing required parameter: "success"')} if(failure===undefined){throw new Error('Missing required parameter: "failure"')} -let path='/auth/login';return iframe('post',path,{project:config.project,'email':email,'password':password,'success':success,'failure':failure})},logout:function(){let path='/auth/logout';return http.delete(path,{'content-type':'application/json'},{})},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"')} -let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);return http.delete(path,{'content-type':'application/json'},{})},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"')} -let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);return http.get(path,{'content-type':'application/json'},{'success':success,'failure':failure})},recovery:function(email,reset){if(email===undefined){throw new Error('Missing required parameter: "email"')} +let path='/auth/login';let payload={};if(email){payload.email=email} +if(password){payload.password=password} +if(success){payload.success=success} +if(failure){payload.failure=failure} +payload.project=config.project;return iframe('post',path,payload)},logout:function(){let path='/auth/logout';let payload={};return http.delete(path,{'content-type':'application/json'},payload)},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"')} +let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"')} +let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);let payload={};if(success){payload.success=success} +if(failure){payload.failure=failure} +return http.get(path,{'content-type':'application/json'},payload)},recovery:function(email,reset){if(email===undefined){throw new Error('Missing required parameter: "email"')} if(reset===undefined){throw new Error('Missing required parameter: "reset"')} -let path='/auth/recovery';return http.post(path,{'content-type':'application/json'},{'email':email,'reset':reset})},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/auth/recovery';let payload={};if(email){payload.email=email} +if(reset){payload.reset=reset} +return http.post(path,{'content-type':'application/json'},payload)},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} if(token===undefined){throw new Error('Missing required parameter: "token"')} if(passwordA===undefined){throw new Error('Missing required parameter: "passwordA"')} if(passwordB===undefined){throw new Error('Missing required parameter: "passwordB"')} -let path='/auth/recovery/reset';return http.put(path,{'content-type':'application/json'},{'userId':userId,'token':token,'password-a':passwordA,'password-b':passwordB})},register:function(email,password,confirm,success='',failure='',name=''){if(email===undefined){throw new Error('Missing required parameter: "email"')} +let path='/auth/recovery/reset';let payload={};if(userId){payload.userId=userId} +if(token){payload.token=token} +if(passwordA){payload['password-a']=passwordA} +if(passwordB){payload['password-b']=passwordB} +return http.put(path,{'content-type':'application/json'},payload)},register:function(email,password,confirm,success='',failure='',name=''){if(email===undefined){throw new Error('Missing required parameter: "email"')} if(password===undefined){throw new Error('Missing required parameter: "password"')} if(confirm===undefined){throw new Error('Missing required parameter: "confirm"')} -let path='/auth/register';return iframe('post',path,{project:config.project,'email':email,'password':password,'confirm':confirm,'success':success,'failure':failure,'name':name})},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/auth/register';let payload={};if(email){payload.email=email} +if(password){payload.password=password} +if(confirm){payload.confirm=confirm} +if(success){payload.success=success} +if(failure){payload.failure=failure} +if(name){payload.name=name} +payload.project=config.project;return iframe('post',path,payload)},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} if(token===undefined){throw new Error('Missing required parameter: "token"')} -let path='/auth/register/confirm';return http.post(path,{'content-type':'application/json'},{'userId':userId,'token':token})},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"')} -let path='/auth/register/confirm/resend';return http.post(path,{'content-type':'application/json'},{'confirm':confirm})}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} -let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality})},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} -let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality})},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')} -let path='/avatars/favicon';return http.get(path,{'content-type':'application/json'},{'url':url})},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} -let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality})},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')} -let path='/avatars/image';return http.get(path,{'content-type':'application/json'},{'url':url,'width':width,'height':height})},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')} -let path='/avatars/qr';return http.get(path,{'content-type':'application/json'},{'text':text,'size':size,'margin':margin,'download':download})}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType})},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/database';return http.post(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules})},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{})},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/auth/register/confirm';let payload={};if(userId){payload.userId=userId} +if(token){payload.token=token} +return http.post(path,{'content-type':'application/json'},payload)},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"')} +let path='/auth/register/confirm/resend';let payload={};if(confirm){payload.confirm=confirm} +return http.post(path,{'content-type':'application/json'},payload)}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} +let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width} +if(height){payload.height=height} +if(quality){payload.quality=quality} +return http.get(path,{'content-type':'application/json'},payload)},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} +let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width} +if(height){payload.height=height} +if(quality){payload.quality=quality} +return http.get(path,{'content-type':'application/json'},payload)},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"')} +let path='/avatars/favicon';let payload={};if(url){payload.url=url} +return http.get(path,{'content-type':'application/json'},payload)},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"')} +let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload.width=width} +if(height){payload.height=height} +if(quality){payload.quality=quality} +return http.get(path,{'content-type':'application/json'},payload)},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"')} +let path='/avatars/image';let payload={};if(url){payload.url=url} +if(width){payload.width=width} +if(height){payload.height=height} +return http.get(path,{'content-type':'application/json'},payload)},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"')} +let path='/avatars/qr';let payload={};if(text){payload.text=text} +if(size){payload.size=size} +if(margin){payload.margin=margin} +if(download){payload.download=download} +return http.get(path,{'content-type':'application/json'},payload)}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';let payload={};if(search){payload.search=search} +if(limit){payload.limit=limit} +if(offset){payload.offset=offset} +if(orderType){payload.orderType=orderType} +return http.get(path,{'content-type':'application/json'},payload)},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"')} +let path='/database';let payload={};if(name){payload.name=name} +if(read){payload.read=read} +if(write){payload.write=write} +if(rules){payload.rules=rules} +return http.post(path,{'content-type':'application/json'},payload)},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.put(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules})},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.delete(path,{'content-type':'application/json'},{})},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{'filters':filters,'offset':offset,'limit':limit,'order-field':orderField,'order-type':orderType,'order-cast':orderCast,'search':search,'first':first,'last':last})},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(name){payload.name=name} +if(read){payload.read=read} +if(write){payload.write=write} +if(rules){payload.rules=rules} +return http.put(path,{'content-type':'application/json'},payload)},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(filters){payload.filters=filters} +if(offset){payload.offset=offset} +if(limit){payload.limit=limit} +if(orderField){payload['order-field']=orderField} +if(orderType){payload['order-type']=orderType} +if(orderCast){payload['order-cast']=orderCast} +if(search){payload.search=search} +if(first){payload.first=first} +if(last){payload.last=last} +return http.get(path,{'content-type':'application/json'},payload)},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} if(data===undefined){throw new Error('Missing required parameter: "data"')} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.post(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write,'parentDocument':parentDocument,'parentProperty':parentProperty,'parentPropertyType':parentPropertyType})},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(data){payload.data=data} +if(read){payload.read=read} +if(write){payload.write=write} +if(parentDocument){payload.parentDocument=parentDocument} +if(parentProperty){payload.parentProperty=parentProperty} +if(parentPropertyType){payload.parentPropertyType=parentPropertyType} +return http.post(path,{'content-type':'application/json'},payload)},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"')} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.get(path,{'content-type':'application/json'},{})},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"')} if(data===undefined){throw new Error('Missing required parameter: "data"')} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.patch(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write})},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};if(data){payload.data=data} +if(read){payload.read=read} +if(write){payload.write=write} +return http.patch(path,{'content-type':'application/json'},payload)},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"')} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"')} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.delete(path,{'content-type':'application/json'},{})}};let locale={getLocale:function(){let path='/locale';return http.get(path,{'content-type':'application/json'},{})},getCountries:function(){let path='/locale/countries';return http.get(path,{'content-type':'application/json'},{})},getCountriesEU:function(){let path='/locale/countries/eu';return http.get(path,{'content-type':'application/json'},{})},getCountriesPhones:function(){let path='/locale/countries/phones';return http.get(path,{'content-type':'application/json'},{})},getCurrencies:function(){let path='/locale/currencies';return http.get(path,{'content-type':'application/json'},{})}};let projects={listProjects:function(){let path='/projects';return http.get(path,{'content-type':'application/json'},{})},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"')} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)}};let locale={getLocale:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json'},payload)},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json'},payload)},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json'},payload)},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json'},payload)},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json'},payload)}};let projects={listProjects:function(){let path='/projects';let payload={};return http.get(path,{'content-type':'application/json'},payload)},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"')} if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} -let path='/projects';return http.post(path,{'content-type':'application/json'},{'name':name,'teamId':teamId,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId})},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects';let payload={};if(name){payload.name=name} +if(teamId){payload.teamId=teamId} +if(description){payload.description=description} +if(logo){payload.logo=logo} +if(url){payload.url=url} +if(legalName){payload.legalName=legalName} +if(legalCountry){payload.legalCountry=legalCountry} +if(legalState){payload.legalState=legalState} +if(legalCity){payload.legalCity=legalCity} +if(legalAddress){payload.legalAddress=legalAddress} +if(legalTaxId){payload.legalTaxId=legalTaxId} +return http.post(path,{'content-type':'application/json'},payload)},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'name':name,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId})},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.delete(path,{'content-type':'application/json'},{})},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload.name=name} +if(description){payload.description=description} +if(logo){payload.logo=logo} +if(url){payload.url=url} +if(legalName){payload.legalName=legalName} +if(legalCountry){payload.legalCountry=legalCountry} +if(legalState){payload.legalState=legalState} +if(legalCity){payload.legalCity=legalCity} +if(legalAddress){payload.legalAddress=legalAddress} +if(legalTaxId){payload.legalTaxId=legalTaxId} +return http.patch(path,{'content-type':'application/json'},payload)},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"')} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'scopes':scopes})},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload.name=name} +if(scopes){payload.scopes=scopes} +return http.post(path,{'content-type':'application/json'},payload)},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"')} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.get(path,{'content-type':'application/json'},{})},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"')} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.put(path,{'content-type':'application/json'},{'name':name,'scopes':scopes})},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};if(name){payload.name=name} +if(scopes){payload.scopes=scopes} +return http.put(path,{'content-type':'application/json'},payload)},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"')} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.delete(path,{'content-type':'application/json'},{})},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(provider===undefined){throw new Error('Missing required parameter: "provider"')} -let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'provider':provider,'appId':appId,'secret':secret})},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(provider){payload.provider=provider} +if(appId){payload.appId=appId} +if(secret){payload.secret=secret} +return http.patch(path,{'content-type':'application/json'},payload)},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(type===undefined){throw new Error('Missing required parameter: "type"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'type':type,'name':name,'key':key,'store':store,'url':url})},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(type){payload.type=type} +if(name){payload.name=name} +if(key){payload.key=key} +if(store){payload.store=store} +if(url){payload.url=url} +return http.post(path,{'content-type':'application/json'},payload)},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.get(path,{'content-type':'application/json'},{})},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.put(path,{'content-type':'application/json'},{'name':name,'key':key,'store':store,'url':url})},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};if(name){payload.name=name} +if(key){payload.key=key} +if(store){payload.store=store} +if(url){payload.url=url} +return http.put(path,{'content-type':'application/json'},payload)},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"')} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.delete(path,{'content-type':'application/json'},{})},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(status===undefined){throw new Error('Missing required parameter: "status"')} if(schedule===undefined){throw new Error('Missing required parameter: "schedule"')} if(security===undefined){throw new Error('Missing required parameter: "security"')} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"')} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"')} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass})},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload.name=name} +if(status){payload.status=status} +if(schedule){payload.schedule=schedule} +if(security){payload.security=security} +if(httpMethod){payload.httpMethod=httpMethod} +if(httpUrl){payload.httpUrl=httpUrl} +if(httpHeaders){payload.httpHeaders=httpHeaders} +if(httpUser){payload.httpUser=httpUser} +if(httpPass){payload.httpPass=httpPass} +return http.post(path,{'content-type':'application/json'},payload)},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"')} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.get(path,{'content-type':'application/json'},{})},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(status===undefined){throw new Error('Missing required parameter: "status"')} @@ -105,60 +225,126 @@ if(schedule===undefined){throw new Error('Missing required parameter: "schedule" if(security===undefined){throw new Error('Missing required parameter: "security"')} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"')} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"')} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.put(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass})},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};if(name){payload.name=name} +if(status){payload.status=status} +if(schedule){payload.schedule=schedule} +if(security){payload.security=security} +if(httpMethod){payload.httpMethod=httpMethod} +if(httpUrl){payload.httpUrl=httpUrl} +if(httpHeaders){payload.httpHeaders=httpHeaders} +if(httpUser){payload.httpUser=httpUser} +if(httpPass){payload.httpPass=httpPass} +return http.put(path,{'content-type':'application/json'},payload)},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"')} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.delete(path,{'content-type':'application/json'},{})},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{})},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(events===undefined){throw new Error('Missing required parameter: "events"')} if(url===undefined){throw new Error('Missing required parameter: "url"')} if(security===undefined){throw new Error('Missing required parameter: "security"')} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass})},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload.name=name} +if(events){payload.events=events} +if(url){payload.url=url} +if(security){payload.security=security} +if(httpUser){payload.httpUser=httpUser} +if(httpPass){payload.httpPass=httpPass} +return http.post(path,{'content-type':'application/json'},payload)},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"')} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.get(path,{'content-type':'application/json'},{})},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} if(events===undefined){throw new Error('Missing required parameter: "events"')} if(url===undefined){throw new Error('Missing required parameter: "url"')} if(security===undefined){throw new Error('Missing required parameter: "security"')} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.put(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass})},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};if(name){payload.name=name} +if(events){payload.events=events} +if(url){payload.url=url} +if(security){payload.security=security} +if(httpUser){payload.httpUser=httpUser} +if(httpPass){payload.httpPass=httpPass} +return http.put(path,{'content-type':'application/json'},payload)},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"')} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"')} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.delete(path,{'content-type':'application/json'},{})}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType})},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"')} -let path='/storage/files';return http.post(path,{'content-type':'multipart/form-data'},{'files':files,'read':read,'write':write,'folderId':folderId})},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{})},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.put(path,{'content-type':'application/json'},{'read':read,'write':write,'folderId':folderId})},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.delete(path,{'content-type':'application/json'},{})},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{})},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality,'background':background,'output':output})},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} -let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'as':as})}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType})},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/teams';return http.post(path,{'content-type':'application/json'},{'name':name,'roles':roles})},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{})},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';let payload={};if(search){payload.search=search} +if(limit){payload.limit=limit} +if(offset){payload.offset=offset} +if(orderType){payload.orderType=orderType} +return http.get(path,{'content-type':'application/json'},payload)},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"')} +let path='/storage/files';let payload={};if(files){payload.files=files} +if(read){payload.read=read} +if(write){payload.write=write} +if(folderId){payload.folderId=folderId} +return http.post(path,{'content-type':'multipart/form-data'},payload)},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(read){payload.read=read} +if(write){payload.write=write} +if(folderId){payload.folderId=folderId} +return http.put(path,{'content-type':'application/json'},payload)},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(width){payload.width=width} +if(height){payload.height=height} +if(quality){payload.quality=quality} +if(background){payload.background=background} +if(output){payload.output=output} +return http.get(path,{'content-type':'application/json'},payload)},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"')} +let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(as){payload.as=as} +return http.get(path,{'content-type':'application/json'},payload)}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';let payload={};if(search){payload.search=search} +if(limit){payload.limit=limit} +if(offset){payload.offset=offset} +if(orderType){payload.orderType=orderType} +return http.get(path,{'content-type':'application/json'},payload)},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"')} +let path='/teams';let payload={};if(name){payload.name=name} +if(roles){payload.roles=roles} +return http.post(path,{'content-type':'application/json'},payload)},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} if(name===undefined){throw new Error('Missing required parameter: "name"')} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.put(path,{'content-type':'application/json'},{'name':name})},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.delete(path,{'content-type':'application/json'},{})},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} -let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{})},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(name){payload.name=name} +return http.put(path,{'content-type':'application/json'},payload)},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} if(email===undefined){throw new Error('Missing required parameter: "email"')} if(roles===undefined){throw new Error('Missing required parameter: "roles"')} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"')} -let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);return http.post(path,{'content-type':'application/json'},{'email':email,'name':name,'roles':roles,'redirect':redirect})},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(email){payload.email=email} +if(name){payload.name=name} +if(roles){payload.roles=roles} +if(redirect){payload.redirect=redirect} +return http.post(path,{'content-type':'application/json'},payload)},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"')} -let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.delete(path,{'content-type':'application/json'},{})},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"')} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"')} -let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.post(path,{'content-type':'application/json'},{'redirect':redirect})},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} +let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};if(redirect){payload.redirect=redirect} +return http.post(path,{'content-type':'application/json'},payload)},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"')} 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);let payload={};if(userId){payload.userId=userId} +if(secret){payload.secret=secret} +if(success){payload.success=success} +if(failure){payload.failure=failure} +payload.project=config.project;return iframe('patch',path,payload)}};let users={listUsers:function(search='',limit=25,offset=0,orderType='ASC'){let path='/users';let payload={};if(search){payload.search=search} +if(limit){payload.limit=limit} +if(offset){payload.offset=offset} +if(orderType){payload.orderType=orderType} +return http.get(path,{'content-type':'application/json'},payload)},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"')} -let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{})},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} -let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{})},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{})},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{})},deleteUsersSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users';let payload={};if(email){payload.email=email} +if(password){payload.password=password} +if(name){payload.name=name} +return http.post(path,{'content-type':'application/json'},payload)},getUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},getUserLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},updateUserPrefs:function(userId,prefs){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +if(prefs===undefined){throw new Error('Missing required parameter: "prefs"')} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};if(prefs){payload.prefs=prefs} +return http.patch(path,{'content-type':'application/json'},payload)},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload)},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.delete(path,{'content-type':'application/json'},payload)},deleteUserSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} if(sessionId===undefined){throw new Error('Missing required parameter: "sessionId"')} -let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{'sessionId':sessionId})},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} +let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);let payload={};if(sessionId){payload.sessionId=sessionId} +return http.delete(path,{'content-type':'application/json'},payload)},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"')} if(status===undefined){throw new Error('Missing required parameter: "status"')} -let path='/users/{userId}/status'.replace(new RegExp('{userId}','g'),userId);return http.patch(path,{'content-type':'application/json'},{'status':status})}};return{setEndpoint:setEndpoint,setProject:setProject,setKey:setKey,setLocale:setLocale,setMode:setMode,account:account,auth:auth,avatars:avatars,database:database,locale:locale,projects:projects,storage:storage,teams:teams,users:users}}})(window) \ No newline at end of file +let path='/users/{userId}/status'.replace(new RegExp('{userId}','g'),userId);let payload={};if(status){payload.status=status} +return http.patch(path,{'content-type':'application/json'},payload)}};return{setEndpoint:setEndpoint,setProject:setProject,setKey:setKey,setLocale:setLocale,setMode:setMode,account:account,auth:auth,avatars:avatars,database:database,locale:locale,projects:projects,storage:storage,teams:teams,users:users}};if(typeof module!=="undefined"){module.exports=window.Appwrite}})((typeof window!=="undefined")?window:{}) \ No newline at end of file diff --git a/app/sdks/node/README.md b/app/sdks/node/README.md index 29cf410fdb..286b14bc9d 100644 --- a/app/sdks/node/README.md +++ b/app/sdks/node/README.md @@ -1,7 +1,7 @@ # Appwrite SDK for NodeJS ![License](https://img.shields.io/github/license/appwrite/sdk-for-node.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **This SDK is compatible with Appwrite server version 0.2.0. For older versions, please check previous releases.** diff --git a/app/sdks/node/docs/examples/users/delete-user-session.md b/app/sdks/node/docs/examples/users/delete-user-session.md new file mode 100644 index 0000000000..dab704e2d4 --- /dev/null +++ b/app/sdks/node/docs/examples/users/delete-user-session.md @@ -0,0 +1,19 @@ +const sdk = require('node-appwrite'); + +// Init SDK +let client = new sdk.Client(); + +let users = new sdk.Users(client); + +client + .setProject('') + .setKey('') +; + +let promise = users.deleteUserSession('[USER_ID]', '[SESSION_ID]'); + +promise.then(function (response) { + console.log(response); +}, function (error) { + console.log(error); +}); \ No newline at end of file diff --git a/app/sdks/node/docs/examples/users/update-user-prefs.md b/app/sdks/node/docs/examples/users/update-user-prefs.md new file mode 100644 index 0000000000..beacba0b0a --- /dev/null +++ b/app/sdks/node/docs/examples/users/update-user-prefs.md @@ -0,0 +1,19 @@ +const sdk = require('node-appwrite'); + +// Init SDK +let client = new sdk.Client(); + +let users = new sdk.Users(client); + +client + .setProject('') + .setKey('') +; + +let promise = users.updateUserPrefs('[USER_ID]', '{}'); + +promise.then(function (response) { + console.log(response); +}, function (error) { + console.log(error); +}); \ No newline at end of file diff --git a/app/sdks/node/lib/client.js b/app/sdks/node/lib/client.js index 07deb786af..f3329fe080 100644 --- a/app/sdks/node/lib/client.js +++ b/app/sdks/node/lib/client.js @@ -4,7 +4,7 @@ const request = require('request-promise-native'); class Client { constructor() { - this.endpoint = 'https://https://appwrite.io/v1'; + this.endpoint = 'https://appwrite.io/v1'; this.headers = { 'content-type': '', 'x-sdk-version': 'appwrite:nodejs:1.0.26', @@ -15,7 +15,7 @@ class Client { /** * Set Project * - * Your Appwrite project ID. You can find your project ID in your Appwrite console project settings. + * Your Appwrite project ID * * @param string value * @@ -30,7 +30,7 @@ class Client { /** * Set Key * - * Your Appwrite project secret key. You can can create a new API key from your Appwrite console API keys dashboard. + * Your Appwrite project secret key * * @param string value * diff --git a/app/sdks/node/lib/services/auth.js b/app/sdks/node/lib/services/auth.js index e8bdd2bc2c..f31d24b01f 100644 --- a/app/sdks/node/lib/services/auth.js +++ b/app/sdks/node/lib/services/auth.js @@ -14,7 +14,7 @@ class Auth extends Service { * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies @@ -170,7 +170,7 @@ class Auth extends Service { * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies diff --git a/app/sdks/node/lib/services/locale.js b/app/sdks/node/lib/services/locale.js index 5231e1a1e4..0a9ffad1a9 100644 --- a/app/sdks/node/lib/services/locale.js +++ b/app/sdks/node/lib/services/locale.js @@ -76,9 +76,9 @@ class Locale extends Service { /** * List of currencies * - * List of all currencies, including currency symbol, name, plural, and - * decimal digits for all major and minor currencies. You can use the locale - * header to get the data in supported language. + * List of all currencies, including currency symol, name, plural, and decimal + * digits for all major and minor currencies. You can use the locale header to + * get the data in supported language. * * @throws Exception * @return {} diff --git a/app/sdks/node/lib/services/users.js b/app/sdks/node/lib/services/users.js index c378e329f2..6367acad4b 100644 --- a/app/sdks/node/lib/services/users.js +++ b/app/sdks/node/lib/services/users.js @@ -100,6 +100,26 @@ class Users extends Service { }); } + /** + * Update Account Prefs + * + * Update user preferences by its unique ID. You can pass only the specific + * settings you wish to update. + * + * @param string userId + * @param string prefs + * @throws Exception + * @return {} + */ + async updateUserPrefs(userId, prefs) { + let path = '/users/{userId}/prefs'.replace(new RegExp('{userId}', 'g'), userId); + + return await this.client.call('patch', path, {'content-type': 'application/json'}, + { + 'prefs': prefs + }); + } + /** * Get User Sessions * @@ -144,7 +164,7 @@ class Users extends Service { * @throws Exception * @return {} */ - async deleteUsersSession(userId, sessionId) { + async deleteUserSession(userId, sessionId) { let path = '/users/{userId}/sessions/:session'.replace(new RegExp('{userId}', 'g'), userId); return await this.client.call('delete', path, {'content-type': 'application/json'}, diff --git a/app/sdks/php/README.md b/app/sdks/php/README.md index 50f218e0df..62f8ddf679 100644 --- a/app/sdks/php/README.md +++ b/app/sdks/php/README.md @@ -1,7 +1,7 @@ # Appwrite SDK for PHP ![License](https://img.shields.io/github/license/appwrite/sdk-for-php.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **This SDK is compatible with Appwrite server version 0.2.0. For older versions, please check previous releases.** @@ -13,7 +13,7 @@ Appwrite backend as a service cuts up to 70% of the time and costs required for ## Installation -To install via [Composer](https://getcomposer.org/): +To install via [Composer](http://getcomposer.org/): ```bash composer require appwrite/appwrite @@ -21,4 +21,4 @@ composer require appwrite/appwrite ## License -Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information. +Please see the [BSD-3-Clause license](https://raw.githubusercontent.com/appwrite/appwrite/master/LICENSE) file for more information. \ No newline at end of file diff --git a/app/sdks/php/docs/account.md b/app/sdks/php/docs/account.md index d1772d26cd..a18d978e63 100644 --- a/app/sdks/php/docs/account.md +++ b/app/sdks/php/docs/account.md @@ -3,7 +3,7 @@ ## Get Account ```http request -GET https://https://appwrite.io/v1/account +GET https://appwrite.io/v1/account ``` ** Get currently logged in user data as JSON object. ** @@ -11,7 +11,7 @@ GET https://https://appwrite.io/v1/account ## Delete Account ```http request -DELETE https://https://appwrite.io/v1/account +DELETE https://appwrite.io/v1/account ``` ** Delete currently logged in user account. ** @@ -19,7 +19,7 @@ DELETE https://https://appwrite.io/v1/account ## Update Account Email ```http request -PATCH https://https://appwrite.io/v1/account/email +PATCH https://appwrite.io/v1/account/email ``` ** Update currently logged in user account email address. After changing user address, user confirmation status is being reset and a new confirmation mail is sent. For security measures, user password is required to complete this request. ** @@ -34,7 +34,7 @@ PATCH https://https://appwrite.io/v1/account/email ## Update Account Name ```http request -PATCH https://https://appwrite.io/v1/account/name +PATCH https://appwrite.io/v1/account/name ``` ** Update currently logged in user account name. ** @@ -48,7 +48,7 @@ PATCH https://https://appwrite.io/v1/account/name ## Update Account Password ```http request -PATCH https://https://appwrite.io/v1/account/password +PATCH https://appwrite.io/v1/account/password ``` ** Update currently logged in user password. For validation, user is required to pass the password twice. ** @@ -63,7 +63,7 @@ PATCH https://https://appwrite.io/v1/account/password ## Get Account Preferences ```http request -GET https://https://appwrite.io/v1/account/prefs +GET https://appwrite.io/v1/account/prefs ``` ** Get currently logged in user preferences key-value object. ** @@ -71,7 +71,7 @@ GET https://https://appwrite.io/v1/account/prefs ## Update Account Prefs ```http request -PATCH https://https://appwrite.io/v1/account/prefs +PATCH https://appwrite.io/v1/account/prefs ``` ** Update currently logged in user account preferences. You can pass only the specific settings you wish to update. ** @@ -85,7 +85,7 @@ PATCH https://https://appwrite.io/v1/account/prefs ## Get Account Security Log ```http request -GET https://https://appwrite.io/v1/account/security +GET https://appwrite.io/v1/account/security ``` ** Get currently logged in user list of latest security activity logs. Each log returns user IP address, location and date and time of log. ** @@ -93,7 +93,7 @@ GET https://https://appwrite.io/v1/account/security ## Get Account Active Sessions ```http request -GET https://https://appwrite.io/v1/account/sessions +GET https://appwrite.io/v1/account/sessions ``` ** Get currently logged in user list of active sessions across different devices. ** diff --git a/app/sdks/php/docs/auth.md b/app/sdks/php/docs/auth.md index 5cf2481975..19fd6d4a0e 100644 --- a/app/sdks/php/docs/auth.md +++ b/app/sdks/php/docs/auth.md @@ -3,14 +3,14 @@ ## Login User ```http request -POST https://https://appwrite.io/v1/auth/login +POST https://appwrite.io/v1/auth/login ``` ** Allow the user to login into his account by providing a valid email and password combination. Use the success and failure arguments to provide a redirect URL\'s back to your app when login is completed. Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. -When accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. ** +When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. ** ### Parameters @@ -24,7 +24,7 @@ When accessing this route using JavaScript from the browser, success and failure ## Logout Current Session ```http request -DELETE https://https://appwrite.io/v1/auth/logout +DELETE https://appwrite.io/v1/auth/logout ``` ** Use this endpoint to log out the currently logged in user from his account. When succeed this endpoint will delete the user session and remove the session secret cookie from the user client. ** @@ -32,7 +32,7 @@ DELETE https://https://appwrite.io/v1/auth/logout ## Logout Specific Session ```http request -DELETE https://https://appwrite.io/v1/auth/logout/{id} +DELETE https://appwrite.io/v1/auth/logout/{id} ``` ** Use this endpoint to log out the currently logged in user from all his account sessions across all his different devices. When using the option id argument, only the session unique ID provider will be deleted. ** @@ -46,7 +46,7 @@ DELETE https://https://appwrite.io/v1/auth/logout/{id} ## OAuth Login ```http request -GET https://https://appwrite.io/v1/auth/oauth/{provider} +GET https://appwrite.io/v1/auth/oauth/{provider} ``` ### Parameters @@ -60,7 +60,7 @@ GET https://https://appwrite.io/v1/auth/oauth/{provider} ## Password Recovery ```http request -POST https://https://appwrite.io/v1/auth/recovery +POST https://appwrite.io/v1/auth/recovery ``` ** Sends the user an email with a temporary secret token for password reset. When the user clicks the confirmation link he is redirected back to your app password reset redirect URL with a secret token and email address values attached to the URL query string. Use the query string params to submit a request to the /auth/password/reset endpoint to complete the process. ** @@ -75,7 +75,7 @@ POST https://https://appwrite.io/v1/auth/recovery ## Password Reset ```http request -PUT https://https://appwrite.io/v1/auth/recovery/reset +PUT https://appwrite.io/v1/auth/recovery/reset ``` ** Use this endpoint to complete the user account password reset. Both the **userId** and **token** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the /auth/recovery endpoint. @@ -94,7 +94,7 @@ Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWA ## Register User ```http request -POST https://https://appwrite.io/v1/auth/register +POST https://appwrite.io/v1/auth/register ``` ** Use this endpoint to allow a new user to register an account in your project. Use the success and failure URL's to redirect users back to your application after signup completes. @@ -103,7 +103,7 @@ If registration completes successfully user will be sent with a confirmation ema Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. -When accessing this route using JavaScript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. ** +When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. ** ### Parameters @@ -119,7 +119,7 @@ When accessing this route using JavaScript from the browser, success and failure ## Confirm User ```http request -POST https://https://appwrite.io/v1/auth/register/confirm +POST https://appwrite.io/v1/auth/register/confirm ``` ** Use this endpoint to complete the confirmation of the user account email address. Both the **userId** and **token** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the /auth/register endpoint. ** @@ -134,7 +134,7 @@ POST https://https://appwrite.io/v1/auth/register/confirm ## Resend Confirmation ```http request -POST https://https://appwrite.io/v1/auth/register/confirm/resend +POST https://appwrite.io/v1/auth/register/confirm/resend ``` ** This endpoint allows the user to request your app to resend him his email confirmation message. The redirect arguments acts the same way as in /auth/register endpoint. diff --git a/app/sdks/php/docs/avatars.md b/app/sdks/php/docs/avatars.md index 11a7beeddc..9c1c3018aa 100644 --- a/app/sdks/php/docs/avatars.md +++ b/app/sdks/php/docs/avatars.md @@ -3,7 +3,7 @@ ## Get Browser Icon ```http request -GET https://https://appwrite.io/v1/avatars/browsers/{code} +GET https://appwrite.io/v1/avatars/browsers/{code} ``` ** You can use this endpoint to show different browser icons to your users, The code argument receives the browser code as appear in your user /account/sessions endpoint. Use width, height and quality arguments to change the output settings. ** @@ -20,7 +20,7 @@ GET https://https://appwrite.io/v1/avatars/browsers/{code} ## Get Credit Card Icon ```http request -GET https://https://appwrite.io/v1/avatars/credit-cards/{code} +GET https://appwrite.io/v1/avatars/credit-cards/{code} ``` ** Need to display your users with your billing method or there payment methods? The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings. ** @@ -37,7 +37,7 @@ GET https://https://appwrite.io/v1/avatars/credit-cards/{code} ## Get Favicon ```http request -GET https://https://appwrite.io/v1/avatars/favicon +GET https://appwrite.io/v1/avatars/favicon ``` ** Use this endpoint to fetch the favorite icon (AKA favicon) of a any remote website URL. ** @@ -51,7 +51,7 @@ GET https://https://appwrite.io/v1/avatars/favicon ## Get Country Flag ```http request -GET https://https://appwrite.io/v1/avatars/flags/{code} +GET https://appwrite.io/v1/avatars/flags/{code} ``` ** You can use this endpoint to show different country flags icons to your users, The code argument receives the a 2 letter country code. Use width, height and quality arguments to change the output settings. ** @@ -68,7 +68,7 @@ GET https://https://appwrite.io/v1/avatars/flags/{code} ## Get Image from URL ```http request -GET https://https://appwrite.io/v1/avatars/image +GET https://appwrite.io/v1/avatars/image ``` ** Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in cases, you want to make sure a 3rd party image is properly served using a TLS protocol. ** @@ -84,7 +84,7 @@ GET https://https://appwrite.io/v1/avatars/image ## Text to QR Generator ```http request -GET https://https://appwrite.io/v1/avatars/qr +GET https://appwrite.io/v1/avatars/qr ``` ** Converts a given plain text to a QR code image. You can use the query parameters to change the size and style of the resulting image. ** diff --git a/app/sdks/php/docs/database.md b/app/sdks/php/docs/database.md index 33d8e2d9bd..3ab8bda823 100644 --- a/app/sdks/php/docs/database.md +++ b/app/sdks/php/docs/database.md @@ -3,7 +3,7 @@ ## List Collections ```http request -GET https://https://appwrite.io/v1/database +GET https://appwrite.io/v1/database ``` ** Get a list of all the user collections. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project collections. [Learn more about different API modes](/docs/modes). ** @@ -20,7 +20,7 @@ GET https://https://appwrite.io/v1/database ## Create Collection ```http request -POST https://https://appwrite.io/v1/database +POST https://appwrite.io/v1/database ``` ** Create a new Collection. ** @@ -37,7 +37,7 @@ POST https://https://appwrite.io/v1/database ## Get Collection ```http request -GET https://https://appwrite.io/v1/database/{collectionId} +GET https://appwrite.io/v1/database/{collectionId} ``` ** Get collection by its unique ID. This endpoint response returns a JSON object with the collection metadata. ** @@ -51,7 +51,7 @@ GET https://https://appwrite.io/v1/database/{collectionId} ## Update Collection ```http request -PUT https://https://appwrite.io/v1/database/{collectionId} +PUT https://appwrite.io/v1/database/{collectionId} ``` ** Update collection by its unique ID. ** @@ -69,7 +69,7 @@ PUT https://https://appwrite.io/v1/database/{collectionId} ## Delete Collection ```http request -DELETE https://https://appwrite.io/v1/database/{collectionId} +DELETE https://appwrite.io/v1/database/{collectionId} ``` ** Delete a collection by its unique ID. Only users with write permissions have access to delete this resource. ** @@ -83,7 +83,7 @@ DELETE https://https://appwrite.io/v1/database/{collectionId} ## List Documents ```http request -GET https://https://appwrite.io/v1/database/{collectionId}/documents +GET https://appwrite.io/v1/database/{collectionId}/documents ``` ** Get a list of all the user documents. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project documents. [Learn more about different API modes](/docs/modes). ** @@ -106,7 +106,7 @@ GET https://https://appwrite.io/v1/database/{collectionId}/documents ## Create Document ```http request -POST https://https://appwrite.io/v1/database/{collectionId}/documents +POST https://appwrite.io/v1/database/{collectionId}/documents ``` ** Create a new Document. ** @@ -126,7 +126,7 @@ POST https://https://appwrite.io/v1/database/{collectionId}/documents ## Get Document ```http request -GET https://https://appwrite.io/v1/database/{collectionId}/documents/{documentId} +GET https://appwrite.io/v1/database/{collectionId}/documents/{documentId} ``` ** Get document by its unique ID. This endpoint response returns a JSON object with the document data. ** @@ -141,7 +141,7 @@ GET https://https://appwrite.io/v1/database/{collectionId}/documents/{documentId ## Update Document ```http request -PATCH https://https://appwrite.io/v1/database/{collectionId}/documents/{documentId} +PATCH https://appwrite.io/v1/database/{collectionId}/documents/{documentId} ``` ### Parameters @@ -157,7 +157,7 @@ PATCH https://https://appwrite.io/v1/database/{collectionId}/documents/{document ## Delete Document ```http request -DELETE https://https://appwrite.io/v1/database/{collectionId}/documents/{documentId} +DELETE https://appwrite.io/v1/database/{collectionId}/documents/{documentId} ``` ** Delete document by its unique ID. This endpoint deletes only the parent documents, his attributes and relations to other documents. Child documents **will not** be deleted. ** diff --git a/app/sdks/php/docs/examples/projects/create-task.md b/app/sdks/php/docs/examples/projects/create-task.md index fab9e27653..436ebc6f06 100644 --- a/app/sdks/php/docs/examples/projects/create-task.md +++ b/app/sdks/php/docs/examples/projects/create-task.md @@ -12,4 +12,4 @@ $client $projects = new Projects($client); -$result = $projects->createTask('[PROJECT_ID]', '[NAME]', 'play', '', 0, 'GET', 'https://example.com'); \ No newline at end of file +$result = $projects->createTask('[PROJECT_ID]', '[NAME]', 'play', '', 1, 'GET', 'https://example.com'); \ No newline at end of file diff --git a/app/sdks/php/docs/examples/projects/update-webhook.md b/app/sdks/php/docs/examples/projects/update-webhook.md index a7e42dcce2..6f176a01fb 100644 --- a/app/sdks/php/docs/examples/projects/update-webhook.md +++ b/app/sdks/php/docs/examples/projects/update-webhook.md @@ -12,4 +12,4 @@ $client $projects = new Projects($client); -$result = $projects->updateWebhook('[PROJECT_ID]', '[WEBHOOK_ID]', '[NAME]', [], '[URL]', 0); \ No newline at end of file +$result = $projects->updateWebhook('[PROJECT_ID]', '[WEBHOOK_ID]', '[NAME]', [], '[URL]', 1); \ No newline at end of file diff --git a/app/sdks/php/docs/examples/users/delete-user-session.md b/app/sdks/php/docs/examples/users/delete-user-session.md new file mode 100644 index 0000000000..28ad6dd165 --- /dev/null +++ b/app/sdks/php/docs/examples/users/delete-user-session.md @@ -0,0 +1,15 @@ +setProject('') + ->setKey('') +; + +$users = new Users($client); + +$result = $users->deleteUserSession('[USER_ID]', '[SESSION_ID]'); \ No newline at end of file diff --git a/app/sdks/php/docs/examples/users/update-user-prefs.md b/app/sdks/php/docs/examples/users/update-user-prefs.md new file mode 100644 index 0000000000..073df70bd3 --- /dev/null +++ b/app/sdks/php/docs/examples/users/update-user-prefs.md @@ -0,0 +1,15 @@ +setProject('') + ->setKey('') +; + +$users = new Users($client); + +$result = $users->updateUserPrefs('[USER_ID]', '{}'); \ No newline at end of file diff --git a/app/sdks/php/docs/locale.md b/app/sdks/php/docs/locale.md index 5ea8ab37fb..91956eee3b 100644 --- a/app/sdks/php/docs/locale.md +++ b/app/sdks/php/docs/locale.md @@ -3,7 +3,7 @@ ## Get User Locale ```http request -GET https://https://appwrite.io/v1/locale +GET https://appwrite.io/v1/locale ``` ** Get the current user location based on IP. Returns an object with user country code, country name, continent name, continent code, ip address and suggested currency. You can use the locale header to get the data in supported language. ** @@ -11,7 +11,7 @@ GET https://https://appwrite.io/v1/locale ## List Countries ```http request -GET https://https://appwrite.io/v1/locale/countries +GET https://appwrite.io/v1/locale/countries ``` ** List of all countries. You can use the locale header to get the data in supported language. ** @@ -19,7 +19,7 @@ GET https://https://appwrite.io/v1/locale/countries ## List EU Countries ```http request -GET https://https://appwrite.io/v1/locale/countries/eu +GET https://appwrite.io/v1/locale/countries/eu ``` ** List of all countries that are currently members of the EU. You can use the locale header to get the data in supported language. UK brexit date is currently set to 2019-10-31 and will be updated if and when needed. ** @@ -27,7 +27,7 @@ GET https://https://appwrite.io/v1/locale/countries/eu ## List Countries Phone Codes ```http request -GET https://https://appwrite.io/v1/locale/countries/phones +GET https://appwrite.io/v1/locale/countries/phones ``` ** List of all countries phone codes. You can use the locale header to get the data in supported language. ** @@ -35,8 +35,8 @@ GET https://https://appwrite.io/v1/locale/countries/phones ## List of currencies ```http request -GET https://https://appwrite.io/v1/locale/currencies +GET https://appwrite.io/v1/locale/currencies ``` -** List of all currencies, including currency symbol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in supported language. ** +** List of all currencies, including currency symol, name, plural, and decimal digits for all major and minor currencies. You can use the locale header to get the data in supported language. ** diff --git a/app/sdks/php/docs/projects.md b/app/sdks/php/docs/projects.md index 6db3e1b510..bc4026970d 100644 --- a/app/sdks/php/docs/projects.md +++ b/app/sdks/php/docs/projects.md @@ -3,13 +3,13 @@ ## List Projects ```http request -GET https://https://appwrite.io/v1/projects +GET https://appwrite.io/v1/projects ``` ## Create Project ```http request -POST https://https://appwrite.io/v1/projects +POST https://appwrite.io/v1/projects ``` ### Parameters @@ -31,7 +31,7 @@ POST https://https://appwrite.io/v1/projects ## Get Project ```http request -GET https://https://appwrite.io/v1/projects/{projectId} +GET https://appwrite.io/v1/projects/{projectId} ``` ### Parameters @@ -43,7 +43,7 @@ GET https://https://appwrite.io/v1/projects/{projectId} ## Update Project ```http request -PATCH https://https://appwrite.io/v1/projects/{projectId} +PATCH https://appwrite.io/v1/projects/{projectId} ``` ### Parameters @@ -65,7 +65,7 @@ PATCH https://https://appwrite.io/v1/projects/{projectId} ## Delete Project ```http request -DELETE https://https://appwrite.io/v1/projects/{projectId} +DELETE https://appwrite.io/v1/projects/{projectId} ``` ### Parameters @@ -77,7 +77,7 @@ DELETE https://https://appwrite.io/v1/projects/{projectId} ## List Keys ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/keys +GET https://appwrite.io/v1/projects/{projectId}/keys ``` ### Parameters @@ -89,7 +89,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/keys ## Create Key ```http request -POST https://https://appwrite.io/v1/projects/{projectId}/keys +POST https://appwrite.io/v1/projects/{projectId}/keys ``` ### Parameters @@ -103,7 +103,7 @@ POST https://https://appwrite.io/v1/projects/{projectId}/keys ## Get Key ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} +GET https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ``` ### Parameters @@ -116,7 +116,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ## Update Key ```http request -PUT https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} +PUT https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ``` ### Parameters @@ -131,7 +131,7 @@ PUT https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ## Delete Key ```http request -DELETE https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} +DELETE https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ``` ### Parameters @@ -144,7 +144,7 @@ DELETE https://https://appwrite.io/v1/projects/{projectId}/keys/{keyId} ## Update Project OAuth ```http request -PATCH https://https://appwrite.io/v1/projects/{projectId}/oauth +PATCH https://appwrite.io/v1/projects/{projectId}/oauth ``` ### Parameters @@ -159,7 +159,7 @@ PATCH https://https://appwrite.io/v1/projects/{projectId}/oauth ## List Platforms ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/platforms +GET https://appwrite.io/v1/projects/{projectId}/platforms ``` ### Parameters @@ -171,7 +171,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/platforms ## Create Platform ```http request -POST https://https://appwrite.io/v1/projects/{projectId}/platforms +POST https://appwrite.io/v1/projects/{projectId}/platforms ``` ### Parameters @@ -188,7 +188,7 @@ POST https://https://appwrite.io/v1/projects/{projectId}/platforms ## Get Platform ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} +GET https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} ``` ### Parameters @@ -201,7 +201,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} ## Update Platform ```http request -PUT https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} +PUT https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} ``` ### Parameters @@ -218,7 +218,7 @@ PUT https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} ## Delete Platform ```http request -DELETE https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} +DELETE https://appwrite.io/v1/projects/{projectId}/platforms/{platformId} ``` ### Parameters @@ -231,7 +231,7 @@ DELETE https://https://appwrite.io/v1/projects/{projectId}/platforms/{platformId ## List Tasks ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/tasks +GET https://appwrite.io/v1/projects/{projectId}/tasks ``` ### Parameters @@ -243,7 +243,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/tasks ## Create Task ```http request -POST https://https://appwrite.io/v1/projects/{projectId}/tasks +POST https://appwrite.io/v1/projects/{projectId}/tasks ``` ### Parameters @@ -264,7 +264,7 @@ POST https://https://appwrite.io/v1/projects/{projectId}/tasks ## Get Task ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} +GET https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ``` ### Parameters @@ -277,7 +277,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ## Update Task ```http request -PUT https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} +PUT https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ``` ### Parameters @@ -299,7 +299,7 @@ PUT https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ## Delete Task ```http request -DELETE https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} +DELETE https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ``` ### Parameters @@ -312,7 +312,7 @@ DELETE https://https://appwrite.io/v1/projects/{projectId}/tasks/{taskId} ## Get Project ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/usage +GET https://appwrite.io/v1/projects/{projectId}/usage ``` ### Parameters @@ -324,7 +324,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/usage ## List Webhooks ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/webhooks +GET https://appwrite.io/v1/projects/{projectId}/webhooks ``` ### Parameters @@ -336,7 +336,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/webhooks ## Create Webhook ```http request -POST https://https://appwrite.io/v1/projects/{projectId}/webhooks +POST https://appwrite.io/v1/projects/{projectId}/webhooks ``` ### Parameters @@ -354,7 +354,7 @@ POST https://https://appwrite.io/v1/projects/{projectId}/webhooks ## Get Webhook ```http request -GET https://https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} +GET https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} ``` ### Parameters @@ -367,7 +367,7 @@ GET https://https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} ## Update Webhook ```http request -PUT https://https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} +PUT https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} ``` ### Parameters @@ -386,7 +386,7 @@ PUT https://https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} ## Delete Webhook ```http request -DELETE https://https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} +DELETE https://appwrite.io/v1/projects/{projectId}/webhooks/{webhookId} ``` ### Parameters diff --git a/app/sdks/php/docs/storage.md b/app/sdks/php/docs/storage.md index fd9268ef8e..177357eea1 100644 --- a/app/sdks/php/docs/storage.md +++ b/app/sdks/php/docs/storage.md @@ -3,7 +3,7 @@ ## List Files ```http request -GET https://https://appwrite.io/v1/storage/files +GET https://appwrite.io/v1/storage/files ``` ** Get a list of all the user files. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project files. [Learn more about different API modes](/docs/modes). ** @@ -20,7 +20,7 @@ GET https://https://appwrite.io/v1/storage/files ## Create File ```http request -POST https://https://appwrite.io/v1/storage/files +POST https://appwrite.io/v1/storage/files ``` ** Create a new file. The user who creates the file will automatically be assigned to read and write access unless he has passed custom values for read and write arguments. ** @@ -37,7 +37,7 @@ POST https://https://appwrite.io/v1/storage/files ## Get File ```http request -GET https://https://appwrite.io/v1/storage/files/{fileId} +GET https://appwrite.io/v1/storage/files/{fileId} ``` ** Get file by its unique ID. This endpoint response returns a JSON object with the file metadata. ** @@ -51,7 +51,7 @@ GET https://https://appwrite.io/v1/storage/files/{fileId} ## Update File ```http request -PUT https://https://appwrite.io/v1/storage/files/{fileId} +PUT https://appwrite.io/v1/storage/files/{fileId} ``` ** Update file by its unique ID. Only users with write permissions have access to update this resource. ** @@ -68,7 +68,7 @@ PUT https://https://appwrite.io/v1/storage/files/{fileId} ## Delete File ```http request -DELETE https://https://appwrite.io/v1/storage/files/{fileId} +DELETE https://appwrite.io/v1/storage/files/{fileId} ``` ** Delete a file by its unique ID. Only users with write permissions have access to delete this resource. ** @@ -82,7 +82,7 @@ DELETE https://https://appwrite.io/v1/storage/files/{fileId} ## Get File for Download ```http request -GET https://https://appwrite.io/v1/storage/files/{fileId}/download +GET https://appwrite.io/v1/storage/files/{fileId}/download ``` ** Get file content by its unique ID. The endpoint response return with a 'Content-Disposition: attachment' header that tells the browser to start downloading the file to user downloads directory. ** @@ -96,7 +96,7 @@ GET https://https://appwrite.io/v1/storage/files/{fileId}/download ## Get File Preview ```http request -GET https://https://appwrite.io/v1/storage/files/{fileId}/preview +GET https://appwrite.io/v1/storage/files/{fileId}/preview ``` ** Get file preview image. Currently, this method supports preview for image files (jpg, png, and gif), other supported formats, like pdf, docs, slides, and spreadsheets will return file icon image. You can also pass query string arguments for cutting and resizing your preview image. ** @@ -115,7 +115,7 @@ GET https://https://appwrite.io/v1/storage/files/{fileId}/preview ## Get File for View ```http request -GET https://https://appwrite.io/v1/storage/files/{fileId}/view +GET https://appwrite.io/v1/storage/files/{fileId}/view ``` ** Get file content by its unique ID. This endpoint is similar to the download method but returns with no 'Content-Disposition: attachment' header. ** diff --git a/app/sdks/php/docs/teams.md b/app/sdks/php/docs/teams.md index e71ca83e8f..8d6e7f2321 100644 --- a/app/sdks/php/docs/teams.md +++ b/app/sdks/php/docs/teams.md @@ -3,7 +3,7 @@ ## List Teams ```http request -GET https://https://appwrite.io/v1/teams +GET https://appwrite.io/v1/teams ``` ** Get a list of all the current user teams. You can use the query params to filter your results. On admin mode, this endpoint will return a list of all of the project teams. [Learn more about different API modes](/docs/modes). ** @@ -20,7 +20,7 @@ GET https://https://appwrite.io/v1/teams ## Create Team ```http request -POST https://https://appwrite.io/v1/teams +POST https://appwrite.io/v1/teams ``` ** Create a new team. The user who creates the team will automatically be assigned as the owner of the team. The team owner can invite new members, who will be able add new owners and update or delete the team from your project. ** @@ -35,7 +35,7 @@ POST https://https://appwrite.io/v1/teams ## Get Team ```http request -GET https://https://appwrite.io/v1/teams/{teamId} +GET https://appwrite.io/v1/teams/{teamId} ``` ** Get team by its unique ID. All team members have read access for this resource. ** @@ -49,7 +49,7 @@ GET https://https://appwrite.io/v1/teams/{teamId} ## Update Team ```http request -PUT https://https://appwrite.io/v1/teams/{teamId} +PUT https://appwrite.io/v1/teams/{teamId} ``` ** Update team by its unique ID. Only team owners have write access for this resource. ** @@ -64,7 +64,7 @@ PUT https://https://appwrite.io/v1/teams/{teamId} ## Delete Team ```http request -DELETE https://https://appwrite.io/v1/teams/{teamId} +DELETE https://appwrite.io/v1/teams/{teamId} ``` ** Delete team by its unique ID. Only team owners have write access for this resource. ** @@ -78,7 +78,7 @@ DELETE https://https://appwrite.io/v1/teams/{teamId} ## Get Team Members ```http request -GET https://https://appwrite.io/v1/teams/{teamId}/members +GET https://appwrite.io/v1/teams/{teamId}/members ``` ** Get team members by the team unique ID. All team members have read access for this list of resources. ** @@ -92,7 +92,7 @@ GET https://https://appwrite.io/v1/teams/{teamId}/members ## Create Team Membership ```http request -POST https://https://appwrite.io/v1/teams/{teamId}/memberships +POST https://appwrite.io/v1/teams/{teamId}/memberships ``` ** Use this endpoint to invite a new member to your team. An email with a link to join the team will be sent to the new member email address. If member doesn't exists in the project it will be automatically created. @@ -114,7 +114,7 @@ Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWA ## Delete Team Membership ```http request -DELETE https://https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId} +DELETE https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId} ``` ** This endpoint allows a user to leave a team or for a team owner to delete the membership of any other team member. ** @@ -129,7 +129,7 @@ DELETE https://https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId} ## Create Team Membership (Resend) ```http request -POST https://https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId}/resend +POST https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId}/resend ``` ** Use this endpoint to resend your invitation email for a user to join a team. ** @@ -145,7 +145,7 @@ POST https://https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId}/resend ## Update Team Membership Status ```http request -PATCH https://https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId}/status +PATCH https://appwrite.io/v1/teams/{teamId}/memberships/{inviteId}/status ``` ** Use this endpoint to let user accept an invitation to join a team after he is being redirect back to your app from the invitation email. Use the success and failure URL's to redirect users back to your application after the request completes. diff --git a/app/sdks/php/docs/users.md b/app/sdks/php/docs/users.md index abd22e4884..dba2aa35d0 100644 --- a/app/sdks/php/docs/users.md +++ b/app/sdks/php/docs/users.md @@ -3,7 +3,7 @@ ## List Users ```http request -GET https://https://appwrite.io/v1/users +GET https://appwrite.io/v1/users ``` ** Get a list of all the project users. You can use the query params to filter your results. ** @@ -20,7 +20,7 @@ GET https://https://appwrite.io/v1/users ## Create User ```http request -POST https://https://appwrite.io/v1/users +POST https://appwrite.io/v1/users ``` ** Create a new user. ** @@ -36,7 +36,7 @@ POST https://https://appwrite.io/v1/users ## Get User ```http request -GET https://https://appwrite.io/v1/users/{userId} +GET https://appwrite.io/v1/users/{userId} ``` ** Get user by its unique ID. ** @@ -50,7 +50,7 @@ GET https://https://appwrite.io/v1/users/{userId} ## Get User Logs ```http request -GET https://https://appwrite.io/v1/users/{userId}/logs +GET https://appwrite.io/v1/users/{userId}/logs ``` ** Get user activity logs list by its unique ID. ** @@ -64,7 +64,7 @@ GET https://https://appwrite.io/v1/users/{userId}/logs ## Get User Prefs ```http request -GET https://https://appwrite.io/v1/users/{userId}/prefs +GET https://appwrite.io/v1/users/{userId}/prefs ``` ** Get user preferences by its unique ID. ** @@ -75,10 +75,25 @@ GET https://https://appwrite.io/v1/users/{userId}/prefs | --- | --- | --- | --- | | userId | string | **Required** User unique ID. | | +## Update Account Prefs + +```http request +PATCH https://appwrite.io/v1/users/{userId}/prefs +``` + +** Update user preferences by its unique ID. You can pass only the specific settings you wish to update. ** + +### Parameters + +| Field Name | Type | Description | Default | +| --- | --- | --- | --- | +| userId | string | **Required** User unique ID. | | +| prefs | string | Prefs key-value JSON object string. | | + ## Get User Sessions ```http request -GET https://https://appwrite.io/v1/users/{userId}/sessions +GET https://appwrite.io/v1/users/{userId}/sessions ``` ** Get user sessions list by its unique ID. ** @@ -92,7 +107,7 @@ GET https://https://appwrite.io/v1/users/{userId}/sessions ## Delete User Sessions ```http request -DELETE https://https://appwrite.io/v1/users/{userId}/sessions +DELETE https://appwrite.io/v1/users/{userId}/sessions ``` ** Delete all user sessions by its unique ID. ** @@ -106,7 +121,7 @@ DELETE https://https://appwrite.io/v1/users/{userId}/sessions ## Delete User Session ```http request -DELETE https://https://appwrite.io/v1/users/{userId}/sessions/:session +DELETE https://appwrite.io/v1/users/{userId}/sessions/:session ``` ** Delete user sessions by its unique ID. ** @@ -121,7 +136,7 @@ DELETE https://https://appwrite.io/v1/users/{userId}/sessions/:session ## Update user status ```http request -PATCH https://https://appwrite.io/v1/users/{userId}/status +PATCH https://appwrite.io/v1/users/{userId}/status ``` ** Update user status by its unique ID. ** diff --git a/app/sdks/php/src/Appwrite/Client.php b/app/sdks/php/src/Appwrite/Client.php index 0a07f6588d..29240ec495 100644 --- a/app/sdks/php/src/Appwrite/Client.php +++ b/app/sdks/php/src/Appwrite/Client.php @@ -28,7 +28,7 @@ class Client * * @var string */ - protected $endpoint = 'https://https://appwrite.io/v1'; + protected $endpoint = 'https://appwrite.io/v1'; /** * Global Headers @@ -50,7 +50,7 @@ class Client /** * Set Project * - * Your Appwrite project ID. You can find your project ID in your Appwrite console project settings. + * Your Appwrite project ID * * @param string $value * @@ -66,7 +66,7 @@ class Client /** * Set Key * - * Your Appwrite project secret key. You can can create a new API key from your Appwrite console API keys dashboard. + * Your Appwrite project secret key * * @param string $value * diff --git a/app/sdks/php/src/Appwrite/Services/Auth.php b/app/sdks/php/src/Appwrite/Services/Auth.php index aa0c32c3f2..dae305144c 100644 --- a/app/sdks/php/src/Appwrite/Services/Auth.php +++ b/app/sdks/php/src/Appwrite/Services/Auth.php @@ -20,7 +20,7 @@ class Auth extends Service * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies @@ -188,7 +188,7 @@ class Auth extends Service * the only valid redirect URL's are the once from domains you have set when * added your platforms in the console interface. * - * When accessing this route using JavaScript from the browser, success and + * When accessing this route using Javascript from the browser, success and * failure parameter URLs are required. Appwrite server will respond with a * 301 redirect status code and will set the user session cookie. This * behavior is enforced because modern browsers are limiting 3rd party cookies diff --git a/app/sdks/php/src/Appwrite/Services/Locale.php b/app/sdks/php/src/Appwrite/Services/Locale.php index b03c1c3e73..1ae5ae0427 100644 --- a/app/sdks/php/src/Appwrite/Services/Locale.php +++ b/app/sdks/php/src/Appwrite/Services/Locale.php @@ -90,9 +90,9 @@ class Locale extends Service /** * List of currencies * - * List of all currencies, including currency symbol, name, plural, and - * decimal digits for all major and minor currencies. You can use the locale - * header to get the data in supported language. + * List of all currencies, including currency symol, name, plural, and decimal + * digits for all major and minor currencies. You can use the locale header to + * get the data in supported language. * * @throws Exception * @return array diff --git a/app/sdks/php/src/Appwrite/Services/Users.php b/app/sdks/php/src/Appwrite/Services/Users.php index 3b893c0e96..89d97f1893 100644 --- a/app/sdks/php/src/Appwrite/Services/Users.php +++ b/app/sdks/php/src/Appwrite/Services/Users.php @@ -116,6 +116,28 @@ class Users extends Service ], $params); } + /** + * Update Account Prefs + * + * Update user preferences by its unique ID. You can pass only the specific + * settings you wish to update. + * + * @param string $userId + * @param string $prefs + * @throws Exception + * @return array + */ + public function updateUserPrefs($userId, $prefs) + { + $path = str_replace(['{userId}'], [$userId], '/users/{userId}/prefs'); + $params = []; + + $params['prefs'] = $prefs; + + return $this->client->call(Client::METHOD_PATCH, $path, [ + ], $params); + } + /** * Get User Sessions * @@ -164,7 +186,7 @@ class Users extends Service * @throws Exception * @return array */ - public function deleteUsersSession($userId, $sessionId) + public function deleteUserSession($userId, $sessionId) { $path = str_replace(['{userId}'], [$userId], '/users/{userId}/sessions/:session'); $params = []; diff --git a/app/sdks/python/README.md b/app/sdks/python/README.md index 2ced831bf7..16f76cf3be 100644 --- a/app/sdks/python/README.md +++ b/app/sdks/python/README.md @@ -1,7 +1,7 @@ # Appwrite SDK for Python ![License](https://img.shields.io/github/license/appwrite/sdk-for-python.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).** diff --git a/app/sdks/python/appwrite/client.py b/app/sdks/python/appwrite/client.py index 0de0b48346..835c3ba011 100644 --- a/app/sdks/python/appwrite/client.py +++ b/app/sdks/python/appwrite/client.py @@ -4,7 +4,7 @@ import requests class Client: def __init__(self): self._self_signed = False - self._endpoint = 'https://https://appwrite.io/v1' + self._endpoint = 'https://appwrite.io/v1' self._global_headers = { 'content-type': '', 'x-sdk-version': 'appwrite:python:1.0.0', @@ -23,13 +23,13 @@ class Client: return self def set_project(self, value): - """Your Appwrite project ID. You can find your project ID in your Appwrite console project settings.""" + """Your Appwrite project ID""" self._global_headers['x-appwrite-project'] = value.lower() return self def set_key(self, value): - """Your Appwrite project secret key. You can can create a new API key from your Appwrite console API keys dashboard.""" + """Your Appwrite project secret key""" self._global_headers['x-appwrite-key'] = value.lower() return self diff --git a/app/sdks/python/appwrite/services/users.py b/app/sdks/python/appwrite/services/users.py index 33e26d7d56..abafb6aa1f 100644 --- a/app/sdks/python/appwrite/services/users.py +++ b/app/sdks/python/appwrite/services/users.py @@ -58,6 +58,17 @@ class Users(Service): return self.client.call('get', path, { }, params) + def update_user_prefs(self, user_id, prefs): + """Update Account Prefs""" + + params = {} + path = '/users/{userId}/prefs' + path.replace('{userId}', user_id) + params['prefs'] = prefs + + return self.client.call('patch', path, { + }, params) + def get_user_sessions(self, user_id): """Get User Sessions""" @@ -78,7 +89,7 @@ class Users(Service): return self.client.call('delete', path, { }, params) - def delete_users_session(self, user_id, session_id): + def delete_user_session(self, user_id, session_id): """Delete User Session""" params = {} diff --git a/app/sdks/ruby/README.md b/app/sdks/ruby/README.md index 4124c7550a..600f40a33d 100644 --- a/app/sdks/ruby/README.md +++ b/app/sdks/ruby/README.md @@ -1,7 +1,7 @@ # Appwrite SDK for Ruby ![License](https://img.shields.io/github/license/appwrite/sdk-for-ruby.svg?v=1) -![Version](https://img.shields.io/badge/api%20version-latest-blue.svg?v=1) +![Version](https://img.shields.io/badge/api%20version-0.2.0-blue.svg?v=1) **WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).** diff --git a/app/sdks/ruby/lib/appwrite/services/users.rb b/app/sdks/ruby/lib/appwrite/services/users.rb index eed594d004..b2ffc4fd0e 100644 --- a/app/sdks/ruby/lib/appwrite/services/users.rb +++ b/app/sdks/ruby/lib/appwrite/services/users.rb @@ -61,6 +61,18 @@ module Appwrite }, params); end + def update_user_prefs(user_id:, prefs:) + path = '/users/{userId}/prefs' + .gsub('{user_id}', user_id) + + params = { + 'prefs': prefs + } + + return @client.call('patch', path, { + }, params); + end + def get_user_sessions(user_id:) path = '/users/{userId}/sessions' .gsub('{user_id}', user_id) @@ -83,7 +95,7 @@ module Appwrite }, params); end - def delete_users_session(user_id:, session_id:) + def delete_user_session(user_id:, session_id:) path = '/users/{userId}/sessions/:session' .gsub('{user_id}', user_id) diff --git a/app/tasks/sdks.php b/app/tasks/sdks.php index 8f2cd6043e..313b0fb776 100644 --- a/app/tasks/sdks.php +++ b/app/tasks/sdks.php @@ -45,16 +45,18 @@ $cli 'gitRepoName' => 'sdk-for-php', 'gitUserName' => 'appwrite', 'warning' => $warning, + 'readme' => false, 'platform' => 'server', ], 'js' => [ - 'version' => '1.0.22', + 'version' => '1.0.23', 'result' => __DIR__.'/../sdks/js/', 'gitURL' => 'https://github.com/appwrite/sdk-for-js.git', 'gitRepo' => 'git@github.com:appwrite/sdk-for-js.git', 'gitRepoName' => 'sdk-for-js', 'gitUserName' => 'appwrite', 'warning' => $warning, + 'readme' => realpath(__DIR__ . '/../../docs/sdks/js.md'), 'platform' => 'client', ], 'node' => [ @@ -65,6 +67,7 @@ $cli 'gitRepoName' => 'sdk-for-node', 'gitUserName' => 'appwrite', 'warning' => $warning, + 'readme' => false, 'platform' => 'server', ], 'python' => [ @@ -75,6 +78,7 @@ $cli 'gitRepoName' => 'sdk-for-python', 'gitUserName' => 'appwrite', 'warning' => '**WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).**', + 'readme' => false, 'platform' => 'server', ], 'ruby' => [ @@ -85,6 +89,7 @@ $cli 'gitRepoName' => 'sdk-for-ruby', 'gitUserName' => 'appwrite', 'warning' => '**WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).**', + 'readme' => false, 'platform' => 'server', ], 'dart' => [ @@ -95,6 +100,7 @@ $cli 'gitRepoName' => 'sdk-for-dart', 'gitUserName' => 'appwrite', 'warning' => '**WORK IN PROGRESS - NOT READY FOR USAGE - Want to help us improve this client SDK? Send a pull request to Appwrite [SDK generator repository](https://github.com/appwrite/sdk-generator).**', + 'readme' => false, 'platform' => 'client', ], ]; @@ -176,8 +182,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ->setShareURL('http://appwrite.io') ->setShareTags('JS,javascript,reactjs,angular,ios,android') ->setShareVia('appwrite_io') - //->setWarning('**WORK IN PROGRESS - NOT READY FOR USAGE**') ->setWarning($client['warning']) + ->setReadme(($client['readme'] && file_exists($client['readme'])) ? file_get_contents($client['readme']) : '') ; $target = __DIR__.'/../sdks/git/'.$name; diff --git a/app/views/console/account/index.phtml b/app/views/console/account/index.phtml index 6686cf5e52..25d67b62c7 100644 --- a/app/views/console/account/index.phtml +++ b/app/views/console/account/index.phtml @@ -238,7 +238,7 @@ data-event="submit" data-success="trigger,redirect" data-success-param-trigger-events="session-delete" - data-success-redirect-url="/" + data-success-param-redirect-url="/" data-failure="alert" data-failure-param-alert-text="Logout from All Sessions Failed" data-failure-param-alert-classname="error"> diff --git a/app/views/console/storage/index.phtml b/app/views/console/storage/index.phtml index b0eb656e5c..ef37dbf8e9 100644 --- a/app/views/console/storage/index.phtml +++ b/app/views/console/storage/index.phtml @@ -1,3 +1,6 @@ +getParam('home', ''); +?>

Storage @@ -25,10 +28,10 @@ - + - +
@@ -116,10 +119,10 @@

- + - +
diff --git a/app/views/console/users/index.phtml b/app/views/console/users/index.phtml index cf84d0f5ea..2b4fcea50a 100644 --- a/app/views/console/users/index.phtml +++ b/app/views/console/users/index.phtml @@ -101,7 +101,10 @@ $providers = $this->getParam('providers', []); User Avatar - + + + ----- + @@ -364,7 +367,7 @@ $providers = $this->getParam('providers', []); + !{{console-project.usersOauthSecret}}">  Disabled diff --git a/app/views/home/auth/confirm.phtml b/app/views/home/auth/confirm.phtml index f7f43bb212..ddc9a1b812 100644 --- a/app/views/home/auth/confirm.phtml +++ b/app/views/home/auth/confirm.phtml @@ -6,7 +6,7 @@ data-param-token="{{router.params.token}}" data-param-user-id="{{router.params.userId}}" data-success="redirect,alert,trigger" - data-success-redirect-url="/console" + data-success-param-redirect-url="/console" data-success-alert="Confirmation Completed Successfully" data-success-triggers="account.update" data-failure="alert" diff --git a/app/views/home/auth/recovery/reset.phtml b/app/views/home/auth/recovery/reset.phtml index 6aa1897c9e..bb039d011b 100644 --- a/app/views/home/auth/recovery/reset.phtml +++ b/app/views/home/auth/recovery/reset.phtml @@ -13,8 +13,8 @@ data-scope="console" data-event="submit" data-success="alert,redirect" - data-success-alert="Password Reset Completed" - data-success-redirect-url="/auth/signin" + data-success-param-alert="Password Reset Completed" + data-success-param-url="/auth/signin" data-failure="alert" data-failure-param-alert-text="Password Reset Failed" data-failure-param-alert-classname="error"> diff --git a/app/views/home/auth/signup.phtml b/app/views/home/auth/signup.phtml index f0882531fc..40caeeb55b 100644 --- a/app/views/home/auth/signup.phtml +++ b/app/views/home/auth/signup.phtml @@ -13,7 +13,7 @@ data-event="submit" data-success="trigger,redirect" data-success-param-trigger-events="auth-register" - data-success-redirect-url="/console/setup" + data-success-param-redirect-url="/console/setup" data-failure="alert" data-failure-param-alert-text="Registration Failed. Please try again later" data-failure-param-alert-classname="error"> diff --git a/composer.lock b/composer.lock index 365bdd5a2d..8412ef11f0 100644 --- a/composer.lock +++ b/composer.lock @@ -12,12 +12,12 @@ "source": { "type": "git", "url": "https://github.com/appwrite/sdk-for-php.git", - "reference": "ab0fe8f5669e6a8fc7a8d5e8c711f939412fb33e" + "reference": "ac310ede83c8520c038fdab6e646322eb634d9e3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/appwrite/sdk-for-php/zipball/ab0fe8f5669e6a8fc7a8d5e8c711f939412fb33e", - "reference": "ab0fe8f5669e6a8fc7a8d5e8c711f939412fb33e", + "url": "https://api.github.com/repos/appwrite/sdk-for-php/zipball/ac310ede83c8520c038fdab6e646322eb634d9e3", + "reference": "ac310ede83c8520c038fdab6e646322eb634d9e3", "shasum": "" }, "require": { @@ -39,7 +39,7 @@ "BSD-3-Clause" ], "description": "Appwrite backend as a service cuts up to 70% of the time and costs required for building a modern application. We abstract and simplify common development tasks behind a REST APIs, to help you develop your app in a fast and secure way. For full API documentation and tutorials go to [https://appwrite.io/docs](https://appwrite.io/docs)", - "time": "2019-10-03T22:07:26+00:00" + "time": "2019-10-09T10:26:29+00:00" }, { "name": "appwrite/php-clamav", @@ -92,7 +92,7 @@ "source": { "type": "git", "url": "https://github.com/appwrite/sdk-generator", - "reference": "0ece44cf81c04ebb8784a60830b088238189ec78" + "reference": "45d82c2c53c38926a45c5e153aaa4794860954a0" }, "require": { "ext-curl": "*", @@ -122,7 +122,7 @@ } ], "description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms", - "time": "2019-10-04 05:50:53" + "time": "2019-10-09 14:12:31" }, { "name": "bacon/bacon-qr-code", @@ -1440,12 +1440,12 @@ "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "4625774716e3737580e407a02e53ff4defd3cdfa" + "reference": "23419a940881f50525515726eec7507792ace5e0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/4625774716e3737580e407a02e53ff4defd3cdfa", - "reference": "4625774716e3737580e407a02e53ff4defd3cdfa", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/23419a940881f50525515726eec7507792ace5e0", + "reference": "23419a940881f50525515726eec7507792ace5e0", "shasum": "" }, "require": { @@ -1499,7 +1499,7 @@ "keywords": [ "templating" ], - "time": "2019-10-01T10:31:38+00:00" + "time": "2019-10-05T16:44:39+00:00" }, { "name": "utopia-php/abuse", @@ -2409,12 +2409,12 @@ "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "36bdcb91de0484f77e256fd3d6119dcf7171c164" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/36bdcb91de0484f77e256fd3d6119dcf7171c164", + "reference": "36bdcb91de0484f77e256fd3d6119dcf7171c164", "shasum": "" }, "require": { @@ -2450,7 +2450,7 @@ "keywords": [ "tokenizer" ], - "time": "2019-09-17T06:23:10+00:00" + "time": "2019-10-05T05:20:56+00:00" }, { "name": "phpunit/phpunit", diff --git a/docker-compose.yml b/docker-compose.yml index fd9632f0af..34e7954ae9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -6,6 +6,7 @@ services: restart: unless-stopped volumes: - ./app:/usr/share/nginx/html/app + - ./docs:/usr/share/nginx/html/docs - ./public:/usr/share/nginx/html/public - ./src:/usr/share/nginx/html/src - ./vendor:/usr/share/nginx/html/vendor diff --git a/docs/examples/javascript/auth/login.md b/docs/examples/javascript/auth/login.md new file mode 100644 index 0000000000..2254a3bc0d --- /dev/null +++ b/docs/examples/javascript/auth/login.md @@ -0,0 +1,16 @@ +let sdk = new Appwrite(); + +sdk + .setProject('') +; + +/** + * Will redirect to relevant page + * depends on the operation result + */ +sdk.auth.login( + 'email@example.com', + 'password', + 'http://example.com/success', // required for JS SDK + 'http://example.com/failure' // required for JS SDK +); \ No newline at end of file diff --git a/docs/examples/javascript/auth/oauth.md b/docs/examples/javascript/auth/oauth.md new file mode 100644 index 0000000000..cda6105023 --- /dev/null +++ b/docs/examples/javascript/auth/oauth.md @@ -0,0 +1,15 @@ +let sdk = new Appwrite(); + +sdk + .setProject('') +; + +/** + * Will redirect to relevant page + * depends on the operation result + */ +sdk.auth.oauth( + 'facebook', + 'http://example.com/success', + 'http://example.com/failure' +); \ No newline at end of file diff --git a/docs/examples/javascript/auth/register.md b/docs/examples/javascript/auth/register.md new file mode 100644 index 0000000000..b0943d7e55 --- /dev/null +++ b/docs/examples/javascript/auth/register.md @@ -0,0 +1,17 @@ +let sdk = new Appwrite(); + +sdk + .setProject('') +; + +/** + * Will redirect to relevant page + * depends on the operation result + */ +sdk.auth.register( + 'email@example.com', + 'password', + 'http://example.com/confirm', + 'http://example.com/success', // required for JS SDK + 'http://example.com/failure' // required for JS SDK +); \ No newline at end of file diff --git a/docs/references/auth/confirm-resend.md b/docs/references/auth/confirm-resend.md index 420f9bc113..30712ace16 100644 --- a/docs/references/auth/confirm-resend.md +++ b/docs/references/auth/confirm-resend.md @@ -1,3 +1,3 @@ -This endpoint allows the user to request your app to resend him his email confirmation message. The redirect arguments acts the same way as in /auth/register endpoint. +This endpoint allows the user to request your app to resend him his email confirmation message. The redirect arguments act the same way as in /auth/register endpoint. -Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. \ No newline at end of file +Please notice that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. \ No newline at end of file diff --git a/docs/references/auth/login.md b/docs/references/auth/login.md index 5c8f1e7a4a..f2689efbbd 100644 --- a/docs/references/auth/login.md +++ b/docs/references/auth/login.md @@ -1,5 +1,5 @@ Allow the user to login into his account by providing a valid email and password combination. Use the success and failure arguments to provide a redirect URL\'s back to your app when login is completed. -Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. +Please notice that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. \ No newline at end of file diff --git a/docs/references/auth/logout.md b/docs/references/auth/logout.md index 534b191187..d1393d5f64 100644 --- a/docs/references/auth/logout.md +++ b/docs/references/auth/logout.md @@ -1 +1 @@ -Use this endpoint to log out the currently logged in user from his account. When succeed this endpoint will delete the user session and remove the session secret cookie from the user client. \ No newline at end of file +Use this endpoint to log out the currently logged in user from his account. When successful this endpoint will delete the user session and remove the session secret cookie from the user client. \ No newline at end of file diff --git a/docs/references/auth/recovery-reset.md b/docs/references/auth/recovery-reset.md index 8d1336450a..b7b7819c88 100644 --- a/docs/references/auth/recovery-reset.md +++ b/docs/references/auth/recovery-reset.md @@ -1,3 +1,3 @@ Use this endpoint to complete the user account password reset. Both the **userId** and **token** arguments will be passed as query parameters to the redirect URL you have provided when sending your request to the /auth/recovery endpoint. -Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. \ No newline at end of file +Please notice that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. \ No newline at end of file diff --git a/docs/references/auth/register.md b/docs/references/auth/register.md index 4c6768f1a4..3f975995f9 100644 --- a/docs/references/auth/register.md +++ b/docs/references/auth/register.md @@ -1,7 +1,7 @@ -Use this endpoint to allow a new user to register an account in your project. Use the success and failure URL's to redirect users back to your application after signup completes. +Use this endpoint to allow a new user to register an account in your project. Use the success and failure URLs to redirect users back to your application after signup completes. If registration completes successfully user will be sent with a confirmation email in order to confirm he is the owner of the account email address. Use the confirmation parameter to redirect the user from the confirmation email back to your app. When the user is redirected, use the /auth/confirm endpoint to complete the account confirmation. -Please notice that in order to avoid a [Redirect Attacks](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URL's are the once from domains you have set when added your platforms in the console interface. +Please notice that in order to avoid a [Redirect Attack](https://github.com/OWASP/CheatSheetSeries/blob/master/cheatsheets/Unvalidated_Redirects_and_Forwards_Cheat_Sheet.md) the only valid redirect URLs are the ones from domains you have set when adding your platforms in the console interface. When accessing this route using Javascript from the browser, success and failure parameter URLs are required. Appwrite server will respond with a 301 redirect status code and will set the user session cookie. This behavior is enforced because modern browsers are limiting 3rd party cookies in XHR of fetch requests to protect user privacy. \ No newline at end of file diff --git a/docs/references/avatars/get-browser.md b/docs/references/avatars/get-browser.md index 8b1032d59a..8bc41911e8 100644 --- a/docs/references/avatars/get-browser.md +++ b/docs/references/avatars/get-browser.md @@ -1 +1 @@ -You can use this endpoint to show different browser icons to your users, The code argument receives the browser code as appear in your user /account/sessions endpoint. Use width, height and quality arguments to change the output settings. \ No newline at end of file +You can use this endpoint to show different browser icons to your users. The code argument receives the browser code as it appears in your user /account/sessions endpoint. Use width, height and quality arguments to change the output settings. \ No newline at end of file diff --git a/docs/references/avatars/get-credit-card.md b/docs/references/avatars/get-credit-card.md index c94b1cabbe..e0b3e97ace 100644 --- a/docs/references/avatars/get-credit-card.md +++ b/docs/references/avatars/get-credit-card.md @@ -1 +1 @@ -Need to display your users with your billing method or there payment methods? The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings. \ No newline at end of file +Need to display your users with your billing method or their payment methods? The credit card endpoint will return you the icon of the credit card provider you need. Use width, height and quality arguments to change the output settings. \ No newline at end of file diff --git a/docs/references/avatars/get-flag.md b/docs/references/avatars/get-flag.md index 81cdb1bbac..ba7f230e14 100644 --- a/docs/references/avatars/get-flag.md +++ b/docs/references/avatars/get-flag.md @@ -1 +1 @@ -You can use this endpoint to show different country flags icons to your users, The code argument receives the a 2 letter country code. Use width, height and quality arguments to change the output settings. \ No newline at end of file +You can use this endpoint to show different country flags icons to your users. The code argument receives the 2 letter country code. Use width, height and quality arguments to change the output settings. \ No newline at end of file diff --git a/docs/references/avatars/get-image.md b/docs/references/avatars/get-image.md index 981d10675c..508ece8a34 100644 --- a/docs/references/avatars/get-image.md +++ b/docs/references/avatars/get-image.md @@ -1 +1 @@ -Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in cases, you want to make sure a 3rd party image is properly served using a TLS protocol. \ No newline at end of file +Use this endpoint to fetch a remote image URL and crop it to any image size you want. This endpoint is very useful if you need to crop and display remote images in your app or in case you want to make sure a 3rd party image is properly served using a TLS protocol. \ No newline at end of file diff --git a/docs/sdks/js.md b/docs/sdks/js.md new file mode 100644 index 0000000000..8ab72889ee --- /dev/null +++ b/docs/sdks/js.md @@ -0,0 +1,15 @@ +## Getting Started + +Initialise the Appwrite SDK in your code, and setup your API credentials: + +```js + +// Init your JS SDK +var appwrite = new Appwrite(); + +appwrite + .setEndpoint('http://localhost/v1') // Set only when using self-hosted solution + .setProject('455x34dfkj') // Your Appwrite Project UID +; + +``` diff --git a/docs/tutorials/add-oauth-provider.md b/docs/tutorials/add-oauth-provider.md index bbb20e138f..7e1652d861 100644 --- a/docs/tutorials/add-oauth-provider.md +++ b/docs/tutorials/add-oauth-provider.md @@ -39,7 +39,7 @@ Create a new class that extends the basic OAuth provider abstract class in this Note that the class name should start with a capital letter as PHP FIG standards suggest. -Once a new class is created, you can start to implement your new provider's login flow. The best way to do this corrrectly is to have a look at another provider's implementation and try to follow the same standards. +Once a new class is created, you can start to implement your new provider's login flow. The best way to do this correctly is to have a look at another provider's implementation and try to follow the same standards. Please mention in your documentation what resources or API docs you used to implement the provider's OAuth protocol. diff --git a/docs/tutorials/environment-variables.md b/docs/tutorials/environment-variables.md index d4ab417a0c..5dc31274cf 100644 --- a/docs/tutorials/environment-variables.md +++ b/docs/tutorials/environment-variables.md @@ -6,11 +6,11 @@ Appwrite environment variables allow you to edit your server setup configuration ### _APP_ENV -Set your server running environment. By default the var is set to 'development'. When deploying to production, change it to: 'production'. +Set your server running environment. By default, the var is set to 'development'. When deploying to production, change it to: 'production'. ### _APP_OPTIONS_ABUSE -Allows you to disable abuse checks and API rate limiting. By default set to 'enabled'. To cancel the abuse checking, set to 'disabled'. It is not recommended to disable this check in a production environment. +Allows you to disable abuse checks and API rate limiting. By default, set to 'enabled'. To cancel the abuse checking, set to 'disabled'. It is not recommended to disable this check in a production environment. ### _APP_OPENSSL_KEY_V1 @@ -28,7 +28,7 @@ To enable this option, pass a list of allowed email domains separated by a comma ### _APP_CONSOLE_WHITELIST_IPS -This last option allows you to restrict access to Appwrite console for users sharing the same set op IP addresses. This option is very useful for team working with a VPN service or a company IP. +This last option allows you to restrict access to Appwrite console for users sharing the same set of IP addresses. This option is very useful for team working with a VPN service or a company IP. To enable/activate this option, pass a list of allowed IP addresses separated by a comma. @@ -108,7 +108,7 @@ SMTP server TCP port. Default value is: '25' ### _APP_SMTP_SECURE -SMTP secure connection protocol. Empty by default, Change to 'tls' if running on a secure connection. +SMTP secure connection protocol. Empty by default, change to 'tls' if running on a secure connection. ### _APP_SMTP_USERNAME diff --git a/package-lock.json b/package-lock.json index 081a3b7fd6..c3b9685a2c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -834,9 +834,9 @@ } }, "appwrite": { - "version": "1.0.22", - "resolved": "https://registry.npmjs.org/appwrite/-/appwrite-1.0.22.tgz", - "integrity": "sha512-ofwb9opdkoY+AV8W2AkZY1z7gAqRlBZhbFj4ZMC9+UYhRAtLfaGnuyfRaWIKMFt7DII2Or261newdlwL/R2NsQ==", + "version": "1.0.23", + "resolved": "https://registry.npmjs.org/appwrite/-/appwrite-1.0.23.tgz", + "integrity": "sha512-L1kLLkrjy0xPOd3lgjN+ZWDbzCLXNaGIWaijypv9ty7Rzu+gkktKPfQ6mp4TdBOubQoOTvTveZd+7DiMRUXrXQ==", "dev": true }, "archy": { diff --git a/package.json b/package.json index d106d2ce2e..29308a8b41 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "license": "BSD-3-Clause", "repository": "public", "devDependencies": { - "appwrite": "^1.0.22", + "appwrite": "^1.0.23", "gulp": "^4.0.0", "gulp-clean-css": "^4.0.0", "gulp-concat": "2.5.2", diff --git a/public/dist/scripts/app-all.js b/public/dist/scripts/app-all.js index 6cb864f00c..f1343292ea 100644 --- a/public/dist/scripts/app-all.js +++ b/public/dist/scripts/app-all.js @@ -1,11 +1,11 @@ -(function(window){window.Appwrite=function(){let config={endpoint:'https://appwrite.test/v1',project:'',key:'',locale:'',mode:'',};let setEndpoint=function(endpoint){config.endpoint=endpoint;return this;};let setProject=function(value) +(function(window){'use strict';window.Appwrite=function(){let config={endpoint:'https://appwrite.io/v1',project:'',key:'',locale:'',mode:'',};let setEndpoint=function(endpoint){config.endpoint=endpoint;return this;};let setProject=function(value) {http.addGlobalHeader('X-Appwrite-Project',value);config.project=value;return this;};let setKey=function(value) {http.addGlobalHeader('X-Appwrite-Key',value);config.key=value;return this;};let setLocale=function(value) {http.addGlobalHeader('X-Appwrite-Locale',value);config.locale=value;return this;};let setMode=function(value) {http.addGlobalHeader('X-Appwrite-Mode',value);config.mode=value;return this;};let http=function(document){let globalParams=[],globalHeaders=[];let addParam=function(url,param,value){let a=document.createElement('a'),regex=/(?:\?|&|&)+([^=]+)(?:=([^&]*))*/g;let match,str=[];a.href=url;param=encodeURIComponent(param);while(match=regex.exec(a.search))if(param!==match[1])str.push(match[1]+(match[2]?"="+match[2]:""));str.push(param+(value?"="+encodeURIComponent(value):""));a.search=str.join("&");return a.href;};let buildQuery=function(params){let str=[];for(let p in params){if(Array.isArray(params[p])){for(let index=0;index=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+((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"');} +document.body.appendChild(form);return form.submit();};let account={get:function(){let path='/account';let payload={};return http.get(path,{'content-type':'application/json'},payload);},delete:function(){let path='/account';let payload={};return http.delete(path,{'content-type':'application/json'},payload);},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"');} -let path='/account/name';return http.patch(path,{'content-type':'application/json'},{'name':name});},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"');} +let path='/account/email';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +return http.patch(path,{'content-type':'application/json'},payload);},updateName:function(name){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/account/name';let payload={};if(name){payload['name']=name;} +return http.patch(path,{'content-type':'application/json'},payload);},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"');} if(oldPassword===undefined){throw new Error('Missing required parameter: "oldPassword"');} -let path='/account/password';return http.patch(path,{'content-type':'application/json'},{'password':password,'old-password':oldPassword});},getPrefs:function(){let path='/account/prefs';return http.get(path,{'content-type':'application/json'},{});},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} -let path='/account/prefs';return http.patch(path,{'content-type':'application/json'},{'prefs':prefs});},getSecurity:function(){let path='/account/security';return http.get(path,{'content-type':'application/json'},{});},getSessions:function(){let path='/account/sessions';return http.get(path,{'content-type':'application/json'},{});}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"');} +let path='/account/password';let payload={};if(password){payload['password']=password;} +if(oldPassword){payload['old-password']=oldPassword;} +return http.patch(path,{'content-type':'application/json'},payload);},getPrefs:function(){let path='/account/prefs';let payload={};return http.get(path,{'content-type':'application/json'},payload);},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} +let path='/account/prefs';let payload={};if(prefs){payload['prefs']=prefs;} +return http.patch(path,{'content-type':'application/json'},payload);},getSecurity:function(){let path='/account/security';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getSessions:function(){let path='/account/sessions';let payload={};return http.get(path,{'content-type':'application/json'},payload);}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"');} if(password===undefined){throw new Error('Missing required parameter: "password"');} if(success===undefined){throw new Error('Missing required parameter: "success"');} if(failure===undefined){throw new Error('Missing required parameter: "failure"');} -let path='/auth/login';return iframe('post',path,{project:config.project,'email':email,'password':password,'success':success,'failure':failure});},logout:function(){let path='/auth/logout';return http.delete(path,{'content-type':'application/json'},{});},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"');} -let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);return http.delete(path,{'content-type':'application/json'},{});},oauthCallback:function(projectId,provider,code,state=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/auth/oauth/callback/{provider}/{projectId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{provider}','g'),provider);return http.get(path,{'content-type':'application/json'},{'code':code,'state':state});},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);return http.get(path,{'content-type':'application/json'},{'success':success,'failure':failure});},recovery:function(email,redirect){if(email===undefined){throw new Error('Missing required parameter: "email"');} -if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/auth/recovery';return http.post(path,{'content-type':'application/json'},{'email':email,'redirect':redirect});},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/auth/login';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.post(path,{'content-type':'application/json'},payload);},logout:function(){let path='/auth/logout';let payload={};return http.delete(path,{'content-type':'application/json'},payload);},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"');} +let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"');} +let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);let payload={};if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.get(path,{'content-type':'application/json'},payload);},recovery:function(email,reset){if(email===undefined){throw new Error('Missing required parameter: "email"');} +if(reset===undefined){throw new Error('Missing required parameter: "reset"');} +let path='/auth/recovery';let payload={};if(email){payload['email']=email;} +if(reset){payload['reset']=reset;} +return http.post(path,{'content-type':'application/json'},payload);},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(token===undefined){throw new Error('Missing required parameter: "token"');} if(passwordA===undefined){throw new Error('Missing required parameter: "passwordA"');} if(passwordB===undefined){throw new Error('Missing required parameter: "passwordB"');} -let path='/auth/recovery/reset';return http.put(path,{'content-type':'application/json'},{'userId':userId,'token':token,'password-a':passwordA,'password-b':passwordB});},register:function(email,password,confirm,success,failure,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');} +let path='/auth/recovery/reset';let payload={};if(userId){payload['userId']=userId;} +if(token){payload['token']=token;} +if(passwordA){payload['password-a']=passwordA;} +if(passwordB){payload['password-b']=passwordB;} +return http.put(path,{'content-type':'application/json'},payload);},register:function(email,password,confirm,success='',failure='',name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');} if(password===undefined){throw new Error('Missing required parameter: "password"');} if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} -if(success===undefined){throw new Error('Missing required parameter: "success"');} -if(failure===undefined){throw new Error('Missing required parameter: "failure"');} -let path='/auth/register';return iframe('post',path,{project:config.project,'email':email,'password':password,'confirm':confirm,'success':success,'failure':failure,'name':name});},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/auth/register';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(confirm){payload['confirm']=confirm;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +if(name){payload['name']=name;} +return http.post(path,{'content-type':'application/json'},payload);},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(token===undefined){throw new Error('Missing required parameter: "token"');} -let path='/auth/register/confirm';return http.post(path,{'content-type':'application/json'},{'userId':userId,'token':token});},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} -let path='/auth/register/confirm/resend';return http.post(path,{'content-type':'application/json'},{'confirm':confirm});}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"');} -let path='/avatars/favicon';return http.get(path,{'content-type':'application/json'},{'url':url});},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');} -let path='/avatars/image';return http.get(path,{'content-type':'application/json'},{'url':url,'width':width,'height':height});},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');} -let path='/avatars/qr';return http.get(path,{'content-type':'application/json'},{'text':text,'size':size,'margin':margin,'download':download});}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/database';return http.post(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{});},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/auth/register/confirm';let payload={};if(userId){payload['userId']=userId;} +if(token){payload['token']=token;} +return http.post(path,{'content-type':'application/json'},payload);},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} +let path='/auth/register/confirm/resend';let payload={};if(confirm){payload['confirm']=confirm;} +return http.post(path,{'content-type':'application/json'},payload);}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"');} +let path='/avatars/favicon';let payload={};if(url){payload['url']=url;} +return http.get(path,{'content-type':'application/json'},payload);},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');} +let path='/avatars/image';let payload={};if(url){payload['url']=url;} +if(width){payload['width']=width;} +if(height){payload['height']=height;} +return http.get(path,{'content-type':'application/json'},payload);},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');} +let path='/avatars/qr';let payload={};if(text){payload['text']=text;} +if(size){payload['size']=size;} +if(margin){payload['margin']=margin;} +if(download){payload['download']=download;} +return http.get(path,{'content-type':'application/json'},payload);}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/database';let payload={};if(name){payload['name']=name;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(rules){payload['rules']=rules;} +return http.post(path,{'content-type':'application/json'},payload);},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.put(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.delete(path,{'content-type':'application/json'},{});},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{'filters':filters,'offset':offset,'limit':limit,'order-field':orderField,'order-type':orderType,'order-cast':orderCast,'search':search,'first':first,'last':last});},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(name){payload['name']=name;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(rules){payload['rules']=rules;} +return http.put(path,{'content-type':'application/json'},payload);},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(filters){payload['filters']=filters;} +if(offset){payload['offset']=offset;} +if(limit){payload['limit']=limit;} +if(orderField){payload['order-field']=orderField;} +if(orderType){payload['order-type']=orderType;} +if(orderCast){payload['order-cast']=orderCast;} +if(search){payload['search']=search;} +if(first){payload['first']=first;} +if(last){payload['last']=last;} +return http.get(path,{'content-type':'application/json'},payload);},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(data===undefined){throw new Error('Missing required parameter: "data"');} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.post(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write,'parentDocument':parentDocument,'parentProperty':parentProperty,'parentPropertyType':parentPropertyType});},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(data){payload['data']=data;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(parentDocument){payload['parentDocument']=parentDocument;} +if(parentProperty){payload['parentProperty']=parentProperty;} +if(parentPropertyType){payload['parentPropertyType']=parentPropertyType;} +return http.post(path,{'content-type':'application/json'},payload);},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.get(path,{'content-type':'application/json'},{});},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} if(data===undefined){throw new Error('Missing required parameter: "data"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.patch(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write});},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};if(data){payload['data']=data;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +return http.patch(path,{'content-type':'application/json'},payload);},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.delete(path,{'content-type':'application/json'},{});}};let locale={getLocale:function(){let path='/locale';return http.get(path,{'content-type':'application/json'},{});},getCountries:function(){let path='/locale/countries';return http.get(path,{'content-type':'application/json'},{});},getCountriesEU:function(){let path='/locale/countries/eu';return http.get(path,{'content-type':'application/json'},{});},getCountriesPhones:function(){let path='/locale/countries/phones';return http.get(path,{'content-type':'application/json'},{});},getCurrencies:function(){let path='/locale/currencies';return http.get(path,{'content-type':'application/json'},{});}};let projects={listProjects:function(){let path='/projects';return http.get(path,{'content-type':'application/json'},{});},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);}};let locale={getLocale:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json'},payload);}};let projects={listProjects:function(){let path='/projects';let payload={};return http.get(path,{'content-type':'application/json'},payload);},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');} if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/projects';return http.post(path,{'content-type':'application/json'},{'name':name,'teamId':teamId,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects';let payload={};if(name){payload['name']=name;} +if(teamId){payload['teamId']=teamId;} +if(description){payload['description']=description;} +if(logo){payload['logo']=logo;} +if(url){payload['url']=url;} +if(legalName){payload['legalName']=legalName;} +if(legalCountry){payload['legalCountry']=legalCountry;} +if(legalState){payload['legalState']=legalState;} +if(legalCity){payload['legalCity']=legalCity;} +if(legalAddress){payload['legalAddress']=legalAddress;} +if(legalTaxId){payload['legalTaxId']=legalTaxId;} +return http.post(path,{'content-type':'application/json'},payload);},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'name':name,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.delete(path,{'content-type':'application/json'},{});},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(description){payload['description']=description;} +if(logo){payload['logo']=logo;} +if(url){payload['url']=url;} +if(legalName){payload['legalName']=legalName;} +if(legalCountry){payload['legalCountry']=legalCountry;} +if(legalState){payload['legalState']=legalState;} +if(legalCity){payload['legalCity']=legalCity;} +if(legalAddress){payload['legalAddress']=legalAddress;} +if(legalTaxId){payload['legalTaxId']=legalTaxId;} +return http.patch(path,{'content-type':'application/json'},payload);},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"');} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'scopes':scopes});},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(scopes){payload['scopes']=scopes;} +return http.post(path,{'content-type':'application/json'},payload);},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.get(path,{'content-type':'application/json'},{});},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.put(path,{'content-type':'application/json'},{'name':name,'scopes':scopes});},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};if(name){payload['name']=name;} +if(scopes){payload['scopes']=scopes;} +return http.put(path,{'content-type':'application/json'},payload);},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.delete(path,{'content-type':'application/json'},{});},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'provider':provider,'appId':appId,'secret':secret});},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(provider){payload['provider']=provider;} +if(appId){payload['appId']=appId;} +if(secret){payload['secret']=secret;} +return http.patch(path,{'content-type':'application/json'},payload);},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(type===undefined){throw new Error('Missing required parameter: "type"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'type':type,'name':name,'key':key,'store':store,'url':url});},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(type){payload['type']=type;} +if(name){payload['name']=name;} +if(key){payload['key']=key;} +if(store){payload['store']=store;} +if(url){payload['url']=url;} +return http.post(path,{'content-type':'application/json'},payload);},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.get(path,{'content-type':'application/json'},{});},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.put(path,{'content-type':'application/json'},{'name':name,'key':key,'store':store,'url':url});},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};if(name){payload['name']=name;} +if(key){payload['key']=key;} +if(store){payload['store']=store;} +if(url){payload['url']=url;} +return http.put(path,{'content-type':'application/json'},payload);},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.delete(path,{'content-type':'application/json'},{});},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} if(schedule===undefined){throw new Error('Missing required parameter: "schedule"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"');} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"');} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass});},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(status){payload['status']=status;} +if(schedule){payload['schedule']=schedule;} +if(security){payload['security']=security;} +if(httpMethod){payload['httpMethod']=httpMethod;} +if(httpUrl){payload['httpUrl']=httpUrl;} +if(httpHeaders){payload['httpHeaders']=httpHeaders;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.post(path,{'content-type':'application/json'},payload);},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.get(path,{'content-type':'application/json'},{});},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} @@ -116,63 +231,129 @@ if(schedule===undefined){throw new Error('Missing required parameter: "schedule" if(security===undefined){throw new Error('Missing required parameter: "security"');} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"');} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.put(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass});},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};if(name){payload['name']=name;} +if(status){payload['status']=status;} +if(schedule){payload['schedule']=schedule;} +if(security){payload['security']=security;} +if(httpMethod){payload['httpMethod']=httpMethod;} +if(httpUrl){payload['httpUrl']=httpUrl;} +if(httpHeaders){payload['httpHeaders']=httpHeaders;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.put(path,{'content-type':'application/json'},payload);},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.delete(path,{'content-type':'application/json'},{});},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(events===undefined){throw new Error('Missing required parameter: "events"');} if(url===undefined){throw new Error('Missing required parameter: "url"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(events){payload['events']=events;} +if(url){payload['url']=url;} +if(security){payload['security']=security;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.post(path,{'content-type':'application/json'},payload);},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.get(path,{'content-type':'application/json'},{});},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(events===undefined){throw new Error('Missing required parameter: "events"');} if(url===undefined){throw new Error('Missing required parameter: "url"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.put(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};if(name){payload['name']=name;} +if(events){payload['events']=events;} +if(url){payload['url']=url;} +if(security){payload['security']=security;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.put(path,{'content-type':'application/json'},payload);},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.delete(path,{'content-type':'application/json'},{});}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');} -let path='/storage/files';return http.post(path,{'content-type':'multipart/form-data'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.put(path,{'content-type':'application/json'},{'read':read,'write':write,'folderId':folderId});},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.delete(path,{'content-type':'application/json'},{});},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality,'background':background,'output':output});},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'as':as});}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/teams';return http.post(path,{'content-type':'application/json'},{'name':name,'roles':roles});},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{});},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');} +let path='/storage/files';let payload={};if(files){payload['files']=files;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(folderId){payload['folderId']=folderId;} +return http.post(path,{'content-type':'multipart/form-data'},payload);},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(folderId){payload['folderId']=folderId;} +return http.put(path,{'content-type':'application/json'},payload);},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +if(background){payload['background']=background;} +if(output){payload['output']=output;} +return http.get(path,{'content-type':'application/json'},payload);},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(as){payload['as']=as;} +return http.get(path,{'content-type':'application/json'},payload);}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/teams';let payload={};if(name){payload['name']=name;} +if(roles){payload['roles']=roles;} +return http.post(path,{'content-type':'application/json'},payload);},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.put(path,{'content-type':'application/json'},{'name':name});},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.delete(path,{'content-type':'application/json'},{});},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{});},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(name){payload['name']=name;} +return http.put(path,{'content-type':'application/json'},payload);},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(email===undefined){throw new Error('Missing required parameter: "email"');} if(roles===undefined){throw new Error('Missing required parameter: "roles"');} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);return http.post(path,{'content-type':'application/json'},{'email':email,'name':name,'roles':roles,'redirect':redirect});},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(email){payload['email']=email;} +if(name){payload['name']=name;} +if(roles){payload['roles']=roles;} +if(redirect){payload['redirect']=redirect;} +return http.post(path,{'content-type':'application/json'},payload);},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"');} -let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.delete(path,{'content-type':'application/json'},{});},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"');} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.post(path,{'content-type':'application/json'},{'redirect':redirect});},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};if(redirect){payload['redirect']=redirect;} +return http.post(path,{'content-type':'application/json'},payload);},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} 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);let payload={};if(userId){payload['userId']=userId;} +if(secret){payload['secret']=secret;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.patch(path,{'content-type':'application/json'},payload);}};let users={listUsers:function(search='',limit=25,offset=0,orderType='ASC'){let path='/users';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},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"');} -let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{});},deleteUsersSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(name){payload['name']=name;} +return http.post(path,{'content-type':'application/json'},payload);},getUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getUserLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateUserPrefs:function(userId,prefs){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};if(prefs){payload['prefs']=prefs;} +return http.patch(path,{'content-type':'application/json'},payload);},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},deleteUserSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(sessionId===undefined){throw new Error('Missing required parameter: "sessionId"');} -let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{'sessionId':sessionId});},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);let payload={};if(sessionId){payload['sessionId']=sessionId;} +return http.delete(path,{'content-type':'application/json'},payload);},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} -let path='/users/{userId}/status'.replace(new RegExp('{userId}','g'),userId);return http.patch(path,{'content-type':'application/json'},{'status':status});}};return{setEndpoint:setEndpoint,setProject:setProject,setKey:setKey,setLocale:setLocale,setMode:setMode,account:account,auth:auth,avatars:avatars,database:database,locale:locale,projects:projects,storage:storage,teams:teams,users:users};};})(window);(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Chart=f()}})(function(){var define,module,exports;return(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o127&&x<2048){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128);}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128);}}} return d;} let C=Array();let P,h,E,v,g,Y,X,W,V;let S=7,Q=12,N=17,M=22;let A=5,z=9,y=14,w=20;let o=4,m=11,l=16,j=23;let U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;Pchar.charCodeAt(0)).reduce((a,b)=>a+b,0).toString();let themes=[{color:"27005e",background:"e1d2f6"},{color:"5e2700",background:"f3d9c6"},{color:"006128",background:"c9f3c6"},{color:"580061",background:"f2d1f5"},{color:"00365d",background:"c6e1f3"},{color:"00075c",background:"d2d5f6"},{color:"610038",background:"f5d1e6"},{color:"386100",background:"dcf1bd"},{color:"615800",background:"f1ecba"},{color:"610008",background:"f6d2d5"}];name=name.split(" ").map(function(n){if(!isNaN(parseFloat(n))&&isFinite(n)){return"";} +let i=B(Y)+B(X)+B(W)+B(V);return i.toLowerCase();};let size=element.dataset["size"]||80;let email=$value.email||$value||"";let name=$value.name||$value||"";name=(typeof stringValue!=='string')?'':name;let theme=name.split("").map(char=>char.charCodeAt(0)).reduce((a,b)=>a+b,0).toString();let themes=[{color:"27005e",background:"e1d2f6"},{color:"5e2700",background:"f3d9c6"},{color:"006128",background:"c9f3c6"},{color:"580061",background:"f2d1f5"},{color:"00365d",background:"c6e1f3"},{color:"00075c",background:"d2d5f6"},{color:"610038",background:"f5d1e6"},{color:"386100",background:"dcf1bd"},{color:"615800",background:"f1ecba"},{color:"610008",background:"f6d2d5"}];name=name.split(" ").map(function(n){if(!isNaN(parseFloat(n))&&isFinite(n)){return"";} return n[0];}).join("")||"--";let background=themes[theme[theme.length-1]]["background"];let color=themes[theme[theme.length-1]]["color"];let def="https://ui-avatars.com/api/"+ encodeURIComponent(name)+"/"+ size+"/"+ @@ -2390,7 +2571,7 @@ let config={type:"line",data:{labels:[],datasets:[{label:"Requests",backgroundCo let chart=container.get("chart");if(chart){} element.innerHTML="";element.appendChild(child);container.set("chart",new Chart(child.getContext("2d"),config),true);element.dataset["canvas"]=true;}});(function(window){"use strict";window.ls.view.add({selector:"data-service",controller:function(element,view,container,form,alerts,expression,window){let action=element.dataset["service"];let service=element.dataset["name"]||action;let event=element.dataset["event"];let confirm=element.dataset["confirm"]||"";let loading=element.dataset["loading"]||"";let loaderId=null;let scope=element.dataset["scope"]||"sdk";let debug=!!element.dataset["debug"];let success=element.dataset["success"]||"";let failure=element.dataset["failure"]||"";success=success&&success!=""?success.split(",").map(element=>element.trim()):[];failure=failure&&failure!=""?failure.split(",").map(element=>element.trim()):[];if(debug) console.log("%c[service init]: "+action+" ("+service+")","color:red");let callbacks={reset:function(){return function(){if("FORM"===element.tagName){return element.reset();} -throw new Error("This callback is only valid for forms");};},alert:function(text,classname){return function(alerts){alerts.add({text:text,class:classname||"success"},3000);};},redirect:function(url){return function(router){router.change(url||"/");};},reload:function(){return function(router){router.reload();};},state:function(keys){let updateQueryString=function(key,value,url){var re=new RegExp("([?&])"+key+"=.*?(&|#|$)(.*)","gi"),hash;if(re.test(url)){if(typeof value!=="undefined"&&value!==null){return url.replace(re,"$1"+key+"="+value+"$2$3");}else{hash=url.split("#");url=hash[0].replace(re,"$1$3").replace(/(&|\?)$/,"");if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} +throw new Error("This callback is only valid for forms");};},alert:function(text,classname){return function(alerts){alerts.add({text:text,class:classname||"success"},3000);};},redirect:function(url){return function(router){window.location=url||"/";};},reload:function(){return function(router){router.reload();};},state:function(keys){let updateQueryString=function(key,value,url){var re=new RegExp("([?&])"+key+"=.*?(&|#|$)(.*)","gi"),hash;if(re.test(url)){if(typeof value!=="undefined"&&value!==null){return url.replace(re,"$1"+key+"="+value+"$2$3");}else{hash=url.split("#");url=hash[0].replace(re,"$1$3").replace(/(&|\?)$/,"");if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} return url;}}else{if(typeof value!=="undefined"&&value!==null){var separator=url.indexOf("?")!==-1?"&":"?";hash=url.split("#");url=hash[0]+separator+key+"="+value;if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} return url;}else{return url;}}};keys=keys.split(",").map(element=>element.trim());return function(serviceForm,router,window){let url=window.location.href;keys.map(node=>{node=node.split("=");let key=node[0]||"";let name=node[1]||key;let value=getValue(key,"param",serviceForm);url=updateQueryString(name,value?value:null,url);});if(url!==window.location.href){window.history.pushState({},"",url);router.reset();}};},trigger:function(events){return function(document){events=events.trim().split(",");for(let i=0;i=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+((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"');} +document.body.appendChild(form);return form.submit();};let account={get:function(){let path='/account';let payload={};return http.get(path,{'content-type':'application/json'},payload);},delete:function(){let path='/account';let payload={};return http.delete(path,{'content-type':'application/json'},payload);},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"');} -let path='/account/name';return http.patch(path,{'content-type':'application/json'},{'name':name});},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"');} +let path='/account/email';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +return http.patch(path,{'content-type':'application/json'},payload);},updateName:function(name){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/account/name';let payload={};if(name){payload['name']=name;} +return http.patch(path,{'content-type':'application/json'},payload);},updatePassword:function(password,oldPassword){if(password===undefined){throw new Error('Missing required parameter: "password"');} if(oldPassword===undefined){throw new Error('Missing required parameter: "oldPassword"');} -let path='/account/password';return http.patch(path,{'content-type':'application/json'},{'password':password,'old-password':oldPassword});},getPrefs:function(){let path='/account/prefs';return http.get(path,{'content-type':'application/json'},{});},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} -let path='/account/prefs';return http.patch(path,{'content-type':'application/json'},{'prefs':prefs});},getSecurity:function(){let path='/account/security';return http.get(path,{'content-type':'application/json'},{});},getSessions:function(){let path='/account/sessions';return http.get(path,{'content-type':'application/json'},{});}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"');} +let path='/account/password';let payload={};if(password){payload['password']=password;} +if(oldPassword){payload['old-password']=oldPassword;} +return http.patch(path,{'content-type':'application/json'},payload);},getPrefs:function(){let path='/account/prefs';let payload={};return http.get(path,{'content-type':'application/json'},payload);},updatePrefs:function(prefs){if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} +let path='/account/prefs';let payload={};if(prefs){payload['prefs']=prefs;} +return http.patch(path,{'content-type':'application/json'},payload);},getSecurity:function(){let path='/account/security';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getSessions:function(){let path='/account/sessions';let payload={};return http.get(path,{'content-type':'application/json'},payload);}};let auth={login:function(email,password,success,failure){if(email===undefined){throw new Error('Missing required parameter: "email"');} if(password===undefined){throw new Error('Missing required parameter: "password"');} if(success===undefined){throw new Error('Missing required parameter: "success"');} if(failure===undefined){throw new Error('Missing required parameter: "failure"');} -let path='/auth/login';return iframe('post',path,{project:config.project,'email':email,'password':password,'success':success,'failure':failure});},logout:function(){let path='/auth/logout';return http.delete(path,{'content-type':'application/json'},{});},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"');} -let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);return http.delete(path,{'content-type':'application/json'},{});},oauthCallback:function(projectId,provider,code,state=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/auth/oauth/callback/{provider}/{projectId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{provider}','g'),provider);return http.get(path,{'content-type':'application/json'},{'code':code,'state':state});},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);return http.get(path,{'content-type':'application/json'},{'success':success,'failure':failure});},recovery:function(email,redirect){if(email===undefined){throw new Error('Missing required parameter: "email"');} -if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/auth/recovery';return http.post(path,{'content-type':'application/json'},{'email':email,'redirect':redirect});},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/auth/login';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.post(path,{'content-type':'application/json'},payload);},logout:function(){let path='/auth/logout';let payload={};return http.delete(path,{'content-type':'application/json'},payload);},logoutBySession:function(id){if(id===undefined){throw new Error('Missing required parameter: "id"');} +let path='/auth/logout/{id}'.replace(new RegExp('{id}','g'),id);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},oauth:function(provider,success='',failure=''){if(provider===undefined){throw new Error('Missing required parameter: "provider"');} +let path='/auth/oauth/{provider}'.replace(new RegExp('{provider}','g'),provider);let payload={};if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.get(path,{'content-type':'application/json'},payload);},recovery:function(email,reset){if(email===undefined){throw new Error('Missing required parameter: "email"');} +if(reset===undefined){throw new Error('Missing required parameter: "reset"');} +let path='/auth/recovery';let payload={};if(email){payload['email']=email;} +if(reset){payload['reset']=reset;} +return http.post(path,{'content-type':'application/json'},payload);},recoveryReset:function(userId,token,passwordA,passwordB){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(token===undefined){throw new Error('Missing required parameter: "token"');} if(passwordA===undefined){throw new Error('Missing required parameter: "passwordA"');} if(passwordB===undefined){throw new Error('Missing required parameter: "passwordB"');} -let path='/auth/recovery/reset';return http.put(path,{'content-type':'application/json'},{'userId':userId,'token':token,'password-a':passwordA,'password-b':passwordB});},register:function(email,password,confirm,success,failure,name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');} +let path='/auth/recovery/reset';let payload={};if(userId){payload['userId']=userId;} +if(token){payload['token']=token;} +if(passwordA){payload['password-a']=passwordA;} +if(passwordB){payload['password-b']=passwordB;} +return http.put(path,{'content-type':'application/json'},payload);},register:function(email,password,confirm,success='',failure='',name=''){if(email===undefined){throw new Error('Missing required parameter: "email"');} if(password===undefined){throw new Error('Missing required parameter: "password"');} if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} -if(success===undefined){throw new Error('Missing required parameter: "success"');} -if(failure===undefined){throw new Error('Missing required parameter: "failure"');} -let path='/auth/register';return iframe('post',path,{project:config.project,'email':email,'password':password,'confirm':confirm,'success':success,'failure':failure,'name':name});},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/auth/register';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(confirm){payload['confirm']=confirm;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +if(name){payload['name']=name;} +return http.post(path,{'content-type':'application/json'},payload);},confirm:function(userId,token){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(token===undefined){throw new Error('Missing required parameter: "token"');} -let path='/auth/register/confirm';return http.post(path,{'content-type':'application/json'},{'userId':userId,'token':token});},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} -let path='/auth/register/confirm/resend';return http.post(path,{'content-type':'application/json'},{'confirm':confirm});}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"');} -let path='/avatars/favicon';return http.get(path,{'content-type':'application/json'},{'url':url});},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} -let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality});},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');} -let path='/avatars/image';return http.get(path,{'content-type':'application/json'},{'url':url,'width':width,'height':height});},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');} -let path='/avatars/qr';return http.get(path,{'content-type':'application/json'},{'text':text,'size':size,'margin':margin,'download':download});}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/database';return http.post(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{});},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/auth/register/confirm';let payload={};if(userId){payload['userId']=userId;} +if(token){payload['token']=token;} +return http.post(path,{'content-type':'application/json'},payload);},confirmResend:function(confirm){if(confirm===undefined){throw new Error('Missing required parameter: "confirm"');} +let path='/auth/register/confirm/resend';let payload={};if(confirm){payload['confirm']=confirm;} +return http.post(path,{'content-type':'application/json'},payload);}};let avatars={getBrowser:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/browsers/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getCreditCard:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/credit-cards/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getFavicon:function(url){if(url===undefined){throw new Error('Missing required parameter: "url"');} +let path='/avatars/favicon';let payload={};if(url){payload['url']=url;} +return http.get(path,{'content-type':'application/json'},payload);},getFlag:function(code,width=100,height=100,quality=100){if(code===undefined){throw new Error('Missing required parameter: "code"');} +let path='/avatars/flags/{code}'.replace(new RegExp('{code}','g'),code);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +return http.get(path,{'content-type':'application/json'},payload);},getImage:function(url,width=400,height=400){if(url===undefined){throw new Error('Missing required parameter: "url"');} +let path='/avatars/image';let payload={};if(url){payload['url']=url;} +if(width){payload['width']=width;} +if(height){payload['height']=height;} +return http.get(path,{'content-type':'application/json'},payload);},getQR:function(text,size=400,margin=1,download=0){if(text===undefined){throw new Error('Missing required parameter: "text"');} +let path='/avatars/qr';let payload={};if(text){payload['text']=text;} +if(size){payload['size']=size;} +if(margin){payload['margin']=margin;} +if(download){payload['download']=download;} +return http.get(path,{'content-type':'application/json'},payload);}};let database={listCollections:function(search='',limit=25,offset=0,orderType='ASC'){let path='/database';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createCollection:function(name,read=[],write=[],rules=[]){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/database';let payload={};if(name){payload['name']=name;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(rules){payload['rules']=rules;} +return http.post(path,{'content-type':'application/json'},payload);},getCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateCollection:function(collectionId,name,read=[],write=[],rules=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.put(path,{'content-type':'application/json'},{'name':name,'read':read,'write':write,'rules':rules});},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);return http.delete(path,{'content-type':'application/json'},{});},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.get(path,{'content-type':'application/json'},{'filters':filters,'offset':offset,'limit':limit,'order-field':orderField,'order-type':orderType,'order-cast':orderCast,'search':search,'first':first,'last':last});},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(name){payload['name']=name;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(rules){payload['rules']=rules;} +return http.put(path,{'content-type':'application/json'},payload);},deleteCollection:function(collectionId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listDocuments:function(collectionId,filters=[],offset=0,limit=50,orderField='$uid',orderType='ASC',orderCast='string',search='',first=0,last=0){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(filters){payload['filters']=filters;} +if(offset){payload['offset']=offset;} +if(limit){payload['limit']=limit;} +if(orderField){payload['order-field']=orderField;} +if(orderType){payload['order-type']=orderType;} +if(orderCast){payload['order-cast']=orderCast;} +if(search){payload['search']=search;} +if(first){payload['first']=first;} +if(last){payload['last']=last;} +return http.get(path,{'content-type':'application/json'},payload);},createDocument:function(collectionId,data,read=[],write=[],parentDocument='',parentProperty='',parentPropertyType='assign'){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(data===undefined){throw new Error('Missing required parameter: "data"');} -let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);return http.post(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write,'parentDocument':parentDocument,'parentProperty':parentProperty,'parentPropertyType':parentPropertyType});},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents'.replace(new RegExp('{collectionId}','g'),collectionId);let payload={};if(data){payload['data']=data;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(parentDocument){payload['parentDocument']=parentDocument;} +if(parentProperty){payload['parentProperty']=parentProperty;} +if(parentPropertyType){payload['parentPropertyType']=parentPropertyType;} +return http.post(path,{'content-type':'application/json'},payload);},getDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.get(path,{'content-type':'application/json'},{});},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateDocument:function(collectionId,documentId,data,read=[],write=[]){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} if(data===undefined){throw new Error('Missing required parameter: "data"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.patch(path,{'content-type':'application/json'},{'data':data,'read':read,'write':write});},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};if(data){payload['data']=data;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +return http.patch(path,{'content-type':'application/json'},payload);},deleteDocument:function(collectionId,documentId){if(collectionId===undefined){throw new Error('Missing required parameter: "collectionId"');} if(documentId===undefined){throw new Error('Missing required parameter: "documentId"');} -let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);return http.delete(path,{'content-type':'application/json'},{});}};let locale={getLocale:function(){let path='/locale';return http.get(path,{'content-type':'application/json'},{});},getCountries:function(){let path='/locale/countries';return http.get(path,{'content-type':'application/json'},{});},getCountriesEU:function(){let path='/locale/countries/eu';return http.get(path,{'content-type':'application/json'},{});},getCountriesPhones:function(){let path='/locale/countries/phones';return http.get(path,{'content-type':'application/json'},{});},getCurrencies:function(){let path='/locale/currencies';return http.get(path,{'content-type':'application/json'},{});}};let projects={listProjects:function(){let path='/projects';return http.get(path,{'content-type':'application/json'},{});},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/database/{collectionId}/documents/{documentId}'.replace(new RegExp('{collectionId}','g'),collectionId).replace(new RegExp('{documentId}','g'),documentId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);}};let locale={getLocale:function(){let path='/locale';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountries:function(){let path='/locale/countries';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountriesEU:function(){let path='/locale/countries/eu';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCountriesPhones:function(){let path='/locale/countries/phones';let payload={};return http.get(path,{'content-type':'application/json'},payload);},getCurrencies:function(){let path='/locale/currencies';let payload={};return http.get(path,{'content-type':'application/json'},payload);}};let projects={listProjects:function(){let path='/projects';let payload={};return http.get(path,{'content-type':'application/json'},payload);},createProject:function(name,teamId,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(name===undefined){throw new Error('Missing required parameter: "name"');} if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/projects';return http.post(path,{'content-type':'application/json'},{'name':name,'teamId':teamId,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects';let payload={};if(name){payload['name']=name;} +if(teamId){payload['teamId']=teamId;} +if(description){payload['description']=description;} +if(logo){payload['logo']=logo;} +if(url){payload['url']=url;} +if(legalName){payload['legalName']=legalName;} +if(legalCountry){payload['legalCountry']=legalCountry;} +if(legalState){payload['legalState']=legalState;} +if(legalCity){payload['legalCity']=legalCity;} +if(legalAddress){payload['legalAddress']=legalAddress;} +if(legalTaxId){payload['legalTaxId']=legalTaxId;} +return http.post(path,{'content-type':'application/json'},payload);},getProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateProject:function(projectId,name,description='',logo='',url='',legalName='',legalCountry='',legalState='',legalCity='',legalAddress='',legalTaxId=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'name':name,'description':description,'logo':logo,'url':url,'legalName':legalName,'legalCountry':legalCountry,'legalState':legalState,'legalCity':legalCity,'legalAddress':legalAddress,'legalTaxId':legalTaxId});},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);return http.delete(path,{'content-type':'application/json'},{});},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(description){payload['description']=description;} +if(logo){payload['logo']=logo;} +if(url){payload['url']=url;} +if(legalName){payload['legalName']=legalName;} +if(legalCountry){payload['legalCountry']=legalCountry;} +if(legalState){payload['legalState']=legalState;} +if(legalCity){payload['legalCity']=legalCity;} +if(legalAddress){payload['legalAddress']=legalAddress;} +if(legalTaxId){payload['legalTaxId']=legalTaxId;} +return http.patch(path,{'content-type':'application/json'},payload);},deleteProject:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listKeys:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createKey:function(projectId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"');} -let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'scopes':scopes});},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(scopes){payload['scopes']=scopes;} +return http.post(path,{'content-type':'application/json'},payload);},getKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.get(path,{'content-type':'application/json'},{});},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateKey:function(projectId,keyId,name,scopes){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(scopes===undefined){throw new Error('Missing required parameter: "scopes"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.put(path,{'content-type':'application/json'},{'name':name,'scopes':scopes});},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};if(name){payload['name']=name;} +if(scopes){payload['scopes']=scopes;} +return http.put(path,{'content-type':'application/json'},payload);},deleteKey:function(projectId,keyId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(keyId===undefined){throw new Error('Missing required parameter: "keyId"');} -let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);return http.delete(path,{'content-type':'application/json'},{});},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/keys/{keyId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{keyId}','g'),keyId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},updateProjectOAuth:function(projectId,provider,appId='',secret=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(provider===undefined){throw new Error('Missing required parameter: "provider"');} -let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);return http.patch(path,{'content-type':'application/json'},{'provider':provider,'appId':appId,'secret':secret});},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/oauth'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(provider){payload['provider']=provider;} +if(appId){payload['appId']=appId;} +if(secret){payload['secret']=secret;} +return http.patch(path,{'content-type':'application/json'},payload);},listPlatforms:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createPlatform:function(projectId,type,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(type===undefined){throw new Error('Missing required parameter: "type"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'type':type,'name':name,'key':key,'store':store,'url':url});},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(type){payload['type']=type;} +if(name){payload['name']=name;} +if(key){payload['key']=key;} +if(store){payload['store']=store;} +if(url){payload['url']=url;} +return http.post(path,{'content-type':'application/json'},payload);},getPlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.get(path,{'content-type':'application/json'},{});},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updatePlatform:function(projectId,platformId,name,key='',store='',url=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.put(path,{'content-type':'application/json'},{'name':name,'key':key,'store':store,'url':url});},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};if(name){payload['name']=name;} +if(key){payload['key']=key;} +if(store){payload['store']=store;} +if(url){payload['url']=url;} +return http.put(path,{'content-type':'application/json'},payload);},deletePlatform:function(projectId,platformId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(platformId===undefined){throw new Error('Missing required parameter: "platformId"');} -let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);return http.delete(path,{'content-type':'application/json'},{});},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/platforms/{platformId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{platformId}','g'),platformId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},listTasks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createTask:function(projectId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} if(schedule===undefined){throw new Error('Missing required parameter: "schedule"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"');} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"');} -let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass});},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(status){payload['status']=status;} +if(schedule){payload['schedule']=schedule;} +if(security){payload['security']=security;} +if(httpMethod){payload['httpMethod']=httpMethod;} +if(httpUrl){payload['httpUrl']=httpUrl;} +if(httpHeaders){payload['httpHeaders']=httpHeaders;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.post(path,{'content-type':'application/json'},payload);},getTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.get(path,{'content-type':'application/json'},{});},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateTask:function(projectId,taskId,name,status,schedule,security,httpMethod,httpUrl,httpHeaders=[],httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} @@ -116,63 +231,129 @@ if(schedule===undefined){throw new Error('Missing required parameter: "schedule" if(security===undefined){throw new Error('Missing required parameter: "security"');} if(httpMethod===undefined){throw new Error('Missing required parameter: "httpMethod"');} if(httpUrl===undefined){throw new Error('Missing required parameter: "httpUrl"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.put(path,{'content-type':'application/json'},{'name':name,'status':status,'schedule':schedule,'security':security,'httpMethod':httpMethod,'httpUrl':httpUrl,'httpHeaders':httpHeaders,'httpUser':httpUser,'httpPass':httpPass});},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};if(name){payload['name']=name;} +if(status){payload['status']=status;} +if(schedule){payload['schedule']=schedule;} +if(security){payload['security']=security;} +if(httpMethod){payload['httpMethod']=httpMethod;} +if(httpUrl){payload['httpUrl']=httpUrl;} +if(httpHeaders){payload['httpHeaders']=httpHeaders;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.put(path,{'content-type':'application/json'},payload);},deleteTask:function(projectId,taskId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(taskId===undefined){throw new Error('Missing required parameter: "taskId"');} -let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);return http.delete(path,{'content-type':'application/json'},{});},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.get(path,{'content-type':'application/json'},{});},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/tasks/{taskId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{taskId}','g'),taskId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getProjectUsage:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/usage'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},listWebhooks:function(projectId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createWebhook:function(projectId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(events===undefined){throw new Error('Missing required parameter: "events"');} if(url===undefined){throw new Error('Missing required parameter: "url"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} -let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);return http.post(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks'.replace(new RegExp('{projectId}','g'),projectId);let payload={};if(name){payload['name']=name;} +if(events){payload['events']=events;} +if(url){payload['url']=url;} +if(security){payload['security']=security;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.post(path,{'content-type':'application/json'},payload);},getWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.get(path,{'content-type':'application/json'},{});},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateWebhook:function(projectId,webhookId,name,events,url,security,httpUser='',httpPass=''){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} if(events===undefined){throw new Error('Missing required parameter: "events"');} if(url===undefined){throw new Error('Missing required parameter: "url"');} if(security===undefined){throw new Error('Missing required parameter: "security"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.put(path,{'content-type':'application/json'},{'name':name,'events':events,'url':url,'security':security,'httpUser':httpUser,'httpPass':httpPass});},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};if(name){payload['name']=name;} +if(events){payload['events']=events;} +if(url){payload['url']=url;} +if(security){payload['security']=security;} +if(httpUser){payload['httpUser']=httpUser;} +if(httpPass){payload['httpPass']=httpPass;} +return http.put(path,{'content-type':'application/json'},payload);},deleteWebhook:function(projectId,webhookId){if(projectId===undefined){throw new Error('Missing required parameter: "projectId"');} if(webhookId===undefined){throw new Error('Missing required parameter: "webhookId"');} -let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);return http.delete(path,{'content-type':'application/json'},{});}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');} -let path='/storage/files';return http.post(path,{'content-type':'multipart/form-data'},{'files':files,'read':read,'write':write,'folderId':folderId});},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.put(path,{'content-type':'application/json'},{'read':read,'write':write,'folderId':folderId});},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);return http.delete(path,{'content-type':'application/json'},{});},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{});},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'width':width,'height':height,'quality':quality,'background':background,'output':output});},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} -let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);return http.get(path,{'content-type':'application/json'},{'as':as});}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';return http.get(path,{'content-type':'application/json'},{'search':search,'limit':limit,'offset':offset,'orderType':orderType});},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/teams';return http.post(path,{'content-type':'application/json'},{'name':name,'roles':roles});},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{});},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/projects/{projectId}/webhooks/{webhookId}'.replace(new RegExp('{projectId}','g'),projectId).replace(new RegExp('{webhookId}','g'),webhookId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);}};let storage={listFiles:function(search='',limit=25,offset=0,orderType='ASC'){let path='/storage/files';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createFile:function(files,read=[],write=[],folderId=''){if(files===undefined){throw new Error('Missing required parameter: "files"');} +let path='/storage/files';let payload={};if(files){payload['files']=files;} +if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(folderId){payload['folderId']=folderId;} +return http.post(path,{'content-type':'multipart/form-data'},payload);},getFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateFile:function(fileId,read=[],write=[],folderId=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(read){payload['read']=read;} +if(write){payload['write']=write;} +if(folderId){payload['folderId']=folderId;} +return http.put(path,{'content-type':'application/json'},payload);},deleteFile:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getFileDownload:function(fileId){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/download'.replace(new RegExp('{fileId}','g'),fileId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getFilePreview:function(fileId,width=0,height=0,quality=100,background='',output=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/preview'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(width){payload['width']=width;} +if(height){payload['height']=height;} +if(quality){payload['quality']=quality;} +if(background){payload['background']=background;} +if(output){payload['output']=output;} +return http.get(path,{'content-type':'application/json'},payload);},getFileView:function(fileId,as=''){if(fileId===undefined){throw new Error('Missing required parameter: "fileId"');} +let path='/storage/files/{fileId}/view'.replace(new RegExp('{fileId}','g'),fileId);let payload={};if(as){payload['as']=as;} +return http.get(path,{'content-type':'application/json'},payload);}};let teams={listTeams:function(search='',limit=25,offset=0,orderType='ASC'){let path='/teams';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},createTeam:function(name,roles=["owner"]){if(name===undefined){throw new Error('Missing required parameter: "name"');} +let path='/teams';let payload={};if(name){payload['name']=name;} +if(roles){payload['roles']=roles;} +return http.post(path,{'content-type':'application/json'},payload);},getTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateTeam:function(teamId,name){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(name===undefined){throw new Error('Missing required parameter: "name"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.put(path,{'content-type':'application/json'},{'name':name});},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);return http.delete(path,{'content-type':'application/json'},{});},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} -let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);return http.get(path,{'content-type':'application/json'},{});},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(name){payload['name']=name;} +return http.put(path,{'content-type':'application/json'},payload);},deleteTeam:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},getTeamMembers:function(teamId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/members'.replace(new RegExp('{teamId}','g'),teamId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},createTeamMembership:function(teamId,email,roles,redirect,name=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(email===undefined){throw new Error('Missing required parameter: "email"');} if(roles===undefined){throw new Error('Missing required parameter: "roles"');} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);return http.post(path,{'content-type':'application/json'},{'email':email,'name':name,'roles':roles,'redirect':redirect});},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships'.replace(new RegExp('{teamId}','g'),teamId);let payload={};if(email){payload['email']=email;} +if(name){payload['name']=name;} +if(roles){payload['roles']=roles;} +if(redirect){payload['redirect']=redirect;} +return http.post(path,{'content-type':'application/json'},payload);},deleteTeamMembership:function(teamId,inviteId){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"');} -let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.delete(path,{'content-type':'application/json'},{});},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships/{inviteId}'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},createTeamMembershipResend:function(teamId,inviteId,redirect){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} if(inviteId===undefined){throw new Error('Missing required parameter: "inviteId"');} if(redirect===undefined){throw new Error('Missing required parameter: "redirect"');} -let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);return http.post(path,{'content-type':'application/json'},{'redirect':redirect});},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} +let path='/teams/{teamId}/memberships/{inviteId}/resend'.replace(new RegExp('{teamId}','g'),teamId).replace(new RegExp('{inviteId}','g'),inviteId);let payload={};if(redirect){payload['redirect']=redirect;} +return http.post(path,{'content-type':'application/json'},payload);},updateTeamMembershipStatus:function(teamId,inviteId,userId,secret,success='',failure=''){if(teamId===undefined){throw new Error('Missing required parameter: "teamId"');} 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);let payload={};if(userId){payload['userId']=userId;} +if(secret){payload['secret']=secret;} +if(success){payload['success']=success;} +if(failure){payload['failure']=failure;} +return http.patch(path,{'content-type':'application/json'},payload);}};let users={listUsers:function(search='',limit=25,offset=0,orderType='ASC'){let path='/users';let payload={};if(search){payload['search']=search;} +if(limit){payload['limit']=limit;} +if(offset){payload['offset']=offset;} +if(orderType){payload['orderType']=orderType;} +return http.get(path,{'content-type':'application/json'},payload);},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"');} -let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.get(path,{'content-type':'application/json'},{});},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} -let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{});},deleteUsersSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users';let payload={};if(email){payload['email']=email;} +if(password){payload['password']=password;} +if(name){payload['name']=name;} +return http.post(path,{'content-type':'application/json'},payload);},getUser:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getUserLogs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/logs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},getUserPrefs:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},updateUserPrefs:function(userId,prefs){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +if(prefs===undefined){throw new Error('Missing required parameter: "prefs"');} +let path='/users/{userId}/prefs'.replace(new RegExp('{userId}','g'),userId);let payload={};if(prefs){payload['prefs']=prefs;} +return http.patch(path,{'content-type':'application/json'},payload);},getUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.get(path,{'content-type':'application/json'},payload);},deleteUserSessions:function(userId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions'.replace(new RegExp('{userId}','g'),userId);let payload={};return http.delete(path,{'content-type':'application/json'},payload);},deleteUserSession:function(userId,sessionId){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(sessionId===undefined){throw new Error('Missing required parameter: "sessionId"');} -let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);return http.delete(path,{'content-type':'application/json'},{'sessionId':sessionId});},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} +let path='/users/{userId}/sessions/:session'.replace(new RegExp('{userId}','g'),userId);let payload={};if(sessionId){payload['sessionId']=sessionId;} +return http.delete(path,{'content-type':'application/json'},payload);},updateUserStatus:function(userId,status){if(userId===undefined){throw new Error('Missing required parameter: "userId"');} if(status===undefined){throw new Error('Missing required parameter: "status"');} -let path='/users/{userId}/status'.replace(new RegExp('{userId}','g'),userId);return http.patch(path,{'content-type':'application/json'},{'status':status});}};return{setEndpoint:setEndpoint,setProject:setProject,setKey:setKey,setLocale:setLocale,setMode:setMode,account:account,auth:auth,avatars:avatars,database:database,locale:locale,projects:projects,storage:storage,teams:teams,users:users};};})(window);(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Chart=f()}})(function(){var define,module,exports;return(function(){function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o127&&x<2048){d+=String.fromCharCode((x>>6)|192);d+=String.fromCharCode((x&63)|128);}else{d+=String.fromCharCode((x>>12)|224);d+=String.fromCharCode(((x>>6)&63)|128);d+=String.fromCharCode((x&63)|128);}}} return d;} let C=Array();let P,h,E,v,g,Y,X,W,V;let S=7,Q=12,N=17,M=22;let A=5,z=9,y=14,w=20;let o=4,m=11,l=16,j=23;let U=6,T=10,R=15,O=21;s=J(s);C=e(s);Y=1732584193;X=4023233417;W=2562383102;V=271733878;for(P=0;Pchar.charCodeAt(0)).reduce((a,b)=>a+b,0).toString();let themes=[{color:"27005e",background:"e1d2f6"},{color:"5e2700",background:"f3d9c6"},{color:"006128",background:"c9f3c6"},{color:"580061",background:"f2d1f5"},{color:"00365d",background:"c6e1f3"},{color:"00075c",background:"d2d5f6"},{color:"610038",background:"f5d1e6"},{color:"386100",background:"dcf1bd"},{color:"615800",background:"f1ecba"},{color:"610008",background:"f6d2d5"}];name=name.split(" ").map(function(n){if(!isNaN(parseFloat(n))&&isFinite(n)){return"";} +let i=B(Y)+B(X)+B(W)+B(V);return i.toLowerCase();};let size=element.dataset["size"]||80;let email=$value.email||$value||"";let name=$value.name||$value||"";name=(typeof stringValue!=='string')?'':name;let theme=name.split("").map(char=>char.charCodeAt(0)).reduce((a,b)=>a+b,0).toString();let themes=[{color:"27005e",background:"e1d2f6"},{color:"5e2700",background:"f3d9c6"},{color:"006128",background:"c9f3c6"},{color:"580061",background:"f2d1f5"},{color:"00365d",background:"c6e1f3"},{color:"00075c",background:"d2d5f6"},{color:"610038",background:"f5d1e6"},{color:"386100",background:"dcf1bd"},{color:"615800",background:"f1ecba"},{color:"610008",background:"f6d2d5"}];name=name.split(" ").map(function(n){if(!isNaN(parseFloat(n))&&isFinite(n)){return"";} return n[0];}).join("")||"--";let background=themes[theme[theme.length-1]]["background"];let color=themes[theme[theme.length-1]]["color"];let def="https://ui-avatars.com/api/"+ encodeURIComponent(name)+"/"+ size+"/"+ @@ -300,7 +300,7 @@ let config={type:"line",data:{labels:[],datasets:[{label:"Requests",backgroundCo let chart=container.get("chart");if(chart){} element.innerHTML="";element.appendChild(child);container.set("chart",new Chart(child.getContext("2d"),config),true);element.dataset["canvas"]=true;}});(function(window){"use strict";window.ls.view.add({selector:"data-service",controller:function(element,view,container,form,alerts,expression,window){let action=element.dataset["service"];let service=element.dataset["name"]||action;let event=element.dataset["event"];let confirm=element.dataset["confirm"]||"";let loading=element.dataset["loading"]||"";let loaderId=null;let scope=element.dataset["scope"]||"sdk";let debug=!!element.dataset["debug"];let success=element.dataset["success"]||"";let failure=element.dataset["failure"]||"";success=success&&success!=""?success.split(",").map(element=>element.trim()):[];failure=failure&&failure!=""?failure.split(",").map(element=>element.trim()):[];if(debug) console.log("%c[service init]: "+action+" ("+service+")","color:red");let callbacks={reset:function(){return function(){if("FORM"===element.tagName){return element.reset();} -throw new Error("This callback is only valid for forms");};},alert:function(text,classname){return function(alerts){alerts.add({text:text,class:classname||"success"},3000);};},redirect:function(url){return function(router){router.change(url||"/");};},reload:function(){return function(router){router.reload();};},state:function(keys){let updateQueryString=function(key,value,url){var re=new RegExp("([?&])"+key+"=.*?(&|#|$)(.*)","gi"),hash;if(re.test(url)){if(typeof value!=="undefined"&&value!==null){return url.replace(re,"$1"+key+"="+value+"$2$3");}else{hash=url.split("#");url=hash[0].replace(re,"$1$3").replace(/(&|\?)$/,"");if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} +throw new Error("This callback is only valid for forms");};},alert:function(text,classname){return function(alerts){alerts.add({text:text,class:classname||"success"},3000);};},redirect:function(url){return function(router){window.location=url||"/";};},reload:function(){return function(router){router.reload();};},state:function(keys){let updateQueryString=function(key,value,url){var re=new RegExp("([?&])"+key+"=.*?(&|#|$)(.*)","gi"),hash;if(re.test(url)){if(typeof value!=="undefined"&&value!==null){return url.replace(re,"$1"+key+"="+value+"$2$3");}else{hash=url.split("#");url=hash[0].replace(re,"$1$3").replace(/(&|\?)$/,"");if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} return url;}}else{if(typeof value!=="undefined"&&value!==null){var separator=url.indexOf("?")!==-1?"&":"?";hash=url.split("#");url=hash[0]+separator+key+"="+value;if(typeof hash[1]!=="undefined"&&hash[1]!==null){url+="#"+hash[1];} return url;}else{return url;}}};keys=keys.split(",").map(element=>element.trim());return function(serviceForm,router,window){let url=window.location.href;keys.map(node=>{node=node.split("=");let key=node[0]||"";let name=node[1]||key;let value=getValue(key,"param",serviceForm);url=updateQueryString(name,value?value:null,url);});if(url!==window.location.href){window.history.pushState({},"",url);router.reset();}};},trigger:function(events){return function(document){events=events.trim().split(",");for(let i=0;i*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}*{font-family:Poppins,sans-serif,Arial;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:#1e849e;text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;border-bottom:solid 1px transparent}.link:hover,a:hover{border-bottom:dotted 1px #1e849e}.link.disabled,a.disabled{opacity:.5}.link.disabled:hover,a.disabled:hover{border-bottom:none}.link.tag:hover,a.tag:hover{border-bottom:none;opacity:.9}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:#818181}.text-size-small{font-size:13px}.text-size-normal{font-size:16px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-danger{color:#f53d3d}.text-success{color:#1bbf61}.text-upper{text-transform:uppercase}.text-warning{color:#ffed4d}.text-focus{color:#f02e65}.text-fade{color:#818181}.text-disclaimer{font-size:11px;color:#818181}.text-fade-extra{color:#818181;opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:left}.text-align-end{text-align:right}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px #f1f3f5;font-size:14px}table thead th{position:sticky;top:0}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px #f1f3f5}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:#fbfbfb}table th{text-align:left;font-weight:400}table th i{color:#818181;font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-left:30px}table td:last-child,table th:last-child{padding-right:30px}@media only screen and (max-width:550px){table td:first-child,table th:first-child{width:auto}}table td,table th{overflow:hidden;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){table.vertical{display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:910px;margin:0 auto 40px auto}.zone.xxxl{max-width:calc(100% - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:1100px}.zone.xl{max-width:910px}.zone.large{max-width:700px}.zone.medium{max-width:550px}.zone.small{max-width:320px}.row{position:relative;margin:0 -50px;padding-left:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row{margin:0 -30px;padding-left:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:right}.row.wide{margin:0 -100px;padding-left:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-right:100px}.row.thin{margin:0 -20px;padding-left:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-right:20px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:left;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:0}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-right:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-right:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-right:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-right:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-right:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-right:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-right:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-right:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-right:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-right:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-right:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-right:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-right:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles li{margin-right:50px!important;float:left;width:calc(33% - 33px)}.tiles li .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:#f1f3f5;border-bottom:solid 1px #f1f3f5}.tiles li:nth-child(3n){margin-right:0!important}@media only screen and (max-width:550px){.tiles li{width:100%;margin-right:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI+UFQBAAABUAAAAFZjbWFwf48e7AAAAagAAAekY3Z0IAcz/qQAAHXcAAAAIGZwZ22KkZBZAAB1/AAAC3BnYXNwAAAAEAAAddQAAAAIZ2x5Zu1biuYAAAlMAABi4mhlYWQVIVKIAABsMAAAADZoaGVhCBoElAAAbGgAAAAkaG10eFzH/5wAAGyMAAABkGxvY2GKk3GuAABuHAAAAMptYXhwAlANFAAAbugAAAAgbmFtZcydHyEAAG8IAAACzXBvc3Q98MKvAABx2AAAA/twcmVw5UErvAAAgWwAAACGAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDfQGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAQOgA8sYDUv9qAFoDgQDGAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAALwAAEAAAAAAeoAAwABAAAALAADAAoAAALwAAQBvgAAADoAIAAEABroRvCO8JvwsPDF8MvwzfDc8OHxGPEc8SHxMvFx8Xrxk/Gc8aDxrfHA8c3x3PHl8f7yMfI68pbyxv//AADoAPCO8JvwsPDF8MrwzfDc8OHxGPEc8SHxMvFx8Xrxk/Gc8aDxrfHA8c3x3PHl8f7yMfI68pbyxv//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQA6AMYAxgDGAMYAxgDIAMgAyADIAMgAyADIAMgAyADIAMgAyADIAMgAyADIAMgAyADIAMgAyADIAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AD8AQABBAEIAQwBEAEUARgBHAEgASQBKAEsATABNAE4ATwBQAFEAUgBTAFQAVQBWAFcAWABZAFoAWwBcAF0AXgBfAGAAYQBiAGMAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAABLQAAAAAAAAAYwAA6AAAAOgAAAAAAQAA6AEAAOgBAAAAAgAA6AIAAOgCAAAAAwAA6AMAAOgDAAAABAAA6AQAAOgEAAAABQAA6AUAAOgFAAAABgAA6AYAAOgGAAAABwAA6AcAAOgHAAAACAAA6AgAAOgIAAAACQAA6AkAAOgJAAAACgAA6AoAAOgKAAAACwAA6AsAAOgLAAAADAAA6AwAAOgMAAAADQAA6A0AAOgNAAAADgAA6A4AAOgOAAAADwAA6A8AAOgPAAAAEAAA6BAAAOgQAAAAEQAA6BEAAOgRAAAAEgAA6BIAAOgSAAAAEwAA6BMAAOgTAAAAFAAA6BQAAOgUAAAAFQAA6BUAAOgVAAAAFgAA6BYAAOgWAAAAFwAA6BcAAOgXAAAAGAAA6BgAAOgYAAAAGQAA6BkAAOgZAAAAGgAA6BoAAOgaAAAAGwAA6BsAAOgbAAAAHAAA6BwAAOgcAAAAHQAA6B0AAOgdAAAAHgAA6B4AAOgeAAAAHwAA6B8AAOgfAAAAIAAA6CAAAOggAAAAIQAA6CEAAOghAAAAIgAA6CIAAOgiAAAAIwAA6CMAAOgjAAAAJAAA6CQAAOgkAAAAJQAA6CUAAOglAAAAJgAA6CYAAOgmAAAAJwAA6CcAAOgnAAAAKAAA6CgAAOgoAAAAKQAA6CkAAOgpAAAAKgAA6CoAAOgqAAAAKwAA6CsAAOgrAAAALAAA6CwAAOgsAAAALQAA6C0AAOgtAAAALgAA6C4AAOguAAAALwAA6C8AAOgvAAAAMAAA6DAAAOgwAAAAMQAA6DEAAOgxAAAAMgAA6DIAAOgyAAAAMwAA6DMAAOgzAAAANAAA6DQAAOg0AAAANQAA6DUAAOg1AAAANgAA6DYAAOg2AAAANwAA6DcAAOg3AAAAOAAA6DgAAOg4AAAAOQAA6DkAAOg5AAAAOgAA6DoAAOg6AAAAOwAA6DsAAOg7AAAAPAAA6DwAAOg8AAAAPQAA6D0AAOg9AAAAPgAA6D4AAOg+AAAAPwAA6D8AAOg/AAAAQAAA6EAAAOhAAAAAQQAA6EEAAOhBAAAAQgAA6EIAAOhCAAAAQwAA6EMAAOhDAAAARAAA6EQAAOhEAAAARQAA6EUAAOhFAAAARgAA6EYAAOhGAAAARwAA8I4AAPCOAAAASAAA8JsAAPCbAAAASQAA8LAAAPCwAAAASgAA8MUAAPDFAAAASwAA8MoAAPDKAAAATAAA8MsAAPDLAAAATQAA8M0AAPDNAAAATgAA8NwAAPDcAAAATwAA8OEAAPDhAAAAUAAA8RgAAPEYAAAAUQAA8RwAAPEcAAAAUgAA8SEAAPEhAAAAUwAA8TIAAPEyAAAAVAAA8XEAAPFxAAAAVQAA8XoAAPF6AAAAVgAA8ZMAAPGTAAAAVwAA8ZwAAPGcAAAAWAAA8aAAAPGgAAAAWQAA8a0AAPGtAAAAWgAA8cAAAPHAAAAAWwAA8c0AAPHNAAAAXAAA8dwAAPHcAAAAXQAA8eUAAPHlAAAAXgAA8f4AAPH+AAAAXwAA8jEAAPIxAAAAYAAA8joAAPI6AAAAYQAA8pYAAPKWAAAAYgAA8sYAAPLGAAAAYwACAAD/sQLKAwwAFQAeACVAIgAFAQVvAwEBBAFvAAQCBG8AAgACbwAAAGYTFxERFzIGBRorJRQGIyEiJjU0PgMXFjI3Mh4DAxQGIi4BNh4BAspGMf4kMUYKGCo+LUnKSipCJhwIj3y0egSCrIRFPFhYPDBUVjwoAUhIJj5UVgHAWH5+sIACfAAAAv/+/84D6gLuAA4AHgBkS7ANUFhAIwADBAQDYwUBAAIBAgABbQABAW4ABAICBFQABAQCVwACBAJLG0AiAAMEA28FAQACAQIAAW0AAQFuAAQCAgRUAAQEAlcAAgQCS1lAEQEAHRoXFBEQCQYADgENBgUUKwEyFgcDDgEjISInAyY2MyUXITc+ATsBMh8BFjMhMhYDuiAQAioCFCD82jQEKgIQIANqCvyyDgQgFKQ0Ih4gNgFUFCQB9BgY/jwYGjIBxBgYbiiEFBwiHiQYAAAAAAj////4A+kDCwAPAB8ALwA/AE8AXwBvAH8AdkBzeXhxSUhBBggJaWFgKSEgBgQFWVhRUBkYERAIAgM5ODEJCAEGAAEERw8BCQ4BCAUJCGANAQUMAQQDBQReCwEDCgECAQMCXgcBAQAAAVQHAQEBAFYGAQABAEp9e3VzbWtlZF1bVVRNTCYmFyYXFxcXFBAFHSs3FRQGJyMiJjc1NDY3MzIWJxUUBicjIiY3NTQ2FzMyFicVFAYHIyImNzU0NjsBMhYBFRQGJyEiJic1NDY3ITIWARUUBisBIiY3NTQ2NzMyFgEVFAYnISImJzU0NhchMhYnFRQGByEiJic1NDYzITIWJxUUBiMhIiYnNTQ2NyEyFo8KCGsHDAEKCGsHDAEKCGsHDAEKCGsHDAEKCGsHDAEKCGsHDANYCgj9EgcKAQwGAu4HDPymCghrBwwBCghrBwwDWAoI/RIHCgEMBgLuBwwBCgj9EgcKAQwGAu4HDAEKCP0SBwoBDAYC7gcMdmsHDAEKCGsHCgEM0GsHDAEKCGsHDAEKzmsHCgEMBmsICgr+TGsHDAEKCGsHCgEMAn1rCAoKCGsHCgEM/k1rBwwBCghrBwwBCs5rBwoBDAZrCAoKz2sICgoIawcKAQwAAgAA//kDWQLEABgAQABQQE0MAQECAUchAQABRgADBwYHAwZtAAIGAQYCAW0AAQUGAQVrAAAFBAUABG0ABwAGAgcGYAAFAAQFVAAFBQRYAAQFBEwsJSonExYjFAgFHCsBFAcBBiImPQEjIiYnNTQ2NzM1NDYWFwEWNxEUBisBIiY3JyY/AT4BFzMyNicRNCYHIyI0JjYvASY/AT4BFzMyFgKVC/7RCx4U+g8UARYO+hQeCwEvC8ReQ7IHDAEBAQECAQgIsiU2ATQmtAYKAgIBAQECAQgIskNeAV4OC/7QChQPoRYO1g8UAaEOFgIJ/tAKtf54Q14KCAsJBg0HCAE2JAGIJTYBBAIIBAsJBg0HCAFeAAAAAgAA/7EDWgMLAAgAagBFQEJlWUxBBAAEOwoCAQA0KBsQBAMBA0cABQQFbwYBBAAEbwAAAQBvAAEDAW8AAwIDbwACAmZcW1NRSUgrKiIgExIHBRYrATQmIg4BFjI2JRUUBg8BBgcWFxYUBw4BJyIvAQYHBgcGKwEiJjUnJicHBiInJicmNDc+ATcmLwEuASc1NDY/ATY3JicmNDc+ATMyHwE2NzY3NjsBMhYfARYXNzYyFxYXFhQHDgEHFh8BHgECO1J4UgJWdFYBHAgHaAoLEygGBQ9QDQcHTRkaCQcEEHwIDBAbF08GEAZGFgQFCCgKDwhmBwgBCgVoCA4XJQYFD1ANBwhNGBoJCAMRfAcMAQ8cF08FDwdIFAQECSgKDwhmBwoBXjtUVHZUVHh8BwwBEB4VGzIGDgYVUAEFPA0ITBwQCgdnCQw8BQZAHgUOBgwyDxwbDwEMB3wHDAEQGRogLQcMBxRQBTwNCEwcEAoHZwkLOwUFQxwFDgYMMg8cGhABDAAAAAEAAP/3A4gCwwAvAE1ASi4sKiACBQUGGQEEBRYSAgMECwEBAgRHAAYFBm8ABQQFbwAEAwRvAAMCA28AAgECbwABAAABVAABAQBYAAABAEwkFhYjESIoBwUbKwEGBxUUDgMnIicWMzI3LgEnFjMyNy4BPQEWFy4BNDceARcmNTQ2NzIXNjcGBzYDiCU1KlZ4qGGXfRMYfmI7XBITDxgYP1ImLCUsGUTAcAVqSk81PTYVOzQCbjYnF0mQhmRAAlECTQFGNgMGDWJCAhUCGU5gKlNkBRUUS2gBOQwgQCQGAAAABgAA/54DjwMdAAMABwALABAAGQAeAEpARwABAAADAQBeAAMAAgUDAl4ABQAEBgUEXgoMCAMGBwcGVAoMCAMGBgdYCwkCBwYHTBIRHh0cGxYVERkSGRESEREREREQDQUcKwEhNSEBITUhASE1IQE0MhQiJTIWDgEuAjYXNDIUIgOP/IMDff6x/dICLgFP/IMDffyDcHABGBYiAh4wIAIkvHBwAq1w/rFw/q9v/nw4cXEiLCQBIi4gNzhxAAABAAD/7wLUAoYAJAAeQBsiGRAHBAACAUcDAQIAAm8BAQAAZhQcFBQEBRgrJRQPAQYiLwEHBiIvASY0PwEnJjQ/ATYyHwE3NjIfARYUDwEXFgLUD0wQLBCkpBAsEEwQEKSkEBBMECwQpKQQLBBMDw+kpA9wFhBMDw+lpQ8PTBAsEKSkECwQTBAQpKQQEEwPLg+kpA8AAgAA//kDkgLFABAAMQAuQCsuJiUYFQ8ODQgBAwwBAAECRwQBAwEDbwABAAFvAgEAAGYqKCMiIREUBQUXKwERFAYHIzUjFSMiJicRCQEWNwcGByMiJwkBBiYvASY2NwE2Mh8BNTQ2OwEyFh0BFxYUAxIWDtaP1g8UAQFBAUEBfCIFBwIHBf5+/n4HDQUjBAIFAZESMBOICghrCAp6BgEo/vUPFAHW1hYOAQ8BCP74ASQpBQEDAUL+vgQCBSkGDgUBTg8PcWwICgoI42YEEAAAAAEAAAAAAjwB7QAOABdAFAABAAEBRwABAAFvAAAAZjUUAgUWKwEUDwEGIi8BJjQ2MyEyFgI7CvoLHAv6CxYOAfQOFgHJDgv6Cwv6CxwWFgAAAQAA/7ECFwNSABQAM0AwAAEABgFHAAMCA3AABgAAAQYAYAUBAQICAVIFAQEBAlYEAQIBAkojERERERMhBwUbKwEVIyIGHQEzByMRIxEjNTM1NDYzMgIXVzAipBaOq46OdGFSA0uTKChqpf5YAailemhyAAABAAD/sQNkAwsANQAdQBo1LCMaEQgGAAEBRwABAAFvAAAAZikmOwIFFSsBHgEPAQ4BLwEVFAYHIyImNzUHBiYvASY2PwEnLgE/AT4BHwE1NDY3MzIWHQE3NhYfARYGDwEDOxoODiMPOhmVKh1HHSwBlBo6DiQODhuUlBoQDyQPOBuUKh5HHSqVGjgQIw8QGZQBCA46Gj0aDg5Vqx0qASwcq1UPEBk9GjoOVlYOOho9Gg4OVasdKgEsHKtVDxAZPRo6DlYABAAA/7EDoQMuAAgAEQApAEAARkBDNQEHBgkAAgIAAkcACQYJbwgBBgcGbwAHAwdvAAQAAgRUBQEDAQEAAgMAYAAEBAJYAAIEAkw9PCMzIyIyJTkYEgoFHSslNCYOAh4BNjc0Jg4CHgE2NxUUBiMhIiYnNTQ2FzMeATsBMjY3MzIWAwYrARUUBgcjIiYnNSMiJj8BNjIfARYCyhQeFAIYGhiNFCASAhYcGEYgFvzLFx4BIBbuDDYjjyI2De4WILYJGI8UD48PFAGPFxMR+goeCvoSHQ4WAhIgEgQaDA4WAhIgEgQaibMWICAWsxYgAR8oKB8eAVIW+g8UARYO+iwR+goK+hEAAAAABQAA/zoDqgOBACgAMQBCAEsAVACAQH0bCgIEAR8BCgYAAQ0KA0cABAEGAQQGbQAGCgEGCmsACQ0HDQkHbQ8BCgANCQoNYAAHAAgMBwhgEAEMAAsFDAtgAwEBAQJYAAICDEgOAQUFAFgAAAANAElNTERDKilRUExUTVRIR0NLREtAPzo3NDIuLSkxKjEYIzMoFBEFGSsBFhUUAAQANTQSNzUnNSMiJj4BNzMyHgEGJyMVBxUWFz8BNjIWBg8BBgEyNhAmBAYQFhMzMhYUBicjIiY9ATQ2MhYHJzIWEgYiJhI2EzI2LgEOAhYDV1P+7P5+/uzwsgIzFSACHBfQFR4CIhM0AZxyBhsPKiACDhoF/nSX1tb+0tbWy2gVICAVnBUgICogATSBtgK6/rwEtINrmgKW2pYCmgIZdZTC/u4CARbAtAEKEwEDMyAqHgEgKCIBMwEDEWwJGg8eLA8aBf2F1gEu1gLS/s7SAZ4eKiABHhacFh4eFp24/v64uAECuP3CmtaaApbalgACAAD/2APoAuQAFQAkAEZAQyMBBAIkGQIBBAMEAkciAQFFAAEAAgQBAl4ABQAEAwUEYAYBAwAAA1IGAQMDAFgAAAMATAAAISAXFgAVABUUJTUHBRcrJTU3FRQGIyEiJjURNDYzIQ4BDwEjEQEiBgc0PgUzNQUBAu5kHhT9EhQeHBYBICA2DAqCAjimmFQCEBw8UIZSAUz+tDw4UrwUHh4UAiYWHBgyDgz+PgFcUowIHFRKXEIunPr+/AAAAAEAAP+xA+gDDAAcACFAHhEBAAEBRwIBAQABbwMBAABmAQAXFQ0LABwBHAQFFCsFIicBJy4DNTQ2NzIeAhc+AxcyFhQHAQYB9A4L/qQPCioiGo59Ikg+LhMULEBGI32OgP6lCk8KAVAPCjY2UCV7igEYKiIVFCQoGgGM9YD+sQoAAQAA//kDEgMLACMAKUAmAAQDBG8AAQABcAUBAwAAA1QFAQMDAFgCAQADAEwjMyUjMyMGBRorARUUBicjFRQGByMiJjc1IyImJzU0NjczNTQ2OwEyFhcVMzIWAxIgFuggFmsWIAHoFx4BIBboHhdrFx4B6BceAbdrFiAB6RYeASAV6R4XaxceAegWICAW6CAAAf//AAACOwHJAA4AEUAOAAEAAW8AAABmFTICBRYrJRQGJyEiLgE/ATYyHwEWAjsUD/4MDxQCDPoKHgr6CqsOFgEUHgv6Cgr6CwAAAAMAAP/5A1oCxAAPAB8ALwA3QDQoAQQFCAACAAECRwAFAAQDBQRgAAMAAgEDAmAAAQAAAVQAAQEAWAAAAQBMJjUmNSYzBgUaKyUVFAYHISImJzU0NjchMhYDFRQGJyEiJic1NDYXITIWAxUUBiMhIiYnNTQ2FyEyFgNZFBD87w8UARYOAxEPFgEUEPzvDxQBFg4DEQ8WARQQ/O8PFAEWDgMRDxZkRw8UARYORw8UARYBEEgOFgEUD0gOFgEUAQ5HDhYWDkcPFgEUAAAAAAEAAP/AApgDRAAUABdAFAEBAAEBRwABAAFvAAAAZhcXAgUWKwkCFhQPAQYiJwEmNDcBNjIfARYUAo7+1wEpCgpdCxwL/mILCwGeCh4KXQoCqv7Y/tcKHgpdCgoBnwoeCgGeCwtdCh4AAQAA/8ACdANEABQAF0AUCQEAAQFHAAEAAW8AAABmHBICBRYrCQEGIi8BJjQ3CQEmND8BNjIXARYUAmr+YgscC10LCwEo/tgLC10KHgoBngoBaf5hCgpdCxwLASkBKAscC10LC/5iCxwAAAAAAgAA//kDWQLEAA0AIwAzQDAWAQQDAUcCAQABAwEAA20ABQABAAUBXgADBAQDUgADAwRYAAQDBEwpNBEjFBAGBRorATM0JicDIQMOARUzFzMlERQGByEiJicRNDcTPgEXITIWFxMWAjuwAgF2/nV2AQKwNbMBUxQQ/O8PFAEOhQUeDgHRDh4FhQ4BOgIGAQEV/usBBgJrW/7zDxQBFg4BDSIiATQOFAESD/7MIgAAAAADAAD/dgOgAwsACAAUAC4AM0AwJgEEAygnEgMCBAABAQADRwADBANvAAQCBG8AAgACbwAAAQBvAAEBZhwjLRgSBQUZKzc0Jg4CHgE2JQEGIi8BJjQ3AR4BJRQHDgEnIiY0NjcyFhcWFA8BFRc2PwE2MhbWFB4UAhgaGAFm/oMVOhY7FRUBfBZUAZkNG4JPaJKSaCBGGQkJo2wCKkshDwodDhYCEiASBBr2/oMUFD0UOxYBfDdU3RYlS14BktCQAhQQBhIHXn08AhktFAoAAAAAAQAA/2kD6ALDACYAHEAZGwEAAQFHDQEARAABAAFvAAAAZiQiIwIFFSsBFA4BIyInBgcGBwYmJzUmNiY/ATY/AT4CPwEuASc0PgIzMh4BA+iG5ognKm6TGyQKDgMCBAIDDAQNFAcUEAcPWGQBUIS8ZIjmhgFeYaRgBGEmCAQBDAoBAggEAw8FDhYIHBwTKjKSVEmEYDhgpAAHAAD/agMQA1IABwALAA8AEwAXABsAHwBGQEMTDw0DBAABRx4bGhkXFhUSEQkARQIBAAQAbwAEAAUBBAVeAAEDAwFSAAEBA1YGAQMBA0oAAAsKCQgABwAHERERBwUXKxURFwMhETMRJSEVIT8BBQclNwUHATcFBwM3EwcTNxMHTAMB9U/97gGI/ngBCAGJCP6MFwF8GP7MLAFSLapF5kYXVEFUlgGhAf6xAU7+YdtTlFUmVdNSa1IBNEnMSQGZMv6/MgG8Dv57DgAAAAADAAD/yAMtAvUAFwAgADUAoEAKDgEDAREBBAMCR0uwFlBYQDIAAgABAQJlCwEHCQEAAgcAYAABAAMEAQNhAAQKAQUGBAVgAAYICAZUAAYGCFgACAYITBtAMwACAAEAAgFtCwEHCQEAAgcAYAABAAMEAQNhAAQKAQUGBAVgAAYICAZUAAYGCFgACAYITFlAISIhGRgBACwrITUiNR0cGCAZIBAPDQsHBQQDABcBFwwFFCsBIgYVMzQzMhYVFAYjIicVMzU+ATU0LgEDIgYUFjI2NCYDMhcWFxYUBwYHBiInJicmNDc2NzYBlU5Sgh0ODSIkCwmCMDEqSi4fLS0+Li4fbl9cNjg4Nlxf3V5cNjc3NlxeAmpUTzocHiMfAXozDEU3MEop/msuPy4uPi8CIDg1XF/dXlw2ODg2XF7dX1w1OAAAAAAC//3/sQNfAwsAFQAiADBALQcBAgEBRwAEAARvAAABAG8AAQIBbwACAwMCVAACAgNYAAMCA0wVFxcUFAUFGSsBNC8BJiIPAScmIg8BBhQfARYyNwE2FxQOASIuAj4BMh4BAs0KMwscC+R+CxwLMwoKygoeCwEvCoxyxujIbgZ6vPS6fgG4EAoyCwvjfgsLMgofCsoKCgEvCkt1xHR0xOrEdHTEAAP/4/+WBB8DJgAMABUAJAA2QDMAAQAEBQEEYAAFAAMCBQNgBgECAAACVAYBAgIAWAAAAgBMDg0iIRsaEhENFQ4VFTIHBRYrJRYGIyEiJyY3ATYyFwMyNjQmIgYeARM2NTQuAQYXFB8BFjI3NgPfQGh9/Y9+MzVAATU+1j+pIi4uRDACLHkFNEw2AQZIBRADSrpruV1cawIBa2v9jy5EMDBELgGDDRMmNAI4JBERsgkJsgAAAAL//gAAA5ACgAARACMAJEAhAAABAG8AAQMBbwADAgIDVAADAwJYAAIDAkwXORczBAUYKxMmNzYzITIHBgcGDwEGIi8BJgU2FREUBiMhIiY1ETQXBRYyNx4gBAIYA04mEggQDrK2EDoStrIDRBQiEPzgECIUAYASOBICShIWDiAOCAZgYgoKYmBeChT+kBAgIBABcBQKyAoKAAAAAAMAAP+6A5gDSQAcADsAXACmQBo6AQkFV0cCAAQTCwIBBwNHVisCCUYGAgcCRkuwClBYQDYABQMJBAVlAAEHAgABZQAIAAMFCANgAAkAAAcJAGAABAAHAQQHYQACBgYCVAACAgZYAAYCBkwbQDgABQMJAwUJbQABBwIHAQJtAAgAAwUIA2AACQAABwkAYAAEAAcBBAdhAAIGBgJUAAICBlgABgIGTFlADllYFxccKBcYGhgUCgUdKyU0LwEmIgcXHgEfARQGByIuAS8BBhQfARYyPwE2ATQvASYiDwEGFB8BFjI3Jy4CNTQ2FzIWHwEWHwE2ARQPAQYiLwEmNDcnBiIvASY0PwE2Mh8BFhQHFzYyHwEWAy0QdBAuEBYDDAECIBYIDg4EFhMQcw8tEFIQ/ncPcxAsEFIQEHQPLhEXAwoEHhcJDgcLBAgKEgH0MFIuhy5zLjExMIcvdC8vUi+GL3MuMTEwhy90L6sXD3QQEhYDEAYPFx4BBAoEFhEuD3QPD1EQAZ8WEHMQD1IPLBB0DxEXAw4OCRYgAQQFCAMJCxH+jkIvUS8wcy+HMDExL3Qvhi5SLi90LogwMTEvdC8AAAACAAD/nwOQAx0AFAAfAFhAVQcBAQUBRwgBAQ8BAgJGAAIBAwECA20AAwQBAwRrAAQEbgcBAAAGBQAGYAgBBQEBBVQIAQUFAVgAAQUBTBYVAQAbGhUfFh8ODQwLCgkGBAAUARQJBRQrATIWDgEjIicHFSMVIxUhNQEmNTQ2EzI2LgEnIgYVFBYCeXOkAqB2HBcFcG/+sQFUBaR0FiICHhkYICIDHaTmpAUFcG9x4AFUFx1zov6yIDIcAiIVGCIAAAASAAD/2QMuAuMADwAUABgAHAAgACQAKAAtADEANgA6AD4AQwBIAEsATgBRAFQAbEBpSEdDQkFAPj08Ojk4NjMxMC8tLCooJyYkIyIgHx4cGxoXFhUUEyUFAQFHCwEACgcGBAMFAQUAAV4JCAIFAgIFUgkIAgUFAlYAAgUCSgEAVFNRUE5NS0pGRTU0EhELCQgHBQQADwEODAUUKwEyFhQGKwEDIQMjIiY0NjMFJyMHFwcXNyc3FzcnFwcXNycXNycHNycHJwcfATcXBxc3FwcXMz8CJwc/AScHPwEnBxcvASMHFyU3IxMXMyUHMxM3IwMBEhsbEgaH/kqGCxMaGhMBSBN2Ek10GTxOIE1OTm1MTE0tTU1NbU1NTI4rERpOH01NTh9MOSY6IE1NTbEZEUx0DTVMTB8TdRJN/oQoMGgRSwEQa1VxCjsC4xomGv1QArAaJhprERFOtIE8TSBNTUxsTU1NbU1NTC1OTExMKlUbTvpOTEwfTTo6IExOTiqAEU2zQDNMTrsREU43KP3xXWlpAj0vAAL/+P+2A+wDCAAcACMAd7UeAQIBAUdLsAtQWEApAAcGB28JCAIGAQZvBQEBAgFvBAECAwMCYwADAAADUgADAwBZAAADAE0bQCgABwYHbwkIAgYBBm8FAQECAW8EAQIDAm8AAwAAA1IAAwMAWQAAAwBNWUARHR0dIx0jERMRIhMRFjYKBRwrJR4BDwEOASMhIiYvASY/ATMHMzIfASE3NjsBJzMnBSUzETMRA8gSEgYcBCQW/NAWJAQcCiqeYqqyCAQoASwoCASyqmIw/vz+/Ka+xgosEpoUGhoUmjAYbIIIbm4Igtb09AEA/wAAA//+AAAD6AJgACAAJAAoADZAMwAACAYHAwQDAAReBQEDAQEDUgUBAwMBWAIBAQMBTCUlISElKCUoJyYhJCEkFCcqGAkFGCsRJjclNhcWDwEhJyY3NhcFFgcDBiMhJi8BJg8BBiMhJic3FyE3MxchNwIKAWgdDAsZ4wKS5BkLDh0BagsCGwgZ/scZBjEnNTIGGv7IGwQnEwEEK90pAQMUAYINDLoLGyEMaGgQHRsLugwN/wAeAhjfGRjgGgIc4r29vb0AAAwAAP/5AxIDCwADAAcACwAPABMAFwAbAB8AIwAvADMANwDAQL0kGyMDGQsBCQMZCV4eBR0DAwQBAggDAl4KAQgaARgNCBheAAcWDQdSABYTABZSIhcVHwQNABMBDRNeHAEBEgEABgEAXiERIA8EBgwMBlIhESAPBAYGDFYUEA4DDAYMSjQ0MDAkJCAgHBwYGAgIBAQAADQ3NDc2NTAzMDMyMSQvJC8uLSwrKikoJyYlICMgIyIhHB8cHx4dGBsYGxoZFxYVFBMSERAPDg0MCAsICwoJBAcEBwYFAAMAAxElBRUrNxUjNRMVIzUhFSM1ATM1IzUzNSMFMzUjAxEhEQEVIzUzFSM1ExUjNSMVIxEzFTM1AREhESERIRHWR0dHAfRI/gzX19fXAa3W1o/+mwKDSNdISNdHR9ZH/pv+mwMS/pvPR0cBrUhISEj9xdbW1tbW/pv+mwFl/uJHR0dHAR7WR9YBZUdHAa3+mgFm/poBZgAAAAMAAP/DA+gDQAASADcAcQBoQGVrAQELDQEAASkCAgUGMQEEBVYnAgMEBUcACwELbwAGAAUABgVtAAUEAAUEawACAwJwCgEBBwEABgEAYAkBBAMDBFQJAQQEA1gIAQMEA0xubWppW1hSUEJAPTw0MzAvMxU2GAwFGCsBBgcnLgMnIyImPQE0NjsBMgEUDwEGIiY9ASMiBi8BLgUnNjceBDczNTQ2Mh8BFhEUDwEGIiY9ASMiDgIHBgcOAg8BDgInIyImPQE0NjsBMj4CNzY/AT4FNzM1NDYyHwEWAXQiKxQIHhouFn0ICgoIfYsCzgWzBQ8KMB4eGicNLhgoGiQNISsMEB4aLBiPCg4HsgUFswUPCo8bLCAaDBIZEBgkEikXNkImfQgKCgh9GyokFBARGhwMJCQuNkAojwoOB7IFAkY0ZSkQJhoMAgoIawgK/cUIBbMFDAZrAgIDAQoKFhYmFDRkGR4qFBQCawgKBbIFAewIBbMFDAZrECIiGyI9JTJEFS8aGBYBCghrCAoSICQZIz0+GkAwLCIMA2sICgWyBQAAAwAAAAAD6AJ2ABQAHQAsAENAQCIBBAUBRwYBAAADBQADYAAFAAQCBQRgBwECAQECVAcBAgIBWAABAgFMFhUBACooJSQaGRUdFh0LCgAUARQIBRQrATIeAxQOAyIuAzQ+AxMyNjQmIgYUFjcWPgEXFAYiJjQ2MzIOAQH0XKpwVigoVnCquKpwVigoVnCqXFyCgriCglwIOioEQlxAQC4OCBACdjJKUD4cPFJKMjJKUjwcPlBKMv4SfrJ+frJ+1ggMCg4sPj5aPi4wAAAAAgAA//kCgwMLAAcAHwAqQCcFAwIAAQIBAAJtAAICbgAEAQEEVAAEBAFYAAEEAUwjEyU2ExAGBRorEyE1NCYOARcFERQGByEiJicRNDYXMzU0NjIWBxUzMhazAR1UdlQBAdAgFv3pFx4BIBYRlMyWAhIXHgGlbDtUAlA9of6+Fh4BIBUBQhYgAWxmlJRmbB4AAv///2oDoQMNAAgAIQAyQC8fAQEADgEDAQJHAAIDAnAABAAAAQQAYAABAwMBVAABAQNYAAMBA0wXIxQTEgUFGSsBNC4BBhQWPgEBFAYiLwEGIyIuAj4EHgIXFAcXFgKDktCSktCSAR4sOhS/ZHtQkmhAAjxsjqSObDwBRb8VAYJnkgKWypgGjP6aHSoVv0U+apCijm46BEJmlk17ZL8VAAMAAP9qA8QDUwAMABoAQgCFQAwAAQIAAUcoGwIDAUZLsA5QWEAuBwEFAQABBWUAAAIBAGMACAAEAwgEYAADAAEFAwFgAAIGBgJUAAICBlgABgIGTBtALwcBBQEAAQVlAAACAQACawAIAAQDCARgAAMAAQUDAWAAAgYGAlQAAgIGWAAGAgZMWUAMHyISKBYRIxMSCQUdKwU0IyImNzQiFRQWNzIlISYRNC4CIg4CFRAFFAYrARQGIiY1IyImNT4ENzQ2NyY1ND4BFhUUBx4BFxQeAwH9CSEwARI6KAn+jALWlRo0UmxSNBoCpiod+lR2VPodKhwuMCQSAoRpBSAsIAVqggEWIjAwYAgwIQkJKToBqagBKRw8OCIiODwc/teoHSo7VFQ7Kh0YMlReiE1UkhAKCxceAiIVCwoQklROhmBSNAAAAAb///9qBC8DUgARADIAOwBEAFYAXwBvQGxPDgIDAgFHEQEJCwlvAAsIC28QAQgCCG8PAQIDAm8HAQUAAQAFAW0MCgIBBgABBmsABgQABgRrAAQEbg4BAwAAA1QOAQMDAFgNAQADAExeXVpZVlRSUEtKSUdDQj8+OjkZFRQZNyMTIRASBR0rAQYHIyImNzQzMh4BNzI3BhUUARQGIyEiJic0PgUzMh4CPgE/ATY3Mh4EFwEUBiImNDYyFgEUBi4BPgIWBRQGJyMmJzY1NCcWMzI+ARcyJxQGIiY0NjIWAUtaOkstQAFFBCpCISYlAwKDUkP+GERQAQQMECAmOiEGJC5IUEYZKRAIIjgmIBAOAf3GVHZUVHZUAYl+sIACfLR6AUM+Lks5Wi0DJSUhRCgERUdUdlRUdlQBXgNELCzFFhoBDRUQTv5bQk5OQh44Qjg0JhYYHBoCFhAaCgIWJjQ4QhwCjztUVHZUVP7vWX4CerZ4BoTTKy4BRANBThAVDRgYAY87VFR2VFQAAgAA/7ECPAMLAAgAGAAmQCMAAQACAAECbQACAm4AAwAAA1QAAwMAWAAAAwBMFxcTEgQFGCsBNCYiBhQWMjY3FAcDDgEiJicDJjU0NjIWAa1UdlRUdlSOEssJJCYmB8wSqOyoAe07VFR2VFQ7PSf+UBIWFhIBsCc9dqioAAMAAP+2A+gDCAAYACAALQCqtSUBCQsBR0uwDVBYQDsGAwIBBwUHAQVtDAEFAAcFAGsEAQAIBwAIawoBCAsLCGMAAgAHAQIHYA0BCwkJC1INAQsLCVkACQsJTRtAPAYDAgEHBQcBBW0MAQUABwUAawQBAAgHAAhrCgEICwcIC2sAAgAHAQIHYA0BCwkJC1INAQsLCVkACQsJTVlAHiEhAAAhLSEtLCspJiMiIB0bGgAYABgSJDUiEQ4FGSsBFSETNjsBNj8BPgE7ATIWFxYXMzIXEyE1AwchJyYrASITNSEGBwYjISI1JyEVAcj+OAoEYKAQFRcOEhzeGhQMEiqgYAQK/jqkHAEkHA4cmByWAa4GBAZU/RJaCgGuAUZkASRsGiktGgwOGCBQbP7cZAFiNjYa/YpkWE5UVKZkAAAFAAD/sQNZAwsACAARABoAVABtAGNAYBIBAwUBRwAKAgcHCmUADQsOAgYFDQZgAAUABAAFBGAAAwAAAQMAYAABAAIKAQJgCQgCBwwMB1QJCAIHBwxZAAwHDE0gG2plXllSUT08Ojk4NzY1G1QgUxMUExQTEg8FGisBNCYiDgEWMjY3FAYuAT4CFjcUBiIuATYyFiUiKwEiDgEHDgEHDgIWBhYGFhQfAR4BFx4BMhY2FjYWPgE3PgE3PgImNiY2JjQvAS4BJy4BIiYGARQHDgEHBiInLgEnJhA3PgE3NiAXHgEXFgI7UnhSAlZ0VkuAtoICfrp8Px4sHAIgKCL+5gQnOxRELhEcKgwGCAQCAgICAgYKDCocEDBCKkwKSixANA0cLAoGCAQCAgICAgYKCyodEC5GJlABqgMFgHMy/jJ0gAUDAwWAdDEBADF0fgYDAV47VFR2VFQ7W4ICfrp+AoKKFR4eKh4eZgQGCAsqHBAwRCZQBlAmRBgoHCoLBgoEBAQEBAgCCgsqHBAwRCZQBlAmRBgoHCoLBgoEBP6igDF0gAUDAwZ+dTEBADF0gAUDAwZ+dTEAAwAA/5IDmAMqAAgAEQAXAElARhYVFBMEAgQBRwcBBAMCAwQCbQUBAAADBAADYAYBAgEBAlQGAQICAVgAAQIBTBISCgkBABIXEhcODQkRChEFBAAIAQgIBRQrATIAEAAgABAAEzI2ECYgBhAWExUXBycRAcy+AQ7+8v6E/vIBDr6W0tL+1tTUuJYyqgMq/vL+hP7yAQ4BfAEO/MzUASrS0v7W1AJs9JYyqgESAAH////5AxIDCwBOACNAIDIBAgEAAQACAkcAAQIBbwACAAJvAAAAZkJAISAmAwUVKyUUBgcGBwYjIiYvAiYnLgEnJi8BLgEvASY3NDc2Nz4BMzIXFh8BHgEXHgIVFA4CBxQfAR4BNR4BFzIWHwEWNzI+AhcyHgEfARYXFgMSDAYLOTQzDx4RGjs2K0eaKxsTCggIBAcDAR0fHA4wDwgEChQQChQHAhAIICYeAQMEAQ4qbkwBEgULBgcKHh4gDAcQGAJgJwMCng8wDhwgHAQFCBUUGyyYSCs2HBcQEiAODzQ0OQsGDAIDJx8UHg8CGBAICyAeHgoFCAsDFgFNbioMAgUDASAkIgEIEAI2EwoEAAAADwAA/2oDoQNSAAMABwALAA8AEwAXABsAHwAjADMANwA7AD8ATwBzAJ5Am0ElAh0SSS0kAxMdAkcgAR4aARIdHhJgIR8CHRMJHVQbARMZFw0DCQgTCV8YFgwDCBURBwMFBAgFXhQQBgMEDwsDAwEABAFeDgoCAwAcHABSDgoCAwAAHFgAHAAcTHJwbWpnZmNgXVtWU01MRUQ/Pj08Ozo5ODc2NTQxLyknIyIhIB8eHRwbGhkYFxYVFBMSEREREREREREQIgUdKxczNSMXMzUjJzM1IxczNSMnMzUjATM1IyczNSMBMzUjJzM1IwM1NCYnIyIGBxUUFjczMjYBMzUjJzM1IxczNSM3NTQmJyMiBhcVFBY3MzI2NxEUBiMhIiY1ETQ2OwE1NDY7ATIWHQEzNTQ2OwEyFgcVMzIWR6GhxbKyxaGhxbKyxaGhAZuzs9aysgGsoaHWs7PEDAYkBwoBDAYkBwoBm6Gh1rOz1qGhEgoIIwcMAQoIIwgK1ywc/O4dKiodSDQlJCU01jYkIyU2AUcdKk+hoaEksrKyJKH9xKH6of3EoSSyATChBwoBDAahBwwBCv4msiShoaFroQcKAQwGoQcMAQos/TUdKiodAssdKjYlNDQlNjYlNDQlNioABgAA/5IDrQMqABsAHwAoACwAMAA0AIxAiQcBBQkACQUAbQAICwoLCAptFAEKDQsKDWsADQ8LDQ9rAwEBDgwOAQxtAAYTAQkFBgleBBICAAALCAALYBEBDxABDgEPDl4ADAICDFIADAwCVgACDAJKISAcHAEANDMyMTAvLi0sKyopJSQgKCEoHB8cHx4dGhkYFxYVFBINCwoJCAYAGwEbFQUUKwEyFhURFAYrARchNyMiJjURNDY7ATUzNSEVMxUlESERATI2NCYiBhQWEyEnIRcjNTMXIzUzA2IeLS0eTCL9TRtSIS0tIWAiAg8i/fIByf3GFyAhLCAgVQI3L/4c2IuLxouLAjQuIP6SHy6ZmS0gAW4hLXWBgXXH/twBJP57ICsgICsg/krygSMjIwAAAAUAAP/5A+QDCwAGAA8AOQA+AEgBB0AVQD47EAMCAQcABDQBAQACR0EBBAFGS7AKUFhAMAAHAwQDBwRtAAAEAQEAZQADAAQAAwRgCAEBAAYFAQZfAAUCAgVUAAUFAlgAAgUCTBtLsAtQWEApAAAEAQEAZQcBAwAEAAMEYAgBAQAGBQEGXwAFAgIFVAAFBQJYAAIFAkwbS7AXUFhAMAAHAwQDBwRtAAAEAQEAZQADAAQAAwRgCAEBAAYFAQZfAAUCAgVUAAUFAlgAAgUCTBtAMQAHAwQDBwRtAAAEAQQAAW0AAwAEAAMEYAgBAQAGBQEGXwAFAgIFVAAFBQJYAAIFAkxZWVlAFgAAREM9PDEuKSYeGxYTAAYABhQJBRUrJTcnBxUzFQEmDwEGFj8BNhMVFAYjISImNRE0NjchMhceAQ8BBicmIyEiBgcRFBYXITI2PQE0PwE2FgMXASM1AQcnNzYyHwEWFAHwQFVANQEVCQnECRIJxAkkXkP+MENeXkMB0CMeCQMHGwgKDQz+MCU0ATYkAdAlNAUkCBg3of6JoQJvM6EzECwQVRC9QVVBHzYBkgkJxAkSCcQJ/r5qQ15eQwHQQl4BDgQTBhwIBAM0Jf4wJTQBNiRGBwUkCAgBj6D+iaABLjShNA8PVRAsAAMAAP+xAxMDCwAUACoAXwBNQEopIwICA1EBAQIOAQABLAEGAARHAAUEBW8ABAADAgQDYAACAAEAAgFgAAAGBgBUAAAABlgHAQYABkwrKytfK1lGRUQ/KCk3IQgFGCslFjMyNTQnLgQjIgcVFAcVFBYDFjMyPgInNC4CJyIHFBYHFRQHFAE3PgE3PgMmNzUQJy4EIyc2JDcyFjcyHgMVFA4DBx4BBxQOAwciJgciBwE2KSXSFw8mJjQqICgQAQQDFyYuRDYeASA6PiYcLQYBAf7TAQlOFAQGAgYEAgwCFB4aHAMCNwEOSQ0yDSdKRjIgEhouJB1WdAEoQFpcNBliGTtwARK7QCUYIhIKAgZYOx1cFTQBlgQOJEAvJzoiDgEHHHAdLR4OGv4DNQIOCAcQFg4cBSQCJBgFBgYCBC4BCgECAQ4iLEonHTIeIhAOFG5TOFo2KgwCBAEGAAAAAAEAAP+xAjsDCwA6ADhANRABAAEuKwwDAwACRxkBAUUAAwACAAMCbQACAm4AAQAAAVQAAQEAWAAAAQBMOTU0MGIeBAUWKxU3PgI3Nj8BNhI9AS4CJzcXHgEzMjY/AQYHDgEHBg8BDgEHBgIPAgYVFxYXBgciBiMiJiMmIyIHCgwsJA8QByMiOg0iLAoKQzBIHxs4KDYCCBFQFAUDBQIEAg9ECRIJBAEJXgIHBhgGEEIPTSYcM04wBAoMBxMlop4BIhQOCAYCAjoEAwICAwQWHAYUCQoNFwoeCVL+0C5TLhYKCgMPGB8CDAEFAAAAAv/5/64DYwMuACkAMgAfQBwMCwIARAACAQJvAAEAAW8AAABmMC8sKxkXAwUUKyUeAQ4CDwEGJj8BJwcGJj8BNj8BPgI7ARc+BBcyFxYXFg4CBxMWMjY0JiIGFAIfBgQUBkANmyAaCiiCahweDB8TCBYOFiQXNEcKJnR4qlAIBgQCCjhgZCQOFkAsLEAs7DI+OBgoBkQMIBxuhCgMHCBPMRAtHQ4aBg4yeFg+DAYEClKsgmocAQwWLkAuLkAAAAAAAwAA/64DWgMOACoAPQBRAGBAXToBAANLPDsDBABJAQcEA0dKAQdEAgEBBQMFAQNtAAMABQMAawAABAUABGsJAQYABQEGBWAIAQQHBwRUCAEEBAdYAAcEB0w/PiwrSEY+UT9RNDMrPSw9HyIaKAoFGCsBMhYXFhUUDgEjIicuAScmNzU2NzYzMhYzMhYXHgEVFAYHFBcWFxYXFjI2AzI+AjQuAg4DBxQXBzcWEzIeAg4DJyInBzcmNTQ+AgImB14DARI+GiBKN1AqKQECJw4PBAwFCwgEBRwmAQMTJh81Bw4sa0eCXjg4XoKOgGA2AUMsh1hoVpxwRAJAdJhYbF/pTDxCcpoBMzIFAgYSLh4jGVI+PDAFMiYMAgYNC0wDDCoFAwUpIx4bBDb+2ThchIyEXDoCNmCASHFcgis6AwNEbqCmoGxIAjVL4mN2Vpp0PgAAAwAAAAADmAHMAAgAEQAaADpANwgEBwIGBQABAQBUCAQHAgYFAAABWAUDAgEAAUwTEgoJAQAXFhIaExoODQkRChEFBAAIAQgJBRQrEzIWFAYiJjQ2ITIWFAYiJjQ2ITIWFAYiJjQ2bi5AQFxAQAGMLkBCWEJAAYwuQEBcQEABzEBaQkJaQEBaQkJaQEBaQkJaQAAAAAP//P+QA5oDLAAIABMAKQBiQF8MAQMCIyIYFwQFBwJHAAcGBQYHBW0ABQQGBQRrCAEACQECAwACYAADAAYHAwZgCgEEAQEEVAoBBAQBWAABBAFMFRQKCQEAJiQgHhsZFCkVKRAOCRMKEwUEAAgBCAsFFCsBNgASAAQAAgAXIgYVBhYzMjY1NAMyNjcnBiMiPwE2IyIGBxc2MzIPAQYBxr4BEAb+9v6E/u4GAQzyKi4CIiAmLrQebDQSMBgOCioaMB52OBA0FgwMJBoDKgL++P6E/u4GAQoBfAESljAaHCAsIDr9rjQ0GCQmoGA6LhoiIphoAAABAAD/+QPoAsMAHwAkQCEZCAIAAwFHAAIDAm8AAwADbwAAAQBvAAEBZhU1NSQEBRgrAREUBwYjIi8BFRQGIyEiJjURNDYzITIWHQE3NjMyFxYD6BYHBw8K4V5C/ndDXl5DAYlCXuEKDwcHFgKO/aAXCQMK4VxDXl5DAYhDXl5DXOEKAgoAAAAAAgAAAAADjwKtAAoAFQAtQCoEAQADAG8HAQMCA28GAQIBAQJUBgECAgFYBQEBAgFMEhETERIRExAIBRwrEyERFAYnNTI2JyMBIREUBic1MjYnIxIBT8SLXIQB3wIuAU/Ei1yEAd8Crf6yjMQBb4JeAU7+sozEAW+CXgAAAAP/+P+EA+gDQgAOAB4AJgBDQEAlJCMhIAgGBAIBRwIBAEUBAQACAG8FAQIEAm8GAQQDAwRSBgEEBANYAAMEA0wfHxAPHyYfJhgVDx4QHSIQBwUWKwEjJwcjIgYdAQMmNyU2FxMyFhURFAYjISImNRE0NjMBNScPAScHFQNYZHzWtDRMbAogAqgkDtAQFhYQ/SwQFhYQApxIpoKKXAIGlpZONKABKCYO+Aoi/owYEP4oEBgYEAHYEBj+PKKgPISq1lYAAAAC//f/4gPbAxIAFwAgACZAIwACAQJvAwEBAAABVAMBAQEAWAAAAQBMGRgdHBggGSAvBAUVKwEeAQYHBiYGBwYeAQcOAiMiJjc+ATckAzI2NCYiBhQWA1lIOhIaEExUJh4SMgICRLh8utIKCMB4ASJIHiwsPiwsAm4wfFQGBBwIKi46SA4aSkrKkHbqIlT9iixAKipALAAAAAP/+/9oAr8DUgAGABcAMgA6QDcSDQIEBQMAAgEAAkcAAwAFBAMFYAAEAAIABAJeAAABAQBSAAAAAVgAAQABTDIxJiUXESIRBgUYKxc1IRUGJwY3ITQuAjc+ASAWFxYOAwEGFgYWBh8BFh8CFhczNj8BNj8BPgInJiDRARpGSEbO/vJIVEAGCKwBUqoKBChAQjD+hgQIBA4CCQsCCw4fWBhSGFgZFQQRDQYGAhD+Om5oaCoCAs5IiFqGSHisrHg8alZUbAG0BCAIHgYPEwQPEyx6Wl52Ix0HHRYWIhLEAAAAAwAA/9cDjwLlABkAHwAlACZAIyQjISAeHRsaCAEAAUcNAQFEAwEAAQBvAgEBAWYRGhEVBAUYKwE+BDcRIg4CDwEnLgMnETIeAhcFERYXESYBEQYHETYB0AUUSlyiXl+iXkYMDg0JSlyiYF6gYEYN/r+sa24B9KhubAJ1BQ4mIBYB/WIYHiYKCgwIJCIUAgKeGB4kCwv+Pg45AcE6/kwBwg46/j85AAAAAQAAAAADpQKYABUAHUAaDwEAAQFHAAIBAm8AAQABbwAAAGYUFxQDBRcrARQHAQYiJwEmND8BNjIfAQE2Mh8BFgOlEP4gECwQ/uoPD0wQLBCkAW4QLBBMEAIWFhD+IA8PARYQLBBMEBClAW8QEEwPAAMAAP9wBOIDTQAbAC0APQCeQAoOAQMBRg8JAgFES7AYUFhAMgoBAAcGBgBlAAQABwAEB2AABgAIBQYIYQsBBQADCQUDYAAJAQEJVAAJCQFYAgEBCQFMG0AzCgEABwYHAAZtAAQABwAEB2AABgAIBQYIYQsBBQADCQUDYAAJAQEJVAAJCQFYAgEBCQFMWUAfHRwBADw5NDEoJSIgHC0dLRkWERAMCggGABsBGwwFFCsBMhYXERQGByMVJyEiJjcHNSImJxE0NjMhMhYVATM1NDY3ITU0JichIgYXERQWBRE0JiMhIgYXERQWNyEyNgRGQVoBXEA1nP5gQVwBnUFaAVxAAnFBXPzy0Uw2AVMgFf2PFSABHgP0Hhb9qSAwASAVAnEVIAKwWkL+lEFaAZycXECcnFxBAWtBXFxB/mDqNkwBMxYeASAV/pUWHmkBbBUgMB/+rhUgAR4AAwAA/2kEwgNRAA8AHwAsADBALQAFBAIEBQJtAAICbgABAAADAQBgAAMEBANUAAMDBFgABAMETDM0NTU1MwYFGisBFRQGByEiJj0BNDYzITIWAxEUBiMhIiY1ETQ2MyEyFgU0JiMhIgYUFjMhMjYEwRgT+5URGhoRBGsSGiwaEvvtEhoaEgQTEhr+0CYc/nkbJiYbAYcbKAMmgxIYARoRgxEaGv6+/Z8RGhoRAmESGhqqGyYmNiYmAAEAAAAAAfQCkgALAAazCgUBLSsBFhQHAQYmNRE0NhcB5g4O/lQYIiIYAXgKHgr+9hAUHgICHhQQAAAAAAIAAAAAAhICvAAIABEAI0AgBQIEAwABAG8DAQEBZgoJAQAODQkRChEFBAAIAQgGBRQrATIVERQiNRE0ITIVERQiNRE0AbhatP78WrQCvED9xkJCAjpAQP3GQkICOkAAAAEAAP/nA7YCKQAUABlAFg0BAAEBRwIBAQABbwAAAGYUFxIDBRcrCQEGIicBJjQ/ATYyFwkBNjIfARYUA6v+YgoeCv5iCwtdCh4KASgBKAscDFwLAY/+YwsLAZ0LHgpcCwv+2AEoCwtcCxwAAAEAAAAAA7YCRgAUABlAFgUBAAIBRwACAAJvAQEAAGYXFBIDBRcrJQcGIicJAQYiLwEmNDcBNjIXARYUA6tcCx4K/tj+2AscC10LCwGeCxwLAZ4La1wKCgEp/tcKClwLHgoBngoK/mILHAAAAAEAAAAAAxIB7QAPABhAFQABAAABVAABAQBYAAABAEw1MwIFFisBFRQGJyEiJic1NDY3ITIWAxIgFv1aFx4BIBYCphceAbdrFiABHhdrFx4BIAAAAAIAAAAAA48CrQAGAA0AP0A8CwEDAgwEAgEDAwEAAQNHCgECRQIBAEQAAgQBAwECA14AAQAAAVIAAQEAVgAAAQBKBwcHDQcNEhQQBQUXKyUhFSc3FSElNSE1Fwc1A4/9Yt/fAp78gwKe399/b6incN9wb6aobwAAAAgAAP+SA5gDKgAPABsAJwA3AEIATgBdAGkAgUB+JCAGAwECXDAmHhgKBAcDAU0uGhICBQYAVTw2AwQFaEdFPjgUBgcEBUcAAwEAAQMAbQgBAAYBAAZrAAYFAQYFawAFBAEFBGsABAcBBAdrAAcHbgACAQECVAACAgFYCQEBAgFMHRwBAGdlV1ZMSzs6MzEjIRwnHScADwEPCgUUKxMiByYnNjcWFwYVFBcGByYHFBcGByY1NDcWFwYBIgcmJzYzMhcGByYTJic2NTQnNjcWMzI3FhcGFzY3NjcGBzY1NCYnBgcmJzY3FjMyNxYBFhUUBwYHJicmJzY9ATYDFhcWFRQHBiMiJzbgFhQwLDZKXDwGBD42EG4UPBRCMiYuCAFQHBY6OFROeG5MVhpqoIIEDiY8Gh4OGF4oEHYmEDoyLngGApa+clpEDEQGDh4WjgFglgRAQhhAMGQKZBoOEgIOVmw6Nm4B+Ao0TEosJiwQEAYQMDgEYiIacnZqgm5gPjIYATAOKhwePg4kGv40GFgUChgcLC4UCGyEDpYOLgQOklYwMgokTGCwJEqQggIOYgHSiMwWLBIGOASSdhQWCir97AoIEiJQQCoMoAAAAAACAAD/+QPoA1IAJwA/AExASSgBAQYRAQIBNy4CBAIhAQUEBEcABgEGbwAEAgUCBAVtAAUDAgUDawABAAIEAQJgAAMAAANUAAMDAFgAAAMATDobJTU2JTMHBRsrARUUBiMhIiY1ETQ2NyEyFh0BFAYjISIGBxEUFhchMjY9ATQ2OwEyFhMRFA4BLwEBBiIvASY0NwEnJjQ2MyEyFgMSXkP+MENeXkMBiQcKCgf+dyU0ATYkAdAlNAoIJAgK1hYcC2L+lAUQBEAGBgFsYgsWDgEdDxQBTLJDXl5DAdBCXgEKCCQICjQl/jAlNAE2JLIICgoB2v7jDxQCDGL+lAYGQAUOBgFsYgscFhYAAAAACAAA/8QDWQMLAFMAWgBfAGQAaQBuAHMAeABqQGckHhsVBAQBZQ0CAwJqAQcGRwEFBwRHAAQBAgEEAm0AAgMBAgNrAAMGAQMGawAGBwEGB2sABwUBBwVrAAUFbggBAAEBAFQIAQAAAVgAAQABTAEAc3JxcEZEODcxMCwrHRwAUwFTCQUUKwEyHgEVFAYHBiY9ATQnPgQnNCc2JyYGDwEmIgcuAgcGFwYVFB4DFwYHDgEiJicuAS8BIgYeAR8BHgEfAR4CNjM3FRQXFAYnLgE1ND4BAzYnJgcGFhc2JgYWFzYmBhYXNiYGFhc2JgYWNzQGFDY3JgYWNgGtdMZypIEPDh0gMjgiGgIsFRkQPBUVNG41CB5ADxkULBgiODAhFQYMGiYiDgsgDAsMCAIIAwQMGAYGByIoJgwNARAOgaR0wpQCBQYCAQoUBAsHChQGCgoKHAQNCQ0lAREEESYTEyABEgISAwt0xHWM4CsDDgp2NhkDDh4sSDBDMDM/BRYODQ8PBhIaBj8zMEMvSC4cEAIUJgUGGBcSFgMBBAoGAwMGHg4NFRoIAgMyHAIKDgMr4Ix1xHT9mAQDAQIEBg8DCwYMFQQOBw4UBA0KDAkGBQwGBAcBDQELBwMOBgAAAAAB//n/sQMYAsMAFAAYQBUOAwIAAQFHAAEAAW8AAABmOCcCBRYrARYHAREUBwYjIi8BJjURASY2MyEyAw8JEf7tFgcHDwqPCv7tEhMYAsoXAq0WEf7t/mIXCgMLjwsOAQ8BExEsAAAAAAUAAP9qA+gDUgAfACIAJQAzADwAcEBtIwEABh0BCQAnIAIHBQNHAAMABgADBl4MAQAACQUACV4ABQAHBAUHYAAEAAoIBApgAAgAAgsIAmANAQsBAQtSDQELCwFYAAELAUw0NAEANDw0PDs5NjUwLy4sKSglJCIhGhcODAkGAB8BHg4FFCsBMhYXERQGByEiJic1ISImJxE0Nj8BPgE7ATIWFxU2Mw8BMwEHMxc3NSMVFAYHIxEhNTQ2AREjFRQGJyMRA7IXHgEgFv3pFx4B/tEXHgEWEOQPNhboFx4BJiFHp6f+m6enbbDWHhfpAR4WAibXHhfoAnwgFv1aFx4BIBagIBYBdxY2D+QQFiAWtxd3pwF9p8Kw6ekWHgH+m48WNv5OAoPoFiAB/poAAAYAAP/UA+kC5wAIABEAIQAqADoASgBfQFxEPDsDCgs0LAIICRsTAgQFA0cACwAKBgsKXgAHAAYDBwZgAAkACAIJCGAAAwACAQMCYAABBQABVAAFAAQABQReAAEBAFgAAAEATEhGQD84NiUTFRcWExQTEgwFHSs3FAYuATQ+ARY1FAYiJjQ2MhYBFRQGJyEiJj0BNDY3ITIWARQGIiY0NjIWARUUBiMhIiY9ATQ2MyEyFgMVFAYHISImPQE0NjMhMhbWPlo+Plo+Plo+Plo+AxIKCP1aCAoKCAKmBwz87T5aPj5aPgMSCgj9WggKCggCpgcMAQoI/VoICgoIAqYHDEAsQAI8XDwCQPItPj5aPj7+62sHDAEKCGsHCgEMAgAtPj5aPj7+62wHCgoHbAcKCgEWawcKAQwGawgKCgAGAAD/agPpA00AHwA9AE0AXQBtAH0CF0A3WllVAxQPd24CDhRvAQ0OMAEHCGcvKgMKEkccAgMFPx0OAwsEBgEBAgUBAAEJR18BChcTAgMCRkuwDFBYQGMADxQPbxUBChIRCQplAAQDCwMEZQACCwEDAmUAFA4NFFQWEAIOEwENCA4NXgAIAAcSCAdgABIAEQkSEWAACQAGBQkGXwADBAUDVAwBBQALAgULXgABAAABVAABAQBYAAABAEwbS7AlUFhAZAAPFA9vFQEKEhEJCmUABAMLAwRlAAILAQsCAW0AFA4NFFQWEAIOEwENCA4NXgAIAAcSCAdgABIAEQkSEWAACQAGBQkGXwADBAUDVAwBBQALAgULXgABAAABVAABAQBYAAABAEwbS7AqUFhAZQAPFA9vFQEKEhESChFtAAQDCwMEZQACCwELAgFtABQODRRUFhACDhMBDQgODV4ACAAHEggHYAASABEJEhFgAAkABgUJBl8AAwQFA1QMAQUACwIFC14AAQAAAVQAAQEAWAAAAQBMG0BmAA8UD28VAQoSERIKEW0ABAMLAwQLbQACCwELAgFtABQODRRUFhACDhMBDQgODV4ACAAHEggHYAASABEJEhFgAAkABgUJBl8AAwQFA1QMAQUACwIFC14AAQAAAVQAAQEAWAAAAQBMWVlZQCxOTiAge3lzcmtpY2FOXU5dXFtSUVBPS0lDQiA9ID08OyQbFhESGBMjIhcFHSsXFAYHIic3FjMyNjU0Byc2PwE2NzUiBicVIzUzFQceARMVIyY1ND4DNzQmByIHJz4BMzIWFRQOAgczNQUVFAYnISImPQE0NjMhMhYBFSM1MzU0NzUjBgcnNzMVBRUUBiMhIiY9ATQ2MyEyFgMVFAYHISImPQE0NjMhMhbVPiw8JB8cIBAYOw4EDhgKCgkkCTu6NRwiAcoEHCIoFgMSDRkULw02ICg4Ji4mAUcDTQoI/VoICgoIAqYHDPztuzwBAQUXKEw7A04KCP1aCAoKCAKmBwwBCgj9WggKCggCpgcMNi0yASUxGRAQIwQfBhIfDQgBAgEeVTFBBioBQlkUCh0uHhgYDQ4QASAhHCAuKBwuGh4PIrJrBwwBCghrCAoMAfA4OEMtFwcKFCpH4dhsBwoKB2wHCgoBFmsHCgEMBmsICgoAAgAA/7EDWQMLAFwAbAFaS7AJUFhAGTQQAgUBEQEABS4tAgQAZl4CCgkERzkBAUUbS7AKUFhAGTQQAgUCEQEABS4tAgQAZl4CCgkERzkBAUUbQBk0EAIFAREBAAUuLQIEAGZeAgoJBEc5AQFFWVlLsAlQWEAuAAkICggJZQAKCm4ABQABBVQGAgIBBwMLAwAEAQBgAAQICARUAAQECFgACAQITBtLsApQWEAzAAkICggJZQAKCm4AAQIAAVQABQACBVQGAQIHAwsDAAQCAGAABAgIBFQABAQIWAAIBAhMG0uwElBYQC4ACQgKCAllAAoKbgAFAAEFVAYCAgEHAwsDAAQBAGAABAgIBFQABAQIWAAIBAhMG0AvAAkICggJCm0ACgpuAAUAAQVUBgICAQcDCwMABAEAYAAECAgEVAAEBAhYAAgECExZWVlAHQEAamhiYFNRQD84NTMxIB4UEg8HBgMAXAFcDAUUKxMmLwE2MzIXFjMyNzY3MjcHFwYjIgcGFR8BFhcWFxYzMjc2NzY3Njc2NTQuAS8BJicmDwEnNzMXFjcXFhUUBwYHBgcGHQEUFxYXFgcGBwYHDgEjIi4BJyY9ATQnJgE1NCYjISIGHQEUFjMhMjYbFQQCBw8iHUoTLy5BER8RAQEhJCELBwEIAxkUIjExOzAfGBsKFAkMBAgEAgMKExg4CAEvcitDCgMCGRYpAwgBBQgDDAgPFSkqeVFdhEMNCQkOAvoKCPzLCAoKCAM1CAoC1gEBMQEDBAICAQEIKQUOB0KgnUUrIRMaEAoSFBAfIClXLDhQMSElDBQBAQIwBgIIARYHBA0HAQYDCA8PCwYL0m09KhokIR8lNFRDLVe6aQ4U/O8kCAoKCCQICgoAAv///9UCPALnAA4AHQAjQCAAAQABAUcAAwIDbwACAQJvAAEAAW8AAABmFTQmFAQFGCslFA8BBiIvASY0NjchMhYnFAYjISIuAT8BNjIfARYCOwr6CxwL+gsWDgH0DhYBFA/+DA8UAgz6Ch4K+grzDwr6Cwv6Ch4UARbIDhYWHAv6Cwv6CgAAAAMAAP/MA1kC/wADAA4AKgBKQEciAQUBAUcHCQIBCAUIAQVtBgQCAAUAcAADAAIIAwJgAAgBBQhUAAgIBVgABQgFTAAAKSchIBwbFhQREA0MCQYAAwADEQoFFSsTESMRNxQGKwEiJjQ2MhYBESMRNCYjIgYHBhURIzY9ASczFSM+AzcyFsO4xDouAS44Olw4Aou3LjAjLg0GuAEBuAELGCY8Il90AfX91wIpqyk2NlI2Nv5A/sMBKDtCJh0RHP7L34qlG1ASGiAQAX4AAAX//f+xA18DCwATABwAJQA2AEMAQkA/HRQCAgMBRwAJAAYDCQZgBQEDBAECAQMCYAABAAAHAQBgAAcICAdUAAcHCFgACAcITEFAFxcWExQTGRkSCgUdKyUOAS4BJyY+ARYXHgEyNjc+AR4BJRQGIiY+AhYFFAYiLgE+ARYXNC4CIg4CHgM+AzcUDgEiLgI+ATIeAQJ5FXCOchQEDhwaBA5MXkoPBBwaEP7mKjosAig+JgEgKjwoAiw4Lo06XoaOiFw8AjhghJKCYjZJcsboyG4Gerz0un76Q1QCUEUOGgkMECw4OCwPDgoa5R4qKjwoAiwcHioqPCgCLKtJhGA4OGCEkoRePAQ0ZnxNdcR0dMTqxHR0xAAAAAAPAAD/+QQwAnwACwAXACMALwA7AEcAUwBfAGsAdwCDAI8AnwCjALMAjECJSAECAwFHAB4AGwUeG14aFxUPCwUFFhQOCgQEAwUEYBkRDQkEAxgQDAgEAgEDAmETBwIBEgYCABwBAGAfARwdHRxSHwEcHB1YAB0cHUygoLKvqqego6CjoqGfnJqYlZKPjImGg4B9end0cW5raGViX1xZVlJQTUpHREE+OzgzMzMzMzMzMzIgBR0rNxUUKwEiPQE0OwEyNxUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyARUUIyEiPQE0MyEyJRUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyFxUUKwEiPQE0OwEyJxUUKwEiPQE0OwEyFxUUKwEiPQE0OwEyFxUUKwEiPQE0OwEyARUUKwEiPQE0OwEyFxUUKwEiPQE0OwEyFxUUKwEiPQE0OwE1NDsBMhMRIREBERQGIyEiJjURNDYzITIW1gk1CQk1CUgJfQkJfQlICTUJCTUJAjwJ/h4JCQHiCf6bCTYJCTYJSAk1CQk1CdYINgkJNghHCTUJCTUJ1gk1CQk1CdcJNgkJNgn+4gk2CQk2CY8JNgkJNgmPCX0JCT4JNglH/F8D6Cgf/F8dKiodA6EeKsY1CQk1CYY1CQk1CYY2CQk2Cf7ZNQkJNQmGNQkJNQmGNgkJNgmYNQkJNQmGNgkJNgmYNQkJNQmYNQkJNQkBFTYJCTYJCTYJCTYJCcQJCTUJhgn+UwH0/gwB9P4MHSoqHQH0HioqAAAAAwAA/7kEFgK6ABQAJAA5AB5AGy4RAgABAUcDAQEAAW8CAQAAZjU0KCcXEgQFFislBwYiJwEmNDcBNjIfARYUDwEXFhQBAw4BLwEuATcTPgEfAR4BCQEGIi8BJjQ/AScmND8BNjIXARYUAVgcBQ4G/vwGBgEEBRAEHAYG29sGAUTQAg4GIggGAdECDAcjBwgBbP78Bg4GHAUF29sFBRwGDgYBBAVFHAUFAQUFDgYBBAYGHAUQBNzbBg4CTv0vBwgDCQMMCALQCAYBCgIO/o/++wUFHAYOBtvcBQ4GHAYG/vwFEAAAAgAA/7ECywMLAAYAIQAoQCUHAQACAwEBAAJHAAEAAXAAAgAAAlQAAgIAVgAAAgBKPB4RAwUXKwERIxE2NzYTERQOBiIvAS4FNRE0NjMhMhYCX/pDNINrJDpKQkYeDxAGGA9GQE42JhYOAoMOFgE6AWX9hiMpZwIP/lMwXkpELigQBwQLByosRkhgLwGtDhYWAAAAAAUAAP+WAxIDMwAKABUAKQBCAGQAIkAfVj88IAAFAUUAAQAAAVQAAQEAWAAAAQBMPj0yMQIFFCsBFgYnLgE2NzYeARcuAQcOARceAT4BEy4BLwEmBw4CBx4BHwEWPwE+ARMOAwcOASYnLgMnJic/ARYgNx4BBhMGAw4CBwYnJicuAi8CLgEnPgM/ATY3NhcWFxYUAccEQB8VEA4WFCoePghuNyMqAQNSZkR/CygMKKKaGBoiCxA0DzF/ezIPMjEECgQcEzB0bDsZKC4kCw4RAwp8AT58DAIIZQ8vAxgYE4zIi1EIDAgBBh8GDgUCEBIiCBtGadOmViIJAXMjLBMJLi4JCwggCjxAGQ9EJjNICVYBYQ8UAgcaGwQGEg8QFAIGEA8HAhT9zg44JigMGxoCCQUKFB4TNm0JBVNTAxQeAhNe/vARHBIIRhUPPwYQGAcqrSJiJw4aEBIDChoKFTEZKwsiAAAABAAA/2oDoQMLAAMABwALAA8AMUAuDwwHBAQBRQoJAgEEAEQDAQEAAW8FAgQDAABmCAgAAA4NCAsICwYFAAMAAwYFFCsBESURAREhEQERJREBESERAX3+gwF9/oMDof4FAfv+BQEh/pQ1ATcBnv6RATv+lv5JRgFxAer+RQF1AAACAAD/agONA0EAFQA2AExASS0BBQQLAQYFNhcBAAQCAwNHAAQFBG8AAgMBAwIBbQAFAAYHBQZeAAcAAwIHA2AAAQAAAVQAAQEAWAAAAQBMIREWJyImLCMIBRwrJRcOASMiLgE1NDY3Fw4BFRQWFzI+ASUXBwYjIicDISImJwMmNz4BFzIWBxQGJxczFSMXMzIfAQI7OSGoaleUVnRgCURSlGZHdkIBLSCPBwkWCoX++A0UAjYBBQcwHiU2ATomFOzjCf4XCX+8cmR8VpRXZaghSR58S2eSAUp6D0BHBBMBCxINAbMKDhwkATQlJzYEoUhHE/4AAwAA/2oELwNSAAwAJgAwAFVAUgwBAgBFAgEAAQBvAAEDAW8JBwUDAwQDbwwKCAYEBAALDQQLXg8BDQ4ODVQPAQ0NDlYADg0OSignLCsnMCgvJiQhIB0bGhkRERERERISMhIQBR0rAQUVIxQGJyEiJicjNRczETMRMxEzETMRMxEzETMyFgcVITU0NhczBTIWHQEhNTQ2NwIYAhdHFhD8rBAWAUePj0ePR49IjyEPGAH8XxgPIQN6EBb70RYRA1LWSA4WARQPSI/+UwGt/lMBrf5TAa3+UxQPJCQOFgFrFg5HRw8UAQAAAAH///+xA0gDCwAjADZAMxIBAwITAQADAkcAAgADAAIDYAAAAAUEAAVeAAQBAQRUAAQEAVgAAQQBTBUlIyclEAYFGisBIRYVFA4BIyIuAz4CMzIXByYjIg4BFB4BMzI+AzcjAa0BlAdmvHlYnnRCAkZwolaneHVEZkh6SEh6SDBSNCgQBfMBmyUieb5sRHKgrqByRHFwQ0p6lnpKHCY2LBUAAAAAFAAA/2oDEgNSAA8AHwAvAD8ATwBfAG8AfwCPAJ8ArwC/AM8A3wDvAP8BDwEfAS8BPwILQUYAAwABAAMAAAE5ATgBMQDpAOEAmQCRABkAEQAJAAIAAwEpASgBIQDZANEAiQCBACkAIQAJAAQABQEZAREAyQDBAHkAcQA5ADEACAAGAAcBCQEIAQEAuQCxAGkAYQBJAEEACQAIAAkA+QD4APEAWQBRAAUAFAAKAKkAoQACABUACwALAAEAAQAVAAgAR0uwCVBYQGAfAQsUFRULZSgBACYcEgMDAgADYCcdEwMCJBoQAwUEAgVgJRsRAwQiGA4DBwYEB2AjGQ8DBiAWDAMJCAYJYB4BChQIClQhFw0DCAAUCwgUYAAVAQEVVAAVFQFZAAEVAU0bQGEfAQsUFRQLFW0oAQAmHBIDAwIAA2AnHRMDAiQaEAMFBAIFYCUbEQMEIhgOAwcGBAdgIxkPAwYgFgwDCQgGCWAeAQoUCApUIRcNAwgAFAsIFGAAFQEBFVQAFRUBWQABFQFNWUFXAAEAAAE9ATsBNQEzAS0BKwElASMBHQEbARUBEwENAQsBBQEDAP0A+wD1APMA7QDrAOUA4wDdANsA1QDTAM0AywDFAMMAvQC7ALUAswCtAKsApQCjAJ0AmwCVAJMAjQCLAIUAgwB9AHsAdQBzAG0AawBlAGMAXQBbAFUAUwBNAEsARQBDAD0AOwA1ADMALQArACUAIwAdABsAFQATAAkABwAAAA8AAQAPACkABQAUKwEyFhcRFAYHISImJxE0NjcXFRQWOwEyNj0BNCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNj0BNCYrASIGBzU0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjYBNTQmKwEiBh0BFBY7ATI2ETU0JisBIgYdARQWOwEyNj0BNCYrASIGHQEUFjsBMjY9ATQmKwEiBh0BFBY7ATI2PQE0JisBIgYdARQWOwEyNhM1NCYrASIGBxUUFjsBMjY9ATQmKwEiBgcVFBY7ATI2PQE0JisBIgYHFRQWOwEyNj0BNCYrASIGBxUUFjsBMjY9ATQmKwEiBgcVFBY7ATI2Au4PFAEWDv02DxQBFg76CggjCAoKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCAoKCCMICkgKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCAoKCCMICgoIIwgKCggjCAoKCCMICgEeCgiyCAoKCLIICgoIJAcKCgckCAoKCCQHCgoHJAgKCggkBwoKByQICgoIJAcKCgckCAqPCggkBwoBDAYkCAoKCCQHCgEMBiQICgoIJAcKAQwGJAgKCggkBwoBDAYkCAoKCCQHCgEMBiQICgNSFg78YA8UARYOA6APFAGhIwgKCggjCAoKlyMICgoIIwgKCpYkCAoKCCQHCgqWJAgKCggkCAoKuyQICgoIJAgKCpckCAoKCCQICgqXJAcKCgckCAoKlyMICgoIIwgKCpcjCAoKCCMICgr9PWsICgoIawgKCgEmJAgKCggkCAoKlyQHCgoHJAgKCpcjCAoKCCMICgqXIwgKCggjCAoK/cwkCAoKCCQICgqXJAgKCggkCAoKlyQHCgoHJAgKCpcjCAoKCCMICgqXIwgKCggjCAoKAAAABAAA/2oDWwNSAA4AHQAsAD0AckBvOQwDAwcGKiECAQAbEgIFBANHCwEAKQEEGgECA0YLAQYHBm8ABwAHbwgBAAABBAABYAoBBAAFAgQFYAkBAgMDAlQJAQICA1gAAwIDTC4tHx4QDwEANjUtPS49JiUeLB8sFxYPHRAdCAcADgEODAUUKwEyNjcVFA4BIi4BJzUeARMyNjcVFA4BIi4BJzUeATcyNjcVFA4CLgEnNR4BEzIeAQcVFA4BIi4BJzU0PgEBrYTmQnLI5MpuA0LmhYTmQnLI5MpuA0LmhYTmQnLI5MpuA0LmhXTEdgJyyOTKbgN0xAGlMC9fJkImJkImXy8w/lQwL18nQiYmQidfLzDWMC9fJkImAio+KF8vMAKDJkInRydCJiZCJ0cnQiYAAAb//v9qA+oDUgAQABkAIQAqADMAOwByQG8YEwIDAhcUAgcDOTg1Hx4bBgYHKCUCBQYpJAIEBQVHCAEACQECAwACYAADAAcGAwdgCwEGAAUEBgVgCgEEAQEEVAoBBAQBWAABBAFMLCsjIhIRAQAwLyszLDMnJiIqIyoWFREZEhkJCAAQARAMBRQrATIeAw4CIi4CPgMXIgcXNjIXNyYBNyY0NycGFAEyNycGIicHFjcyNi4BDgIWJRc2NCcHFhQB9Ga4iEwEVIDAxMCAVARMiLhmal9sLl4ubWD+HGwQEGwzAa1qYG0uXi5sX2pZfgJ6tngGhAFjbDMzbBADUlCEvMi8hFBQhLzIvIRQRzNsEBBsM/2KbC5eLm1g1P69M2wQEGwz136wgAR4uHZ1bF/UYG0uXgAAAQAA/7EDxQMLAH4ATkBLWVQ0AwYFFwECAQgBAAIDRwgBBAkHAgUGBAVgAAYAAQIGAWAKAQIAAAJUCgECAgBYAwEAAgBMenlwb2tlYF9YVU9OSkR0Fj1gCwUYKwUiJiIGIyImNzQ+Ajc2PQE0JyYjISIPARQXHgEyFhcUBgciJiIGIyImNTQ+Ajc2NScRNzYmNC8BLgEnLgEGJjc0NjcyFjI2MzIWFRQGIgYHBhUXFjMhMjc2PQE0Jy4CNTQ2NzIWMjYzMhYVFAYiBgcGFRMUFx4BMhYXFAYDqxliMmIZDRABEhogCRIBBxX+iBYHARUJIh4UAQwPGmgxXhgNDhIWHgkSAQEBAgIEAggFCCIYFgEMDhpoMGAWDg4SGhwKFAEHDwGGDgcBEwouHA4OGGQvYBgODhQYIgcUARMJIBwSAQxPBAQYDRIQAgYGC0PaDAUDA+BPDAYEEBIOGAEEBBgNERAEBAcNQx8Bxg8NDhwKFAoQAgUEAhASDhgBBAQaDREQBAUMTsQCAgYMsk4MBgIMFg4YAQQEGg0REAQFDU398kIMBgQSEA4YAAUAAP9qA+gDUgAQABQAJQAvADkAbEBpMykCBwghAQUCHRUNDAQABQNHBAEFAUYGDAMLBAEHAgcBAm0AAgUHAgVrAAUABwUAawQBAABuCgEIBwcIVAoBCAgHVgkBBwgHShERAAA3NTIxLSsoJyQiHx4bGREUERQTEgAQAA83DQUVKwERFAYHERQGByEiJicREzYzIREjEQERFAYHISImJxEiJicRMzIXJRUjNTQ2OwEyFgUVIzU0NjsBMhYBiRYOFBD+4w8UAYsEDQGfjgI7Fg7+4w8UAQ8UAe0NBP4+xQoIoQgKAXfFCgihCAoCn/5UDxQB/r8PFAEWDgEdAegM/ngBiP4M/uMPFAEWDgFBFg4BrAytfX0ICgoIfX0ICgoAAAIAAP+xBHcDCwAFAAsANEAxCwoJAwMBAUcAAQMBbwADAgNvBAECAAACUgQBAgIAVgAAAgBKAAAIBwAFAAUREQUFFisFFSERMxEBEyEREwEEd/uJRwNajvxg+gFBB0gDWvzuAjv+DAFCAUH+vwAAAAABAAD/sQLKA1MASgBFQEIjAQUCEwEBAwJHHAEBRAACBAUEAgVtAAUDBAUDawAAAAQCAARgAAMBAQNUAAMDAVgAAQMBTEVEOzkxLyknKCUGBRYrETQ+AxcyHgEVFA4DJyImJwcOBQ8BJyY1NDY/ASY1NDY3MhYVFA4BFjMyPgQ3NCYjIgYVFB4CFRQGIycuAypKYG46WJheFDBAYDomShEPCggOEBIiEgcFCRgZHRI6LSImMAEyJB80JBoQBgF6Y2+WDhAOEA0JHSwYDAIFPGpQOh4BSo5ZNmZgRi4CJB8/KRg4FjAoHAMGWBEzgGFxJDovUAEuIiWKRy4cMDpAPBpgbJBvGS4aGgQPMgEJLD46AAQAAP+3A+gDBQASABUAHAAoACFAHichIBwWFRQTEQ4KAAEBRwABAAFvAAAAZiQjFAIFFSsBERQGByInJS4BNRE0NjcyFwUWFwElAREUDgEvAQEUAAcDEzYzMhcFFgFNDg0KCf79DBAMCggQAR4BJAEq/tYCdxAaDfYBK/7iGNq1CRQIBgEuAgJn/XEOEgEEgwUaDQJ8DA4BCI8COf4clQFF/bMOEAIIewItAv4wKAFhASYQA5cBAAAF//7/kgPqAyoABQAIAA4AFAAaACFAHhQIAQMARAQBAgECbwMBAQABbwAAAGYSFxITFgUFGSsTCQEuATclIQMBEyETNjIBFxYGBwkBIRM2Mhc6Abr+HAoIBAE6AXC4/tlv/v5vBBwC5TgECAr+HAG6/v5vBBwFAcj9ygFfBxgMrP3KA4z+qgFWDP6erAwYB/6hAjYBVgwMAAIAAP9oA+gDVAAWACcAIkAfFBAKAwACAUcAAgACbwAAAQBvAAEBZiQjHBsSEQMFFCslEzYmBwUOARYfASU2FxYPAjI/ARcWARQOAy4CND4CHgMCmFIFFhL+HhAMCA58AR4MBgQH5wkNDDx9JAFaUIS8yLyEUFCEvMi8hFB5AYIZFgi5BhAOBCa0CAUDBdJ/DTpdFAEPZriITARUgMDEwIBUBEyIuAAAAAEAAAABAAAT/eF6Xw889QALA+gAAAAA2J6HdAAAAADYnod0/+P/OgTiA4EAAAAIAAIAAAAAAAAAAQAAA1L/agAABOL/4//jBOIAAQAAAAAAAAAAAAAAAAAAAGQD6AAAAsoAAAPp//4D6P//A1kAAANZAAADoAAAA6AAAAMRAAADoAAAAjsAAAI7AAADoAAAA6AAAAOqAAAD6AAAA+gAAAMRAAACO///A1kAAALKAAACygAAA1kAAAOgAAAD6AAAAxAAAAMtAAADWf/9BAL/4wOE//4DoAAAA6AAAAMuAAAD6P/4A+f//gMRAAAD6AAAA+gAAAKCAAADoP//A+gAAAQv//8COwAAA+gAAANZAAADmAAAAxH//wOgAAADrQAAA+gAAAMRAAACOwAAA1z/+QNZAAADmAAAA5j//APoAAADoAAAA+j/+APU//cCvP/7A6AAAAPoAAAE4gAABMEAAAH0AAACEgAAA+gAAAPoAAADEQAAA6AAAAOYAAAD6AAAA1kAAAMR//kD6AAAA+gAAAPoAAADWQAAAjv//wNZAAADWf/9BC8AAAQvAAACygAAAxEAAAOgAAADoAAABHYAAANZ//8DWQAAA1kAAAPo//4D6AAAA+gAAAR2AAACygAAA+gAAAPo//4D6AAAAAAAAABEAKwBmgIkAuYDVgO0A/4EZgSOBMgFKgWuBnIG0AcQB1gHfgfkCBgITgimCQ4JWgnACmIKtAsOC1wMPAycDWYN3A4+DvgPyBAuEHYQxhFoEiwSahMIE+IUOBTAFbAWSBc+F+wYYhjCGWoZtBouGnIasBsSG14bzhwiHFodBh1iHYAdsB3mHhweRh6CH2gf7iDcIRAhpiJEI/wlRiWKJfAmfCeeKBAoWikMKUwpxio6KowtIC24LlIvJi+2L+4wdjDSMR4xcQAAAAEAAABkAUAAFAAAAAAAAgBSAGIAcwAAARILcAAAAAAAAAASAN4AAQAAAAAAAAA1AAAAAQAAAAAAAQAIADUAAQAAAAAAAgAHAD0AAQAAAAAAAwAIAEQAAQAAAAAABAAIAEwAAQAAAAAABQALAFQAAQAAAAAABgAIAF8AAQAAAAAACgArAGcAAQAAAAAACwATAJIAAwABBAkAAABqAKUAAwABBAkAAQAQAQ8AAwABBAkAAgAOAR8AAwABBAkAAwAQAS0AAwABBAkABAAQAT0AAwABBAkABQAWAU0AAwABBAkABgAQAWMAAwABBAkACgBWAXMAAwABBAkACwAmAclDb3B5cmlnaHQgKEMpIDIwMTkgYnkgb3JpZ2luYWwgYXV0aG9ycyBAIGZvbnRlbGxvLmNvbWZvbnRlbGxvUmVndWxhcmZvbnRlbGxvZm9udGVsbG9WZXJzaW9uIDEuMGZvbnRlbGxvR2VuZXJhdGVkIGJ5IHN2ZzJ0dGYgZnJvbSBGb250ZWxsbyBwcm9qZWN0Lmh0dHA6Ly9mb250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAxADkAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAGYAbwBuAHQAZQBsAGwAbwBSAGUAZwB1AGwAYQByAGYAbwBuAHQAZQBsAGwAbwBmAG8AbgB0AGUAbABsAG8AVgBlAHIAcwBpAG8AbgAgADEALgAwAGYAbwBuAHQAZQBsAGwAbwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUABHVzZXIGZm9sZGVyBGxpc3QFbG9naW4DY29nB3R3aXR0ZXILYXJ0aWNsZS1hbHQGY2FuY2VsBGhvbWUIZG93bi1kaXIIZmFjZWJvb2sIYXN0ZXJpc2sGdXBsb2FkCXN0b3B3YXRjaAZleHBvcnQFaGVhcnQEcGx1cwZ1cC1kaXIEbWVudQlsZWZ0LW9wZW4KcmlnaHQtb3BlbgVpbmJveAZ3cmVuY2gHY29tbWVudA1zdGFja292ZXJmbG93CHF1ZXN0aW9uCm9rLWNpcmNsZWQHd2FybmluZwRtYWlsBGxpbmsHa2V5LWludgV0cmFzaAhkb3dubG9hZAdnbGFzc2VzBnFyY29kZQdzaHVmZmxlA2V5ZQRsb2NrBnNlYXJjaARiZWxsBXVzZXJzCGxvY2F0aW9uCWJyaWVmY2FzZQlp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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:#868686;text-align:left}::-webkit-input-placeholder{text-align:left}input:-moz-placeholder{text-align:left}.button,button{display:inline-block;background:#f02e65;border-radius:26px;border:none;color:#fff;height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:#c52653;border-bottom:none}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;right:30px}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:left;padding:0 20px!important}.button.icon,button.icon{padding-right:30px!important}.button.icon-reduce,button.icon-reduce{padding-left:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:#f02e65;border:solid 2px #f02e65}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:#c52653;border-color:#c52653}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:#f02e65}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:#1bbf61}.button.success.reverse,button.success.reverse{color:#1bbf61;background:#fff;border:solid 2px #1bbf61}.button.danger,button.danger{background:#f53d3d}.button.danger.reverse,button.danger.reverse{color:#f53d3d;background:#fff;border:solid 2px #f53d3d}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{background:#818181;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:#1e849e;height:auto;line-height:normal;padding:0;padding-right:0!important}.button.link:hover,button.link:hover{border-bottom:dotted 1px #1e849e}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input[xtype=file],input[type=date][xtype=file],input[type=datetime-local][xtype=file],input[type=email][xtype=file],input[type=file][xtype=file],input[type=number][xtype=file],input[type=password][xtype=file],input[type=search][xtype=file],input[type=tel][xtype=file],input[type=text][xtype=file],input[type=url][xtype=file],select[xtype=file],textarea[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.input[xtype=file]:disabled,input[type=date][xtype=file]:disabled,input[type=datetime-local][xtype=file]:disabled,input[type=email][xtype=file]:disabled,input[type=file][xtype=file]:disabled,input[type=number][xtype=file]:disabled,input[type=password][xtype=file]:disabled,input[type=search][xtype=file]:disabled,input[type=tel][xtype=file]:disabled,input[type=text][xtype=file]:disabled,input[type=url][xtype=file]:disabled,select[xtype=file]:disabled,textarea[xtype=file]:disabled{opacity:0!important}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{background:#f1f3f5}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position:right 15px top 50%;background-repeat:no-repeat;background-color:#fff;width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-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:left 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-right:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;float:right;margin-top:-20px}.file-preview{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip:hover:after{white-space:nowrap;background:#333;border-radius:5px;bottom:26px;color:#fff;content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;left:20%;margin-left:-30px}.tooltip:hover:before{border:solid;border-color:#333 transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;left:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:#e7e7e7;color:#868686;border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:#1bbf61;color:#fff}.tag.red{background:#f53d3d;color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:#f02e65;color:#fff}.tag.dark{background:#6f6f6f;color:#e7e7e7}.tag.blue{background:#4abde8;color:#fff}.tag.link{background:#1e849e;color:#fff}input[type=checkbox]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle}input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;background:#fff;top:-5px;border-radius:50%;position:absolute;border:solid 3px #f02e65;vertical-align:middle}input[type=checkbox]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:#fff;background:#f02e65}input[type=checkbox]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after{border-color:#f02e65}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-right:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;right:0;border-left:solid 1px #e2e2e2;height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:#fbfbfb;margin:1px;border-radius:0 10px 10px 0}.paging{color:#8d8e8e;padding:5px 15px;font-size:12px}.paging form{display:inline-block}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.blue-snap iframe[xtype=file]:disabled{opacity:0!important}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{background:#f1f3f5}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap .error{font-size:12px;margin-top:-25px;color:#f53d3d;height:40px;padding-left:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:#fff;line-height:normal!important}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:#868686}.pell .pell-actionbar{border-bottom:solid 1px #e7e7e7;margin:0 -15px 15px -15px;padding:10px 15px}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-right:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:#1e849e}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;margin-bottom:10px}.pell ol li p,.pell ul li p{margin:0}.pell ul li{margin:0 20px;display:list-item}label.switch{line-height:42px}input[type=checkbox].switch{width:67px;height:42px;line-height:42px;border-radius:21px;background:#818181;display:block;margin:0;padding:5px;padding-left:30px;padding-right:5px}input[type=checkbox].switch:checked{background:#f02e65;padding-left:5px;padding-right:30px}input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}input[type=checkbox].switch:after{content:"";display:block;width:32px;height:32px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:#f53d3d}.password-meter.medium{background:#ffed4d}.password-meter.strong{background:#1bbf61}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:left;margin-right:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:left;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-left:-15px;margin-top:-25px;margin-bottom:20px}hr{height:1px;background:#eceff1;border:none}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;left:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-right:0!important;margin-bottom:0!important}.upload .button{float:left;margin-right:20px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:left;line-height:52px}.upload .progress{background:#1bbf61;height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:left;margin-right:20px!important;margin-bottom:15px!important;background:#f1f1f1;width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 10px #f1f1f1}.upload .preview li:hover:before{background:#f02e65}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:5px;right:5px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-left:45px}ol li::before{display:inline-block;content:counter(x-counter);color:#f02e65;color:#fff;background:#fff;background:#f02e65;border:solid 2px #f02e65;margin-right:15px;margin-left:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:#f53d3d;font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;left:-10px;max-width:280px;min-width:240px;overflow:hidden}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:#f53d3d;color:#fff}.drop-list ul.focus{background:#f02e65;color:#fff}.drop-list ul.focus .button,.drop-list ul.focus button{background:#fff;color:#f02e65}.drop-list ul.warning{background:#ffed4d;color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.drop-list ul>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.drop-list ul hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.drop-list ul .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.drop-list ul .toggle button.ls-ui-open{position:absolute;top:0;left:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus{display:block}.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul:before{border:solid;border-color:#fff transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;left:30px}.drop-list ul li{border-bottom:solid 1px #f1f3f5;margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li .link,.drop-list ul li a{vertical-align:middle;height:30px;line-height:30px;display:block;padding:10px 25px;color:inherit;font-size:14px;border:none;max-width:260px;cursor:pointer}.drop-list ul li .link:hover,.drop-list ul li a:hover{background:#f1f3f5;border-color:transparent}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-right:10px;float:left}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:#fff;min-height:42px;height:auto}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.tags[xtype=file]:disabled{opacity:0!important}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{background:#f1f3f5}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.tags.strip:focus{border-color:#b3d7fd}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0}.tags ul.tags-list{display:inline}.tags ul.tags-list li{display:inline-block!important;margin-right:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:right;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-left:6px;margin-right:0}.console{height:100%;width:100%;padding:0}.console body{position:relative;height:calc(100% - 70px);width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-right:50px;padding-left:270px;margin:0;color:#4b4b4b;background:#eceff1}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav .console-back{display:block}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .account{display:block}.console body .console-back{display:none}.console body:before{content:'';display:block;position:absolute;width:calc(100% - 220px);height:100px;top:-100px;left:0;right:0;background:#fff;z-index:1000;border-left:solid 220px #132a3b}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:#ececec;color:#868686}.console header .account{margin-left:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .account:hover{border-bottom:none}.console header .avatar{height:40px;width:40px}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:#f53d3d;width:8px;height:8px;border-radius:50%;top:3px;right:3px}.console header nav{background:#1b3445;background:linear-gradient(#132a3b,#302839);background:linear-gradient(#143650,#302839);color:#788c99;position:fixed;height:100%;width:220px;top:0;left:0}.console header nav .logo{height:39px;padding:15px 20px;display:block;border-bottom:none}.console header nav .logo:hover{border-bottom:none}.console header nav .logo img{display:inline-block;margin-top:9px;width:75%}.console header nav .logo svg g{fill:#f02e65}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:#f02e65}.console header nav .container{overflow:scroll;height:calc(100% - 183px);padding-bottom:50px;width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;right:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px 5px 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important}.console header nav .links.bottom a{border-top:solid 1px #2a253a;border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:#f02e65;color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:12px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-left:solid 5px transparent}.console header nav .links a i{margin-right:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4;font-weight:500}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-right:30px;padding-left:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:left;margin-right:50px;margin-bottom:50px;width:270px}.console .projects li.new,.console .projects li:nth-child(3n){margin-right:0}.console .dashboard{padding:20px;min-height:95px;overflow:hidden;position:relative;z-index:1}.console .dashboard hr{margin:20px -20px}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:#1e849e}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:#eceff1;height:calc(100% + 110px);position:absolute;top:-20px;bottom:-20px;right:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:#f02e65;vertical-align:bottom;line-height:55px}.console .dashboard .value .sum{font-size:55px;line-height:55px;font-weight:700;vertical-align:bottom}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-left:5px;color:#f02e65}.console .dashboard .metric{color:#f02e65;font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:#818181;font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .dashboard .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart-metric{width:100%}}.console .dashboard .chart{width:80%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-right:-2px;overflow:hidden;background-color:#fff;background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(#f1f1f1 1px,transparent 1px),linear-gradient(90deg,#f1f1f1 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px #f1f1f1;border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart{width:100%;float:none;margin-bottom:20px}}.console .dashboard .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:#818181;color:#f1f3f5;border-radius:50%;margin-right:15px}.console .link-list i.fade{background:0 0;color:#818181}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:#f6f7f8;opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:#1e849e;color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.search button{margin-top:20px}}html.home body{padding:0 50px}html.home .logo img{max-height:35px;margin:45px 25px 25px 25px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:#fff;z-index:1002;margin:0 auto;bottom:15px;max-width:650px;opacity:.9}.alerts ul li{margin:1px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:#818181;text-align:center;font-weight:700;border-radius:20px;line-height:16px;min-height:16px}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:22px;top:8px;left:8px}.alerts ul li div.message.error{color:#fff;background:#f53d3d}.alerts ul li div.message.success{color:#fff;background:#1bbf61}.alerts ul li div.message.warning{color:#fff;background:#ffed4d}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:#fff2f6!important;color:#f02e65}.alerts .cookie-alert a{color:#f02e65;font-weight:400;border-bottom:dotted 1px #f02e65}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.alerts ul{top:auto;bottom:0;max-width:100%}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:17px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px #e7e7e7}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-left:10px}article table td:last-child,article table th:last-child{padding-right:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar{width:60px;height:60px;border-radius:50%;background:#ddd;display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:#ddd}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar.xs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:#f53d3d;color:#fff}.box.focus{background:#f02e65;color:#fff}.box.focus .button,.box.focus button{background:#fff;color:#f02e65}.box.warning{background:#ffed4d;color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.box>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.box hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.box .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.box .toggle button.ls-ui-open{position:absolute;top:0;left:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus{display:block}.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}a.box{border-right:none;border-left:none}a.box:hover{border-bottom:none;border-right:none;border-left:none;background:#f8fdff;box-shadow:0 0 1px rgba(0,0,0,.2)}.box-asidex{padding-right:25px!important;padding-left:70px;right:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;left:-6px}.cover{background:#fff2f6;padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px #dedede}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:#f02e65;font-weight:600;margin-bottom:40px!important;font-size:28px;line-height:42px}.cover i:before{margin:0!important}.cover p{color:#737373}.cover .button{color:#fff}.cover .link,.cover a{color:#f02e65;border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:#f02e65}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;right:20px}.console .database hr{margin:0 -20px;background:#efefef;height:2px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:#f5f5f5;margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px #e1e2e2;font-weight:600}.console .database .empty{height:160px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:#f5f5f5;margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:#f02e65;width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-right:8px}.console .database .button:hover{border:none;background:#fff2f6}.console .database .items{margin:0 -20px;height:260px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{background:red;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-left:50px;padding-right:30px;position:relative}.console .database .items li i{position:absolute;display:none;right:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:#818181;line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:#505050}body>footer a:hover{border-bottom-color:#505050}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{float:left;margin-right:20px!important}body>footer .copyright{padding-left:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.5;z-index:4}.modal{overflow:auto;display:none;position:fixed;width:100%;max-height:90%;max-width:640px;background:#fff;z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:left}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.modal{width:calc(100% - 20px)}}.modal.padding-small{padding:15px}.modal.height-tiny form{height:100px}.modal.height-small form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:left}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal form{position:relative;border-top:solid 1px #e7e7e7;padding:30px 30px 0 30px;margin:0 -30px}.modal .separator{margin:20px -30px}.modal .info{margin:0 -30px;padding:20px 30px;background:#f5fbff;color:#3b5d73;border-top:solid 1px #eaf2f7;border-bottom:solid 1px #eaf2f7}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:#1b1b1b;color:#fff;border-radius:50%}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:#f02e65;position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:#f02e65;width:calc(100% - 46px);position:absolute;bottom:0;border-radius:2px;left:-2px}.container .tabs .number{display:none}.container .tabs li{float:left;padding-right:50px;color:#f02e65;opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:#373738;overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide .copy{position:absolute;bottom:15px;right:15px;cursor:pointer;background:#39393c;border-radius:50%;padding:2px;color:#6a6a6d;border:solid 2px #414142}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:#39393c;position:absolute;pointer-events:none;top:-20px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-right:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:ltr}body{margin:0;background:#f6f7f8 no-repeat fixed}main{min-height:100%}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.force-left{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right} \ No newline at end of file +.pull-start{float:left}.pull-end{float:right}img[src=""]{visibility:hidden;display:inline-block}.margin-end{margin-right:20px!important}.margin-start{margin-left:20px!important}.margin-end-small{margin-right:10px!important}.margin-start-small{margin-left:10px!important}.margin-end-large{margin-right:50px!important}.margin-start-large{margin-left:50px!important}.margin-end-no{margin-right:0!important}.margin-start-no{margin-left:0!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}*{font-family:Poppins,sans-serif,Arial;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:#1e849e;text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;border-bottom:solid 1px transparent}.link:hover,a:hover{border-bottom:dotted 1px #1e849e}.link.disabled,a.disabled{opacity:.5}.link.disabled:hover,a.disabled:hover{border-bottom:none}.link.tag:hover,a.tag:hover{border-bottom:none;opacity:.9}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:#818181}.text-size-small{font-size:13px}.text-size-normal{font-size:16px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-danger{color:#f53d3d}.text-success{color:#1bbf61}.text-upper{text-transform:uppercase}.text-warning{color:#ffed4d}.text-focus{color:#f02e65}.text-fade{color:#818181}.text-disclaimer{font-size:11px;color:#818181}.text-fade-extra{color:#818181;opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:left}.text-align-end{text-align:right}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px #f1f3f5;font-size:14px}table thead th{position:sticky;top:0}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px #f1f3f5}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:#fbfbfb}table th{text-align:left;font-weight:400}table th i{color:#818181;font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-left:30px}table td:last-child,table th:last-child{padding-right:30px}@media only screen and (max-width:550px){table td:first-child,table th:first-child{width:auto}}table td,table th{overflow:hidden;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){table.vertical{display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:910px;margin:0 auto 40px auto}.zone.xxxl{max-width:calc(100% - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:1100px}.zone.xl{max-width:910px}.zone.large{max-width:700px}.zone.medium{max-width:550px}.zone.small{max-width:320px}.row{position:relative;margin:0 -50px;padding-left:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row{margin:0 -30px;padding-left:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:right}.row.wide{margin:0 -100px;padding-left:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-right:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-right:100px}.row.thin{margin:0 -20px;padding-left:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-right:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-right:20px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:left;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:0}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-right:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-right:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-right:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-right:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-right:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-right:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-right:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-right:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-right:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-right:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-right:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-right:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-right:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles li{margin-right:50px!important;float:left;width:calc(33% - 33px)}.tiles li .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:#f1f3f5;border-bottom:solid 1px #f1f3f5}.tiles li:nth-child(3n){margin-right:0!important}@media only screen and (max-width:550px){.tiles li{width:100%;margin-right:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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b250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAxADkAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAGYAbwBuAHQAZQBsAGwAbwBSAGUAZwB1AGwAYQByAGYAbwBuAHQAZQBsAGwAbwBmAG8AbgB0AGUAbABsAG8AVgBlAHIAcwBpAG8AbgAgADEALgAwAGYAbwBuAHQAZQBsAGwAbwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUABHVzZXIGZm9sZGVyBGxpc3QFbG9naW4DY29nB3R3aXR0ZXILYXJ0aWNsZS1hbHQGY2FuY2VsBGhvbWUIZG93bi1kaXIIZmFjZWJvb2sIYXN0ZXJpc2sGdXBsb2FkCXN0b3B3YXRjaAZleHBvcnQFaGVhcnQEcGx1cwZ1cC1kaXIEbWVudQlsZWZ0LW9wZW4KcmlnaHQtb3BlbgVpbmJveAZ3cmVuY2gHY29tbWVudA1zdGFja292ZXJmbG93CHF1ZXN0aW9uCm9rLWNpcmNsZWQHd2FybmluZwRtYWlsBGxpbmsHa2V5LWludgV0cmFzaAhkb3dubG9hZAdnbGFzc2VzBnFyY29kZQdzaHVmZmxlA2V5ZQRsb2NrBnNlYXJjaARiZWxsBXVzZXJzCGxvY2F0aW9uCWJyaWVmY2FzZQlp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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:#868686;text-align:left}::-webkit-input-placeholder{text-align:left}input:-moz-placeholder{text-align:left}.button,button{display:inline-block;background:#f02e65;border-radius:26px;border:none;color:#fff;height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:#c52653;border-bottom:none}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;right:30px}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:left;padding:0 20px!important}.button.icon,button.icon{padding-right:30px!important}.button.icon-reduce,button.icon-reduce{padding-left:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:#f02e65;border:solid 2px #f02e65}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:#c52653;border-color:#c52653}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:#f02e65}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:#1bbf61}.button.success.reverse,button.success.reverse{color:#1bbf61;background:#fff;border:solid 2px #1bbf61}.button.danger,button.danger{background:#f53d3d}.button.danger.reverse,button.danger.reverse{color:#f53d3d;background:#fff;border:solid 2px #f53d3d}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{background:#818181;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:#1e849e;height:auto;line-height:normal;padding:0;padding-right:0!important}.button.link:hover,button.link:hover{border-bottom:dotted 1px #1e849e}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input[xtype=file],input[type=date][xtype=file],input[type=datetime-local][xtype=file],input[type=email][xtype=file],input[type=file][xtype=file],input[type=number][xtype=file],input[type=password][xtype=file],input[type=search][xtype=file],input[type=tel][xtype=file],input[type=text][xtype=file],input[type=url][xtype=file],select[xtype=file],textarea[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.input[xtype=file]:disabled,input[type=date][xtype=file]:disabled,input[type=datetime-local][xtype=file]:disabled,input[type=email][xtype=file]:disabled,input[type=file][xtype=file]:disabled,input[type=number][xtype=file]:disabled,input[type=password][xtype=file]:disabled,input[type=search][xtype=file]:disabled,input[type=tel][xtype=file]:disabled,input[type=text][xtype=file]:disabled,input[type=url][xtype=file]:disabled,select[xtype=file]:disabled,textarea[xtype=file]:disabled{opacity:0!important}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{background:#f1f3f5}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position:right 15px top 50%;background-repeat:no-repeat;background-color:#fff;width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-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:left 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-right:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;float:right;margin-top:-20px}.file-preview{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip:hover:after{white-space:nowrap;background:#333;border-radius:5px;bottom:26px;color:#fff;content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;left:20%;margin-left:-30px}.tooltip:hover:before{border:solid;border-color:#333 transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;left:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:#e7e7e7;color:#868686;border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:#1bbf61;color:#fff}.tag.red{background:#f53d3d;color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:#f02e65;color:#fff}.tag.dark{background:#6f6f6f;color:#e7e7e7}.tag.blue{background:#4abde8;color:#fff}.tag.link{background:#1e849e;color:#fff}input[type=checkbox]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle}input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;background:#fff;top:-5px;border-radius:50%;position:absolute;border:solid 3px #f02e65;vertical-align:middle}input[type=checkbox]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:#fff;background:#f02e65}input[type=checkbox]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after{border-color:#f02e65}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-right:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;right:0;border-left:solid 1px #e2e2e2;height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:#fbfbfb;margin:1px;border-radius:0 10px 10px 0}.paging{color:#8d8e8e;padding:5px 15px;font-size:12px}.paging form{display:inline-block}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.blue-snap iframe[xtype=file]:disabled{opacity:0!important}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{background:#f1f3f5}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap .error{font-size:12px;margin-top:-25px;color:#f53d3d;height:40px;padding-left:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:#fff;line-height:normal!important}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:#868686}.pell .pell-actionbar{border-bottom:solid 1px #e7e7e7;margin:0 -15px 15px -15px;padding:10px 15px}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-right:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:#1e849e}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;margin-bottom:10px}.pell ol li p,.pell ul li p{margin:0}.pell ul li{margin:0 20px;display:list-item}label.switch{line-height:42px}input[type=checkbox].switch{width:67px;height:42px;line-height:42px;border-radius:21px;background:#818181;display:block;margin:0;padding:5px;padding-left:30px;padding-right:5px}input[type=checkbox].switch:checked{background:#f02e65;padding-left:5px;padding-right:30px}input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}input[type=checkbox].switch:after{content:"";display:block;width:32px;height:32px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:#f53d3d}.password-meter.medium{background:#ffed4d}.password-meter.strong{background:#1bbf61}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:left;margin-right:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:left;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-left:-15px;margin-top:-25px;margin-bottom:20px}hr{height:1px;background:#eceff1;border:none}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;left:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-right:0!important;margin-bottom:0!important}.upload .button{float:left;margin-right:20px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:left;line-height:52px}.upload .progress{background:#1bbf61;height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:left;margin-right:20px!important;margin-bottom:15px!important;background:#f1f1f1;width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 10px #f1f1f1}.upload .preview li:hover:before{background:#f02e65}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:5px;right:5px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-left:45px}ol li::before{display:inline-block;content:counter(x-counter);color:#f02e65;color:#fff;background:#fff;background:#f02e65;border:solid 2px #f02e65;margin-right:15px;margin-left:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:#f53d3d;font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;left:-10px;max-width:280px;min-width:240px;overflow:hidden}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:#f53d3d;color:#fff}.drop-list ul.focus{background:#f02e65;color:#fff}.drop-list ul.focus .button,.drop-list ul.focus button{background:#fff;color:#f02e65}.drop-list ul.warning{background:#ffed4d;color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.drop-list ul>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.drop-list ul hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.drop-list ul .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.drop-list ul .toggle button.ls-ui-open{position:absolute;top:0;left:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus{display:block}.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul:before{border:solid;border-color:#fff transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;left:30px}.drop-list ul li{border-bottom:solid 1px #f1f3f5;margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li .link,.drop-list ul li a{vertical-align:middle;height:30px;line-height:30px;display:block;padding:10px 25px;color:inherit;font-size:14px;border:none;max-width:260px;cursor:pointer}.drop-list ul li .link:hover,.drop-list ul li a:hover{background:#f1f3f5;border-color:transparent}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-right:10px;float:left}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:#fff;min-height:42px;height:auto}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;left:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.tags[xtype=file]:disabled{opacity:0!important}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{background:#f1f3f5}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:right 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.tags.strip:focus{border-color:#b3d7fd}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0}.tags ul.tags-list{display:inline}.tags ul.tags-list li{display:inline-block!important;margin-right:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:right;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-left:6px;margin-right:0}.console{height:100%;width:100%;padding:0}.console body{position:relative;height:calc(100% - 70px);width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-right:50px;padding-left:270px;margin:0;color:#4b4b4b;background:#eceff1}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav .console-back{display:block}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .account{display:block}.console body .console-back{display:none}.console body:before{content:'';display:block;position:absolute;width:calc(100% - 220px);height:100px;top:-100px;left:0;right:0;background:#fff;z-index:1000;border-left:solid 220px #132a3b}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:#ececec;color:#868686}.console header .account{margin-left:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .account:hover{border-bottom:none}.console header .avatar{height:40px;width:40px}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:#f53d3d;width:8px;height:8px;border-radius:50%;top:3px;right:3px}.console header nav{background:#1b3445;background:linear-gradient(#132a3b,#302839);background:linear-gradient(#143650,#302839);color:#788c99;position:fixed;height:100%;width:220px;top:0;left:0}.console header nav .logo{height:39px;padding:15px 20px;display:block;border-bottom:none}.console header nav .logo:hover{border-bottom:none}.console header nav .logo img{display:inline-block;margin-top:9px;width:75%}.console header nav .logo svg g{fill:#f02e65}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:#f02e65}.console header nav .container{overflow:scroll;height:calc(100% - 183px);padding-bottom:50px;width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;right:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px 5px 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important}.console header nav .links.bottom a{border-top:solid 1px #2a253a;border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:#f02e65;color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:12px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-left:solid 5px transparent}.console header nav .links a i{margin-right:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4;font-weight:500}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-right:30px;padding-left:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:left;margin-right:50px;margin-bottom:50px;width:270px}.console .projects li.new,.console .projects li:nth-child(3n){margin-right:0}.console .dashboard{padding:20px;min-height:95px;overflow:hidden;position:relative;z-index:1}.console .dashboard hr{margin:20px -20px}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:#1e849e}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:#eceff1;height:calc(100% + 110px);position:absolute;top:-20px;bottom:-20px;right:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:#f02e65;vertical-align:bottom;line-height:55px}.console .dashboard .value .sum{font-size:55px;line-height:55px;font-weight:700;vertical-align:bottom}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-left:5px;color:#f02e65}.console .dashboard .metric{color:#f02e65;font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:#818181;font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .dashboard .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart-metric{width:100%}}.console .dashboard .chart{width:80%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-right:-2px;overflow:hidden;background-color:#fff;background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(#f1f1f1 1px,transparent 1px),linear-gradient(90deg,#f1f1f1 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px #f1f1f1;border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart{width:100%;float:none;margin-bottom:20px}}.console .dashboard .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:#818181;color:#f1f3f5;border-radius:50%;margin-right:15px}.console .link-list i.fade{background:0 0;color:#818181}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:#f6f7f8;opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:#1e849e;color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.search button{margin-top:20px}}html.home body{padding:0 50px}html.home .logo img{max-height:35px;margin:45px 25px 25px 25px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:#fff;z-index:1002;margin:0 auto;bottom:15px;max-width:650px;opacity:.9}.alerts ul li{margin:1px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:#818181;text-align:center;font-weight:700;border-radius:20px;line-height:16px;min-height:16px}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:22px;top:8px;left:8px}.alerts ul li div.message.error{color:#fff;background:#f53d3d}.alerts ul li div.message.success{color:#fff;background:#1bbf61}.alerts ul li div.message.warning{color:#fff;background:#ffed4d}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:#fff2f6!important;color:#f02e65}.alerts .cookie-alert a{color:#f02e65;font-weight:400;border-bottom:dotted 1px #f02e65}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.alerts ul{top:auto;bottom:0;max-width:100%}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:17px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px #e7e7e7}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-left:10px}article table td:last-child,article table th:last-child{padding-right:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar{width:60px;height:60px;border-radius:50%;background:#ddd;display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:#ddd}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar.xs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:#f53d3d;color:#fff}.box.focus{background:#f02e65;color:#fff}.box.focus .button,.box.focus button{background:#fff;color:#f02e65}.box.warning{background:#ffed4d;color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.box>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.box hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.box .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.box .toggle button.ls-ui-open{position:absolute;top:0;left:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus{display:block}.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}a.box{border-right:none;border-left:none}a.box:hover{border-bottom:none;border-right:none;border-left:none;background:#f8fdff;box-shadow:0 0 1px rgba(0,0,0,.2)}.box-asidex{padding-right:25px!important;padding-left:70px;right:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;left:-6px}.cover{background:#fff2f6;padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px #dedede}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:#f02e65;font-weight:600;margin-bottom:40px!important;font-size:28px;line-height:42px}.cover i:before{margin:0!important}.cover p{color:#737373}.cover .button{color:#fff}.cover .link,.cover a{color:#f02e65;border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:#f02e65}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;right:20px}.console .database hr{margin:0 -20px;background:#efefef;height:2px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:#f5f5f5;margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px #e1e2e2;font-weight:600}.console .database .empty{height:160px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:#f5f5f5;margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:#f02e65;width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-right:8px}.console .database .button:hover{border:none;background:#fff2f6}.console .database .items{margin:0 -20px;height:260px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{background:red;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-left:50px;padding-right:30px;position:relative}.console .database .items li i{position:absolute;display:none;right:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:#818181;line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:#505050}body>footer a:hover{border-bottom-color:#505050}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{float:left;margin-right:20px!important}body>footer .copyright{padding-left:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.5;z-index:4}.modal{overflow:auto;display:none;position:fixed;width:100%;max-height:90%;max-width:640px;background:#fff;z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:left}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.modal{width:calc(100% - 20px)}}.modal.padding-small{padding:15px}.modal.height-tiny form{height:100px}.modal.height-small form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:left}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal form{position:relative;border-top:solid 1px #e7e7e7;padding:30px 30px 0 30px;margin:0 -30px}.modal .separator{margin:20px -30px}.modal .info{margin:0 -30px;padding:20px 30px;background:#f5fbff;color:#3b5d73;border-top:solid 1px #eaf2f7;border-bottom:solid 1px #eaf2f7}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:#1b1b1b;color:#fff;border-radius:50%}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:#f02e65;position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:#f02e65;width:calc(100% - 46px);position:absolute;bottom:0;border-radius:2px;left:-2px}.container .tabs .number{display:none}.container .tabs li{float:left;padding-right:50px;color:#f02e65;opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:#373738;overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important}.ide .copy{position:absolute;bottom:15px;right:15px;cursor:pointer;background:#39393c;border-radius:50%;padding:2px;color:#6a6a6d;border:solid 2px #414142}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:#39393c;position:absolute;pointer-events:none;top:-20px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-right:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:ltr}body{margin:0;background:#f6f7f8 no-repeat fixed}main{min-height:100%}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.force-left{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right} \ No newline at end of file diff --git a/public/dist/styles/default-rtl.css b/public/dist/styles/default-rtl.css index 1ca63414ba..d7c316a23f 100644 --- a/public/dist/styles/default-rtl.css +++ b/public/dist/styles/default-rtl.css @@ -1 +1 @@ -.pull-start{float:right}.pull-end{float:left}img[src=""]{visibility:hidden;display:inline-block}.margin-end{margin-left:20px!important}.margin-start{margin-right:20px!important}.margin-end-small{margin-left:10px!important}.margin-start-small{margin-right:10px!important}.margin-end-large{margin-left:50px!important}.margin-start-large{margin-right:50px!important}.margin-end-no{margin-left:0!important}.margin-start-no{margin-right:0!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}*{font-family:Poppins,sans-serif,Arial;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:#1e849e;text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;border-bottom:solid 1px transparent}.link:hover,a:hover{border-bottom:dotted 1px #1e849e}.link.disabled,a.disabled{opacity:.5}.link.disabled:hover,a.disabled:hover{border-bottom:none}.link.tag:hover,a.tag:hover{border-bottom:none;opacity:.9}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:#818181}.text-size-small{font-size:13px}.text-size-normal{font-size:16px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-danger{color:#f53d3d}.text-success{color:#1bbf61}.text-upper{text-transform:uppercase}.text-warning{color:#ffed4d}.text-focus{color:#f02e65}.text-fade{color:#818181}.text-disclaimer{font-size:11px;color:#818181}.text-fade-extra{color:#818181;opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:right}.text-align-end{text-align:left}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px #f1f3f5;font-size:14px}table thead th{position:sticky;top:0}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px #f1f3f5}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:#fbfbfb}table th{text-align:right;font-weight:400}table th i{color:#818181;font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-right:30px}table td:last-child,table th:last-child{padding-left:30px}@media only screen and (max-width:550px){table td:first-child,table th:first-child{width:auto}}table td,table th{overflow:hidden;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){table.vertical{display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:910px;margin:0 auto 40px auto}.zone.xxxl{max-width:calc(100% - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:1100px}.zone.xl{max-width:910px}.zone.large{max-width:700px}.zone.medium{max-width:550px}.zone.small{max-width:320px}.row{position:relative;margin:0 -50px;padding-right:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row{margin:0 -30px;padding-right:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:left}.row.wide{margin:0 -100px;padding-right:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-left:100px}.row.thin{margin:0 -20px;padding-right:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-left:20px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:right;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:0}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-left:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-left:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-left:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-left:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-left:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-left:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-left:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-left:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-left:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-left:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-left:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-left:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-left:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles li{margin-left:50px!important;float:right;width:calc(33% - 33px)}.tiles li .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:#f1f3f5;border-bottom:solid 1px #f1f3f5}.tiles li:nth-child(3n){margin-left:0!important}@media only screen and (max-width:550px){.tiles li{width:100%;margin-left:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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b250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAxADkAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAGYAbwBuAHQAZQBsAGwAbwBSAGUAZwB1AGwAYQByAGYAbwBuAHQAZQBsAGwAbwBmAG8AbgB0AGUAbABsAG8AVgBlAHIAcwBpAG8AbgAgADEALgAwAGYAbwBuAHQAZQBsAGwAbwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUABHVzZXIGZm9sZGVyBGxpc3QFbG9naW4DY29nB3R3aXR0ZXILYXJ0aWNsZS1hbHQGY2FuY2VsBGhvbWUIZG93bi1kaXIIZmFjZWJvb2sIYXN0ZXJpc2sGdXBsb2FkCXN0b3B3YXRjaAZleHBvcnQFaGVhcnQEcGx1cwZ1cC1kaXIEbWVudQlsZWZ0LW9wZW4KcmlnaHQtb3BlbgVpbmJveAZ3cmVuY2gHY29tbWVudA1zdGFja292ZXJmbG93CHF1ZXN0aW9uCm9rLWNpcmNsZWQHd2FybmluZwRtYWlsBGxpbmsHa2V5LWludgV0cmFzaAhkb3dubG9hZAdnbGFzc2VzBnFyY29kZQdzaHVmZmxlA2V5ZQRsb2NrBnNlYXJjaARiZWxsBXVzZXJzCGxvY2F0aW9uCWJyaWVmY2FzZQlpbnN0YWdyYW0FY2xvY2sFcGhvbmUIY2FsZW5kYXIFcHJpbnQEZWRpdARib2xkBml0YWxpYwZyb2NrZXQId2hhdHNhcHAFZG90LTMMaW5mby1jaXJjbGVkCHZpZGVvY2FtC3F1b3RlLXJpZ2h0B3BpY3R1cmUHcGFsZXR0ZQRsYW1wCWJvb2stb3BlbgJvawhjaGF0LWFsdAdhcmNoaXZlBHBsYXkFcGF1c2UJZG93bi1vcGVuB3VwLW9wZW4FbWludXMIZXhjaGFuZ2UHbmV0d29yawhsaW5rLWV4dA5naXRodWItY2lyY2xlZAZmaWx0ZXIEZG9jcwtsaXN0LWJ1bGxldA1saXN0LW51bWJlcmVkCXVuZGVybGluZQRzb3J0CGxpbmtlZGluBXNtaWxlCGtleWJvYXJkBGNvZGUGc2hpZWxkCWJpdGJ1Y2tldAd3aW5kb3dzCndoZWVsY2hhaXIEYmFuawZnb29nbGUPYnVpbGRpbmctZmlsbGVkCGRhdGFiYXNlCGxpZmVidW95BmhlYWRlcgpiaW5vY3VsYXJzCmNoYXJ0LWFyZWEJcGludGVyZXN0Bm1lZGl1bQZnaXRsYWIIdGVsZWdyYW0AAAAAAQAB//8ADwAAAAAAAAAAAAAAAAAAAAAAGAAYABgAGAOB/zoDgf86sAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIGQgsMBQsAQmWrIoAQpDRWNFUltYISMhG4pYILBQUFghsEBZGyCwOFBYIbA4WVkgsQEKQ0VjRWFksChQWCGxAQpDRWNFILAwUFghsDBZGyCwwFBYIGYgiophILAKUFhgGyCwIFBYIbAKYBsgsDZQWCGwNmAbYFlZWRuwAStZWSOwAFBYZVlZLbADLCBFILAEJWFkILAFQ1BYsAUjQrAGI0IbISFZsAFgLbAELCMhIyEgZLEFYkIgsAYjQrEBCkNFY7EBCkOwAWBFY7ADKiEgsAZDIIogirABK7EwBSWwBCZRWGBQG2FSWVgjWSEgsEBTWLABKxshsEBZI7AAUFhlWS2wBSywB0MrsgACAENgQi2wBiywByNCIyCwACNCYbACYmawAWOwAWCwBSotsAcsICBFILALQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAILLIHCwBDRUIqIbIAAQBDYEItsAkssABDI0SyAAEAQ2BCLbAKLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbALLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsAwsILAAI0KyCwoDRVghGyMhWSohLbANLLECAkWwZGFELbAOLLABYCAgsAxDSrAAUFggsAwjQlmwDUNKsABSWCCwDSNCWS2wDywgsBBiZrABYyC4BABjiiNhsA5DYCCKYCCwDiNCIy2wECxLVFixBGREWSSwDWUjeC2wESxLUVhLU1ixBGREWRshWSSwE2UjeC2wEiyxAA9DVVixDw9DsAFhQrAPK1mwAEOwAiVCsQwCJUKxDQIlQrABFiMgsAMlUFixAQBDYLAEJUKKiiCKI2GwDiohI7ABYSCKI2GwDiohG7EBAENgsAIlQrACJWGwDiohWbAMQ0ewDUNHYLACYiCwAFBYsEBgWWawAWMgsAtDY7gEAGIgsABQWLBAYFlmsAFjYLEAABMjRLABQ7AAPrIBAQFDYEItsBMsALEAAkVUWLAPI0IgRbALI0KwCiOwAWBCIGCwAWG1EBABAA4AQkKKYLESBiuwcisbIlktsBQssQATKy2wFSyxARMrLbAWLLECEystsBcssQMTKy2wGCyxBBMrLbAZLLEFEystsBossQYTKy2wGyyxBxMrLbAcLLEIEystsB0ssQkTKy2wHiwAsA0rsQACRVRYsA8jQiBFsAsjQrAKI7ABYEIgYLABYbUQEAEADgBCQopgsRIGK7ByKxsiWS2wHyyxAB4rLbAgLLEBHistsCEssQIeKy2wIiyxAx4rLbAjLLEEHistsCQssQUeKy2wJSyxBh4rLbAmLLEHHistsCcssQgeKy2wKCyxCR4rLbApLCA8sAFgLbAqLCBgsBBgIEMjsAFgQ7ACJWGwAWCwKSohLbArLLAqK7AqKi2wLCwgIEcgILALQ2O4BABiILAAUFiwQGBZZrABY2AjYTgjIIpVWCBHICCwC0NjuAQAYiCwAFBYsEBgWWawAWNgI2E4GyFZLbAtLACxAAJFVFiwARawLCqwARUwGyJZLbAuLACwDSuxAAJFVFiwARawLCqwARUwGyJZLbAvLCA1sAFgLbAwLACwAUVjuAQAYiCwAFBYsEBgWWawAWOwASuwC0NjuAQAYiCwAFBYsEBgWWawAWOwASuwABa0AAAAAABEPiM4sS8BFSotsDEsIDwgRyCwC0NjuAQAYiCwAFBYsEBgWWawAWNgsABDYTgtsDIsLhc8LbAzLCA8IEcgsAtDY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2GwAUNjOC2wNCyxAgAWJSAuIEewACNCsAIlSYqKRyNHI2EgWGIbIVmwASNCsjMBARUUKi2wNSywABawBCWwBCVHI0cjYbAJQytlii4jICA8ijgtsDYssAAWsAQlsAQlIC5HI0cjYSCwBCNCsAlDKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgsAhDIIojRyNHI2EjRmCwBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2EjICCwBCYjRmE4GyOwCENGsAIlsAhDRyNHI2FgILAEQ7ACYiCwAFBYsEBgWWawAWNgIyCwASsjsARDYLABK7AFJWGwBSWwAmIgsABQWLBAYFlmsAFjsAQmYSCwBCVgZCOwAyVgZFBYIRsjIVkjICCwBCYjRmE4WS2wNyywABYgICCwBSYgLkcjRyNhIzw4LbA4LLAAFiCwCCNCICAgRiNHsAErI2E4LbA5LLAAFrADJbACJUcjRyNhsABUWC4gPCMhG7ACJbACJUcjRyNhILAFJbAEJUcjRyNhsAYlsAUlSbACJWG5CAAIAGNjIyBYYhshWWO4BABiILAAUFiwQGBZZrABY2AjLiMgIDyKOCMhWS2wOiywABYgsAhDIC5HI0cjYSBgsCBgZrACYiCwAFBYsEBgWWawAWMjICA8ijgtsDssIyAuRrACJUZSWCA8WS6xKwEUKy2wPCwjIC5GsAIlRlBYIDxZLrErARQrLbA9LCMgLkawAiVGUlggPFkjIC5GsAIlRlBYIDxZLrErARQrLbA+LLA1KyMgLkawAiVGUlggPFkusSsBFCstsD8ssDYriiAgPLAEI0KKOCMgLkawAiVGUlggPFkusSsBFCuwBEMusCsrLbBALLAAFrAEJbAEJiAuRyNHI2GwCUMrIyA8IC4jOLErARQrLbBBLLEIBCVCsAAWsAQlsAQlIC5HI0cjYSCwBCNCsAlDKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgR7AEQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsAJDYGQjsANDYWRQWLACQ2EbsANDYFmwAyWwAmIgsABQWLBAYFlmsAFjYbACJUZhOCMgPCM4GyEgIEYjR7ABKyNhOCFZsSsBFCstsEIssDUrLrErARQrLbBDLLA2KyEjICA8sAQjQiM4sSsBFCuwBEMusCsrLbBELLAAFSBHsAAjQrIAAQEVFBMusDEqLbBFLLAAFSBHsAAjQrIAAQEVFBMusDEqLbBGLLEAARQTsDIqLbBHLLA0Ki2wSCywABZFIyAuIEaKI2E4sSsBFCstsEkssAgjQrBIKy2wSiyyAABBKy2wSyyyAAFBKy2wTCyyAQBBKy2wTSyyAQFBKy2wTiyyAABCKy2wTyyyAAFCKy2wUCyyAQBCKy2wUSyyAQFCKy2wUiyyAAA+Ky2wUyyyAAE+Ky2wVCyyAQA+Ky2wVSyyAQE+Ky2wViyyAABAKy2wVyyyAAFAKy2wWCyyAQBAKy2wWSyyAQFAKy2wWiyyAABDKy2wWyyyAAFDKy2wXCyyAQBDKy2wXSyyAQFDKy2wXiyyAAA/Ky2wXyyyAAE/Ky2wYCyyAQA/Ky2wYSyyAQE/Ky2wYiywNysusSsBFCstsGMssDcrsDsrLbBkLLA3K7A8Ky2wZSywABawNyuwPSstsGYssDgrLrErARQrLbBnLLA4K7A7Ky2waCywOCuwPCstsGkssDgrsD0rLbBqLLA5Ky6xKwEUKy2wayywOSuwOystsGwssDkrsDwrLbBtLLA5K7A9Ky2wbiywOisusSsBFCstsG8ssDorsDsrLbBwLLA6K7A8Ky2wcSywOiuwPSstsHIsswkEAgNFWCEbIyFZQiuwCGWwAyRQeLABFTAtAEu4AMhSWLEBAY5ZsAG5CAAIAGNwsQAFQrIAAQAqsQAFQrMKAgEIKrEABUKzDgABCCqxAAZCugLAAAEACSqxAAdCugBAAAEACSqxAwBEsSQBiFFYsECIWLEDZESxJgGIUVi6CIAAAQRAiGNUWLEDAERZWVlZswwCAQwquAH/hbAEjbECAEQAAA==) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:#868686;text-align:right}::-webkit-input-placeholder{text-align:right}input:-moz-placeholder{text-align:right}.button,button{display:inline-block;background:#f02e65;border-radius:26px;border:none;color:#fff;height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:#c52653;border-bottom:none}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;left:30px}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:right;padding:0 20px!important}.button.icon,button.icon{padding-left:30px!important}.button.icon-reduce,button.icon-reduce{padding-right:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:#f02e65;border:solid 2px #f02e65}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:#c52653;border-color:#c52653}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:#f02e65}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:#1bbf61}.button.success.reverse,button.success.reverse{color:#1bbf61;background:#fff;border:solid 2px #1bbf61}.button.danger,button.danger{background:#f53d3d}.button.danger.reverse,button.danger.reverse{color:#f53d3d;background:#fff;border:solid 2px #f53d3d}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{background:#818181;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:#1e849e;height:auto;line-height:normal;padding:0;padding-left:0!important}.button.link:hover,button.link:hover{border-bottom:dotted 1px #1e849e}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input[xtype=file],input[type=date][xtype=file],input[type=datetime-local][xtype=file],input[type=email][xtype=file],input[type=file][xtype=file],input[type=number][xtype=file],input[type=password][xtype=file],input[type=search][xtype=file],input[type=tel][xtype=file],input[type=text][xtype=file],input[type=url][xtype=file],select[xtype=file],textarea[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.input[xtype=file]:disabled,input[type=date][xtype=file]:disabled,input[type=datetime-local][xtype=file]:disabled,input[type=email][xtype=file]:disabled,input[type=file][xtype=file]:disabled,input[type=number][xtype=file]:disabled,input[type=password][xtype=file]:disabled,input[type=search][xtype=file]:disabled,input[type=tel][xtype=file]:disabled,input[type=text][xtype=file]:disabled,input[type=url][xtype=file]:disabled,select[xtype=file]:disabled,textarea[xtype=file]:disabled{opacity:0!important}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{background:#f1f3f5}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position:left 15px top 50%;background-repeat:no-repeat;background-color:#fff;width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-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:right 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-left:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;float:left;margin-top:-20px}.file-preview{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip:hover:after{white-space:nowrap;background:#333;border-radius:5px;bottom:26px;color:#fff;content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;right:20%;margin-right:-30px}.tooltip:hover:before{border:solid;border-color:#333 transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;right:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:#e7e7e7;color:#868686;border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:#1bbf61;color:#fff}.tag.red{background:#f53d3d;color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:#f02e65;color:#fff}.tag.dark{background:#6f6f6f;color:#e7e7e7}.tag.blue{background:#4abde8;color:#fff}.tag.link{background:#1e849e;color:#fff}input[type=checkbox]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle}input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;background:#fff;top:-5px;border-radius:50%;position:absolute;border:solid 3px #f02e65;vertical-align:middle}input[type=checkbox]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:#fff;background:#f02e65}input[type=checkbox]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after{border-color:#f02e65}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-left:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;left:0;border-right:solid 1px #e2e2e2;height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:#fbfbfb;margin:1px;border-radius:0 10px 10px 0}.paging{color:#8d8e8e;padding:5px 15px;font-size:12px}.paging form{display:inline-block}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.blue-snap iframe[xtype=file]:disabled{opacity:0!important}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{background:#f1f3f5}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap .error{font-size:12px;margin-top:-25px;color:#f53d3d;height:40px;padding-right:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:#fff;line-height:normal!important}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:#868686}.pell .pell-actionbar{border-bottom:solid 1px #e7e7e7;margin:0 -15px 15px -15px;padding:10px 15px}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-left:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:#1e849e}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;margin-bottom:10px}.pell ol li p,.pell ul li p{margin:0}.pell ul li{margin:0 20px;display:list-item}label.switch{line-height:42px}input[type=checkbox].switch{width:67px;height:42px;line-height:42px;border-radius:21px;background:#818181;display:block;margin:0;padding:5px;padding-right:30px;padding-left:5px}input[type=checkbox].switch:checked{background:#f02e65;padding-right:5px;padding-left:30px}input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}input[type=checkbox].switch:after{content:"";display:block;width:32px;height:32px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:#f53d3d}.password-meter.medium{background:#ffed4d}.password-meter.strong{background:#1bbf61}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:right;margin-left:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:right;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-right:-15px;margin-top:-25px;margin-bottom:20px}hr{height:1px;background:#eceff1;border:none}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;right:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-left:0!important;margin-bottom:0!important}.upload .button{float:right;margin-left:20px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:right;line-height:52px}.upload .progress{background:#1bbf61;height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:right;margin-left:20px!important;margin-bottom:15px!important;background:#f1f1f1;width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 10px #f1f1f1}.upload .preview li:hover:before{background:#f02e65}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:5px;left:5px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-right:45px}ol li::before{display:inline-block;content:counter(x-counter);color:#f02e65;color:#fff;background:#fff;background:#f02e65;border:solid 2px #f02e65;margin-left:15px;margin-right:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:#f53d3d;font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;right:-10px;max-width:280px;min-width:240px;overflow:hidden}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:#f53d3d;color:#fff}.drop-list ul.focus{background:#f02e65;color:#fff}.drop-list ul.focus .button,.drop-list ul.focus button{background:#fff;color:#f02e65}.drop-list ul.warning{background:#ffed4d;color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.drop-list ul>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.drop-list ul hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.drop-list ul .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.drop-list ul .toggle button.ls-ui-open{position:absolute;top:0;right:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus{display:block}.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul:before{border:solid;border-color:#fff transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;right:30px}.drop-list ul li{border-bottom:solid 1px #f1f3f5;margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li .link,.drop-list ul li a{vertical-align:middle;height:30px;line-height:30px;display:block;padding:10px 25px;color:inherit;font-size:14px;border:none;max-width:260px;cursor:pointer}.drop-list ul li .link:hover,.drop-list ul li a:hover{background:#f1f3f5;border-color:transparent}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-left:10px;float:right}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:#fff;min-height:42px;height:auto}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.tags[xtype=file]:disabled{opacity:0!important}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{background:#f1f3f5}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.tags.strip:focus{border-color:#b3d7fd}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0}.tags ul.tags-list{display:inline}.tags ul.tags-list li{display:inline-block!important;margin-left:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:left;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-right:6px;margin-left:0}.console{height:100%;width:100%;padding:0}.console body{position:relative;height:calc(100% - 70px);width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-left:50px;padding-right:270px;margin:0;color:#4b4b4b;background:#eceff1}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav .console-back{display:block}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .account{display:block}.console body .console-back{display:none}.console body:before{content:'';display:block;position:absolute;width:calc(100% - 220px);height:100px;top:-100px;left:0;right:0;background:#fff;z-index:1000;border-right:solid 220px #132a3b}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:#ececec;color:#868686}.console header .account{margin-right:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .account:hover{border-bottom:none}.console header .avatar{height:40px;width:40px}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:#f53d3d;width:8px;height:8px;border-radius:50%;top:3px;left:3px}.console header nav{background:#1b3445;background:linear-gradient(#132a3b,#302839);background:linear-gradient(#143650,#302839);color:#788c99;position:fixed;height:100%;width:220px;top:0;right:0}.console header nav .logo{height:39px;padding:15px 20px;display:block;border-bottom:none}.console header nav .logo:hover{border-bottom:none}.console header nav .logo img{display:inline-block;margin-top:9px;width:75%}.console header nav .logo svg g{fill:#f02e65}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:#f02e65}.console header nav .container{overflow:scroll;height:calc(100% - 183px);padding-bottom:50px;width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;left:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px 5px 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important}.console header nav .links.bottom a{border-top:solid 1px #2a253a;border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:#f02e65;color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:12px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-right:solid 5px transparent}.console header nav .links a i{margin-left:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4;font-weight:500}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-left:30px;padding-right:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:right;margin-left:50px;margin-bottom:50px;width:270px}.console .projects li.new,.console .projects li:nth-child(3n){margin-left:0}.console .dashboard{padding:20px;min-height:95px;overflow:hidden;position:relative;z-index:1}.console .dashboard hr{margin:20px -20px}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:#1e849e}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:#eceff1;height:calc(100% + 110px);position:absolute;top:-20px;bottom:-20px;left:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:#f02e65;vertical-align:bottom;line-height:55px}.console .dashboard .value .sum{font-size:55px;line-height:55px;font-weight:700;vertical-align:bottom}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-right:5px;color:#f02e65}.console .dashboard .metric{color:#f02e65;font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:#818181;font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .dashboard .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart-metric{width:100%}}.console .dashboard .chart{width:80%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-left:-2px;overflow:hidden;background-color:#fff;background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(#f1f1f1 1px,transparent 1px),linear-gradient(90deg,#f1f1f1 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px #f1f1f1;border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart{width:100%;float:none;margin-bottom:20px}}.console .dashboard .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:#818181;color:#f1f3f5;border-radius:50%;margin-left:15px}.console .link-list i.fade{background:0 0;color:#818181}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:#f6f7f8;opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:#1e849e;color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.search button{margin-top:20px}}html.home body{padding:0 50px}html.home .logo img{max-height:35px;margin:45px 25px 25px 25px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:#fff;z-index:1002;margin:0 auto;bottom:15px;max-width:650px;opacity:.9}.alerts ul li{margin:1px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:#818181;text-align:center;font-weight:700;border-radius:20px;line-height:16px;min-height:16px}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:22px;top:8px;right:8px}.alerts ul li div.message.error{color:#fff;background:#f53d3d}.alerts ul li div.message.success{color:#fff;background:#1bbf61}.alerts ul li div.message.warning{color:#fff;background:#ffed4d}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:#fff2f6!important;color:#f02e65}.alerts .cookie-alert a{color:#f02e65;font-weight:400;border-bottom:dotted 1px #f02e65}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.alerts ul{top:auto;bottom:0;max-width:100%}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:17px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px #e7e7e7}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-right:10px}article table td:last-child,article table th:last-child{padding-left:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar{width:60px;height:60px;border-radius:50%;background:#ddd;display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:#ddd}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar.xs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:#f53d3d;color:#fff}.box.focus{background:#f02e65;color:#fff}.box.focus .button,.box.focus button{background:#fff;color:#f02e65}.box.warning{background:#ffed4d;color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.box>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.box hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.box .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.box .toggle button.ls-ui-open{position:absolute;top:0;right:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus{display:block}.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}a.box{border-right:none;border-left:none}a.box:hover{border-bottom:none;border-right:none;border-left:none;background:#f8fdff;box-shadow:0 0 1px rgba(0,0,0,.2)}.box-asidex{padding-left:25px!important;padding-right:70px;left:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;right:-6px}.cover{background:#fff2f6;padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px #dedede}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:#f02e65;font-weight:600;margin-bottom:40px!important;font-size:28px;line-height:42px}.cover i:before{margin:0!important}.cover p{color:#737373}.cover .button{color:#fff}.cover .link,.cover a{color:#f02e65;border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:#f02e65}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;left:20px}.console .database hr{margin:0 -20px;background:#efefef;height:2px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:#f5f5f5;margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px #e1e2e2;font-weight:600}.console .database .empty{height:160px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:#f5f5f5;margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:#f02e65;width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-left:8px}.console .database .button:hover{border:none;background:#fff2f6}.console .database .items{margin:0 -20px;height:260px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{background:red;position:absolute;top:0;bottom:0;right:0;left:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-right:50px;padding-left:30px;position:relative}.console .database .items li i{position:absolute;display:none;left:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:#818181;line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:#505050}body>footer a:hover{border-bottom-color:#505050}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{float:right;margin-left:20px!important}body>footer .copyright{padding-right:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.5;z-index:4}.modal{overflow:auto;display:none;position:fixed;width:100%;max-height:90%;max-width:640px;background:#fff;z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:right}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.modal{width:calc(100% - 20px)}}.modal.padding-small{padding:15px}.modal.height-tiny form{height:100px}.modal.height-small form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:right}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal form{position:relative;border-top:solid 1px #e7e7e7;padding:30px 30px 0 30px;margin:0 -30px}.modal .separator{margin:20px -30px}.modal .info{margin:0 -30px;padding:20px 30px;background:#f5fbff;color:#3b5d73;border-top:solid 1px #eaf2f7;border-bottom:solid 1px #eaf2f7}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:#1b1b1b;color:#fff;border-radius:50%}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:#f02e65;position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:#f02e65;width:calc(100% - 46px);position:absolute;bottom:0;border-radius:2px;right:-2px}.container .tabs .number{display:none}.container .tabs li{float:right;padding-left:50px;color:#f02e65;opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:#373738;overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide .copy{position:absolute;bottom:15px;left:15px;cursor:pointer;background:#39393c;border-radius:50%;padding:2px;color:#6a6a6d;border:solid 2px #414142}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:#39393c;position:absolute;pointer-events:none;top:-20px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-left:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:rtl}body{margin:0;background:#f6f7f8 no-repeat fixed}main{min-height:100%}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.force-left{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.icon-left-open:before{content:'\e814'!important}.icon-right-open:before{content:'\e813'!important}.icon-link-ext:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.icon-article-alt:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.copy{border-radius:10px 0 0 10px!important} \ No newline at end of file +.pull-start{float:right}.pull-end{float:left}img[src=""]{visibility:hidden;display:inline-block}.margin-end{margin-left:20px!important}.margin-start{margin-right:20px!important}.margin-end-small{margin-left:10px!important}.margin-start-small{margin-right:10px!important}.margin-end-large{margin-left:50px!important}.margin-start-large{margin-right:50px!important}.margin-end-no{margin-left:0!important}.margin-start-no{margin-right:0!important}.margin-top{margin-top:30px!important}.margin-bottom{margin-bottom:30px!important}.margin-top-no{margin-top:0!important}.margin-bottom-no{margin-bottom:0!important}.margin-top-xxl{margin-top:140px!important}.margin-top-xl{margin-top:80px!important}.margin-top-large{margin-top:50px!important}.margin-top-small{margin-top:15px!important}.margin-top-tiny{margin-top:5px!important}.margin-top-negative{margin-top:-30px!important}.margin-top-negative-tiny{margin-top:-5px!important}.margin-top-negative-small{margin-top:-15px!important}.margin-top-negative-large{margin-top:-50px!important}.margin-top-negative-xl{margin-top:-80px!important}.margin-top-negative-xxl{margin-top:-100px!important}.margin-bottom-xxl{margin-bottom:140px!important}.margin-bottom-xl{margin-bottom:80px!important}.margin-bottom-large{margin-bottom:50px!important}.margin-bottom-small{margin-bottom:15px!important}.margin-bottom-tiny{margin-bottom:5px!important}.margin-bottom-negative{margin-bottom:-30px!important}.margin-bottom-negative-tiny{margin-bottom:-5px!important}.margin-bottom-negative-small{margin-bottom:-15px!important}.margin-bottom-negative-large{margin-bottom:-50px!important}.margin-bottom-negative-xl{margin-bottom:-80px!important}.margin-bottom-negative-xl{margin-bottom:-100px!important}.ratio-wide{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-wide>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-square{height:0;overflow:hidden;padding-top:56%;position:relative;width:100%}.ratio-square>*{position:absolute;top:0;left:0;width:100%;height:100%}.clear:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}*{font-family:Poppins,sans-serif,Arial;-webkit-font-smoothing:antialiased;font-weight:300}h1,h2,h3,h4,h5,h6{margin:0}h4,h5,h6{font-weight:400}.link,a{color:#1e849e;text-decoration:none;border-left:2px solid transparent;border-right:2px solid transparent;border-bottom:solid 1px transparent}.link:hover,a:hover{border-bottom:dotted 1px #1e849e}.link.disabled,a.disabled{opacity:.5}.link.disabled:hover,a.disabled:hover{border-bottom:none}.link.tag:hover,a.tag:hover{border-bottom:none;opacity:.9}b,strong{font-weight:500}p{margin:0 0 20px 0;line-height:26px}small{font-size:16px;color:#818181}.text-size-small{font-size:13px}.text-size-normal{font-size:16px}.text-one-liner{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.text-bold{font-weight:400!important}.text-danger{color:#f53d3d}.text-success{color:#1bbf61}.text-upper{text-transform:uppercase}.text-warning{color:#ffed4d}.text-focus{color:#f02e65}.text-fade{color:#818181}.text-disclaimer{font-size:11px;color:#818181}.text-fade-extra{color:#818181;opacity:.5}.text-line-high-large{line-height:30px}.text-line-high-xl{line-height:40px}.text-sign{margin:5px 0;font-size:25px;width:25px;height:25px;line-height:25px;display:inline-block}.text-align-center{text-align:center}.text-align-start{text-align:right}.text-align-end{text-align:left}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-dir-ltr{direction:ltr;display:inline-block}.text-dir-rtl{direction:rtl;display:inline-block}.icon-dot-3:before{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-o-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}table{width:calc(100% + 60px);border-collapse:collapse;margin:-30px;border-radius:10px;overflow:hidden;position:relative;table-layout:fixed}table thead{box-shadow:0 0 2px rgba(0,0,0,.25);border-bottom:solid 1px #f1f3f5;font-size:14px}table thead th{position:sticky;top:0}table.small{font-size:14px}table.open-end tbody tr:last-child{border-bottom:none;font-weight:700;background:#f7fbf7}table.full tbody td,table.full tbody th{vertical-align:top;white-space:normal;overflow:auto;line-height:24px;padding-top:20px;padding-bottom:20px;height:auto}table .avatar{width:30px;height:30px}table tr{border-bottom:solid 1px #f1f3f5}table tr:last-child{border-bottom:none}table tr:nth-child(even){background:#fbfbfb}table th{text-align:right;font-weight:400}table th i{color:#818181;font-size:10px;display:inline-block;vertical-align:top;line-height:16px;padding:0 3px}table td,table th{height:65px;padding:0 15px;line-height:50px}table td:first-child,table th:first-child{padding-right:30px}table td:last-child,table th:last-child{padding-left:30px}@media only screen and (max-width:550px){table td:first-child,table th:first-child{width:auto}}table td,table th{overflow:hidden;white-space:nowrap}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){table.vertical{display:block;overflow:hidden;padding-top:12px}table.vertical .hide{display:none}table.vertical tbody,table.vertical td,table.vertical th,table.vertical thead,table.vertical tr{width:100%;display:block}table.vertical th,table.vertical tr{padding-top:12px;padding-bottom:12px}table.vertical th:first-child,table.vertical tr:first-child{padding-top:0}table.vertical td,table.vertical th{padding:5px 20px!important;text-overflow:ellipsis;white-space:normal;height:40px;line-height:40px}table.vertical td:first-child,table.vertical td:last-child,table.vertical th:first-child,table.vertical th:last-child{padding:0 10px}table.vertical td:last-child,table.vertical th:last-child{padding-bottom:0}table.vertical td p,table.vertical th p{display:inline-block;width:calc(100% - 40px)}table.vertical td:before{content:attr(data-title);margin-right:4px;font-weight:400}table.vertical thead{display:none}}.zone{max-width:910px;margin:0 auto 40px auto}.zone.xxxl{max-width:calc(100% - 100px)}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.zone.xxxl{max-width:100%}}.zone.xxl{max-width:1100px}.zone.xl{max-width:910px}.zone.large{max-width:700px}.zone.medium{max-width:550px}.zone.small{max-width:320px}.row{position:relative;margin:0 -50px;padding-right:50px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row{margin:0 -30px;padding-right:30px}}.row.force-ltr>.col{float:left}.row.force-rtl>.col{float:right}.row.force-reverse>.col{float:left}.row.wide{margin:0 -100px;padding-right:100px}.row.wide>.span-1{width:calc(8.33333333% * 1 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-2{width:calc(8.33333333% * 2 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-3{width:calc(8.33333333% * 3 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-4{width:calc(8.33333333% * 4 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-5{width:calc(8.33333333% * 5 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-6{width:calc(8.33333333% * 6 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-7{width:calc(8.33333333% * 7 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-8{width:calc(8.33333333% * 8 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-9{width:calc(8.33333333% * 9 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-10{width:calc(8.33333333% * 10 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-11{width:calc(8.33333333% * 11 - 100px);box-sizing:content-box;padding-left:100px}.row.wide>.span-12{width:calc(8.33333333% * 12 - 100px);box-sizing:content-box;padding-left:100px}.row.thin{margin:0 -20px;padding-right:20px}.row.thin>.span-1{width:calc(8.33333333% * 1 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-2{width:calc(8.33333333% * 2 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-3{width:calc(8.33333333% * 3 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-4{width:calc(8.33333333% * 4 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-5{width:calc(8.33333333% * 5 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-6{width:calc(8.33333333% * 6 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-7{width:calc(8.33333333% * 7 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-8{width:calc(8.33333333% * 8 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-9{width:calc(8.33333333% * 9 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-10{width:calc(8.33333333% * 10 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-11{width:calc(8.33333333% * 11 - 20px);box-sizing:content-box;padding-left:20px}.row.thin>.span-12{width:calc(8.33333333% * 12 - 20px);box-sizing:content-box;padding-left:20px}.row:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.row .col{float:right;box-sizing:border-box}.row .col.sticky-top{position:sticky;top:0}.row .col.sticky-bottom{position:sticky;bottom:0}.row .span-1{width:calc(8.33333333% * 1 - 40px);box-sizing:content-box;padding-left:40px}.row .span-2{width:calc(8.33333333% * 2 - 40px);box-sizing:content-box;padding-left:40px}.row .span-3{width:calc(8.33333333% * 3 - 40px);box-sizing:content-box;padding-left:40px}.row .span-4{width:calc(8.33333333% * 4 - 40px);box-sizing:content-box;padding-left:40px}.row .span-5{width:calc(8.33333333% * 5 - 40px);box-sizing:content-box;padding-left:40px}.row .span-6{width:calc(8.33333333% * 6 - 40px);box-sizing:content-box;padding-left:40px}.row .span-7{width:calc(8.33333333% * 7 - 40px);box-sizing:content-box;padding-left:40px}.row .span-8{width:calc(8.33333333% * 8 - 40px);box-sizing:content-box;padding-left:40px}.row .span-9{width:calc(8.33333333% * 9 - 40px);box-sizing:content-box;padding-left:40px}.row .span-10{width:calc(8.33333333% * 10 - 40px);box-sizing:content-box;padding-left:40px}.row .span-11{width:calc(8.33333333% * 11 - 40px);box-sizing:content-box;padding-left:40px}.row .span-12{width:calc(8.33333333% * 12 - 40px);box-sizing:content-box;padding-left:40px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.row.responsive{width:100%;padding:0;margin:0}.row.responsive>.span-1,.row.responsive>.span-10,.row.responsive>.span-11,.row.responsive>.span-12,.row.responsive>.span-2,.row.responsive>.span-3,.row.responsive>.span-4,.row.responsive>.span-5,.row.responsive>.span-6,.row.responsive>.span-7,.row.responsive>.span-8,.row.responsive>.span-9{width:calc(8.33333333% * 12 - 0px)!important;box-sizing:content-box!important;padding-left:0!important;width:100%!important}}.tiles{position:relative}.tiles:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.tiles li{margin-left:50px!important;float:right;width:calc(33% - 33px)}.tiles li .photo-title{width:calc(100% + 30px);height:15px;margin:-15px -15px 10px -15px;border-radius:10px 10px 0 0;background:#f1f3f5;border-bottom:solid 1px #f1f3f5}.tiles li:nth-child(3n){margin-left:0!important}@media only screen and (max-width:550px){.tiles li{width:100%;margin-left:0!important}}@font-face{font-family:fontello;src:url(data:application/octet-stream;base64,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) format('woff'),url(data:application/octet-stream;base64,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b250ZWxsby5jb20AQwBvAHAAeQByAGkAZwBoAHQAIAAoAEMAKQAgADIAMAAxADkAIABiAHkAIABvAHIAaQBnAGkAbgBhAGwAIABhAHUAdABoAG8AcgBzACAAQAAgAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAGYAbwBuAHQAZQBsAGwAbwBSAGUAZwB1AGwAYQByAGYAbwBuAHQAZQBsAGwAbwBmAG8AbgB0AGUAbABsAG8AVgBlAHIAcwBpAG8AbgAgADEALgAwAGYAbwBuAHQAZQBsAGwAbwBHAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAHMAdgBnADIAdAB0AGYAIABmAHIAbwBtACAARgBvAG4AdABlAGwAbABvACAAcAByAG8AagBlAGMAdAAuAGgAdAB0AHAAOgAvAC8AZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AAAAAAgAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkAQIBAwEEAQUBBgEHAQgBCQEKAQsBDAENAQ4BDwEQAREBEgETARQBFQEWARcBGAEZARoBGwEcAR0BHgEfASABIQEiASMBJAElASYBJwEoASkBKgErASwBLQEuAS8BMAExATIBMwE0ATUBNgE3ATgBOQE6ATsBPAE9AT4BPwFAAUEBQgFDAUQBRQFGAUcBSAFJAUoBSwFMAU0BTgFPAVABUQFSAVMBVAFVAVYBVwFYAVkBWgFbAVwBXQFeAV8BYAFhAWIBYwFkAWUABHVzZXIGZm9sZGVyBGxpc3QFbG9naW4DY29nB3R3aXR0ZXILYXJ0aWNsZS1hbHQGY2FuY2VsBGhvbWUIZG93bi1kaXIIZmFjZWJvb2sIYXN0ZXJpc2sGdXBsb2FkCXN0b3B3YXRjaAZleHBvcnQFaGVhcnQEcGx1cwZ1cC1kaXIEbWVudQlsZWZ0LW9wZW4KcmlnaHQtb3BlbgVpbmJveAZ3cmVuY2gHY29tbWVudA1zdGFja292ZXJmbG93CHF1ZXN0aW9uCm9rLWNpcmNsZWQHd2FybmluZwRtYWlsBGxpbmsHa2V5LWludgV0cmFzaAhkb3dubG9hZAdnbGFzc2VzBnFyY29kZQdzaHVmZmxlA2V5ZQRsb2NrBnNlYXJjaARiZWxsBXVzZXJzCGxvY2F0aW9uCWJyaWVmY2FzZQlp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) format('truetype')}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em}.icon-user:before{content:'\e800'}.icon-folder:before{content:'\e801'}.icon-list:before{content:'\e802'}.icon-login:before{content:'\e803'}.icon-cog:before{content:'\e804'}.icon-twitter:before{content:'\e805'}.icon-article-alt:before{content:'\e806'}.icon-cancel:before{content:'\e807'}.icon-home:before{content:'\e808'}.icon-down-dir:before{content:'\e809'}.icon-facebook:before{content:'\e80a'}.icon-asterisk:before{content:'\e80b'}.icon-upload:before{content:'\e80c'}.icon-stopwatch:before{content:'\e80d'}.icon-export:before{content:'\e80e'}.icon-heart:before{content:'\e80f'}.icon-plus:before{content:'\e810'}.icon-up-dir:before{content:'\e811'}.icon-menu:before{content:'\e812'}.icon-left-open:before{content:'\e813'}.icon-right-open:before{content:'\e814'}.icon-inbox:before{content:'\e815'}.icon-wrench:before{content:'\e816'}.icon-comment:before{content:'\e817'}.icon-stackoverflow:before{content:'\e818'}.icon-question:before{content:'\e819'}.icon-ok-circled:before{content:'\e81a'}.icon-warning:before{content:'\e81b'}.icon-mail:before{content:'\e81c'}.icon-link:before{content:'\e81d'}.icon-key-inv:before{content:'\e81e'}.icon-trash:before{content:'\e81f'}.icon-download:before{content:'\e820'}.icon-glasses:before{content:'\e821'}.icon-qrcode:before{content:'\e822'}.icon-shuffle:before{content:'\e823'}.icon-eye:before{content:'\e824'}.icon-lock:before{content:'\e825'}.icon-search:before{content:'\e826'}.icon-bell:before{content:'\e827'}.icon-users:before{content:'\e828'}.icon-location:before{content:'\e829'}.icon-briefcase:before{content:'\e82a'}.icon-instagram:before{content:'\e82b'}.icon-clock:before{content:'\e82c'}.icon-phone:before{content:'\e82d'}.icon-calendar:before{content:'\e82e'}.icon-print:before{content:'\e82f'}.icon-edit:before{content:'\e830'}.icon-bold:before{content:'\e831'}.icon-italic:before{content:'\e832'}.icon-rocket:before{content:'\e833'}.icon-whatsapp:before{content:'\e834'}.icon-dot-3:before{content:'\e835'}.icon-info-circled:before{content:'\e836'}.icon-videocam:before{content:'\e837'}.icon-quote-right:before{content:'\e838'}.icon-picture:before{content:'\e839'}.icon-palette:before{content:'\e83a'}.icon-lamp:before{content:'\e83b'}.icon-book-open:before{content:'\e83c'}.icon-ok:before{content:'\e83d'}.icon-chat-alt:before{content:'\e83e'}.icon-archive:before{content:'\e83f'}.icon-play:before{content:'\e840'}.icon-pause:before{content:'\e841'}.icon-down-open:before{content:'\e842'}.icon-up-open:before{content:'\e843'}.icon-minus:before{content:'\e844'}.icon-exchange:before{content:'\e845'}.icon-network:before{content:'\e846'}.icon-link-ext:before{content:'\f08e'}.icon-github-circled:before{content:'\f09b'}.icon-filter:before{content:'\f0b0'}.icon-docs:before{content:'\f0c5'}.icon-list-bullet:before{content:'\f0ca'}.icon-list-numbered:before{content:'\f0cb'}.icon-underline:before{content:'\f0cd'}.icon-sort:before{content:'\f0dc'}.icon-linkedin:before{content:'\f0e1'}.icon-smile:before{content:'\f118'}.icon-keyboard:before{content:'\f11c'}.icon-code:before{content:'\f121'}.icon-shield:before{content:'\f132'}.icon-bitbucket:before{content:'\f171'}.icon-windows:before{content:'\f17a'}.icon-wheelchair:before{content:'\f193'}.icon-bank:before{content:'\f19c'}.icon-google:before{content:'\f1a0'}.icon-building-filled:before{content:'\f1ad'}.icon-database:before{content:'\f1c0'}.icon-lifebuoy:before{content:'\f1cd'}.icon-header:before{content:'\f1dc'}.icon-binoculars:before{content:'\f1e5'}.icon-chart-area:before{content:'\f1fe'}.icon-pinterest:before{content:'\f231'}.icon-medium:before{content:'\f23a'}.icon-gitlab:before{content:'\f296'}.icon-telegram:before{content:'\f2c6'}.datalist-polyfill{list-style:none;display:none;background:#fff;box-shadow:0 2px 2px #999;position:absolute;left:0;top:0;margin:0;padding:0;max-height:300px;overflow-y:auto}.datalist-polyfill:empty{display:none!important}.datalist-polyfill>li{padding:3px;font:13px "Lucida Grande",Sans-Serif}.datalist-polyfill__active{background:#3875d7;color:#fff}date-input-polyfill{z-index:1000!important;max-width:320px!important;width:320px!important}date-input-polyfill .monthSelect-wrapper,date-input-polyfill .yearSelect-wrapper{height:50px;line-height:50px;padding:0;width:40%!important;margin-bottom:10px!important}date-input-polyfill .monthSelect-wrapper select,date-input-polyfill .yearSelect-wrapper select{padding:0 12px;height:50px;line-height:50px;box-sizing:border-box}date-input-polyfill .yearSelect-wrapper{width:35%!important}date-input-polyfill table{width:100%!important;max-width:100%!important;padding:0 12px 12px 12px!important;box-sizing:border-box;margin:0}date-input-polyfill table td:first-child,date-input-polyfill table td:last-child,date-input-polyfill table th:first-child,date-input-polyfill table th:last-child{width:32px!important;padding:4px!important}date-input-polyfill select{margin-bottom:10px}date-input-polyfill button{width:25%!important;height:50px!important;line-height:50px!important;margin-bottom:10px!important;background:inherit;position:relative;color:inherit;padding:inherit;box-sizing:inherit;border-radius:inherit;font-size:inherit;box-shadow:none;border:none;border-bottom:none!important}::placeholder{color:#868686;text-align:right}::-webkit-input-placeholder{text-align:right}input:-moz-placeholder{text-align:right}.button,button{display:inline-block;background:#f02e65;border-radius:26px;border:none;color:#fff;height:52px;line-height:52px;padding:0 25px;cursor:pointer;font-size:16px;box-sizing:border-box;position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.button:focus,.button:hover,button:focus,button:hover{background:#c52653;border-bottom:none}.button.fly,button.fly{position:fixed;z-index:2;bottom:30px;left:30px}.button.fill,button.fill{display:block;width:100%;text-align:center;padding:0 10px!important}.button.fill-aligned,button.fill-aligned{display:block;width:100%;text-align:right;padding:0 20px!important}.button.icon,button.icon{padding-left:30px!important}.button.icon-reduce,button.icon-reduce{padding-right:15px!important}.button.reverse,button.reverse{background:0 0;height:50px;line-height:48px;padding:0 23px;color:#f02e65;border:solid 2px #f02e65}.button.reverse:focus,.button.reverse:hover,button.reverse:focus,button.reverse:hover{color:#c52653;border-color:#c52653}.button.round,button.round{width:52px;padding:0}.button.round.small,button.round.small{font-size:12px;width:30px;height:30px;line-height:30px}.button.white,button.white{background:#fff;color:#f02e65}.button.white.reverse,button.white.reverse{color:#fff;background:0 0;border:solid 2px #fff}.button.trans,button.trans{background:0 0!important}.button.trans.reverse,button.trans.reverse{background:0 0!important}.button.success,button.success{background:#1bbf61}.button.success.reverse,button.success.reverse{color:#1bbf61;background:#fff;border:solid 2px #1bbf61}.button.danger,button.danger{background:#f53d3d}.button.danger.reverse,button.danger.reverse{color:#f53d3d;background:#fff;border:solid 2px #f53d3d}.button .disabled,.button.disabled,.button:disabled,button .disabled,button.disabled,button:disabled{background:#818181;cursor:default}.button.link,button.link{background:0 0;border-radius:0;color:#1e849e;height:auto;line-height:normal;padding:0;padding-left:0!important}.button.link:hover,button.link:hover{border-bottom:dotted 1px #1e849e}.button.link:focus,button.link:focus{box-shadow:inherit}.button.strip,button.strip{background:0 0;height:auto;line-height:16px;color:inherit;padding:0 5px}.button.facebook,button.facebook{color:#fff!important;background:#4070b4!important}.button.twitter,button.twitter{color:#fff!important;background:#56c2ea!important}.button.linkedin,button.linkedin{color:#fff!important;background:#0076b5!important}.button.github,button.github{color:#fff!important;background:#7e7c7c!important}.button:focus,button:focus{outline:0}label{margin-bottom:15px;display:block;line-height:normal}.input,input[type=date],input[type=datetime-local],input[type=email],input[type=file],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px}.input[type=file],input[type=date][type=file],input[type=datetime-local][type=file],input[type=email][type=file],input[type=file][type=file],input[type=number][type=file],input[type=password][type=file],input[type=search][type=file],input[type=tel][type=file],input[type=text][type=file],input[type=url][type=file],select[type=file],textarea[type=file]{line-height:0;padding:15px;height:auto}.input[xtype=file],input[type=date][xtype=file],input[type=datetime-local][xtype=file],input[type=email][xtype=file],input[type=file][xtype=file],input[type=number][xtype=file],input[type=password][xtype=file],input[type=search][xtype=file],input[type=tel][xtype=file],input[type=text][xtype=file],input[type=url][xtype=file],select[xtype=file],textarea[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.input[xtype=file]:disabled,input[type=date][xtype=file]:disabled,input[type=datetime-local][xtype=file]:disabled,input[type=email][xtype=file]:disabled,input[type=file][xtype=file]:disabled,input[type=number][xtype=file]:disabled,input[type=password][xtype=file]:disabled,input[type=search][xtype=file]:disabled,input[type=tel][xtype=file]:disabled,input[type=text][xtype=file]:disabled,input[type=url][xtype=file]:disabled,select[xtype=file]:disabled,textarea[xtype=file]:disabled{opacity:0!important}.input:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=email]:focus,input[type=file]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{outline:0;border-color:#b3d7fd}.input:disabled,input[type=date]:disabled,input[type=datetime-local]:disabled,input[type=email]:disabled,input[type=file]:disabled,input[type=number]:disabled,input[type=password]:disabled,input[type=search]:disabled,input[type=tel]:disabled,input[type=text]:disabled,input[type=url]:disabled,select:disabled,textarea:disabled{background:#f1f3f5}.input.strip,input[type=date].strip,input[type=datetime-local].strip,input[type=email].strip,input[type=file].strip,input[type=number].strip,input[type=password].strip,input[type=search].strip,input[type=tel].strip,input[type=text].strip,input[type=url].strip,select.strip,textarea.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.input.strip:focus,input[type=date].strip:focus,input[type=datetime-local].strip:focus,input[type=email].strip:focus,input[type=file].strip:focus,input[type=number].strip:focus,input[type=password].strip:focus,input[type=search].strip:focus,input[type=tel].strip:focus,input[type=text].strip:focus,input[type=url].strip:focus,select.strip:focus,textarea.strip:focus{border-color:#b3d7fd}input[type=email],input[type=url]{direction:ltr}input[type=email]::placeholder,input[type=url]::placeholder{text-align:left;direction:ltr}select{background:0 0;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,");background-position:left 15px top 50%;background-repeat:no-repeat;background-color:#fff;width:calc(100% - 62px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:45px}select:-webkit-autofill{background-image:url("data:image/svg+xml;utf8,")!important;background-position:100% 50%!important;background-repeat:no-repeat!important}input[type=search],input[type=search].strip{background:0 0;-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:right 15px top 50%;background-repeat:no-repeat;background-size:20px 20px;width:calc(100% - 60px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:45px}select[multiple]{min-height:75px;padding:5px 10px!important;padding-left:50px!important}select[multiple] option{padding:10px 4px;border-bottom:solid 1px #f1f1f1}select[multiple] option:last-child{border-bottom:none}textarea{min-height:75px;resize:vertical;line-height:32px;padding:5px 15px}textarea.tall{min-height:180px}fieldset{border:none;margin:0;padding:0}.counter{font-size:13px;float:left;margin-top:-20px}.file-preview{background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAIElEQVQoU2NkYGAwZsAEZ9GFGIeIQix+wfQgyDODXSEAcUwGCrDSHgkAAAAASUVORK5CYII=)!important;border:solid 1px #e2e2e2;box-shadow:inset 0 0 3px #a0a0a0;border-radius:8px;width:calc(100% - 2px);max-height:180px;visibility:visible!important}.video-preview{padding-top:56%;position:relative;border-radius:10px;background:#e7e7e7;overflow:hidden;margin:0}.video-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.map-preview{padding-top:50%;position:relative;margin-bottom:10px;border-radius:10px;background:#e7e7e7;overflow:hidden;box-shadow:0 0 30px rgba(218,218,218,.5)}.map-preview iframe{position:absolute;top:0;width:100%;height:100%;border:none}.tooltip{position:relative}.tooltip.large:hover:after{white-space:normal;width:280px}.tooltip:hover:after{white-space:nowrap;background:#333;border-radius:5px;bottom:26px;color:#fff;content:attr(data-tooltip);padding:5px 15px;position:absolute;font-size:13px;line-height:20px;z-index:98;right:20%;margin-right:-30px}.tooltip:hover:before{border:solid;border-color:#333 transparent;border-width:6px 6px 0 6px;bottom:20px;content:"";position:absolute;z-index:99;right:5px}.tooltip.down:hover:after{top:26px;bottom:inherit}.tooltip.down:hover:before{top:20px;border-width:0 6px 6px 6px;bottom:inherit}.tag{display:inline-block;background:#e7e7e7;color:#868686;border-radius:12px;line-height:24px;padding:0 8px;font-size:12px;box-shadow:none!important;border:none;height:auto;width:auto;white-space:nowrap;text-overflow:ellipsis}.tag:hover{border:none}.tag.green{background:#1bbf61;color:#fff}.tag.red{background:#f53d3d;color:#fff}.tag.yellow{background:#ffe28b;color:#494949}.tag.focus{background:#f02e65;color:#fff}.tag.dark{background:#6f6f6f;color:#e7e7e7}.tag.blue{background:#4abde8;color:#fff}.tag.link{background:#1e849e;color:#fff}input[type=checkbox]{width:26px;height:16px;position:relative;-webkit-appearance:none;border-radius:0;border:none;background:0 0;vertical-align:middle}input[type=checkbox]:after{content:"";display:block;width:20px;height:20px;background:#fff;top:-5px;border-radius:50%;position:absolute;border:solid 3px #f02e65;vertical-align:middle}input[type=checkbox]:checked:after{text-align:center;font-family:fontello;content:'\e83d';font-size:16px;line-height:20px;color:#fff;background:#f02e65}input[type=checkbox]:focus{outline:0}input[type=checkbox]:focus:after,input[type=checkbox]:hover:after{outline:0;border-color:#000}input[type=checkbox]:checked:focus:after,input[type=checkbox]:checked:hover:after{border-color:#f02e65}.input-copy{position:relative}.input-copy input,.input-copy textarea{padding-left:65px;width:calc(100% - 82px);resize:none}.input-copy .copy{position:absolute;top:0;left:0;border-right:solid 1px #e2e2e2;height:calc(100% - 2px);width:50px;line-height:50px;text-align:center;background:#fbfbfb;margin:1px;border-radius:0 10px 10px 0}.paging{color:#8d8e8e;padding:5px 15px;font-size:12px}.paging form{display:inline-block}.blue-snap iframe{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;float:none!important;height:40px!important;width:calc(100% - 32px)!important;border:solid 1px #e2e2e2!important;background:0 0!important;position:static!important}.blue-snap iframe[type=file]{line-height:0;padding:15px;height:auto}.blue-snap iframe[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.blue-snap iframe[xtype=file]:disabled{opacity:0!important}.blue-snap iframe:focus{outline:0;border-color:#b3d7fd}.blue-snap iframe:disabled{background:#f1f3f5}.blue-snap iframe.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.blue-snap iframe.strip:focus{border-color:#b3d7fd}.blue-snap .error{font-size:12px;margin-top:-25px;color:#f53d3d;height:40px;padding-right:2px}.pell{height:auto;padding-bottom:0;margin-bottom:0;padding-top:0;background:#fff;line-height:normal!important}.pell.hide{padding:0!important;height:1px;min-height:1px;max-height:1px;border:none;box-shadow:none;margin-bottom:20px;opacity:0}.pell [contenteditable=true]:empty:before{content:attr(placeholder);display:block;color:#868686}.pell .pell-actionbar{border-bottom:solid 1px #e7e7e7;margin:0 -15px 15px -15px;padding:10px 15px}.pell .pell-content{min-height:100px;display:block;padding:10px;margin:-10px;cursor:text}.pell .pell-content:focus{outline:0}.pell button{background:inherit;color:inherit;margin:0;padding:0;padding-left:15px;height:40px;line-height:40px;box-shadow:none;cursor:pointer;font-size:13px;border-radius:0}.pell button.pell-button-selected,.pell button:focus,.pell button:hover{color:#1e849e}.pell h1,.pell h2,.pell h3,.pell h4,.pell h5,.pell h6{text-align:inherit;margin-bottom:30px}.pell b,.pell strong{font-weight:700}.pell ol,.pell ul{margin:0 0 20px 0}.pell ol li,.pell ul li{display:list-item!important;list-style:inherit;margin-bottom:10px}.pell ol li p,.pell ul li p{margin:0}.pell ul li{margin:0 20px;display:list-item}label.switch{line-height:42px}input[type=checkbox].switch{width:67px;height:42px;line-height:42px;border-radius:21px;background:#818181;display:block;margin:0;padding:5px;padding-right:30px;padding-left:5px}input[type=checkbox].switch:checked{background:#f02e65;padding-right:5px;padding-left:30px}input[type=checkbox].switch:focus:after,input[type=checkbox].switch:hover:after{background:#fff}input[type=checkbox].switch:after{content:"";display:block;width:32px;height:32px;background:#fff;border-radius:50%;border:none;position:static;top:0}.password-meter{margin:-41px 10px 30px 10px;height:2px;background:0 0;max-width:100%;z-index:2;position:relative}.password-meter.weak{background:#f53d3d}.password-meter.medium{background:#ffed4d}.password-meter.strong{background:#1bbf61}.color-input:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.color-input .color-preview{width:53px;height:53px;float:right;margin-left:10px;background:#000;border-radius:10px;box-shadow:inset 0 0 3px #a0a0a0;position:relative}.color-input .color-preview input{opacity:0;position:absolute;top:0;bottom:0;left:0;right:0;width:100%;height:100%;cursor:pointer}.color-input input{text-transform:uppercase;float:right;width:calc(100% - 95px)}.grecaptcha-badge{box-shadow:none!important;border-radius:10px!important;overflow:hidden!important;background:#4d92df!important;bottom:25px}.grecaptcha-badge:hover{width:256px!important}.back{font-size:15px;line-height:24px;height:24px;margin-right:-15px;margin-top:-25px;margin-bottom:20px}hr{height:1px;background:#eceff1;border:none}.upload{position:relative}.upload:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload input{position:absolute;top:0;right:0;opacity:0;cursor:pointer}.upload.single .preview{height:0;position:relative;padding-top:100%;width:100%;margin-bottom:15px!important}.upload.single .preview li{position:absolute;top:0;width:calc(100% - 20px);height:calc(100% - 20px);margin-left:0!important;margin-bottom:0!important}.upload .button{float:right;margin-left:20px!important}.upload .button.disabled,.upload .button.disabled:hover{background:0 0;color:inherit;border-color:inherit}.upload .count{float:right;line-height:52px}.upload .progress{background:#1bbf61;height:6px;border-radius:3px;margin-bottom:15px!important}.upload .preview:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.upload .preview li{float:right;margin-left:20px!important;margin-bottom:15px!important;background:#f1f1f1;width:150px;height:150px;line-height:148px;text-align:center;border-radius:20px;overflow:hidden;position:relative;cursor:pointer;border:solid 10px #f1f1f1}.upload .preview li:hover:before{background:#f02e65}.upload .preview li:before{content:'\e807';font-family:fontello;font-size:12px;position:absolute;width:20px;height:20px;display:block;top:5px;left:5px;text-align:center;line-height:20px;vertical-align:middle;border-radius:50%;background:#484848;color:#fff;z-index:1}.upload .preview li img{vertical-align:middle;max-height:150px;max-width:150px;-webkit-filter:drop-shadow(0 0 6px rgba(0, 0, 0, .3));filter:drop-shadow(0 0 1px rgba(0, 0, 0, .3))}.upload.wide .preview li{height:0;width:100%;position:relative;padding-top:30.547%;background:#e7e7e7;border-radius:10px;overflow:hidden;border:solid 1px #f9f9f9;margin:0}.upload.wide .preview li img{border-radius:10px;position:absolute;top:0;width:100%;display:block;opacity:1;max-width:inherit;max-height:inherit}ol{list-style:none;counter-reset:x-counter;padding:0}ol li{counter-increment:x-counter;line-height:30px;margin-bottom:30px;margin-right:45px}ol li::before{display:inline-block;content:counter(x-counter);color:#f02e65;color:#fff;background:#fff;background:#f02e65;border:solid 2px #f02e65;margin-left:15px;margin-right:-45px;width:26px;height:26px;border-radius:50%;text-align:center;line-height:26px}.required{color:#f53d3d;font-size:8px;position:relative;top:-8px}.drop-list{position:relative;outline:0}.drop-list.open ul{display:block}.drop-list ul{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none;box-shadow:0 0 6px rgba(0,0,0,.1);display:none;position:absolute;bottom:calc(100% + 10px);z-index:2;padding:0;right:-10px;max-width:280px;min-width:240px;overflow:hidden}.drop-list ul.padding-small{padding:15px}.drop-list ul.y-scroll{overflow-y:auto}.drop-list ul.danger{background:#f53d3d;color:#fff}.drop-list ul.focus{background:#f02e65;color:#fff}.drop-list ul.focus .button,.drop-list ul.focus button{background:#fff;color:#f02e65}.drop-list ul.warning{background:#ffed4d;color:#2d2d2d}.drop-list ul.warning .button,.drop-list ul.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.drop-list ul>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.drop-list ul hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.drop-list ul .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.drop-list ul .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.drop-list ul .toggle button.ls-ui-open{position:absolute;top:0;right:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.drop-list ul .toggle .icon-minus{display:none}.drop-list ul .toggle .content{display:none}.drop-list ul .toggle.open{height:auto}.drop-list ul .toggle.open .icon-minus{display:block}.drop-list ul .toggle.open .icon-plus{display:none}.drop-list ul .toggle.open .content{display:block}.drop-list ul .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.drop-list ul .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.drop-list ul.new{text-align:center}.drop-list ul.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.drop-list ul.new b{margin-top:20px;display:block}.drop-list ul:before{border:solid;border-color:#fff transparent;border-width:8px 8px 0 8px;bottom:-8px;content:"";position:absolute;z-index:99;right:30px}.drop-list ul li{border-bottom:solid 1px #f1f3f5;margin:0;padding:0}.drop-list ul li:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.drop-list ul li .link,.drop-list ul li a{vertical-align:middle;height:30px;line-height:30px;display:block;padding:10px 25px;color:inherit;font-size:14px;border:none;max-width:260px;cursor:pointer}.drop-list ul li .link:hover,.drop-list ul li a:hover{background:#f1f3f5;border-color:transparent}.drop-list ul li.disabled .link:hover,.drop-list ul li.disabled a:hover{background:0 0}.drop-list ul li .avatar{width:30px;height:30px;margin-left:10px;float:right}.drop-list ul li:last-child{border-bottom:none}.drop-list.bottom ul{bottom:auto;margin-top:-2px}.drop-list.bottom ul:before{bottom:auto;top:-8px;border-width:0 8px 8px 8px}.disabled{opacity:.2;cursor:default}.disabled .button,.disabled .link,.disabled a,.disabled button{cursor:default!important}.disabled .button:hover,.disabled .link:hover,.disabled a:hover,.disabled button:hover{background:0 0}.tags{-webkit-appearance:none;-moz-appearance:none;-webkit-transform:translateZ(0);box-sizing:content-box;height:40px;line-height:40px;border:solid 1px #e2e2e2;border-radius:10px;padding:5px 15px;font-size:16px;display:block;width:calc(100% - 32px);margin-bottom:30px;background:#fff;min-height:42px;height:auto}.tags[type=file]{line-height:0;padding:15px;height:auto}.tags[xtype=file]{line-height:normal;height:auto;border:none;position:absolute;top:0;right:0;bottom:0;opacity:0;cursor:pointer;padding:0;margin:0;font-size:0;width:100%}.tags[xtype=file]:disabled{opacity:0!important}.tags:focus{outline:0;border-color:#b3d7fd}.tags:disabled{background:#f1f3f5}.tags.strip{border:none;border-radius:0;padding:5px 0;width:100%;background-color:transparent;background-position:left 2px top 50%;border-bottom:solid 1px #e2e2e2;color:#868686}.tags.strip:focus{border-color:#b3d7fd}.tags .add{display:inline-block!important;border:none;padding:0;width:auto;margin:0}.tags ul.tags-list{display:inline}.tags ul.tags-list li{display:inline-block!important;margin-left:10px;font-size:16px;padding:5px 10px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tags ul.tags-list li::before{float:left;content:'\e807';font-family:fontello;font-style:normal;display:inline-block;text-align:center;line-height:16px;width:16px;height:16px;font-size:12px;background:#000;color:#fff;border-radius:50%;margin-top:4px;margin-bottom:4px;margin-right:6px;margin-left:0}.console{height:100%;width:100%;padding:0}.console body{position:relative;height:calc(100% - 70px);width:calc(100% - 320px);padding-top:70px;padding-bottom:0;padding-left:50px;padding-right:270px;margin:0;color:#4b4b4b;background:#eceff1}.console body .project-only{display:none!important}.console body.show-nav .project-only{display:inline-block!important}.console body.hide-nav .console-back{display:block}.console body.hide-nav .account{display:none}.console body.index .console-back{display:none}.console body.index .account{display:block}.console body .console-back{display:none}.console body:before{content:'';display:block;position:absolute;width:calc(100% - 220px);height:100px;top:-100px;left:0;right:0;background:#fff;z-index:1000;border-right:solid 220px #132a3b}.console header{position:fixed;top:0;width:calc(100% - 280px);height:40px;line-height:40px;padding:15px 30px;background:#fff;box-shadow:0 0 2px rgba(0,0,0,.1);margin:0 -50px;z-index:2;font-size:14px}.console header .setup-new{width:40px;height:40px;line-height:40px}.console header .list{width:240px}.console header .list select{height:40px;line-height:40px;padding-top:0;padding-bottom:0;border:none;border-radius:26px;background-color:#ececec;color:#868686}.console header .account{margin-right:25px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.console header .account:hover{border-bottom:none}.console header .avatar{height:40px;width:40px}.console header .notifications{position:relative;font-size:20px}.console header .notifications a{color:#1b3445}.console header .notifications:after{position:absolute;content:"";display:block;background:#f53d3d;width:8px;height:8px;border-radius:50%;top:3px;left:3px}.console header nav{background:#1b3445;background:linear-gradient(#132a3b,#302839);background:linear-gradient(#143650,#302839);color:#788c99;position:fixed;height:100%;width:220px;top:0;right:0}.console header nav .logo{height:39px;padding:15px 20px;display:block;border-bottom:none}.console header nav .logo:hover{border-bottom:none}.console header nav .logo img{display:inline-block;margin-top:9px;width:75%}.console header nav .logo svg g{fill:#f02e65}.console header nav .icon{display:block;border:none;margin:18px 10px 50px 10px}.console header nav .icon img{display:block}.console header nav .icon:hover{border-bottom:none}.console header nav .icon:hover svg g{fill:#f02e65}.console header nav .container{overflow:scroll;height:calc(100% - 183px);padding-bottom:50px;width:100%}.console header nav .project-box{padding:20px;text-align:center;display:block;border:none;line-height:100px;height:100px}.console header nav .project-box img{max-height:80px;max-width:80%;display:inline-block;vertical-align:middle}.console header nav .project{display:block;padding:85px 25px 20px 25px;color:#788c99;position:relative;border:none;height:20px}.console header nav .project:hover{border-bottom:none}.console header nav .project .name{height:20px;line-height:20px;margin:0;padding:0;display:inline-block;max-width:100%}.console header nav .project .arrow{display:block;position:absolute;left:5px;top:10px;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #788c99;transform:rotate(225deg)}.console header nav .project img{position:absolute;bottom:40px;display:block;margin-bottom:10px;max-height:35px;max-width:40%}.console header nav .subtitle{padding:0 30px 5px 30px;display:block;font-size:12px;font-weight:300}.console header nav .links{margin-bottom:15px!important}.console header nav .links.top{border:none;padding-bottom:0;margin-bottom:5px!important}.console header nav .links.bottom{position:absolute;bottom:0;left:0;right:0;padding-bottom:0;border:none;margin-bottom:0!important}.console header nav .links.bottom a{border-top:solid 1px #2a253a;border-bottom:none}.console header nav .links .sub{display:inline-block;border:none;width:25px;height:25px;line-height:25px;border-radius:50%;padding:0;background:#f02e65;color:#fff;text-align:center;font-size:12px;margin:18px}.console header nav .links .sub i{width:auto;margin:0}.console header nav .links .sub:hover{border:none}.console header nav .links a{padding:12px 20px;border:none;display:block;color:#87a5b9;font-weight:400;border-right:solid 5px transparent}.console header nav .links a i{margin-left:8px;width:22px;display:inline-block}.console header nav .links a.selected,.console header nav .links a:hover{color:#e4e4e4;font-weight:500}.console header nav:after{content:'';display:block;position:absolute;background:#302839;height:100px;width:100%;bottom:-100px}.console>footer{width:calc(100% + 100px);margin:0 -50px;box-sizing:border-box;background:0 0;padding-left:30px;padding-right:30px}.console>footer ul{float:none;text-align:center}.console>footer ul li{float:none;display:inline-block}.console .projects{position:relative}.console .projects:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.console .projects li{float:right;margin-left:50px;margin-bottom:50px;width:270px}.console .projects li.new,.console .projects li:nth-child(3n){margin-left:0}.console .dashboard{padding:20px;min-height:95px;overflow:hidden;position:relative;z-index:1}.console .dashboard hr{margin:20px -20px}.console .dashboard footer{margin:-20px;padding:20px;background:#fcfeff;border:none;color:#1e849e}.console .dashboard .col{position:relative}.console .dashboard .col:last-child:after{display:none}.console .dashboard .col:after{content:"";display:block;width:2px;background:#eceff1;height:calc(100% + 110px);position:absolute;top:-20px;bottom:-20px;left:24px}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.console .dashboard .col:after{width:calc(100% + 40px);height:3px;position:static;margin:20px -20px}}.console .dashboard .value{color:#f02e65;vertical-align:bottom;line-height:55px}.console .dashboard .value .sum{font-size:55px;line-height:55px;font-weight:700;vertical-align:bottom}.console .dashboard .unit{font-weight:500;line-height:20px;vertical-align:bottom;font-size:16px;display:inline-block;margin-bottom:5px;margin-right:5px;color:#f02e65}.console .dashboard .metric{color:#f02e65;font-weight:400;font-size:13px;line-height:16px}.console .dashboard .range{color:#818181;font-weight:400;font-size:14px;line-height:16px}.console .dashboard a{display:block;font-weight:400;font-size:14px;line-height:16px;padding:0;border:none}.console .dashboard .chart-metric{width:19%}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart-metric{width:100%}}.console .dashboard .chart{width:80%;position:relative;height:0;padding-top:20px;padding-bottom:26%;margin-left:-2px;overflow:hidden;background-color:#fff;background-image:linear-gradient(transparent 1px,transparent 1px),linear-gradient(90deg,transparent 1px,transparent 1px),linear-gradient(#f1f1f1 1px,transparent 1px),linear-gradient(90deg,#f1f1f1 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-2px -2px,-2px -2px,-1px -1px,-1px -1px;background-repeat:round;border:solid 1px #f1f1f1;border-right:solid 1px transparent;border-bottom:solid 1px transparent}@media only screen and (min-width:551px) and (max-width:970px),only screen and (max-width:550px){.console .dashboard .chart{width:100%;float:none;margin-bottom:20px}}.console .dashboard .chart canvas{position:absolute;bottom:0;display:block;height:100%;width:100%}.console .link-list li{margin-bottom:15px}.console .link-list i{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;background:#818181;color:#f1f3f5;border-radius:50%;margin-left:15px}.console .link-list i.fade{background:0 0;color:#818181}.console .provider{width:50px;height:50px;background:#f5f5f5;color:#868686;line-height:50px;text-align:center;font-size:25px;border-radius:50%}.console .provider.facebook{color:#fff;background:#3b5998}.console .provider.twitter{color:#fff;background:#55beff}.console .provider.telegram{color:#fff;background:#3ba9e1}.console .provider.github{color:#fff;background:#24292e}.console .provider.whatsapp{color:#fff;background:#25d366}.console .provider.linkedin{color:#fff;background:#1074af}.console .provider.microsoft{color:#fff;background:#137ad4}.console .provider.google{color:#fff;background:#4489f1}.console .provider.bitbucket{color:#fff;background:#2a88fb}.console .provider.gitlab{color:#faa238;background:#30353e}.console .provider.instagram{color:#fff;background:radial-gradient(circle at 30% 107%,#fdf497 0,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}.console .premium{z-index:3;margin-top:320px}.console .premium .message{height:190px;overflow:hidden;position:absolute;top:-280px}.console .premium:after{content:'';position:absolute;top:0;left:-20px;right:-20px;bottom:-20px;background:#f6f7f8;opacity:.7;z-index:300}.console .app-section{height:90px}.console .confirm{background:#1e849e;color:#fff;border-radius:25px;padding:12px;line-height:28px;text-align:center}.console .confirm .action{font-weight:500;cursor:pointer}.console .platforms{overflow:hidden}.console .platforms .box{overflow:hidden}.console .platforms .box img{width:50px;margin:0 auto;margin-bottom:20px}.console .platforms .box .cover{margin:-30px -30px 30px -30px;padding:30px}.console .platforms .box .cover.android{background:#a4ca24}.console .platforms .box .cover.android h1{color:#fff;font-size:18px;margin-top:20px}.console .platforms .col{text-align:center;line-height:30px}.console .platforms a{display:block;margin:-20px;padding:20px}.console .platforms a:hover{background:#fbfeff}.console .platforms img{display:block;margin:0 30px;width:calc(100% - 60px);border-radius:50%;margin-bottom:20px}.dev-feature{display:none}.prod-feature{display:none}.development .dev-feature{display:block;opacity:.6!important;outline:solid #ff0 3px;outline-offset:3px}.development .dev-feature.dev-inline{display:inline-block}.development .prod-feature{display:none}.production .dev-feature{display:none}.production .prod-feature{display:block}.search{opacity:1!important}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.search button{margin-top:20px}}html.home body{padding:0 50px}html.home .logo img{max-height:35px;margin:45px 25px 25px 25px}.alerts ul{width:100%;visibility:hidden;position:fixed;padding:0;right:0;left:0;color:#fff;z-index:1002;margin:0 auto;bottom:15px;max-width:650px;opacity:.9}.alerts ul li{margin:1px 0 0 0;padding:0}.alerts ul li div.message{position:relative;padding:12px 35px;margin:0 auto;list-style:none;background:#818181;text-align:center;font-weight:700;border-radius:20px;line-height:16px;min-height:16px}.alerts ul li div.message i{cursor:pointer;position:absolute;font-size:22px;top:8px;right:8px}.alerts ul li div.message.error{color:#fff;background:#f53d3d}.alerts ul li div.message.success{color:#fff;background:#1bbf61}.alerts ul li div.message.warning{color:#fff;background:#ffed4d}.alerts ul li div.message.open{display:block}.alerts ul li div.message.close{display:none}.alerts .cookie-alert{background:#fff2f6!important;color:#f02e65}.alerts .cookie-alert a{color:#f02e65;font-weight:400;border-bottom:dotted 1px #f02e65}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.alerts ul{top:auto;bottom:0;max-width:100%}.alerts ul li{margin:5px 0 0 0}.alerts ul li div.message{border-radius:0}}article{overflow-wrap:break-word;word-wrap:break-word}article h1{font-size:36px}article h2{font-size:24px}article h3{font-size:20px}article h4{font-size:20px}article h5{font-size:18px}article h6{font-size:16px}article h1,article h2,article h3,article h4,article h5,article h6{margin-top:30px!important;margin-bottom:30px!important}article p{line-height:32px;font-size:17px}article .update{display:block;margin-top:50px!important}article table{width:100%;margin:0;margin-bottom:30px!important;border-radius:0;border-bottom:solid 1px #e7e7e7}article table thead td{font-weight:500;padding:5px 15px}article table td,article table th{padding:15px;height:auto}article table td:first-child,article table th:first-child{padding-right:10px}article table td:last-child,article table th:last-child{padding-left:10px}article table td p,article table th p{font-size:inherit;line-height:inherit}article table td p:last-child,article table th p:last-child{margin:0}.avatar{width:60px;height:60px;border-radius:50%;background:#ddd;display:inline-block;overflow:hidden;box-shadow:0 0 6px rgba(0,0,0,.09);position:relative;z-index:1;opacity:1!important}.avatar:before{content:"";position:absolute;width:100%;height:100%;z-index:0;background:#ddd}.avatar.inline{display:inline-block;vertical-align:middle}.avatar.trans{background:0 0}.avatar.xs{width:20px;height:20px}.avatar.small{width:50px;height:50px}.avatar.big{width:100px;height:100px}.avatar.huge{width:150px;height:150px}.box{position:relative;background:#fff;border-radius:10px;box-shadow:0 0 3px rgba(0,0,0,.05);padding:30px;display:block;border-bottom:none}.box.padding-small{padding:15px}.box.y-scroll{overflow-y:auto}.box.danger{background:#f53d3d;color:#fff}.box.focus{background:#f02e65;color:#fff}.box.focus .button,.box.focus button{background:#fff;color:#f02e65}.box.warning{background:#ffed4d;color:#2d2d2d}.box.warning .button,.box.warning button{background:rgba(45,45,45,.8);color:#ffed4d}.box>footer{margin:30px -30px -30px -30px;padding:15px 30px;background:#f5f5f5;border:solid 1px #eaeaea;border-radius:0 0 10px 10px}.box hr{height:2px;background:#eceff1;border:none;margin:30px -30px}.box .header{position:static;height:40px;padding:20px 30px 20px 30px;margin-bottom:30px;margin:-30px -30px 20px -30px;background:#f9f9f9;border-bottom:solid 1px #efefef}.box .toggle{position:relative;border-top:2px solid #f6f7f8;border-bottom:2px solid #f6f7f8;margin:0 -30px;padding:30px;height:35px;overflow:hidden}.box .toggle button.ls-ui-open{position:absolute;top:0;right:0;width:100%;height:95px;background:0 0;opacity:.5;border-radius:0}.box .toggle .icon-minus{display:none}.box .toggle .content{display:none}.box .toggle.open{height:auto}.box .toggle.open .icon-minus{display:block}.box .toggle.open .icon-plus{display:none}.box .toggle.open .content{display:block}.box .list li{border-bottom:solid 2px #f6f7f8;margin:0 -30px 30px -30px;padding:0 30px 30px 30px}.box .list li:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.box.new{text-align:center}.box.new i{font-size:80px;line-height:80px;font-family:Poppins,sans-serif;font-style:normal;font-weight:300}.box.new b{margin-top:20px;display:block}a.box{border-right:none;border-left:none}a.box:hover{border-bottom:none;border-right:none;border-left:none;background:#f8fdff;box-shadow:0 0 1px rgba(0,0,0,.2)}.box-asidex{padding-left:25px!important;padding-right:70px;left:0;background:#f9f9f9;border-radius:0 10px 10px 0;height:calc(100% - 30px);position:absolute;padding-top:30px}.box-asidex:after{content:"";display:block;position:absolute;height:100%;width:51px;background:#fff;top:0;bottom:0;right:-6px}.cover{background:#fff2f6;padding:30px 50px;margin:0 -50px;position:relative;border-bottom:solid 1px #dedede}.cover .title,.cover h1,.cover h2,.cover h3,.cover h4{color:#f02e65;font-weight:600;margin-bottom:40px!important;font-size:28px;line-height:42px}.cover i:before{margin:0!important}.cover p{color:#737373}.cover .button{color:#fff}.cover .link,.cover a{color:#f02e65;border-left:none;border-right:none;cursor:pointer}.cover .link:hover,.cover a:hover{border-bottom-color:#f02e65}.console .database .row .col{height:452px}.console .database .row .col:after{width:2px;left:20px}.console .database hr{margin:0 -20px;background:#efefef;height:2px}.console .database h3{font-size:13px;line-height:20px;height:20px;background-color:#f5f5f5;margin:-20px -20px 0 -20px;padding:10px 20px;border-bottom:solid 1px #e1e2e2;font-weight:600}.console .database .empty{height:160px;font-size:12px;text-align:center;margin:50px 0}.console .database .empty h4{font-size:13px;font-weight:600;line-height:120px}.console .database .search{background-color:#f5f5f5;margin:0 -20px 0 -20px;padding:10px 15px}.console .database .search input{height:40px;background-color:#fff;border-radius:25px;padding-top:0;padding-bottom:0}.console .database .code{height:411px;background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px;width:calc(100% - 10px)}.console .database .code .ide{overflow:scroll;height:451px;margin:-20px;box-shadow:none;border-radius:0}.console .database .paging{background:#f5f5f5;margin:0 -20px -20px -20px;padding:20px}.console .database .button{margin:0 -20px;padding:0 20px!important;text-align:inherit;color:#f02e65;width:100%;font-size:15px;line-height:55px;box-sizing:content-box}.console .database .button i{margin-left:8px}.console .database .button:hover{border:none;background:#fff2f6}.console .database .items{margin:0 -20px;height:260px;overflow-x:hidden;overflow-y:scroll}.console .database .items form{opacity:0;position:relative}.console .database .items form button{background:red;position:absolute;top:0;bottom:0;right:0;left:0;width:100%;height:45px;border-radius:0;cursor:pointer}.console .database .items li{padding:0;margin:0 0;line-height:45px;font-size:15px;padding-right:50px;padding-left:30px;position:relative}.console .database .items li i{position:absolute;display:none;left:10px}.console .database .items li .name{display:inline-block;width:100%;height:28px}.console .database .items li.selected,.console .database .items li:hover{background:#f5f5f5}.console .database .items li.selected i,.console .database .items li:hover i{display:block}.console .database .items li:last-child{border-bottom:none}body>footer{color:#818181;line-height:40px;margin:0 -50px;padding:12px 50px;font-size:13px;width:100%;background:#f1f1f1;position:relative;margin-top:80px!important}body>footer:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer .logo img{height:22px;padding-top:12px}body>footer a{color:#505050}body>footer a:hover{border-bottom-color:#505050}body>footer ul:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}body>footer ul li{float:right;margin-left:20px!important}body>footer .copyright{padding-right:2px}[data-ls-if]{display:none}[data-service]{opacity:0}.load-service-start{opacity:0}.load-service-end{opacity:1;transition:opacity .5s ease-out;-moz-transition:opacity .5s ease-out;-webkit-transition:opacity .5s ease-out;-o-transition:opacity .5s ease-out}.modal-open .modal-bg,.modal-open body .modal-bg{position:fixed;content:'';display:block;width:100%;height:100%;left:0;right:0;top:0;bottom:0;background:#0c0c0c;opacity:.5;z-index:4}.modal{overflow:auto;display:none;position:fixed;width:100%;max-height:90%;max-width:640px;background:#fff;z-index:1000;box-shadow:0 0 4px rgba(0,0,0,.25);padding:30px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:10px;box-sizing:border-box;text-align:right}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.modal{width:calc(100% - 20px)}}.modal.padding-small{padding:15px}.modal.height-tiny form{height:100px}.modal.height-small form{height:220px}.modal.width-small{max-width:400px}.modal.width-medium{max-width:500px}.modal.width-large{max-width:800px}.modal.open{display:block}.modalbutton.close{display:none}.modal.fill{height:95%;max-height:95%;max-width:75%}.modal h1,.modal h2{margin-bottom:25px;margin-top:0;font-size:20px;text-align:right}.modal h1,.modal h2,.modal h3,.modal h4,.modal h5,.modal h6{color:inherit!important;line-height:35px}.modal .main,.modal form{position:relative;border-top:solid 1px #e7e7e7;padding:30px 30px 0 30px;margin:0 -30px}.modal .separator{margin:20px -30px}.modal .info{margin:0 -30px;padding:20px 30px;background:#f5fbff;color:#3b5d73;border-top:solid 1px #eaf2f7;border-bottom:solid 1px #eaf2f7}.modal button.close{width:30px;height:30px;line-height:30px;padding:0;margin:0;background:#1b1b1b;color:#fff;border-radius:50%}.phases{list-style:none;margin:0;padding:0;position:relative}.phases li{display:none}.phases li li{display:block}.phases li.selected{display:block}.phases .number{display:none}.phases h2,.phases h3,.phases h4,.phases h5,.phases h6{margin:0 0 30px 0;text-align:inherit}.container{position:relative}.container .tabs{height:55px;line-height:55px;list-style:none;padding:0;margin-bottom:50px!important;margin-top:-55px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.container .tabs:after{visibility:hidden;display:block;font-size:0;content:" ";clear:both;height:0}.container .tabs .selected{font-weight:400;color:#f02e65;position:relative;opacity:1}.container .tabs .selected:after{content:"";display:block;height:2px;background:#f02e65;width:calc(100% - 46px);position:absolute;bottom:0;border-radius:2px;right:-2px}.container .tabs .number{display:none}.container .tabs li{float:right;padding-left:50px;color:#f02e65;opacity:.9;cursor:pointer}.container .tabs li:focus{outline:0}.container .icon{display:none}@media only screen and (max-width:550px),only screen and (min-width:551px) and (max-width:970px){.container .tabs{width:auto;overflow-x:scroll;overflow-y:hidden;white-space:nowrap}.container .tabs li{display:inline-block;float:none}}.ide{background-color:#373738;overflow:hidden;position:relative;z-index:1;box-shadow:0 2px 4px 0 rgba(50,50,93,.3);border-radius:10px;margin-bottom:30px}.ide .tag{color:inherit!important;background:0 0!important;padding:inherit!important;font-size:inherit!important}.ide .copy{position:absolute;bottom:15px;left:15px;cursor:pointer;background:#39393c;border-radius:50%;padding:2px;color:#6a6a6d;border:solid 2px #414142}.ide pre{-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;color:#e6ebf1;font-weight:400;line-height:20px;font-size:13px;margin:0;padding:20px;padding-left:60px}.ide.light{box-shadow:0 2px 4px 0 rgba(50,50,93,.1);background-color:#fff}.ide.light pre{color:#414770}.ide.light .token.cdata,.ide.light .token.comment,.ide.light .token.doctype,.ide.light .token.prolog{color:#91a2b0}.ide.light .token.attr-name,.ide.light .token.builtin,.ide.light .token.char,.ide.light .token.inserted,.ide.light .token.selector,.ide.light .token.string{color:#149570}.ide.light .token.punctuation{color:#414770}.ide.light .language-css .token.string,.ide.light .style .token.string,.ide.light .token.entity,.ide.light .token.operator,.ide.light .token.url,.ide.light .token.variable{color:#414770}.ide.light .line-numbers .line-numbers-rows{background:#f2feef}.ide.light .line-numbers-rows>span:before{color:#5dc79e}.ide.light .token.keyword{color:#6772e4;font-weight:500}code[class*=language-],pre[class*=language-]{text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-]{padding:.1em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#6b7c93}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#f79a59}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#3ecf8e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#45b2e8}.token.keyword{color:#7795f8}.token.important,.token.regex{color:#fd971f}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:60px;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{background:#39393c;position:absolute;pointer-events:none;top:-20px;padding:20px 0;font-size:100%;left:-60px;width:40px;letter-spacing:-1px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{padding-left:5px;pointer-events:none;display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#636365;display:block;padding-right:.8em;text-align:right}html{padding:0;margin:0;direction:rtl}body{margin:0;background:#f6f7f8 no-repeat fixed}main{min-height:100%}ul{padding:0;margin:0}ul li{margin:0;list-style:none}.force-left{direction:ltr;text-align:left}.force-right{direction:rtl;text-align:right}.pull-left{float:left}.pull-right{float:right}.icon-left-open:before{content:'\e814'!important}.icon-right-open:before{content:'\e813'!important}.icon-link-ext:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.icon-article-alt:before{-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1)}.copy{border-radius:10px 0 0 10px!important} \ No newline at end of file diff --git a/public/scripts/filters.js b/public/scripts/filters.js index a22424176e..8e1b9e2584 100644 --- a/public/scripts/filters.js +++ b/public/scripts/filters.js @@ -215,6 +215,9 @@ window.ls.filter let size = element.dataset["size"] || 80; let email = $value.email || $value || ""; let name = $value.name || $value || ""; + + name = (typeof stringValue !== 'string') ? '' : name; + let theme = name .split("") .map(char => char.charCodeAt(0)) diff --git a/public/scripts/views/service.js b/public/scripts/views/service.js index cc77b5e6f6..193b39db26 100644 --- a/public/scripts/views/service.js +++ b/public/scripts/views/service.js @@ -57,7 +57,8 @@ redirect: function(url) { return function(router) { - router.change(url || "/"); + //router.change(url || "/"); + window.location = url || "/"; }; }, diff --git a/public/styles/dependencies/prism.less b/public/styles/dependencies/prism.less index d56572f4d9..eb8d2ac994 100644 --- a/public/styles/dependencies/prism.less +++ b/public/styles/dependencies/prism.less @@ -15,6 +15,13 @@ https://prismjs.com/download.html#themes=prism-okaidia&languages=markup+css+clik border-radius: 10px; margin-bottom: 30px; + .tag { + color: inherit!important; + background: transparent!important; + padding: inherit!important; + font-size: inherit!important; + } + .copy { position: absolute; bottom: 15px;