diff --git a/.github/workflows/code-quality.yaml b/.github/workflows/code-quality.yaml index 27f4f29d16..1ed7520bd8 100644 --- a/.github/workflows/code-quality.yaml +++ b/.github/workflows/code-quality.yaml @@ -26,7 +26,7 @@ jobs: - name: Install PHP and PHP Code Sniffer uses: shivammathur/setup-php@v2 with: - php-version: 7.3 + php-version: 8.0 extensions: curl, fileinfo, gd, mbstring, openssl, pdo, pdo_sqlite, sqlite3, xml, zip tools: phpcs diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ad0c7b0ad8..3b081f3c4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,18 +24,19 @@ jobs: node-version: 12 - name: Install Node dependencies - working-directory: ./tests/js + working-directory: ./modules/system/tests/js run: npm install - name: Run tests - working-directory: ./tests/js + working-directory: ./modules/system/tests/js run: npm run test + phpUnitTests: strategy: max-parallel: 8 matrix: operatingSystem: [ubuntu-latest, windows-latest] - phpVersion: ['7.2', '7.3', '7.4', '8.0'] + phpVersion: ['8.0', '8.1'] fail-fast: false runs-on: ${{ matrix.operatingSystem }} name: ${{ matrix.operatingSystem }} / PHP ${{ matrix.phpVersion }} @@ -72,18 +73,25 @@ jobs: php-version: ${{ matrix.phpVersion }} extensions: ${{ env.extensions }} + - name: Echo branches + run: echo "${{ github.ref }} | ${{ github.head_ref }} | ${{ github.ref_name }} | ${{ github.base_ref }}" + - name: Switch library dependency (develop) if: github.ref == 'refs/heads/develop' || github.base_ref == 'develop' run: php ./.github/workflows/utilities/library-switcher "dev-develop as 1.1" - name: Switch library dependency (1.0) - if: github.ref == 'refs/heads/1.0' || github.base_ref == '1.0' + if: github.head_ref == '1.0' || github.ref == 'refs/heads/1.0' || github.base_ref == '1.0' run: php ./.github/workflows/utilities/library-switcher "1.0.x-dev as 1.0" - name: Switch library dependency (1.1) - if: github.ref == 'refs/heads/1.1' || github.base_ref == '1.1' + if: github.head_ref == '1.1' || github.ref == 'refs/heads/1.1' || github.base_ref == '1.1' run: php ./.github/workflows/utilities/library-switcher "1.1.x-dev as 1.1" + - name: Switch library dependency (1.2) + if: github.head_ref == 'wip/1.2' || github.ref == 'refs/heads/wip/1.2' || github.base_ref == 'wip/1.2' + run: php ./.github/workflows/utilities/library-switcher "dev-wip/1.2 as 1.2" + - name: Setup dependency cache id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" @@ -105,10 +113,10 @@ jobs: run: php artisan package:discover - name: Setup problem matchers for PHPUnit - if: matrix.phpVersion == '7.4' + if: matrix.phpVersion == '8.1' run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Run Linting and Tests run: | - ./vendor/bin/parallel-lint --exclude vendor --exclude storage --exclude tests/fixtures/plugins/testvendor/goto/Plugin.php . + composer lint ./vendor/bin/phpunit diff --git a/.github/workflows/utilities/phpcs-pr b/.github/workflows/utilities/phpcs-pr index b997066ddb..231930c4f8 100755 --- a/.github/workflows/utilities/phpcs-pr +++ b/.github/workflows/utilities/phpcs-pr @@ -7,8 +7,8 @@ * of changed files. The PHPCS tests are only run against these changed files, to speed up the tests. */ if (empty($argv[1])) { - echo 'You must provide a base branch to check this PR against.'; - echo "\n"; + fwrite(STDERR, 'You must provide a base branch to check this PR against.'); + fwrite(STDERR, "\n"); exit(1); } @@ -22,6 +22,13 @@ foreach ($files as &$file) { } } +// no changes found in diff, early exit +if (!count($files)) { + fwrite(STDOUT, "\e[0;32mFound no changed files.\e[0m"); + fwrite(STDOUT, "\n"); + exit(0); +} + // Run all changed files through the PHPCS code sniffer and generate a CSV report $csv = shell_exec('phpcs --colors -nq --report="csv" --extensions="php" ' . implode(' ', $files)); $lines = array_map(function ($row) { @@ -34,50 +41,47 @@ $lines = array_map(function ($row) { array_shift($lines); if (!count($lines)) { - echo "\e[0;32mFound no issues with code quality.\e[0m"; - echo "\n"; + fwrite(STDOUT, "\e[0;32mFound no issues with code quality.\e[0m"); + fwrite(STDOUT, "\n"); exit(0); -} else { - // Group errors by file - $files = []; +} - foreach ($lines as $line) { - $filename = str_replace(dirname(dirname(dirname(__DIR__))), '', $line[0]); +// Group errors by file +$files = []; - if (empty($files[$filename])) { - $files[$filename] = []; - } +foreach ($lines as $line) { + $filename = str_replace(dirname(dirname(dirname(__DIR__))), '', $line[0]); - $files[$filename][] = [ - 'warning' => ($line[3] === 'warning'), - 'message' => $line[4], - 'line' => $line[1], - ]; + if (empty($files[$filename])) { + $files[$filename] = []; } - // Render report - echo "\e[0;31mFound " - . ((count($lines) === 1) - ? '1 issue' - : count($lines) . ' issues') - . " with code quality.\e[0m"; - echo "\n"; + $files[$filename][] = [ + 'warning' => (($line[3] ?? 'err') === 'warning'), + 'message' => $line[4] ?? 'unknown', + 'line' => $line[1] ?? '0', + ]; +} + +// Render report +fwrite(STDERR, "\e[0;31mFound " + . ((count($lines) === 1) + ? '1 issue' + : count($lines) . ' issues') + . " with code quality.\e[0m"); +fwrite(STDERR, "\n"); - foreach ($files as $file => $errors) { - echo "\n"; - echo "\e[1;37m" . str_replace('"', '', $file) . "\e[0m"; - echo "\n\n"; +foreach ($files as $file => $errors) { + fwrite(STDERR, "\n"); + fwrite(STDERR, "\e[1;37m" . str_replace('"', '', $file) . "\e[0m"); + fwrite(STDERR, "\n\n"); - foreach ($errors as $error) { - echo "\e[2m" . str_pad(' L' . $error['line'], 7) . " | \e[0m"; - if ($error['warning'] === false) { - echo "\e[0;31mERR:\e[0m "; - } else { - echo "\e[1;33mWARN:\e[0m "; - } - echo $error['message']; - echo "\n"; - } + foreach ($errors as $error) { + fwrite(STDERR, "\e[2m" . str_pad(' L' . $error['line'], 7) . " | \e[0m"); + fwrite(STDERR, $error['warning'] ? "\e[1;33mWARN:\e[0m " : "\e[0;31mERR:\e[0m "); + fwrite(STDERR, $error['message']); + fwrite(STDERR, "\n"); } - exit(1); } + +exit(1); diff --git a/.github/workflows/utilities/phpcs-push b/.github/workflows/utilities/phpcs-push index add55df908..fe51c44c2b 100755 --- a/.github/workflows/utilities/phpcs-push +++ b/.github/workflows/utilities/phpcs-push @@ -7,8 +7,8 @@ * against these changed files, to speed up the tests. */ if (empty($argv[1])) { - echo 'You must provide a commit SHA to check.'; - echo "\n"; + fwrite(STDERR, 'You must provide a commit SHA to check.'); + fwrite(STDERR, "\n"); exit(1); } @@ -22,6 +22,13 @@ foreach ($files as &$file) { } } +// no changes found in diff, early exit +if (!count($files)) { + fwrite(STDOUT, "\e[0;32mFound no changed files.\e[0m"); + fwrite(STDOUT, "\n"); + exit(0); +} + // Run all changed files through the PHPCS code sniffer and generate a CSV report $csv = shell_exec('phpcs --colors -nq --report="csv" --extensions="php" ' . implode(' ', $files)); $lines = array_map(function ($row) { @@ -34,50 +41,47 @@ $lines = array_map(function ($row) { array_shift($lines); if (!count($lines)) { - echo "\e[0;32mFound no issues with code quality.\e[0m"; - echo "\n"; + fwrite(STDOUT, "\e[0;32mFound no issues with code quality.\e[0m"); + fwrite(STDOUT, "\n"); exit(0); -} else { - // Group errors by file - $files = []; +} - foreach ($lines as $line) { - $filename = str_replace(dirname(dirname(dirname(__DIR__))), '', $line[0]); +// Group errors by file +$files = []; - if (empty($files[$filename])) { - $files[$filename] = []; - } +foreach ($lines as $line) { + $filename = str_replace(dirname(dirname(dirname(__DIR__))), '', $line[0]); - $files[$filename][] = [ - 'warning' => ($line[3] === 'warning'), - 'message' => $line[4], - 'line' => $line[1], - ]; + if (empty($files[$filename])) { + $files[$filename] = []; } - // Render report - echo "\e[0;31mFound " - . ((count($lines) === 1) - ? '1 issue' - : count($lines) . ' issues') - . " with code quality.\e[0m"; - echo "\n"; + $files[$filename][] = [ + 'warning' => (($line[3] ?? 'err') === 'warning'), + 'message' => $line[4] ?? 'unknown', + 'line' => $line[1] ?? '0', + ]; +} + +// Render report +fwrite(STDERR, "\e[0;31mFound " + . ((count($lines) === 1) + ? '1 issue' + : count($lines) . ' issues') + . " with code quality.\e[0m"); +fwrite(STDERR, "\n"); - foreach ($files as $file => $errors) { - echo "\n"; - echo "\e[1;37m" . str_replace('"', '', $file) . "\e[0m"; - echo "\n\n"; +foreach ($files as $file => $errors) { + fwrite(STDERR, "\n"); + fwrite(STDERR, "\e[1;37m" . str_replace('"', '', $file) . "\e[0m"); + fwrite(STDERR, "\n\n"); - foreach ($errors as $error) { - echo "\e[2m" . str_pad(' L' . $error['line'], 7) . " | \e[0m"; - if ($error['warning'] === false) { - echo "\e[0;31mERR:\e[0m "; - } else { - echo "\e[1;33mWARN:\e[0m "; - } - echo $error['message']; - echo "\n"; - } + foreach ($errors as $error) { + fwrite(STDERR, "\e[2m" . str_pad(' L' . $error['line'], 7) . " | \e[0m"); + fwrite(STDERR, $error['warning'] ? "\e[1;33mWARN:\e[0m " : "\e[0;31mERR:\e[0m "); + fwrite(STDERR, $error['message']); + fwrite(STDERR, "\n"); } - exit(1); } +exit(1); + diff --git a/.gitignore b/.gitignore index 0a2a3393b4..3582897e81 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,4 @@ package-lock.json /node_modules # Ignore generated public directory from `winter:mirror public` -public \ No newline at end of file +public diff --git a/.vscode/settings.json b/.vscode/settings.json index a81b0b8d5c..8e710556a0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -11,7 +11,7 @@ "**/modules/*/widgets/*/partials/*.htm": "php", "**/plugins/*/*/behaviors/*/partials/*.htm": "php", - "**/plugins/*/*/components/*/*.htm": "wintercms-twig", + "**/plugins/*/*/components/**/*.htm": "wintercms-twig", "**/plugins/*/*/controllers/*/*.htm": "php", "**/plugins/*/*/formwidgets/*/partials/*.htm": "php", "**/plugins/*/*/layouts/*.htm": "php", diff --git a/artisan b/artisan index df630d0d6d..8d1e73f4ca 100755 --- a/artisan +++ b/artisan @@ -9,7 +9,7 @@ | Composer provides a convenient, automatically generated class loader | for our application. We just need to utilize it! We'll require it | into the script here so that we do not have to worry about the -| loading of any our classes "manually". Feels great to relax. +| loading of any of our classes manually. It's great to relax. | */ @@ -40,7 +40,7 @@ $status = $kernel->handle( | Shutdown The Application |-------------------------------------------------------------------------- | -| Once Artisan has finished running. We will fire off the shutdown events +| Once Artisan has finished running, we will fire off the shutdown events | so that any final work may be done by the application before we shut | down the process. This is the last thing to happen to the request. | diff --git a/composer.json b/composer.json index 7e9593c427..ac0cb5c167 100644 --- a/composer.json +++ b/composer.json @@ -29,34 +29,25 @@ "source": "https://github.com/wintercms/winter" }, "require": { - "php": "^7.2.9|~8.0.0", - "winter/storm": "dev-develop as 1.1.999", - "winter/wn-system-module": "dev-develop as 1.1.999", - "winter/wn-backend-module": "dev-develop as 1.1.999", - "winter/wn-cms-module": "dev-develop as 1.1.999", - "laravel/framework": "~6.0", + "php": "^8.0.2", + "winter/storm": "dev-wip/1.2 as 1.2", + "winter/wn-system-module": "dev-wip/1.2", + "winter/wn-backend-module": "dev-wip/1.2", + "winter/wn-cms-module": "dev-wip/1.2", + "laravel/framework": "^9.1", "wikimedia/composer-merge-plugin": "~2.0.1" }, "require-dev": { - "phpunit/phpunit": "^8.4|^9.3.3", - "mockery/mockery": "~1.3.3|^1.4.2", - "fakerphp/faker": "~1.9", - "squizlabs/php_codesniffer": "3.*", + "phpunit/phpunit": "^9.5.8", + "mockery/mockery": "^1.4.4", + "fakerphp/faker": "^1.9.2", + "squizlabs/php_codesniffer": "^3.2", "php-parallel-lint/php-parallel-lint": "^1.0", "dms/phpunit-arraysubset-asserts": "^0.1.0|^0.2.1" }, - "autoload-dev": { - "classmap": [ - "tests/concerns/InteractsWithAuthentication.php", - "tests/fixtures/backend/models/UserFixture.php", - "tests/TestCase.php", - "tests/PluginTestCase.php" - ] - }, "scripts": { "post-create-project-cmd": [ - "@php artisan key:generate", - "@php artisan package:discover" + "@php artisan key:generate" ], "post-update-cmd": [ "@php artisan winter:version", @@ -66,7 +57,7 @@ "phpunit --stop-on-failure" ], "lint": [ - "parallel-lint --exclude vendor --exclude storage --exclude tests/fixtures/plugins/testvendor/goto/Plugin.php ." + "parallel-lint --exclude vendor --exclude storage --exclude modules/system/tests/fixtures/plugins/testvendor/goto/Plugin.php ." ], "sniff": [ "phpcs --colors -nq --report=\"full\" --extensions=\"php\"" diff --git a/config/app.php b/config/app.php index 66d3050646..c4d3537fc2 100644 --- a/config/app.php +++ b/config/app.php @@ -16,7 +16,7 @@ | */ - 'debug' => true, + 'debug' => env('APP_DEBUG', true), /* |-------------------------------------------------------------------------- @@ -26,9 +26,10 @@ | This value is the name of your application. This value is used when the | framework needs to place the application's name in a notification or | any other location as required by the application or its packages. + | */ - 'name' => 'Winter CMS', + 'name' => env('APP_NAME', 'Winter CMS'), /* |-------------------------------------------------------------------------- @@ -41,7 +42,7 @@ | */ - 'url' => 'http://localhost', + 'url' => env('APP_URL', 'http://localhost'), /* |-------------------------------------------------------------------------- @@ -132,7 +133,9 @@ | - Illuminate\Http\Request::HEADER_X_FORWARDED_HOST - trust only the proxy hostname | - Illuminate\Http\Request::HEADER_X_FORWARDED_PORT - trust only the proxy port | - Illuminate\Http\Request::HEADER_X_FORWARDED_PROTO - trust only the proxy protocol + | - Illuminate\Http\Request::HEADER_X_FORWARDED_PREFIX - trust only the proxy prefix | - Illuminate\Http\Request::HEADER_X_FORWARDED_AWS_ELB - trust Amazon Elastic Load Balancing headers + | - Illuminate\Http\Request::HEADER_X_FORWARDED_TRAEFIK - trust Traefik reverse proxy headers | | Examples: | - To trust only the hostname, use the following: @@ -203,6 +206,19 @@ 'fallback_locale' => 'en', + /* + |-------------------------------------------------------------------------- + | Faker Locale + |-------------------------------------------------------------------------- + | + | This locale will be used by the Faker PHP library when generating fake + | data for your database seeds. For example, this will be used to get + | localized telephone numbers, street address information and more. + | + */ + + 'faker_locale' => 'en_US', + /* |-------------------------------------------------------------------------- | Encryption Key @@ -214,8 +230,7 @@ | */ - 'key' => 'CHANGE_ME!!!!!!!!!!!!!!!!!!!!!!!', - + 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC', /* @@ -233,7 +248,7 @@ // 'Illuminate\Html\HtmlServiceProvider', // Example - 'System\ServiceProvider', + System\ServiceProvider::class, ]), /* @@ -268,9 +283,6 @@ */ 'aliases' => array_merge(include(base_path('modules/system/aliases.php')), [ - // 'Str' => 'Illuminate\Support\Str', // Example - ]), - ]; diff --git a/config/auth.php b/config/auth.php index 8dc13b61c7..846e31a593 100644 --- a/config/auth.php +++ b/config/auth.php @@ -1,8 +1,8 @@ [ + /* |-------------------------------------------------------------------------- | Enable throttling of Backend authentication attempts @@ -11,7 +11,8 @@ | If set to true, users will be given a limited number of attempts to sign | in to the Backend before being blocked for a specified number of minutes. | - */ + */ + 'enabled' => true, /* @@ -21,7 +22,8 @@ | | Number of failed attempts allowed while trying to authenticate a user. | - */ + */ + 'attemptLimit' => 5, /* @@ -32,8 +34,8 @@ | The number of minutes to suspend further attempts on authentication once | the attempt limit is reached. | - */ + */ + 'suspensionTime' => 15, ], - ]; diff --git a/config/broadcasting.php b/config/broadcasting.php index 6d32d2d2b6..948f010a11 100644 --- a/config/broadcasting.php +++ b/config/broadcasting.php @@ -11,11 +11,11 @@ | framework when an event needs to be broadcast. You may set this to | any of the connections defined in the "connections" array below. | - | Supported: "pusher", "redis", "log", "null" + | Supported: "pusher", "ably", "redis", "log", "null" | */ - 'default' => 'pusher', + 'default' => env('BROADCAST_DRIVER', 'null'), /* |-------------------------------------------------------------------------- @@ -29,31 +29,32 @@ */ 'connections' => [ - 'pusher' => [ - 'driver' => 'pusher', - 'key' => '', - 'secret' => '', - 'app_id' => '', + 'app_id' => env('PUSHER_APP_ID'), + 'client_options' => [ + // Guzzle client options: https://docs.guzzlephp.org/en/stable/request-options.html + ], + 'driver' => 'pusher', + 'key' => env('PUSHER_APP_KEY'), 'options' => [ - 'cluster' => '', - 'useTLS' => true, + 'cluster' => env('PUSHER_APP_CLUSTER'), + 'useTLS' => true, ], + 'secret' => env('PUSHER_APP_SECRET'), + ], + 'ably' => [ + 'driver' => 'ably', + 'key' => env('ABLY_KEY'), ], - 'redis' => [ - 'driver' => 'redis', 'connection' => 'default', + 'driver' => 'redis', ], - 'log' => [ 'driver' => 'log', ], - 'null' => [ 'driver' => 'null', ], - ], - ]; diff --git a/config/cache.php b/config/cache.php index 17e2507638..c689a4ba53 100644 --- a/config/cache.php +++ b/config/cache.php @@ -18,7 +18,7 @@ | */ - 'default' => 'file', + 'default' => env('CACHE_DRIVER', 'file'), /* |-------------------------------------------------------------------------- @@ -29,42 +29,39 @@ | well as their drivers. You may even define multiple stores for the | same cache driver to group types of items stored in your caches. | - | Supported: "apc", "array", "database", "file", - | "memcached", "redis", "dynamodb" + | Supported drivers: "apc", "array", "database", "file", + | "memcached", "redis", "dynamodb", "octane", "null" | */ 'stores' => [ - 'apc' => [ 'driver' => 'apc', ], - 'array' => [ 'driver' => 'array', + 'serialize' => false, ], - 'database' => [ - 'driver' => 'database', - 'table' => 'cache', 'connection' => null, + 'driver' => 'database', + 'lock_connection' => null, + 'table' => 'cache', ], - 'file' => [ 'driver' => 'file', - 'path' => storage_path('framework/cache'), + 'path' => storage_path('framework/cache'), ], - 'memcached' => [ 'driver' => 'memcached', + 'options' => [ + // Memcached::OPT_CONNECT_TIMEOUT => 2000, + ], 'persistent_id' => env('MEMCACHED_PERSISTENT_ID'), 'sasl' => [ env('MEMCACHED_USERNAME'), env('MEMCACHED_PASSWORD'), ], - 'options' => [ - // Memcached::OPT_CONNECT_TIMEOUT => 2000, - ], 'servers' => [ [ 'host' => env('MEMCACHED_HOST', '127.0.0.1'), @@ -73,21 +70,22 @@ ], ], ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', + 'connection' => 'cache', + 'driver' => 'redis', + 'lock_connection' => 'default', ], - 'dynamodb' => [ - 'driver' => 'dynamodb', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), - 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + 'driver' => 'dynamodb', 'endpoint' => env('DYNAMODB_ENDPOINT'), + 'key' => env('AWS_ACCESS_KEY_ID'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), + ], + 'octane' => [ + 'driver' => 'octane', ], - ], /* @@ -101,7 +99,7 @@ | */ - 'prefix' => 'winter', + 'prefix' => env('CACHE_PREFIX', str_slug(env('APP_NAME', 'winter'), '_') . '_cache'), /* |-------------------------------------------------------------------------- @@ -138,5 +136,4 @@ */ 'disableRequestCache' => null, - ]; diff --git a/config/cms.php b/config/cms.php index 4da7fd4a7e..560491de72 100644 --- a/config/cms.php +++ b/config/cms.php @@ -91,7 +91,7 @@ | */ - 'backendSkin' => 'Backend\Skins\Standard', + 'backendSkin' => \Backend\Skins\Standard::class, /* |-------------------------------------------------------------------------- @@ -117,7 +117,11 @@ | */ - 'loadModules' => ['System', 'Backend', 'Cms'], + 'loadModules' => [ + 'System', + 'Backend', + 'Cms', + ], /* |-------------------------------------------------------------------------- @@ -156,7 +160,7 @@ | */ - 'enableRoutesCache' => false, + 'enableRoutesCache' => env('ROUTES_CACHE', false), /* |-------------------------------------------------------------------------- @@ -196,7 +200,7 @@ | */ - 'enableAssetCache' => false, + 'enableAssetCache' => env('ASSET_CACHE', false), /* |-------------------------------------------------------------------------- @@ -250,7 +254,7 @@ | */ - 'databaseTemplates' => false, + 'databaseTemplates' => env('DATABASE_TEMPLATES', false), /* |-------------------------------------------------------------------------- @@ -312,26 +316,22 @@ */ 'storage' => [ - 'uploads' => [ - 'disk' => 'local', - 'folder' => 'uploads', - 'path' => '/storage/app/uploads', + 'disk' => 'local', + 'folder' => 'uploads', + 'path' => '/storage/app/uploads', 'temporaryUrlTTL' => 3600, ], - 'media' => [ - 'disk' => 'local', + 'disk' => 'local', 'folder' => 'media', - 'path' => '/storage/app/media', + 'path' => '/storage/app/media', ], - 'resized' => [ - 'disk' => 'local', + 'disk' => 'local', 'folder' => 'resized', - 'path' => '/storage/app/resized', + 'path' => '/storage/app/resized', ], - ], /* @@ -360,7 +360,7 @@ | */ - 'linkPolicy' => 'detect', + 'linkPolicy' => env('LINK_POLICY', 'detect'), /* |-------------------------------------------------------------------------- @@ -371,7 +371,10 @@ | */ - 'defaultMask' => ['file' => null, 'folder' => null], + 'defaultMask' => [ + 'file' => null, + 'folder' => null, + ], /* |-------------------------------------------------------------------------- @@ -396,7 +399,7 @@ | */ - 'enableCsrfProtection' => true, + 'enableCsrfProtection' => env('ENABLE_CSRF', true), /* |-------------------------------------------------------------------------- @@ -466,5 +469,4 @@ */ 'enableBackendServiceWorkers' => false, - ]; diff --git a/config/cookie.php b/config/cookie.php index f286fe5a6b..654d29df81 100644 --- a/config/cookie.php +++ b/config/cookie.php @@ -17,5 +17,4 @@ 'unencryptedCookies' => [ // 'my_cookie', ], - ]; diff --git a/config/database.php b/config/database.php index ab04e6c28f..f57e26acac 100644 --- a/config/database.php +++ b/config/database.php @@ -2,19 +2,6 @@ return [ - /* - |-------------------------------------------------------------------------- - | PDO Fetch Style - |-------------------------------------------------------------------------- - | - | By default, database results will be returned as instances of the PHP - | stdClass object; however, you may desire to retrieve records in an - | array format for simplicity. Here you can tweak the fetch style. - | - */ - - 'fetch' => PDO::FETCH_CLASS, - /* |-------------------------------------------------------------------------- | Default Database Connection Name @@ -26,7 +13,7 @@ | */ - 'default' => 'mysql', + 'default' => env('DB_CONNECTION', 'mysql'), /* |-------------------------------------------------------------------------- @@ -44,60 +31,58 @@ */ 'connections' => [ - 'sqlite' => [ - 'driver' => 'sqlite', - // 'url' => env('DATABASE_URL'), - 'database' => base_path('storage/database.sqlite'), - 'prefix' => '', - 'foreign_key_constraints' => true, + 'database' => env('DB_DATABASE', storage_path('database.sqlite')), + 'driver' => 'sqlite', + 'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true), + 'prefix' => '', + 'url' => env('DATABASE_URL'), ], - 'mysql' => [ - 'driver' => 'mysql', - // 'url' => env('DATABASE_URL'), - 'engine' => 'InnoDB', - 'host' => '127.0.0.1', - 'port' => 3306, - 'database' => 'database', - 'username' => 'root', - 'password' => '', - 'charset' => 'utf8mb4', - 'collation' => 'utf8mb4_unicode_ci', - 'prefix' => '', + 'charset' => 'utf8mb4', + 'collation' => 'utf8mb4_unicode_ci', + 'database' => env('DB_DATABASE', 'winter'), + 'driver' => 'mysql', + 'engine' => 'InnoDB', + 'host' => env('DB_HOST', '127.0.0.1'), + 'options' => extension_loaded('pdo_mysql') ? array_filter([ + PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), + ]) : [], + 'password' => env('DB_PASSWORD', ''), + 'port' => env('DB_PORT', '3306'), + 'prefix' => '', 'prefix_indexes' => true, - 'strict' => true, - 'varcharmax' => 191, + 'strict' => true, + 'unix_socket' => env('DB_SOCKET', ''), + 'url' => env('DATABASE_URL'), + 'username' => env('DB_USERNAME', 'winter'), ], - 'pgsql' => [ - 'driver' => 'pgsql', - // 'url' => env('DATABASE_URL'), - 'host' => '127.0.0.1', - 'port' => 5432, - 'database' => 'database', - 'username' => 'root', - 'password' => '', - 'charset' => 'utf8', - 'prefix' => '', + 'charset' => 'utf8', + 'database' => env('DB_DATABASE', 'winter'), + 'driver' => 'pgsql', + 'host' => env('DB_HOST', '127.0.0.1'), + 'password' => env('DB_PASSWORD', ''), + 'port' => env('DB_PORT', '5432'), + 'prefix' => '', 'prefix_indexes' => true, - 'schema' => 'public', - 'sslmode' => 'prefer', + 'search_path' => 'public', + 'sslmode' => 'prefer', + 'url' => env('DATABASE_URL'), + 'username' => env('DB_USERNAME', 'winter'), ], - 'sqlsrv' => [ - 'driver' => 'sqlsrv', - // 'url' => env('DATABASE_URL'), - 'host' => '127.0.0.1', - 'port' => 1433, - 'database' => 'database', - 'username' => 'root', - 'password' => '', - 'charset' => 'utf8', - 'prefix' => '', + 'charset' => 'utf8', + 'database' => env('DB_DATABASE', 'winter'), + 'driver' => 'sqlsrv', + 'host' => env('DB_HOST', '127.0.0.1'), + 'password' => env('DB_PASSWORD', ''), + 'port' => env('DB_PORT', '1433'), + 'prefix' => '', 'prefix_indexes' => true, + 'url' => env('DATABASE_URL'), + 'username' => env('DB_USERNAME', 'winter'), ], - ], /* @@ -107,7 +92,7 @@ | | This table keeps track of all the migrations that have already run for | your application. Using this information, we can determine which of - | the migrations on disk have not actually be run in the databases. + | the migrations on disk haven't actually been run in the database. | */ @@ -119,28 +104,30 @@ |-------------------------------------------------------------------------- | | Redis is an open source, fast, and advanced key-value store that also - | provides a richer set of commands than a typical key-value systems - | such as APC or Memcached. Winter CMS makes it easy to dig right in. + | provides a richer body of commands than a typical key-value system + | such as APC or Memcached. Winter makes it easy to dig right in. | */ 'redis' => [ - - 'client' => 'predis', - + 'client' => env('REDIS_CLIENT', 'phpredis'), 'options' => [ - 'cluster' => 'redis', - 'prefix' => '', + 'cluster' => env('REDIS_CLUSTER', 'redis'), + 'prefix' => env('REDIS_PREFIX', str_slug(env('APP_NAME', 'winter'), '_') . '_database_'), ], - 'default' => [ - // 'url' => env('REDIS_URL'), - 'host' => '127.0.0.1', - 'password' => null, - 'port' => 6379, - 'database' => 0, + 'database' => env('REDIS_DB', '0'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'url' => env('REDIS_URL'), + ], + 'cache' => [ + 'database' => env('REDIS_CACHE_DB', '1'), + 'host' => env('REDIS_HOST', '127.0.0.1'), + 'password' => env('REDIS_PASSWORD'), + 'port' => env('REDIS_PORT', '6379'), + 'url' => env('REDIS_URL'), ], - ], - ]; diff --git a/config/develop.php b/config/develop.php index 381b56409d..4a30178b51 100644 --- a/config/develop.php +++ b/config/develop.php @@ -42,5 +42,4 @@ */ 'allowDeepSymlinks' => false, - ]; diff --git a/config/environment.php b/config/environment.php index 5249b15bad..caa9f6581c 100644 --- a/config/environment.php +++ b/config/environment.php @@ -27,9 +27,6 @@ */ 'hosts' => [ - 'localhost' => 'dev', - ], - ]; diff --git a/config/filesystems.php b/config/filesystems.php index e060a08164..98904ecd94 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -13,20 +13,7 @@ | */ - 'default' => 'local', - - /* - |-------------------------------------------------------------------------- - | Default Cloud Filesystem Disk - |-------------------------------------------------------------------------- - | - | Many applications store files both locally and in the cloud. For this - | reason, you may specify a default "cloud" driver here. This driver - | will be bound as the Cloud disk implementation in the container. - | - */ - - 'cloud' => 's3', + 'default' => env('FILESYSTEM_DISK', 'local'), /* |-------------------------------------------------------------------------- @@ -37,36 +24,26 @@ | may even configure multiple disks of the same driver. Defaults have | been setup for each driver as an example of the required options. | - | Supported Drivers: "local", "ftp", "sftp", "s3", "rackspace" + | Supported Drivers: "local", "ftp", "sftp", "s3" | */ 'disks' => [ - 'local' => [ 'driver' => 'local', - 'root' => storage_path('app'), - 'url' => '/storage/app', + 'root' => storage_path('app'), + 'url' => '/storage/app', + 'visibility' => 'public', ], - 's3' => [ - 'driver' => 's3', - 'key' => '', - 'secret' => '', - 'region' => '', - 'bucket' => '', - // 'url' => env('AWS_URL'), - // 'endpoint' => env('AWS_ENDPOINT'), - ], - - 'rackspace' => [ - 'driver' => 'rackspace', - 'username' => 'your-username', - 'key' => 'your-key', - 'container' => 'your-container', - 'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/', - 'region' => 'IAD', + 'bucket' => env('AWS_BUCKET'), + 'driver' => 's3', + 'endpoint' => env('AWS_ENDPOINT'), + 'key' => env('AWS_ACCESS_KEY_ID'), + 'region' => env('AWS_DEFAULT_REGION'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'url' => env('AWS_URL'), + 'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false), ], ], - ]; diff --git a/config/hashing.php b/config/hashing.php index 5b10c09d3c..ad56664fb1 100644 --- a/config/hashing.php +++ b/config/hashing.php @@ -44,9 +44,8 @@ */ 'argon' => [ - 'memory' => 1024, - 'threads' => 2, - 'time' => 2, + 'memory' => 65536, + 'threads' => 1, + 'time' => 4, ], - ]; diff --git a/config/logging.php b/config/logging.php index 0e9478c720..415941e91c 100644 --- a/config/logging.php +++ b/config/logging.php @@ -13,7 +13,20 @@ | */ - 'default' => env('LOG_CHANNEL', 'single'), + 'default' => env('LOG_CHANNEL', 'stack'), + + /* + |-------------------------------------------------------------------------- + | Deprecations Log Channel + |-------------------------------------------------------------------------- + | + | This option controls the log channel that should be used to log warnings + | regarding deprecated PHP and library features. This allows you to get + | your application ready for upcoming major versions of dependencies. + | + */ + + 'deprecations' => env('LOG_DEPRECATIONS_CHANNEL', 'null'), /* |-------------------------------------------------------------------------- @@ -21,7 +34,7 @@ |-------------------------------------------------------------------------- | | Here you may configure the log channels for your application. Out of - | the box, Laravel uses the Monolog PHP logging library. This gives + | the box, Winter uses the Monolog PHP logging library. This gives | you a variety of powerful log handlers / formatters to utilize. | | Available Drivers: "single", "daily", "slack", "syslog", @@ -32,60 +45,63 @@ 'channels' => [ 'stack' => [ - 'driver' => 'stack', - 'channels' => ['daily'], + 'channels' => [ + 'single', + ], + 'driver' => 'stack', 'ignore_exceptions' => false, ], - 'single' => [ 'driver' => 'single', - 'path' => storage_path('logs/system.log'), - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), + 'path' => storage_path('logs/system.log'), ], - 'daily' => [ + 'days' => 14, 'driver' => 'daily', - 'path' => storage_path('logs/system.log'), - 'level' => 'debug', - 'days' => 14, + 'level' => env('LOG_LEVEL', 'debug'), + 'path' => storage_path('logs/system.log'), ], - 'slack' => [ - 'driver' => 'slack', - 'url' => env('LOG_SLACK_WEBHOOK_URL'), - 'username' => 'Winter CMS Log', - 'emoji' => ':boom:', - 'level' => 'critical', + 'driver' => 'slack', + 'emoji' => ':boom:', + 'level' => env('LOG_LEVEL', 'critical'), + 'url' => env('LOG_SLACK_WEBHOOK_URL'), + 'username' => 'Winter Log', ], - 'papertrail' => [ - 'driver' => 'monolog', - 'level' => 'debug', - 'handler' => \Monolog\Handler\SyslogUdpHandler::class, + 'driver' => 'monolog', + 'handler' => env('LOG_PAPERTRAIL_HANDLER', \Monolog\Handler\SyslogUdpHandler::class), 'handler_with' => [ + 'connectionString' => 'tls://' . env('PAPERTRAIL_URL') . ':' . env('PAPERTRAIL_PORT'), 'host' => env('PAPERTRAIL_URL'), 'port' => env('PAPERTRAIL_PORT'), ], + 'level' => env('LOG_LEVEL', 'debug'), ], - 'stderr' => [ - 'driver' => 'monolog', - 'handler' => \Monolog\Handler\StreamHandler::class, + 'driver' => 'monolog', 'formatter' => env('LOG_STDERR_FORMATTER'), + 'handler' => \Monolog\Handler\StreamHandler::class, + 'level' => env('LOG_LEVEL', 'debug'), 'with' => [ 'stream' => 'php://stderr', ], ], - 'syslog' => [ 'driver' => 'syslog', - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), ], - 'errorlog' => [ 'driver' => 'errorlog', - 'level' => 'debug', + 'level' => env('LOG_LEVEL', 'debug'), + ], + 'null' => [ + 'driver' => 'monolog', + 'handler' => \Monolog\Handler\NullHandler::class, + ], + 'emergency' => [ + 'path' => storage_path('logs/system.log'), ], ], - ]; diff --git a/config/mail.php b/config/mail.php index e0b3543632..8c27086d94 100644 --- a/config/mail.php +++ b/config/mail.php @@ -4,45 +4,76 @@ /* |-------------------------------------------------------------------------- - | Mail Driver + | Default Mailer |-------------------------------------------------------------------------- | - | Laravel supports both SMTP and PHP's "mail" function as drivers for the - | sending of e-mail. You may specify which one you're using throughout - | your application here. By default, Laravel is setup for SMTP mail. - | - | Supported: "smtp", "sendmail", "mailgun", "mandrill", "ses", - | "postmark", "sparkpost", "log", "array" + | This option controls the default mailer that is used to send any email + | messages sent by your application. Alternative mailers may be setup + | and used as needed; however, this mailer will be used by default. | */ - 'driver' => 'smtp', + 'default' => env('MAIL_MAILER', 'smtp'), /* |-------------------------------------------------------------------------- - | SMTP Host Address + | Mailer Configurations |-------------------------------------------------------------------------- | - | Here you may provide the host address of the SMTP server used by your - | applications. A default option is provided that is compatible with - | the Mailgun mail service which will provide reliable deliveries. + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. | - */ - - 'host' => 'smtp.mailgun.org', - - /* - |-------------------------------------------------------------------------- - | SMTP Host Port - |-------------------------------------------------------------------------- + | Winter supports a variety of mail "transport" drivers to be used while + | sending an e-mail. You will specify which one you are using for your + | mailers below. You are free to add additional mailers as required. | - | This is the SMTP port used by your application to deliver e-mails to - | users of the application. Like the host we have set this value to - | stay compatible with the Mailgun e-mail application by default. + | Supported: "smtp", "sendmail", "mailgun", "ses", + | "postmark", "log", "array", "failover" | */ - 'port' => 587, + 'mailers' => [ + 'smtp' => [ + 'encryption' => env('MAIL_ENCRYPTION', 'tls'), + 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), + 'password' => env('MAIL_PASSWORD'), + 'port' => env('MAIL_PORT', 587), + 'timeout' => null, + 'transport' => 'smtp', + 'username' => env('MAIL_USERNAME'), + ], + 'ses' => [ + 'transport' => 'ses', + ], + 'mailgun' => [ + 'transport' => 'mailgun', + ], + 'postmark' => [ + 'transport' => 'postmark', + ], + 'mail' => [ + 'transport' => 'mail', + ], + 'sendmail' => [ + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -t -i'), + 'transport' => 'sendmail', + ], + 'log' => [ + 'channel' => env('MAIL_LOG_CHANNEL'), + 'transport' => 'log', + ], + 'array' => [ + 'transport' => 'array', + ], + 'failover' => [ + 'mailers' => [ + 'smtp', + 'log', + ], + 'transport' => 'failover', + ], + ], /* |-------------------------------------------------------------------------- @@ -56,73 +87,7 @@ */ 'from' => [ - 'address' => 'noreply@domain.tld', - 'name' => 'Winter CMS', + 'address' => env('MAIL_FROM_ADDRESS', 'noreply@example.com'), + 'name' => env('MAIL_FROM_NAME', env('APP_NAME', 'Winter CMS')), ], - - /* - |-------------------------------------------------------------------------- - | E-Mail Encryption Protocol - |-------------------------------------------------------------------------- - | - | Here you may specify the encryption protocol that should be used when - | the application send e-mail messages. A sensible default using the - | transport layer security protocol should provide great security. - | - */ - - 'encryption' => 'tls', - - /* - |-------------------------------------------------------------------------- - | SMTP Server Username - |-------------------------------------------------------------------------- - | - | If your SMTP server requires a username for authentication, you should - | set it here. This will get used to authenticate with your server on - | connection. You may also set the "password" value below this one. - | - */ - - 'username' => null, - - /* - |-------------------------------------------------------------------------- - | SMTP Server Password - |-------------------------------------------------------------------------- - | - | Here you may set the password required by your SMTP server to send out - | messages from your application. This will be given to the server on - | connection so that the application will be able to send messages. - | - */ - - 'password' => null, - - /* - |-------------------------------------------------------------------------- - | Sendmail System Path - |-------------------------------------------------------------------------- - | - | When using the "sendmail" driver to send e-mails, we will need to know - | the path to where Sendmail lives on this server. A default path has - | been provided here, which will work well on most of your systems. - | - */ - - 'sendmail' => '/usr/sbin/sendmail -bs', - - /* - |-------------------------------------------------------------------------- - | Log Channel - |-------------------------------------------------------------------------- - | - | If you are using the "log" driver, you may specify the logging channel - | if you prefer to keep mail messages separate from other log entries - | for simpler reading. Otherwise, the default channel will be used. - | - */ - - // 'log_channel' => env('MAIL_LOG_CHANNEL'), - ]; diff --git a/config/queue.php b/config/queue.php index 308c0ef32a..342b9d650d 100644 --- a/config/queue.php +++ b/config/queue.php @@ -7,13 +7,13 @@ | Default Queue Connection Name |-------------------------------------------------------------------------- | - | The Winter CMS queue API supports an assortment of back-ends via a single + | Winter's queue API supports an assortment of back-ends via a single | API, giving you convenient access to each back-end using the same | syntax for every one. Here you may define a default connection. | */ - 'default' => 'sync', + 'default' => env('QUEUE_CONNECTION', 'sync'), /* |-------------------------------------------------------------------------- @@ -22,50 +22,49 @@ | | Here you may configure the connection information for each server that | is used by your application. A default configuration has been added - | for each back-end shipped with Laravel. You are free to add more. + | for each back-end shipped with Winter. You are free to add more. | | Drivers: "sync", "database", "beanstalkd", "sqs", "redis", "null" | */ 'connections' => [ - 'sync' => [ 'driver' => 'sync', ], - 'database' => [ - 'driver' => 'database', - 'table' => 'jobs', - 'queue' => 'default', + 'after_commit' => false, + 'driver' => 'database', + 'queue' => 'default', 'retry_after' => 90, + 'table' => 'jobs', ], - 'beanstalkd' => [ - 'driver' => 'beanstalkd', - 'host' => 'localhost', - 'queue' => 'default', + 'after_commit' => false, + 'block_for' => 0, + 'driver' => 'beanstalkd', + 'host' => 'localhost', + 'queue' => 'default', 'retry_after' => 90, - 'block_for' => 0, ], - 'sqs' => [ + 'after_commit' => false, 'driver' => 'sqs', - 'key' => '', - 'secret' => '', - 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', - 'queue' => 'your-queue-name', - 'region' => 'us-east-1', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), + 'queue' => env('SQS_QUEUE', 'default'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'suffix' => env('SQS_SUFFIX'), ], - 'redis' => [ - 'driver' => 'redis', - 'connection' => 'default', - 'queue' => 'default', + 'after_commit' => false, + 'block_for' => null, + 'connection' => 'default', + 'driver' => 'redis', + 'queue' => env('REDIS_QUEUE', 'default'), 'retry_after' => 90, - 'block_for' => null, ], - ], /* @@ -80,8 +79,8 @@ */ 'failed' => [ - 'database' => 'mysql', - 'table' => 'failed_jobs', + 'database' => env('DB_CONNECTION', 'mysql'), + 'driver' => env('QUEUE_FAILED_DRIVER', 'database-uuids'), + 'table' => 'failed_jobs', ], - ]; diff --git a/config/services.php b/config/services.php index e4438e8c2a..fd9b6e0161 100644 --- a/config/services.php +++ b/config/services.php @@ -8,39 +8,23 @@ |-------------------------------------------------------------------------- | | This file is for storing the credentials for third party services such - | as Stripe, Mailgun, Mandrill, and others. This file provides a sane - | default location for this type of information, allowing packages - | to have a conventional place to find your various credentials. + | as Mailgun, Postmark, AWS and more. This file provides the de facto + | location for this type of information, allowing packages to have + | a conventional file to locate the various service credentials. | */ 'mailgun' => [ - 'domain' => '', - 'secret' => '', - 'endpoint' => 'api.mailgun.net', // api.eu.mailgun.net for EU + 'domain' => env('MAILGUN_DOMAIN'), + 'endpoint' => env('MAILGUN_ENDPOINT', 'api.mailgun.net'), + 'secret' => env('MAILGUN_SECRET'), ], - - 'mandrill' => [ - 'secret' => '', - ], - 'postmark' => [ - 'token' => '', + 'token' => env('POSTMARK_TOKEN'), ], - 'ses' => [ - 'key' => '', - 'secret' => '', - 'region' => 'us-east-1', + 'key' => env('AWS_ACCESS_KEY_ID'), + 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'secret' => env('AWS_SECRET_ACCESS_KEY'), ], - - 'sparkpost' => [ - 'secret' => '', - ], - - 'stripe' => [ - 'model' => 'User', - 'secret' => '', - ], - ]; diff --git a/config/session.php b/config/session.php index 6886351ae6..2137951367 100644 --- a/config/session.php +++ b/config/session.php @@ -16,7 +16,7 @@ | */ - 'driver' => 'file', + 'driver' => env('SESSION_DRIVER', 'file'), /* |-------------------------------------------------------------------------- @@ -29,8 +29,7 @@ | */ - 'lifetime' => 120, - + 'lifetime' => env('SESSION_LIFETIME', 120), 'expire_on_close' => false, /* @@ -70,7 +69,7 @@ | */ - 'connection' => null, + 'connection' => env('SESSION_CONNECTION'), /* |-------------------------------------------------------------------------- @@ -90,13 +89,15 @@ | Session Cache Store |-------------------------------------------------------------------------- | - | When using the "apc", "memcached", or "dynamodb" session drivers you may + | While using one of the framework's cache driven session backends you may | list a cache store that should be used for these sessions. This value | must match with one of the application's configured cache "stores". | + | Affects: "apc", "dynamodb", "memcached", "redis" + | */ - 'store' => null, + 'store' => env('SESSION_STORE'), /* |-------------------------------------------------------------------------- @@ -109,7 +110,10 @@ | */ - 'lottery' => [2, 100], + 'lottery' => [ + 2, + 100, + ], /* |-------------------------------------------------------------------------- @@ -122,7 +126,7 @@ | */ - 'cookie' => 'winter_session', + 'cookie' => env('SESSION_COOKIE', str_slug(env('APP_NAME', 'winter'), '_') . '_session'), /* |-------------------------------------------------------------------------- @@ -148,7 +152,7 @@ | */ - 'domain' => null, + 'domain' => env('SESSION_DOMAIN'), /* |-------------------------------------------------------------------------- @@ -170,11 +174,11 @@ | | By setting this option to true, session cookies will only be sent back | to the server if the browser has a HTTPS connection. This will keep - | the cookie from being sent to you if it can not be done securely. + | the cookie from being sent to you when it can't be done securely. | */ - 'secure' => false, + 'secure' => env('SESSION_SECURE_COOKIE', false), /* |-------------------------------------------------------------------------- @@ -182,31 +186,31 @@ |-------------------------------------------------------------------------- | | This option determines how your cookies behave when cross-site requests - | take place and can be used to mitigate CSRF attacks. + | take place, and can be used to mitigate CSRF attacks. By default, we + | will set this value to "lax" since this is a secure default value. | | Cookies that match the domain of the current site, i.e. what's displayed | in the browser's address bar, are referred to as first-party cookies. | Similarly, cookies from domains other than the current site are referred | to as third-party cookies. | - | Cookies without a SameSite attribute will be treated as `SameSite=Lax`, + | Cookies without a SameSite attribute will be treated as `SameSite=lax`, | meaning the default behaviour will be to restrict cookies to first party | contexts only. | | Cookies for cross-site usage must specify `same_site` as 'None' and `secure` | as `true` to work correctly. | - | Lax - Cookies are allowed to be sent with top-level navigations and will + | lax - Cookies are allowed to be sent with top-level navigations and will | be sent along with GET request initiated by third party website. | This is the default value in modern browsers. | - | Strict - Cookies will only be sent in a first-party context and not be + | strict - Cookies will only be sent in a first-party context and not be | sent along with requests initiated by third party websites. | - | Supported: "Lax", "Strict" and "None" + | Supported: "lax", "strict", "none", null | */ - 'same_site' => 'Lax', - + 'same_site' => 'lax', ]; diff --git a/config/testing/cms.php b/config/testing/cms.php index ffa7eb71d6..f8660bbbde 100644 --- a/config/testing/cms.php +++ b/config/testing/cms.php @@ -96,7 +96,7 @@ | */ - 'pluginsPathLocal' => base_path('tests/fixtures/plugins'), + 'pluginsPathLocal' => base_path('modules/system/tests/fixtures/plugins'), /* |-------------------------------------------------------------------------- @@ -107,7 +107,65 @@ | */ - 'themesPathLocal' => base_path('tests/fixtures/themes'), + 'themesPathLocal' => base_path('modules/cms/tests/fixtures/themes'), + + /* + |-------------------------------------------------------------------------- + | Resource storage + |-------------------------------------------------------------------------- + | + | Specifies the configuration for resource storage, such as media and + | upload files. These resources are used: + | + | media - generated by the media manager. + | uploads - generated by attachment model relationships. + | resized - generated by System\Classes\ImageResizer or the resize() Twig filter + | + | For each resource you can specify: + | + | disk - filesystem disk, as specified in filesystems.php config. + | folder - a folder prefix for storing all generated files inside. + | path - the public path relative to the application base URL, + | or you can specify a full URL path. + | + | Optionally, you can specify how long temporary URLs to protected files + | in cloud storage (ex. AWS, RackSpace) are valid for by setting + | temporaryUrlTTL to a value in seconds to define a validity period. This + | is only used for the 'uploads' config when using a supported cloud disk + | + | NOTE: If you have installed Winter in a subfolder, are using local + | storage and are not using a linkPolicy of 'force' you should include + | the path to the subfolder in the `path` option for these storage + | configurations. + | + | Example: Winter is installed under https://localhost/projects/winter. + | You should then specify `/projects/winter/storage/app/uploads` as the + | path for the uploads disk and `/projects/winter/storage/app/media` as + | the path for the media disk. + */ + + 'storage' => [ + + 'uploads' => [ + 'disk' => 'local', + 'folder' => 'uploads', + 'path' => '/storage/tests/app/uploads', + 'temporaryUrlTTL' => 3600, + ], + + 'media' => [ + 'disk' => 'local', + 'folder' => 'media', + 'path' => '/storage/tests/app/media', + ], + + 'resized' => [ + 'disk' => 'local', + 'folder' => 'resized', + 'path' => '/storage/tests/app/resized', + ], + + ], /* |-------------------------------------------------------------------------- diff --git a/config/testing/filesystems.php b/config/testing/filesystems.php new file mode 100644 index 0000000000..d7bf8bf430 --- /dev/null +++ b/config/testing/filesystems.php @@ -0,0 +1,64 @@ + 'local', + + /* + |-------------------------------------------------------------------------- + | Default Cloud Filesystem Disk + |-------------------------------------------------------------------------- + | + | Many applications store files both locally and in the cloud. For this + | reason, you may specify a default "cloud" driver here. This driver + | will be bound as the Cloud disk implementation in the container. + | + */ + + 'cloud' => 's3', + + /* + |-------------------------------------------------------------------------- + | Filesystem Disks + |-------------------------------------------------------------------------- + | + | Here you may configure as many filesystem "disks" as you wish, and you + | may even configure multiple disks of the same driver. Defaults have + | been setup for each driver as an example of the required options. + | + | Supported Drivers: "local", "ftp", "sftp", "s3" + | + */ + + 'disks' => [ + + 'local' => [ + 'driver' => 'local', + 'root' => base_path('storage/tests/app'), + 'url' => '/storage/tests/app', + ], + + 's3' => [ + 'driver' => 's3', + 'key' => '', + 'secret' => '', + 'region' => '', + 'bucket' => '', + // 'url' => env('AWS_URL'), + // 'endpoint' => env('AWS_ENDPOINT'), + ], + + ], + +]; diff --git a/config/view.php b/config/view.php index 9128d732f9..63394f68a5 100644 --- a/config/view.php +++ b/config/view.php @@ -15,6 +15,7 @@ 'paths' => [ // Default Laravel Blade template location + // @see https://github.com/octobercms/october/issues/3473 & https://github.com/octobercms/october/issues/3459 // realpath(base_path('resources/views')) ], @@ -29,6 +30,5 @@ | */ - 'compiled' => realpath(storage_path('framework/views')), - + 'compiled' => env('VIEW_COMPILED_PATH', realpath(storage_path('framework/views'))), ]; diff --git a/modules/backend/.eslintignore b/modules/backend/.eslintignore index e0d3f30269..b84f8627b8 100644 --- a/modules/backend/.eslintignore +++ b/modules/backend/.eslintignore @@ -12,3 +12,6 @@ controllers/**/*.js formwidgets/**/*.js reportwidgets/**/*.js widgets/**/*.js + +# Ignore test fixtures +tests diff --git a/modules/backend/ServiceProvider.php b/modules/backend/ServiceProvider.php index d8c19f9fea..2dea56797c 100644 --- a/modules/backend/ServiceProvider.php +++ b/modules/backend/ServiceProvider.php @@ -20,8 +20,7 @@ class ServiceProvider extends ModuleServiceProvider */ public function register() { - parent::register('backend'); - + $this->registerConsole(); $this->registerMailer(); $this->registerAssetBundles(); @@ -47,6 +46,18 @@ public function boot() parent::boot('backend'); } + /** + * Register console commands + */ + protected function registerConsole() + { + $this->registerConsoleCommand('create.controller', \Backend\Console\CreateController::class); + $this->registerConsoleCommand('create.formwidget', \Backend\Console\CreateFormWidget::class); + $this->registerConsoleCommand('create.reportwidget', \Backend\Console\CreateReportWidget::class); + + $this->registerConsoleCommand('winter.passwd', \Backend\Console\WinterPasswd::class); + } + /** * Register mail templates */ @@ -71,6 +82,8 @@ protected function registerAssetBundles() $combiner->registerBundle('~/modules/backend/widgets/table/assets/js/build.js'); $combiner->registerBundle('~/modules/backend/widgets/mediamanager/assets/js/mediamanager-browser.js'); $combiner->registerBundle('~/modules/backend/widgets/mediamanager/assets/less/mediamanager.less'); + $combiner->registerBundle('~/modules/backend/widgets/reportcontainer/assets/less/reportcontainer.less'); + $combiner->registerBundle('~/modules/backend/widgets/table/assets/less/table.less'); $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/less/codeeditor.less'); $combiner->registerBundle('~/modules/backend/formwidgets/repeater/assets/less/repeater.less'); $combiner->registerBundle('~/modules/backend/formwidgets/codeeditor/assets/js/build.js'); diff --git a/modules/backend/assets/css/winter.css b/modules/backend/assets/css/winter.css index 2f190130de..96bfcd3f61 100644 --- a/modules/backend/assets/css/winter.css +++ b/modules/backend/assets/css/winter.css @@ -1,1132 +1,1129 @@ @import "../vendor/jcrop/css/jquery.Jcrop.min.css"; @import "../../../system/assets/vendor/prettify/prettify.css"; @import "../../../system/assets/vendor/prettify/theme-desert.css"; -@-webkit-keyframes showSweetAlert {0% {transform:scale(0.7);-webkit-transform:scale(0.7) }45% {transform:scale(1.05);-webkit-transform:scale(1.05) }80% {transform:scale(0.95);-webkit-tranform:scale(0.95) }100% {transform:scale(1);-webkit-transform:scale(1) }} -@keyframes showSweetAlert {0% {transform:scale(0.7);-webkit-transform:scale(0.7) }45% {transform:scale(1.05);-webkit-transform:scale(1.05) }80% {transform:scale(0.95);-webkit-tranform:scale(0.95) }100% {transform:scale(1);-webkit-transform:scale(1) }} -@-webkit-keyframes hideSweetAlert {0% {transform:scale(1);-webkit-transform:scale(1) }100% {transform:scale(0.5);-webkit-transform:scale(0.5) }} -@keyframes hideSweetAlert {0% {transform:scale(1);-webkit-transform:scale(1) }100% {transform:scale(0.5);-webkit-transform:scale(0.5) }} -.showSweetAlert {-webkit-animation:showSweetAlert 0.3s;animation:showSweetAlert 0.3s} -.hideSweetAlert {-webkit-animation:hideSweetAlert 0.2s;animation:hideSweetAlert 0.2s} -@-webkit-keyframes animateSuccessTip {0% {width:0;left:1px;top:19px }54% {width:0;left:1px;top:19px }70% {width:50px;left:-8px;top:37px }84% {width:17px;left:21px;top:48px }100% {width:25px;left:14px;top:45px }} -@keyframes animateSuccessTip {0% {width:0;left:1px;top:19px }54% {width:0;left:1px;top:19px }70% {width:50px;left:-8px;top:37px }84% {width:17px;left:21px;top:48px }100% {width:25px;left:14px;top:45px }} -@-webkit-keyframes animateSuccessLong {0% {width:0;right:46px;top:54px }65% {width:0;right:46px;top:54px }84% {width:55px;right:0;top:35px }100% {width:47px;right:8px;top:38px }} -@keyframes animateSuccessLong {0% {width:0;right:46px;top:54px }65% {width:0;right:46px;top:54px }84% {width:55px;right:0;top:35px }100% {width:47px;right:8px;top:38px }} -@-webkit-keyframes rotatePlaceholder {0% {transform:rotate(-45deg);-webkit-transform:rotate(-45deg) }5% {transform:rotate(-45deg);-webkit-transform:rotate(-45deg) }12% {transform:rotate(-405deg);-webkit-transform:rotate(-405deg) }100% {transform:rotate(-405deg);-webkit-transform:rotate(-405deg) }} -@keyframes rotatePlaceholder {0% {transform:rotate(-45deg);-webkit-transform:rotate(-45deg) }5% {transform:rotate(-45deg);-webkit-transform:rotate(-45deg) }12% {transform:rotate(-405deg);-webkit-transform:rotate(-405deg) }100% {transform:rotate(-405deg);-webkit-transform:rotate(-405deg) }} -.animateSuccessTip {-webkit-animation:animateSuccessTip 0.75s;animation:animateSuccessTip 0.75s} -.animateSuccessLong {-webkit-animation:animateSuccessLong 0.75s;animation:animateSuccessLong 0.75s} -.icon.success.animate::after {-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in} -@-webkit-keyframes animateErrorIcon {0% {transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0 }100% {transform:rotateX(0deg);-webkit-transform:rotateX(0deg);opacity:1 }} -@keyframes animateErrorIcon {0% {transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0 }100% {transform:rotateX(0deg);-webkit-transform:rotateX(0deg);opacity:1 }} -.animateErrorIcon {-webkit-animation:animateErrorIcon 0.5s;animation:animateErrorIcon 0.5s} -@-webkit-keyframes animateXMark {0% {transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0 }50% {transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0 }80% {transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px }100% {transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1 }} -@keyframes animateXMark {0% {transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0 }50% {transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0 }80% {transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px }100% {transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1 }} -.animateXMark {-webkit-animation:animateXMark 0.5s;animation:animateXMark 0.5s} -@-webkit-keyframes pulseWarning {0% {border-color:#F8D486 }100% {border-color:#F8BB86 }} -@keyframes pulseWarning {0% {border-color:#F8D486 }100% {border-color:#F8BB86 }} -.pulseWarning {-webkit-animation:pulseWarning 0.75s infinite alternate;animation:pulseWarning 0.75s infinite alternate} -@-webkit-keyframes pulseWarningIns {0% {background-color:#F8D486 }100% {background-color:#F8BB86 }} -@keyframes pulseWarningIns {0% {background-color:#F8D486 }100% {background-color:#F8BB86 }} -.pulseWarningIns {-webkit-animation:pulseWarningIns 0.75s infinite alternate;animation:pulseWarningIns 0.75s infinite alternate} -.sweet-overlay {background-color:rgba(0,0,0,0.4);position:fixed;left:0;right:0;top:0;bottom:0;display:none;z-index:7600} -.sweet-alert {background-color:#f9f9f9;width:478px;padding:17px;border-radius:5px;text-align:center;position:fixed;left:50%;top:50%;margin-left:-256px;margin-top:-200px;overflow:hidden;display:none;z-index:8600} -@media all and (max-width:767px) {.sweet-alert {width:auto;margin-left:0;margin-right:0;left:15px;right:15px }} -.sweet-alert .icon {width:80px;height:80px;border:4px solid gray;border-radius:50%;margin:20px auto;position:relative;box-sizing:content-box} -.sweet-alert .icon.error {border-color:#952518} -.sweet-alert .icon.error .x-mark {position:relative;display:block} -.sweet-alert .icon.error .line {position:absolute;height:5px;width:47px;background-color:#ab2a1c;display:block;top:37px;border-radius:2px} -.sweet-alert .icon.error .line.left {-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px} -.sweet-alert .icon.error .line.right {-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px} -.sweet-alert .icon.warning {border-color:#eea236} -.sweet-alert .icon.warning .body {position:absolute;width:5px;height:47px;left:50%;top:10px;border-radius:2px;margin-left:-2px;background-color:#f0ad4e} -.sweet-alert .icon.warning .dot {position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;left:50%;bottom:10px;background-color:#f0ad4e} -.sweet-alert .icon.info {border-color:#46b8da} -.sweet-alert .icon.info::before {content:"";position:absolute;width:5px;height:29px;left:50%;bottom:17px;border-radius:2px;margin-left:-2px;background-color:#5bc0de} -.sweet-alert .icon.info::after {content:"";position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px;background-color:#5bc0de} -.sweet-alert .icon.success {border-color:#2b9854} +@-webkit-keyframes showSweetAlert{0%{transform:scale(0.7);-webkit-transform:scale(0.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(0.95);-webkit-tranform:scale(0.95)}100%{transform:scale(1);-webkit-transform:scale(1)}} +@keyframes showSweetAlert{0%{transform:scale(0.7);-webkit-transform:scale(0.7)}45%{transform:scale(1.05);-webkit-transform:scale(1.05)}80%{transform:scale(0.95);-webkit-tranform:scale(0.95)}100%{transform:scale(1);-webkit-transform:scale(1)}} +@-webkit-keyframes hideSweetAlert{0%{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(0.5);-webkit-transform:scale(0.5)}} +@keyframes hideSweetAlert{0%{transform:scale(1);-webkit-transform:scale(1)}100%{transform:scale(0.5);-webkit-transform:scale(0.5)}} +.showSweetAlert{-webkit-animation:showSweetAlert 0.3s;animation:showSweetAlert 0.3s} +.hideSweetAlert{-webkit-animation:hideSweetAlert 0.2s;animation:hideSweetAlert 0.2s} +@-webkit-keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}} +@keyframes animateSuccessTip{0%{width:0;left:1px;top:19px}54%{width:0;left:1px;top:19px}70%{width:50px;left:-8px;top:37px}84%{width:17px;left:21px;top:48px}100%{width:25px;left:14px;top:45px}} +@-webkit-keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}} +@keyframes animateSuccessLong{0%{width:0;right:46px;top:54px}65%{width:0;right:46px;top:54px}84%{width:55px;right:0;top:35px}100%{width:47px;right:8px;top:38px}} +@-webkit-keyframes rotatePlaceholder{0%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}100%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}} +@keyframes rotatePlaceholder{0%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}5%{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}12%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}100%{transform:rotate(-405deg);-webkit-transform:rotate(-405deg)}} +.animateSuccessTip{-webkit-animation:animateSuccessTip 0.75s;animation:animateSuccessTip 0.75s} +.animateSuccessLong{-webkit-animation:animateSuccessLong 0.75s;animation:animateSuccessLong 0.75s} +.icon.success.animate::after{-webkit-animation:rotatePlaceholder 4.25s ease-in;animation:rotatePlaceholder 4.25s ease-in} +@-webkit-keyframes animateErrorIcon{0%{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);-webkit-transform:rotateX(0deg);opacity:1}} +@keyframes animateErrorIcon{0%{transform:rotateX(100deg);-webkit-transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);-webkit-transform:rotateX(0deg);opacity:1}} +.animateErrorIcon{-webkit-animation:animateErrorIcon 0.5s;animation:animateErrorIcon 0.5s} +@-webkit-keyframes animateXMark{0%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}50%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}} +@keyframes animateXMark{0%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}50%{transform:scale(0.4);-webkit-transform:scale(0.4);margin-top:26px;opacity:0}80%{transform:scale(1.15);-webkit-transform:scale(1.15);margin-top:-6px}100%{transform:scale(1);-webkit-transform:scale(1);margin-top:0;opacity:1}} +.animateXMark{-webkit-animation:animateXMark 0.5s;animation:animateXMark 0.5s} +@-webkit-keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}} +@keyframes pulseWarning{0%{border-color:#F8D486}100%{border-color:#F8BB86}} +.pulseWarning{-webkit-animation:pulseWarning 0.75s infinite alternate;animation:pulseWarning 0.75s infinite alternate} +@-webkit-keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}} +@keyframes pulseWarningIns{0%{background-color:#F8D486}100%{background-color:#F8BB86}} +.pulseWarningIns{-webkit-animation:pulseWarningIns 0.75s infinite alternate;animation:pulseWarningIns 0.75s infinite alternate} +.sweet-overlay{background-color:rgba(0,0,0,0.4);position:fixed;left:0;right:0;top:0;bottom:0;display:none;z-index:7600} +.sweet-alert{background-color:#f9f9f9;width:478px;padding:17px;border-radius:5px;text-align:center;position:fixed;left:50%;top:50%;margin-left:-256px;margin-top:-200px;overflow:hidden;display:none;z-index:8600} +@media all and (max-width:767px){.sweet-alert{width:auto;margin-left:0;margin-right:0;left:15px;right:15px}} +.sweet-alert .icon{width:80px;height:80px;border:4px solid gray;border-radius:50%;margin:20px auto;position:relative;box-sizing:content-box} +.sweet-alert .icon.error{border-color:#952518} +.sweet-alert .icon.error .x-mark{position:relative;display:block} +.sweet-alert .icon.error .line{position:absolute;height:5px;width:47px;background-color:#ab2a1c;display:block;top:37px;border-radius:2px} +.sweet-alert .icon.error .line.left{-webkit-transform:rotate(45deg);transform:rotate(45deg);left:17px} +.sweet-alert .icon.error .line.right{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);right:16px} +.sweet-alert .icon.warning{border-color:#eea236} +.sweet-alert .icon.warning .body{position:absolute;width:5px;height:47px;left:50%;top:10px;border-radius:2px;margin-left:-2px;background-color:#f0ad4e} +.sweet-alert .icon.warning .dot{position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;left:50%;bottom:10px;background-color:#f0ad4e} +.sweet-alert .icon.info{border-color:#46b8da} +.sweet-alert .icon.info::before{content:"";position:absolute;width:5px;height:29px;left:50%;bottom:17px;border-radius:2px;margin-left:-2px;background-color:#5bc0de} +.sweet-alert .icon.info::after{content:"";position:absolute;width:7px;height:7px;border-radius:50%;margin-left:-3px;top:19px;background-color:#5bc0de} +.sweet-alert .icon.success{border-color:#2b9854} .sweet-alert .icon.success::before, -.sweet-alert .icon.success::after {content:'';border-radius:50%;position:absolute;width:60px;height:120px;background:white;-webkit-transform:rotate(45deg);transform:rotate(45deg)} -.sweet-alert .icon.success::before {border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px} -.sweet-alert .icon.success::after {border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px} -.sweet-alert .icon.success .placeholder {width:80px;height:80px;border:4px solid rgba(49,172,95,0.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2} -.sweet-alert .icon.success .fix {width:5px;height:90px;background-color:#f9f9f9;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)} -.sweet-alert .icon.success .line {height:5px;background-color:#31ac5f;display:block;border-radius:2px;position:absolute;z-index:2} -.sweet-alert .icon.success .line.tip {width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)} -.sweet-alert .icon.success .line.long {width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)} -.sweet-alert .icon.custom {background-size:contain;border-radius:0;border:none;background-position:center center;background-repeat:no-repeat} -.sweet-alert .btn-default:focus {border-color:#656d79;outline:0} -.sweet-alert .btn-success:focus {border-color:#2b9854;outline:0} -.sweet-alert .btn-info:focus {border-color:#46b8da;outline:0} -.sweet-alert .btn-danger:focus {border-color:#952518;outline:0} -.sweet-alert .btn-warning:focus {border-color:#eea236;outline:0} -.sweet-alert button::-moz-focus-inner {border:0} -.sweet-overlay {background-color:rgba(0,0,0,0.2);z-index:10499} -.sweet-alert {text-align:right;border-radius:3px;-webkit-box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22);box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22);z-index:10500} -.sweet-alert h2 {word-break:break-word;word-wrap:break-word;max-height:350px;overflow-y:auto;margin:10px 0 17px 0;color:#2b3e50;text-align:left;font-size:15px;line-height:23px} -.sweet-alert p {margin:0} -.sweet-alert p.text-muted {margin-bottom:20px;color:#555} -.control-simplelist {font-size:13px;padding:20px 20px 2px 20px;margin-bottom:20px;background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -.control-simplelist ul {padding-left:15px} -.control-simplelist.form-control ul {margin-bottom:0} -.control-simplelist.form-control li {padding-top:5px;padding-bottom:5px} +.sweet-alert .icon.success::after{content:'';border-radius:50%;position:absolute;width:60px;height:120px;background:white;-webkit-transform:rotate(45deg);transform:rotate(45deg)} +.sweet-alert .icon.success::before{border-radius:120px 0 0 120px;top:-7px;left:-33px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:60px 60px;transform-origin:60px 60px} +.sweet-alert .icon.success::after{border-radius:0 120px 120px 0;top:-11px;left:30px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:0 60px;transform-origin:0 60px} +.sweet-alert .icon.success .placeholder{width:80px;height:80px;border:4px solid rgba(49,172,95,0.2);border-radius:50%;box-sizing:content-box;position:absolute;left:-4px;top:-4px;z-index:2} +.sweet-alert .icon.success .fix{width:5px;height:90px;background-color:#f9f9f9;position:absolute;left:28px;top:8px;z-index:1;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)} +.sweet-alert .icon.success .line{height:5px;background-color:#31ac5f;display:block;border-radius:2px;position:absolute;z-index:2} +.sweet-alert .icon.success .line.tip{width:25px;left:14px;top:46px;-webkit-transform:rotate(45deg);transform:rotate(45deg)} +.sweet-alert .icon.success .line.long{width:47px;right:8px;top:38px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)} +.sweet-alert .icon.custom{background-size:contain;border-radius:0;border:none;background-position:center center;background-repeat:no-repeat} +.sweet-alert .btn-default:focus{border-color:#656d79;outline:0} +.sweet-alert .btn-success:focus{border-color:#2b9854;outline:0} +.sweet-alert .btn-info:focus{border-color:#46b8da;outline:0} +.sweet-alert .btn-danger:focus{border-color:#952518;outline:0} +.sweet-alert .btn-warning:focus{border-color:#eea236;outline:0} +.sweet-alert button::-moz-focus-inner{border:0} +.sweet-overlay{background-color:rgba(0,0,0,0.2);z-index:10499} +.sweet-alert{text-align:right;border-radius:3px;-webkit-box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22);box-shadow:0 27px 24px 0 rgba(0,0,0,0.2),0 40px 77px 0 rgba(0,0,0,0.22);z-index:10500} +.sweet-alert h2{word-break:break-word;word-wrap:break-word;max-height:350px;overflow-y:auto;margin:10px 0 17px 0;color:#2b3e50;text-align:left;font-size:15px;line-height:23px} +.sweet-alert p{margin:0} +.sweet-alert p.text-muted{margin-bottom:20px;color:#555} +.control-simplelist{font-size:13px;padding:20px 20px 2px 20px;margin-bottom:20px;background:#fff;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +.control-simplelist ul{padding-left:15px} +.control-simplelist.form-control ul{margin-bottom:0} +.control-simplelist.form-control li{padding-top:5px;padding-bottom:5px} .control-simplelist.with-icons ul, .control-simplelist.with-checkboxes ul, .control-simplelist.is-divided ul, -.control-simplelist.is-selectable ul {list-style-type:none;padding-left:0} -.control-simplelist.with-checkboxes li {margin-top:-5px} -.control-simplelist.with-checkboxes li:first-child {margin-top:0} -.control-simplelist.with-checkboxes li:last-child div.custom-checkbox {margin-bottom:0} -.control-simplelist.with-checkboxes li:last-child div.custom-checkbox label {margin-bottom:5px} -.control-simplelist.is-sortable li.placeholder {position:relative} -.control-simplelist.is-sortable li.placeholder:before {top:-10px;position:absolute;content:'';display:block;width:0;height:0;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;border-left:5px solid #999} -.control-simplelist.is-sortable li.dragged {position:absolute;opacity:0.5;filter:alpha(opacity=50);z-index:2000;color:#e67e22;width:auto !important} -.control-simplelist.is-scrollable {height:200px} -.control-simplelist.is-scrollable.size-tiny {min-height:250px} -.control-simplelist.is-scrollable.size-small {min-height:300px} -.control-simplelist.is-scrollable.size-large {min-height:400px} -.control-simplelist.is-scrollable.size-huge {min-height:450px} -.control-simplelist.is-scrollable.size-giant {min-height:550px} +.control-simplelist.is-selectable ul{list-style-type:none;padding-left:0} +.control-simplelist.with-checkboxes li{margin-top:-5px} +.control-simplelist.with-checkboxes li:first-child{margin-top:0} +.control-simplelist.with-checkboxes li:last-child div.custom-checkbox{margin-bottom:0} +.control-simplelist.with-checkboxes li:last-child div.custom-checkbox label{margin-bottom:5px} +.control-simplelist.is-sortable li.placeholder{position:relative} +.control-simplelist.is-sortable li.placeholder:before{top:-10px;position:absolute;content:'';display:block;width:0;height:0;border-top:4.5px solid transparent;border-bottom:4.5px solid transparent;border-left:5px solid #999} +.control-simplelist.is-sortable li.dragged{position:absolute;opacity:0.5;filter:alpha(opacity=50);z-index:2000;color:#e67e22;width:auto !important} +.control-simplelist.is-scrollable{height:200px} +.control-simplelist.is-scrollable.size-tiny{min-height:250px} +.control-simplelist.is-scrollable.size-small{min-height:300px} +.control-simplelist.is-scrollable.size-large{min-height:400px} +.control-simplelist.is-scrollable.size-huge{min-height:450px} +.control-simplelist.is-scrollable.size-giant{min-height:550px} .control-simplelist.is-divided, .control-simplelist.is-selectable, -.control-simplelist.is-selectable-box {padding:0} +.control-simplelist.is-selectable-box{padding:0} .control-simplelist.is-divided li .heading, .control-simplelist.is-selectable li .heading, -.control-simplelist.is-selectable-box li .heading {font-size:14px;font-weight:500} +.control-simplelist.is-selectable-box li .heading{font-size:14px;font-weight:500} .control-simplelist.is-divided li, -.control-simplelist.is-selectable li {padding:5px 10px;border-bottom:1px solid #d4d8da} +.control-simplelist.is-selectable li{padding:5px 10px;border-bottom:1px solid #d4d8da} .control-simplelist.is-divided li:last-child, -.control-simplelist.is-selectable li:last-child {border-bottom:none} -.control-simplelist.is-selectable li a {padding:5px 10px;margin:-5px -10px;display:block;color:#333} -.control-simplelist.is-selectable li:hover {background:#4ea5e0;cursor:pointer} +.control-simplelist.is-selectable li:last-child{border-bottom:none} +.control-simplelist.is-selectable li a{padding:5px 10px;margin:-5px -10px;display:block;color:#333} +.control-simplelist.is-selectable li:hover{background:#4ea5e0;cursor:pointer} .control-simplelist.is-selectable li:hover, -.control-simplelist.is-selectable li:hover a {color:white} -.control-simplelist.is-selectable li:hover a {text-decoration:none} -.control-simplelist.is-selectable li.active a {background:#f0f0f0} -.control-simplelist.is-selectable li.active a:hover {background:#4ea5e0} -.control-simplelist.is-selectable-box {padding-top:15px;margin-bottom:0} -.control-simplelist.is-selectable-box li {width:155px;margin:8px;display:inline-block;text-align:center;vertical-align:top} -.control-simplelist.is-selectable-box li a {text-decoration:none;display:block;color:#333} -.control-simplelist.is-selectable-box li a .box {display:block;width:155px;height:155px;border:3px solid rgba(0,0,0,0.1);position:relative;-webkit-transition:border 0.3s ease;transition:border 0.3s ease} -.control-simplelist.is-selectable-box li a .image {display:block;width:56px;height:56px;position:absolute;top:50%;left:50%;margin-top:-28px;margin-left:-28px} -.control-simplelist.is-selectable-box li a .image >i {font-size:56px;color:rgba(0,0,0,0.25)} -.control-simplelist.is-selectable-box li a .heading {margin:7px 0;padding:0} -.control-simplelist.is-selectable-box li a .description {font-size:12px} -.control-simplelist.is-selectable-box li a:hover .box {border-color:rgba(0,0,0,0.2)} -.control-simplelist.is-selectable-box li a:hover .image >i {color:rgba(0,0,0,0.45)} -.list-preview .control-simplelist.is-selectable ul {margin-bottom:0} -.drag-noselect {-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} -.control-scrollbar {position:relative;overflow:hidden;height:100%} -.control-scrollbar >.scrollbar-scrollbar {position:absolute;z-index:100} -.control-scrollbar >.scrollbar-scrollbar .scrollbar-track {background-color:transparent;position:relative;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px} -.control-scrollbar >.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb {background-color:rgba(0,0,0,0.35);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;overflow:hidden;position:absolute} -.control-scrollbar >.scrollbar-scrollbar.disabled {display:none !important} -.control-scrollbar.vertical >.scrollbar-scrollbar {right:0;margin-right:5px;width:6px} -.control-scrollbar.vertical >.scrollbar-scrollbar .scrollbar-track {height:100%;width:6px} -.control-scrollbar.vertical >.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb {height:20px;width:6px;top:0;left:0} -.control-scrollbar.vertical >.scrollbar-scrollbar:active, -.control-scrollbar.vertical >.scrollbar-scrollbar:hover {width:8px;-webkit-transition:width 0.3s;transition:width 0.3s} -.control-scrollbar.vertical >.scrollbar-scrollbar:active .scrollbar-track, -.control-scrollbar.vertical >.scrollbar-scrollbar:hover .scrollbar-track, -.control-scrollbar.vertical >.scrollbar-scrollbar:active .scrollbar-thumb, -.control-scrollbar.vertical >.scrollbar-scrollbar:hover .scrollbar-thumb {width:8px;-webkit-transition:width 0.3s;transition:width 0.3s} -.control-scrollbar.horizontal >.scrollbar-scrollbar {margin:0 0 5px;clear:both;height:6px} -.control-scrollbar.horizontal >.scrollbar-scrollbar .scrollbar-track {width:100%;height:6px} -.control-scrollbar.horizontal >.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb {height:6px;margin:2px 0;left:0;top:0} -.control-scrollbar.horizontal >.scrollbar-scrollbar:active, -.control-scrollbar.horizontal >.scrollbar-scrollbar:hover {height:8px;-webkit-transition:height 0.3s;transition:height 0.3s} -.control-scrollbar.horizontal >.scrollbar-scrollbar:active .scrollbar-track, -.control-scrollbar.horizontal >.scrollbar-scrollbar:hover .scrollbar-track, -.control-scrollbar.horizontal >.scrollbar-scrollbar:active .scrollbar-thumb, -.control-scrollbar.horizontal >.scrollbar-scrollbar:hover .scrollbar-thumb {height:8px;-webkit-transition:height 0.3s;transition:height 0.3s} -html.mobile .control-scrollbar {overflow:auto;-webkit-overflow-scrolling:touch} -.no-touch .control-scrollbar >.scrollbar-scrollbar {opacity:0;-webkit-transition:opacity 0.3s;transition:opacity 0.3s} -.no-touch .control-scrollbar:active >.scrollbar-scrollbar, -.no-touch .control-scrollbar:hover >.scrollbar-scrollbar {opacity:1} -@media (max-width:768px) {.responsive-sidebar >.layout-cell:last-child .control-scrollbar {overflow:visible;height:auto }.responsive-sidebar >.layout-cell:last-child .control-scrollbar .scrollbar-scrollbar {display:none !important }} -.control-filelist p.no-data {padding:22px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:normal;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -.control-filelist ul {padding:0;margin:0} -.control-filelist ul li {font-weight:normal;line-height:150%;position:relative;list-style:none} -.control-filelist ul li a:hover {background:#ddd} -.control-filelist ul li.active >a {background:#ddd;position:relative} -.control-filelist ul li.active >a:after {position:absolute;height:100%;width:4px;left:0;top:0;background:#e67e22;display:block;content:' '} -.control-filelist ul li a {display:block;padding:10px 45px 10px 20px;outline:none} +.control-simplelist.is-selectable li:hover a{color:white} +.control-simplelist.is-selectable li:hover a{text-decoration:none} +.control-simplelist.is-selectable li.active a{background:#f0f0f0} +.control-simplelist.is-selectable li.active a:hover{background:#4ea5e0} +.control-simplelist.is-selectable-box{padding-top:15px;margin-bottom:0} +.control-simplelist.is-selectable-box li{width:155px;margin:8px;display:inline-block;text-align:center;vertical-align:top} +.control-simplelist.is-selectable-box li a{text-decoration:none;display:block;color:#333} +.control-simplelist.is-selectable-box li a .box{display:block;width:155px;height:155px;border:3px solid rgba(0,0,0,0.1);position:relative;-webkit-transition:border 0.3s ease;transition:border 0.3s ease} +.control-simplelist.is-selectable-box li a .image{display:block;width:56px;height:56px;position:absolute;top:50%;left:50%;margin-top:-28px;margin-left:-28px} +.control-simplelist.is-selectable-box li a .image>i{font-size:56px;color:rgba(0,0,0,0.25)} +.control-simplelist.is-selectable-box li a .heading{margin:7px 0;padding:0} +.control-simplelist.is-selectable-box li a .description{font-size:12px} +.control-simplelist.is-selectable-box li a:hover .box{border-color:rgba(0,0,0,0.2)} +.control-simplelist.is-selectable-box li a:hover .image>i{color:rgba(0,0,0,0.45)} +.list-preview .control-simplelist.is-selectable ul{margin-bottom:0} +.drag-noselect{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none} +.control-scrollbar{position:relative;overflow:hidden;height:100%} +.control-scrollbar>.scrollbar-scrollbar{position:absolute;z-index:100} +.control-scrollbar>.scrollbar-scrollbar .scrollbar-track{background-color:transparent;position:relative;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px} +.control-scrollbar>.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb{background-color:rgba(0,0,0,0.35);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;cursor:pointer;overflow:hidden;position:absolute} +.control-scrollbar>.scrollbar-scrollbar.disabled{display:none !important} +.control-scrollbar.vertical>.scrollbar-scrollbar{right:0;margin-right:5px;width:6px} +.control-scrollbar.vertical>.scrollbar-scrollbar .scrollbar-track{height:100%;width:6px} +.control-scrollbar.vertical>.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb{height:20px;width:6px;top:0;left:0} +.control-scrollbar.vertical>.scrollbar-scrollbar:active, +.control-scrollbar.vertical>.scrollbar-scrollbar:hover{width:8px;-webkit-transition:width 0.3s;transition:width 0.3s} +.control-scrollbar.vertical>.scrollbar-scrollbar:active .scrollbar-track, +.control-scrollbar.vertical>.scrollbar-scrollbar:hover .scrollbar-track, +.control-scrollbar.vertical>.scrollbar-scrollbar:active .scrollbar-thumb, +.control-scrollbar.vertical>.scrollbar-scrollbar:hover .scrollbar-thumb{width:8px;-webkit-transition:width 0.3s;transition:width 0.3s} +.control-scrollbar.horizontal>.scrollbar-scrollbar{margin:0 0 5px;clear:both;height:6px} +.control-scrollbar.horizontal>.scrollbar-scrollbar .scrollbar-track{width:100%;height:6px} +.control-scrollbar.horizontal>.scrollbar-scrollbar .scrollbar-track .scrollbar-thumb{height:6px;margin:2px 0;left:0;top:0} +.control-scrollbar.horizontal>.scrollbar-scrollbar:active, +.control-scrollbar.horizontal>.scrollbar-scrollbar:hover{height:8px;-webkit-transition:height 0.3s;transition:height 0.3s} +.control-scrollbar.horizontal>.scrollbar-scrollbar:active .scrollbar-track, +.control-scrollbar.horizontal>.scrollbar-scrollbar:hover .scrollbar-track, +.control-scrollbar.horizontal>.scrollbar-scrollbar:active .scrollbar-thumb, +.control-scrollbar.horizontal>.scrollbar-scrollbar:hover .scrollbar-thumb{height:8px;-webkit-transition:height 0.3s;transition:height 0.3s} +html.mobile .control-scrollbar{overflow:auto;-webkit-overflow-scrolling:touch} +.no-touch .control-scrollbar>.scrollbar-scrollbar{opacity:0;-webkit-transition:opacity 0.3s;transition:opacity 0.3s} +.no-touch .control-scrollbar:active>.scrollbar-scrollbar, +.no-touch .control-scrollbar:hover>.scrollbar-scrollbar{opacity:1} +@media (max-width:768px){.responsive-sidebar>.layout-cell:last-child .control-scrollbar{overflow:visible;height:auto}.responsive-sidebar>.layout-cell:last-child .control-scrollbar .scrollbar-scrollbar{display:none !important}} +.control-filelist p.no-data{padding:22px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:normal;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +.control-filelist ul{padding:0;margin:0} +.control-filelist ul li{font-weight:normal;line-height:150%;position:relative;list-style:none} +.control-filelist ul li a:hover{background:#ddd} +.control-filelist ul li.active>a{background:#ddd;position:relative} +.control-filelist ul li.active>a:after{position:absolute;height:100%;width:4px;left:0;top:0;background:#e67e22;display:block;content:' '} +.control-filelist ul li a{display:block;padding:10px 45px 10px 20px;outline:none} .control-filelist ul li a:hover, .control-filelist ul li a:focus, -.control-filelist ul li a:active {text-decoration:none} -.control-filelist ul li a span {display:block} -.control-filelist ul li a span.title {font-weight:normal;color:#405261;font-size:14px} -.control-filelist ul li a span.description {color:#8f8f8f;font-size:12px;white-space:nowrap;font-weight:normal;overflow:hidden;text-overflow:ellipsis} -.control-filelist ul li a span.description strong {color:#405261;font-weight:normal} -.control-filelist ul li.group >h4, -.control-filelist ul li.group >div.group >h4 {font-weight:normal;font-size:14px;margin-top:0;margin-bottom:0;position:relative} -.control-filelist ul li.group >h4 a, -.control-filelist ul li.group >div.group >h4 a {padding:10px 20px 10px 53px;color:#405261;position:relative;outline:none} -.control-filelist ul li.group >h4 a:hover, -.control-filelist ul li.group >div.group >h4 a:hover {background:transparent} -.control-filelist ul li.group >h4 a:before, -.control-filelist ul li.group >div.group >h4 a:before, -.control-filelist ul li.group >h4 a:after, -.control-filelist ul li.group >div.group >h4 a:after {width:10px;height:10px;display:block;position:absolute;top:1px} -.control-filelist ul li.group >h4 a:after, -.control-filelist ul li.group >div.group >h4 a:after {left:33px;top:9px;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f07b";color:#a1aab1;font-size:16px} -.control-filelist ul li.group >h4 a:before, -.control-filelist ul li.group >div.group >h4 a:before {left:20px;top:9px;color:#cfcfcf;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f0da";-webkit-transform:rotate(90deg) translate(5px,0);-ms-transform:rotate(90deg) translate(5px,0);transform:rotate(90deg) translate(5px,0);-webkit-transition:all 0.1s ease;transition:all 0.1s ease} -.control-filelist ul li.group >ul >li >a {padding-left:52px} -.control-filelist ul li.group >ul >li.group {padding-left:20px} -.control-filelist ul li.group >ul >li.group >ul >li >a {padding-left:324px;margin-left:-270px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:297px;margin-left:-243px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:270px;margin-left:-216px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:243px;margin-left:-189px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:216px;margin-left:-162px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:189px;margin-left:-135px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:162px;margin-left:-108px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:135px;margin-left:-81px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:108px;margin-left:-54px} -.control-filelist ul li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li.group >ul >li >a {padding-left:81px;margin-left:-27px} -.control-filelist ul li.group[data-status=collapsed] >h4 a:before, -.control-filelist ul li.group[data-status=collapsed] >div.group >h4 a:before {-webkit-transform:rotate(0deg) translate(3px,0);-ms-transform:rotate(0deg) translate(3px,0);transform:rotate(0deg) translate(3px,0)} -.control-filelist ul li.group[data-status=collapsed] >ul, -.control-filelist ul li.group[data-status=collapsed] >div.subitems {display:none} -.control-filelist ul li >div.controls {position:absolute;right:19px;top:6px} -.control-filelist ul li >div.controls .dropdown {width:14px;height:21px} -.control-filelist ul li >div.controls .dropdown.open a.control {display:block !important} -.control-filelist ul li >div.controls .dropdown.open a.control:before {visibility:visible;display:block} -.control-filelist ul li >div.controls a.control {color:#405261;font-size:14px;visibility:hidden;overflow:hidden;width:14px;height:21px;display:none;text-decoration:none;cursor:pointer;padding:0;opacity:0.5;filter:alpha(opacity=50)} -.control-filelist ul li >div.controls a.control:before {visibility:visible;display:block;margin-right:0} -.control-filelist ul li >div.controls a.control:hover {opacity:1;filter:alpha(opacity=100)} -.control-filelist ul li:hover >div.controls, -.control-filelist ul li:hover >a.control {display:block !important} -.control-filelist ul li:hover >div.controls >a.control, -.control-filelist ul li:hover >a.control >a.control {display:block !important} -.control-filelist ul li .checkbox {position:absolute;top:-5px;right:0} -.control-filelist ul li .checkbox label {margin-right:0} -.control-filelist ul li .checkbox label:before {border-color:#ccc} -.control-filelist.single-line ul li a span.title {text-overflow:ellipsis;overflow:hidden;white-space:nowrap} -.control-filelist.filelist-hero ul li {background:#fff;border-bottom:none} -.control-filelist.filelist-hero ul li >a {padding:11px 45px 10px 50px;font-size:13px;border-bottom:1px solid #ecf0f1} -.control-filelist.filelist-hero ul li >a span.title {font-size:14px;font-weight:normal;color:#2b3e50} -.control-filelist.filelist-hero ul li >a span.description {font-size:13px} -.control-filelist.filelist-hero ul li >a .list-icon {position:absolute;left:14px;top:15px;font-size:22px;color:#b7c0c2} -.control-filelist.filelist-hero ul li >a:hover {background:#4ea5e0;border-bottom:1px solid #4ea5e0 !important} -.control-filelist.filelist-hero ul li >a:hover span.title, -.control-filelist.filelist-hero ul li >a:hover span.description {color:#fff !important} -.control-filelist.filelist-hero ul li >a:hover .list-icon {color:#fff !important} -.control-filelist.filelist-hero ul li >a:active {background:#3498db;border-bottom:1px solid #3498db !important} -.control-filelist.filelist-hero ul li >a:active span.title, -.control-filelist.filelist-hero ul li >a:active span.description {color:#fff !important} -.control-filelist.filelist-hero ul li >a:active .list-icon {color:#fff !important} -.control-filelist.filelist-hero ul li .checkbox {top:-2px;right:0} -.control-filelist.filelist-hero ul li.active >a {border-bottom:1px solid #ddd} -.control-filelist.filelist-hero ul li.active >a:after {top:-1px;bottom:-1px;height:auto} -.control-filelist.filelist-hero ul li.active >a >span.borders:before {content:' ';position:absolute;width:100%;height:1px;display:block;left:0;background-color:#ddd} -.control-filelist.filelist-hero ul li.active >a >span.borders:before {top:-1px} -.control-filelist.filelist-hero ul li.active >a:hover >span.borders:before {background-color:#4ea5e0} -.control-filelist.filelist-hero ul li.active >a:active >span.borders:before {background-color:#3498db} -.control-filelist.filelist-hero ul li >h4 {padding-top:7px;padding-bottom:6px;border-bottom:1px solid #ecf0f1} -.control-filelist.filelist-hero ul li >div.controls {display:none;position:absolute;right:16px;top:15px} -.control-filelist.filelist-hero ul li >div.controls >a.control {width:16px;height:23px;background:transparent;overflow:hidden;display:inline-block;color:#fff !important;padding:0} -.control-filelist.filelist-hero ul li >div.controls >a.control:before {font-size:17px} -.control-filelist.filelist-hero ul li:hover >div.controls {display:block} -.control-filelist.filelist-hero ul li.separator {position:relative;border-bottom:1px solid #95a5a6;padding:12px 15px 13px 15px} -.control-filelist.filelist-hero ul li.separator:before {z-index:31;content:'';display:block;width:0;height:0;border-left:9.5px solid transparent;border-right:9.5px solid transparent;border-top:11px solid #fff;border-bottom-width:0;position:absolute;left:13px;bottom:-8px} -.control-filelist.filelist-hero ul li.separator:after {z-index:30;content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-top:9px solid #95a5a6;border-bottom-width:0;position:absolute;left:14px;bottom:-9px} -.control-filelist.filelist-hero ul li.separator h5 {color:#2b3e50;font-size:14px;margin:0;font-weight:normal;padding:0} -.control-filelist.filelist-hero ul >li.group >ul >li >a {padding-left:66px} -.control-filelist.filelist-hero.single-level ul li:hover {background:#4ea5e0} -.control-filelist.filelist-hero.single-level ul li:hover >a {background:#4ea5e0;border-bottom:1px solid #4ea5e0 !important} -.control-filelist.filelist-hero.single-level ul li:hover >a span.title, -.control-filelist.filelist-hero.single-level ul li:hover >a span.description {color:#fff !important} -.control-filelist.filelist-hero.single-level ul li:hover >a .list-icon {color:#fff !important} -.control-filelist.filelist-hero.single-level ul li:active {background:#3498db} -.control-filelist.filelist-hero.single-level ul li:active >a {background:#3498db;border-bottom:1px solid #3498db !important} -.control-filelist.filelist-hero.single-level ul li:active >a span.title, -.control-filelist.filelist-hero.single-level ul li:active >a span.description {color:#fff !important} -.control-filelist.filelist-hero.single-level ul li:active >a .list-icon {color:#fff !important} -.control-scrollpanel {position:relative;background:#ecf0f1} -.control-scrollpanel .control-scrollbar.vertical >.scrollbar-scrollbar {right:0} -.tooltip .tooltip-inner {text-align:left;padding:5px 8px} -.tooltip.in {opacity:1;filter:alpha(opacity=100)} +.control-filelist ul li a:active{text-decoration:none} +.control-filelist ul li a span{display:block} +.control-filelist ul li a span.title{font-weight:normal;color:#405261;font-size:14px} +.control-filelist ul li a span.description{color:#8f8f8f;font-size:12px;white-space:nowrap;font-weight:normal;overflow:hidden;text-overflow:ellipsis} +.control-filelist ul li a span.description strong{color:#405261;font-weight:normal} +.control-filelist ul li.group>h4, +.control-filelist ul li.group>div.group>h4{font-weight:normal;font-size:14px;margin-top:0;margin-bottom:0;position:relative} +.control-filelist ul li.group>h4 a, +.control-filelist ul li.group>div.group>h4 a{padding:10px 20px 10px 53px;color:#405261;position:relative;outline:none} +.control-filelist ul li.group>h4 a:hover, +.control-filelist ul li.group>div.group>h4 a:hover{background:transparent} +.control-filelist ul li.group>h4 a:before, +.control-filelist ul li.group>div.group>h4 a:before, +.control-filelist ul li.group>h4 a:after, +.control-filelist ul li.group>div.group>h4 a:after{width:10px;height:10px;display:block;position:absolute;top:1px} +.control-filelist ul li.group>h4 a:after, +.control-filelist ul li.group>div.group>h4 a:after{left:33px;top:9px;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f07b";color:#a1aab1;font-size:16px} +.control-filelist ul li.group>h4 a:before, +.control-filelist ul li.group>div.group>h4 a:before{left:20px;top:9px;color:#cfcfcf;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f0da";-webkit-transform:rotate(90deg) translate(5px,0);-ms-transform:rotate(90deg) translate(5px,0);transform:rotate(90deg) translate(5px,0);-webkit-transition:all 0.1s ease;transition:all 0.1s ease} +.control-filelist ul li.group>ul>li>a{padding-left:52px} +.control-filelist ul li.group>ul>li.group{padding-left:20px} +.control-filelist ul li.group>ul>li.group>ul>li>a{padding-left:324px;margin-left:-270px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:297px;margin-left:-243px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:270px;margin-left:-216px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:243px;margin-left:-189px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:216px;margin-left:-162px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:189px;margin-left:-135px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:162px;margin-left:-108px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:135px;margin-left:-81px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:108px;margin-left:-54px} +.control-filelist ul li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li.group>ul>li>a{padding-left:81px;margin-left:-27px} +.control-filelist ul li.group[data-status=collapsed]>h4 a:before, +.control-filelist ul li.group[data-status=collapsed]>div.group>h4 a:before{-webkit-transform:rotate(0deg) translate(3px,0);-ms-transform:rotate(0deg) translate(3px,0);transform:rotate(0deg) translate(3px,0)} +.control-filelist ul li.group[data-status=collapsed]>ul, +.control-filelist ul li.group[data-status=collapsed]>div.subitems{display:none} +.control-filelist ul li>div.controls{position:absolute;right:19px;top:6px} +.control-filelist ul li>div.controls .dropdown{width:14px;height:21px} +.control-filelist ul li>div.controls .dropdown.open a.control{display:block !important} +.control-filelist ul li>div.controls .dropdown.open a.control:before{visibility:visible;display:block} +.control-filelist ul li>div.controls a.control{color:#405261;font-size:14px;visibility:hidden;overflow:hidden;width:14px;height:21px;display:none;text-decoration:none;cursor:pointer;padding:0;opacity:0.5;filter:alpha(opacity=50)} +.control-filelist ul li>div.controls a.control:before{visibility:visible;display:block;margin-right:0} +.control-filelist ul li>div.controls a.control:hover{opacity:1;filter:alpha(opacity=100)} +.control-filelist ul li:hover>div.controls, +.control-filelist ul li:hover>a.control{display:block !important} +.control-filelist ul li:hover>div.controls>a.control, +.control-filelist ul li:hover>a.control>a.control{display:block !important} +.control-filelist ul li .checkbox{position:absolute;top:-5px;right:0} +.control-filelist ul li .checkbox label{margin-right:0} +.control-filelist ul li .checkbox label:before{border-color:#ccc} +.control-filelist.single-line ul li a span.title{text-overflow:ellipsis;overflow:hidden;white-space:nowrap} +.control-filelist.filelist-hero ul li{background:#fff;border-bottom:none} +.control-filelist.filelist-hero ul li>a{padding:11px 45px 10px 50px;font-size:13px;border-bottom:1px solid #ecf0f1} +.control-filelist.filelist-hero ul li>a span.title{font-size:14px;font-weight:normal;color:#2b3e50} +.control-filelist.filelist-hero ul li>a span.description{font-size:13px} +.control-filelist.filelist-hero ul li>a .list-icon{position:absolute;left:14px;top:15px;font-size:22px;color:#b7c0c2} +.control-filelist.filelist-hero ul li>a:hover{background:#4ea5e0;border-bottom:1px solid #4ea5e0 !important} +.control-filelist.filelist-hero ul li>a:hover span.title, +.control-filelist.filelist-hero ul li>a:hover span.description{color:#fff !important} +.control-filelist.filelist-hero ul li>a:hover .list-icon{color:#fff !important} +.control-filelist.filelist-hero ul li>a:active{background:#3498db;border-bottom:1px solid #3498db !important} +.control-filelist.filelist-hero ul li>a:active span.title, +.control-filelist.filelist-hero ul li>a:active span.description{color:#fff !important} +.control-filelist.filelist-hero ul li>a:active .list-icon{color:#fff !important} +.control-filelist.filelist-hero ul li .checkbox{top:-2px;right:0} +.control-filelist.filelist-hero ul li.active>a{border-bottom:1px solid #ddd} +.control-filelist.filelist-hero ul li.active>a:after{top:-1px;bottom:-1px;height:auto} +.control-filelist.filelist-hero ul li.active>a>span.borders:before{content:' ';position:absolute;width:100%;height:1px;display:block;left:0;background-color:#ddd} +.control-filelist.filelist-hero ul li.active>a>span.borders:before{top:-1px} +.control-filelist.filelist-hero ul li.active>a:hover>span.borders:before{background-color:#4ea5e0} +.control-filelist.filelist-hero ul li.active>a:active>span.borders:before{background-color:#3498db} +.control-filelist.filelist-hero ul li>h4{padding-top:7px;padding-bottom:6px;border-bottom:1px solid #ecf0f1} +.control-filelist.filelist-hero ul li>div.controls{display:none;position:absolute;right:16px;top:15px} +.control-filelist.filelist-hero ul li>div.controls>a.control{width:16px;height:23px;background:transparent;overflow:hidden;display:inline-block;color:#fff !important;padding:0} +.control-filelist.filelist-hero ul li>div.controls>a.control:before{font-size:17px} +.control-filelist.filelist-hero ul li:hover>div.controls{display:block} +.control-filelist.filelist-hero ul li.separator{position:relative;border-bottom:1px solid #95a5a6;padding:12px 15px 13px 15px} +.control-filelist.filelist-hero ul li.separator:before{z-index:31;content:'';display:block;width:0;height:0;border-left:9.5px solid transparent;border-right:9.5px solid transparent;border-top:11px solid #fff;border-bottom-width:0;position:absolute;left:13px;bottom:-8px} +.control-filelist.filelist-hero ul li.separator:after{z-index:30;content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-top:9px solid #95a5a6;border-bottom-width:0;position:absolute;left:14px;bottom:-9px} +.control-filelist.filelist-hero ul li.separator h5{color:#2b3e50;font-size:14px;margin:0;font-weight:normal;padding:0} +.control-filelist.filelist-hero ul>li.group>ul>li>a{padding-left:66px} +.control-filelist.filelist-hero.single-level ul li:hover{background:#4ea5e0} +.control-filelist.filelist-hero.single-level ul li:hover>a{background:#4ea5e0;border-bottom:1px solid #4ea5e0 !important} +.control-filelist.filelist-hero.single-level ul li:hover>a span.title, +.control-filelist.filelist-hero.single-level ul li:hover>a span.description{color:#fff !important} +.control-filelist.filelist-hero.single-level ul li:hover>a .list-icon{color:#fff !important} +.control-filelist.filelist-hero.single-level ul li:active{background:#3498db} +.control-filelist.filelist-hero.single-level ul li:active>a{background:#3498db;border-bottom:1px solid #3498db !important} +.control-filelist.filelist-hero.single-level ul li:active>a span.title, +.control-filelist.filelist-hero.single-level ul li:active>a span.description{color:#fff !important} +.control-filelist.filelist-hero.single-level ul li:active>a .list-icon{color:#fff !important} +.control-scrollpanel{position:relative;background:#ecf0f1} +.control-scrollpanel .control-scrollbar.vertical>.scrollbar-scrollbar{right:0} +.tooltip .tooltip-inner{text-align:left;padding:5px 8px} +.tooltip.in{opacity:1;filter:alpha(opacity=100)} .wn-logo-white, -.oc-logo-white {background-image:url(../images/winter-logo-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} +.oc-logo-white{background-image:url(../images/winter-logo-white.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} .wn-logo, -.oc-logo {background-image:url(../images/winter-logo.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} +.oc-logo{background-image:url(../images/winter-logo.svg);background-position:50% 50%;background-repeat:no-repeat;background-size:contain} .layout.control-tabs.wn-logo-transparent:not(.has-tabs), .layout.control-tabs.oc-logo-transparent:not(.has-tabs), .flex-layout-column.wn-logo-transparent:not(.has-tabs), .flex-layout-column.oc-logo-transparent:not(.has-tabs), .layout-cell.wn-logo-transparent, -.layout-cell.oc-logo-transparent {background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/winter-logo.svg);background-position:50% 50%;position:relative} +.layout-cell.oc-logo-transparent{background-size:50% auto;background-repeat:no-repeat;background-image:url(../images/winter-logo.svg);background-position:50% 50%;position:relative} .layout.control-tabs.wn-logo-transparent:not(.has-tabs):after, .layout.control-tabs.oc-logo-transparent:not(.has-tabs):after, .flex-layout-column.wn-logo-transparent:not(.has-tabs):after, .flex-layout-column.oc-logo-transparent:not(.has-tabs):after, .layout-cell.wn-logo-transparent:after, -.layout-cell.oc-logo-transparent:after {content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} -.report-widget {padding:15px;background:white;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:13px} -.report-widget h3 {font-size:14px;color:#7e8c8d;text-transform:uppercase;font-weight:600;margin-top:0;margin-bottom:30px} -.report-widget .height-100 {height:100px} -.report-widget .height-200 {height:200px} -.report-widget .height-300 {height:300px} -.report-widget .height-400 {height:400px} -.report-widget .height-500 {height:500px} -.report-widget p.report-description {margin-bottom:0;margin-top:15px;font-size:12px;line-height:190%;color:#7e8c8d} -.report-widget a:not(.btn) {color:#7e8c8d;text-decoration:none} -.report-widget a:not(.btn):hover {color:#0181b9;text-decoration:none} -.report-widget p.flash-message.static {margin-bottom:0} -.report-widget .icon-circle.success {color:#31ac5f} -.report-widget .icon-circle.primary {color:#34495e} -.report-widget .icon-circle.warning {color:#f0ad4e} -.report-widget .icon-circle.danger {color:#ab2a1c} -.report-widget .icon-circle.info {color:#5bc0de} -.control-treelist ol {padding:0;margin:0;list-style:none} -.control-treelist ol ol {margin:0;margin-left:15px;padding-left:15px;border-left:1px solid #dbdee0} -.control-treelist >ol >li >div.record:before {display:none} -.control-treelist li {margin:0;padding:0} -.control-treelist li >div.record {margin:0;font-size:12px;margin-bottom:5px;position:relative;display:block} -.control-treelist li >div.record:before {color:#bdc3c7;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f111";font-size:6px;position:absolute;left:-18px;top:11px} -.control-treelist li >div.record >a.move {display:inline-block;padding:7px 0 7px 10px;text-decoration:none;color:#bdc3c7} -.control-treelist li >div.record >a.move:hover {color:#4ea5e0} -.control-treelist li >div.record >a.move:before {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f0c9"} -.control-treelist li >div.record >span {color:#666;display:inline-block;padding:7px 15px 7px 5px} -.control-treelist li.dragged {position:absolute;z-index:2000;width:auto !important;height:auto !important} -.control-treelist li.dragged >div.record {opacity:0.5;filter:alpha(opacity=50);background:#4ea5e0 !important} -.control-treelist li.dragged >div.record >a.move:before, -.control-treelist li.dragged >div.record >span {color:white} -.control-treelist li.dragged >div.record:before {display:none} -.control-treelist li.placeholder {display:inline-block;position:relative;background:#4ea5e0 !important;height:25px;margin-bottom:5px} -.control-treelist li.placeholder:before {display:block;position:absolute;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f053";color:#d35714;left:-10px;top:8px;z-index:2000} -.control-treeview {margin-bottom:40px} -.control-treeview ol {margin:0;padding:0;list-style:none;background:#fff} -.control-treeview ol >li {-webkit-transition:width 1s;transition:width 1s} -.control-treeview ol >li >div {font-size:14px;font-weight:normal;background:#fff;border-bottom:1px solid #ecf0f1;position:relative} -.control-treeview ol >li >div >a {color:#2b3e50;padding:11px 45px 10px 61px;display:block;line-height:150%;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} -.control-treeview ol >li >div:before {content:' ';background-image:url(../images/treeview-icons.png);background-position:0 -28px;background-repeat:no-repeat;background-size:42px auto;position:absolute;width:21px;height:22px;left:28px;top:15px} -.control-treeview ol >li >div span.comment {display:block;font-weight:400;color:#95a5a6;font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis} -.control-treeview ol >li >div >span.expand {font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;display:none;position:absolute;width:20px;height:20px;top:19px;left:2px;cursor:pointer;color:#bdc3c7;-webkit-transition:transform 0.1s ease;transition:transform 0.1s ease} -.control-treeview ol >li >div >span.expand:before {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f0da";line-height:100%;font-size:15px;position:relative;left:8px;top:2px} -.control-treeview ol >li >div >span.drag-handle {font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;-webkit-transition:opacity 0.4s;transition:opacity 0.4s;position:absolute;right:9px;bottom:0;width:18px;height:19px;cursor:move;color:#bdc3c7;opacity:0;filter:alpha(opacity=0)} -.control-treeview ol >li >div >span.drag-handle:before {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f0c9";font-size:18px} -.control-treeview ol >li >div span.borders {font-size:0} -.control-treeview ol >li >div >ul.submenu {position:absolute;left:20px;bottom:-36.9px;padding:0;list-style:none;z-index:200;height:37px;display:none;margin-left:15px;background:transparent url(../images/treeview-submenu-tabs.png) repeat-x left -39px} -.control-treeview ol >li >div >ul.submenu:before, -.control-treeview ol >li >div >ul.submenu:after {background:transparent url(../images/treeview-submenu-tabs.png) no-repeat left top;content:' ';display:block;width:20px;height:37px;position:absolute;top:0} -.control-treeview ol >li >div >ul.submenu:before {left:-20px} -.control-treeview ol >li >div >ul.submenu:after {background-position:-100px top;right:-20px} -.control-treeview ol >li >div >ul.submenu li {font-size:12px} -.control-treeview ol >li >div >ul.submenu li a {display:block;padding:4px 3px 0 3px;color:#fff;text-decoration:none;outline:none} -.control-treeview ol >li >div >ul.submenu li a i {margin-right:5px} -.control-treeview ol >li >div:hover >ul.submenu {display:block} -.control-treeview ol >li >div:active >ul.submenu {background-position:left -116px} -.control-treeview ol >li >div:active >ul.submenu:before {background-position:left -77px} -.control-treeview ol >li >div:active >ul.submenu:after {background-position:-100px -77px} -.control-treeview ol >li >div .checkbox {position:absolute;top:-2px;right:0} -.control-treeview ol >li >div .checkbox label {margin-right:0} -.control-treeview ol >li >div .checkbox label:before {border-color:#ccc} -.control-treeview ol >li >div.popover-highlight {background-color:#4ea5e0 !important} -.control-treeview ol >li >div.popover-highlight:before {background-position:0 -80px} -.control-treeview ol >li >div.popover-highlight >a {color:#fff !important;cursor:default} -.control-treeview ol >li >div.popover-highlight span {color:#fff !important} -.control-treeview ol >li >div.popover-highlight >ul.submenu, -.control-treeview ol >li >div.popover-highlight >span.drag-handle {display:none !important} -.control-treeview ol >li.dragged div, -.control-treeview ol >li >div:hover {background-color:#4ea5e0 !important} -.control-treeview ol >li.dragged div >a, -.control-treeview ol >li >div:hover >a {color:#fff !important} -.control-treeview ol >li.dragged div:before, -.control-treeview ol >li >div:hover:before {background-position:0 -80px} -.control-treeview ol >li.dragged div:after, -.control-treeview ol >li >div:hover:after {top:0 !important;bottom:0 !important} -.control-treeview ol >li.dragged div span, -.control-treeview ol >li >div:hover span {color:#fff !important} -.control-treeview ol >li.dragged div span.drag-handle, -.control-treeview ol >li >div:hover span.drag-handle {cursor:move;opacity:1;filter:alpha(opacity=100)} -.control-treeview ol >li.dragged div span.borders, -.control-treeview ol >li >div:hover span.borders {display:none} -.control-treeview ol >li >div:active {background-color:#3498db !important} -.control-treeview ol >li >div:active >a {color:#fff !important} -.control-treeview ol >li[data-no-drag-mode] div:hover span.drag-handle {cursor:default !important;opacity:0.3 !important;filter:alpha(opacity=30) !important} -.control-treeview ol >li.dragged li.has-subitems >div:before, -.control-treeview ol >li.dragged.has-subitems >div:before {background-position:0 -52px} -.control-treeview ol >li.dragged div >ul.submenu {display:none !important} -.control-treeview ol >li >ol {padding-left:20px;padding-right:20px} -.control-treeview ol >li[data-status=collapsed] >ol {display:none} -.control-treeview ol >li.has-subitems >div:before {background-position:0 0;width:23px;height:26px;left:26px} -.control-treeview ol >li.has-subitems >div:hover:before, -.control-treeview ol >li.has-subitems >div.popover-highlight:before {background-position:0 -52px} -.control-treeview ol >li.has-subitems >div span.expand {display:block} -.control-treeview ol >li.placeholder {position:relative;opacity:0.5;filter:alpha(opacity=50)} -.control-treeview ol >li.dragged {position:absolute;z-index:2000;opacity:0.25;filter:alpha(opacity=25)} -.control-treeview ol >li.dragged >div {-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -.control-treeview ol >li.drop-target >div {background-color:#2581b8 !important} -.control-treeview ol >li.drop-target >div >a {color:#fff} -.control-treeview ol >li.drop-target >div >a >span.comment {color:#fff} -.control-treeview ol >li.drop-target >div:before {background-position:0 -80px} -.control-treeview ol >li.drop-target.has-subitems >div:before {background-position:0 -52px} -.control-treeview ol >li[data-status=expanded] >div >span.expand {-webkit-transform:rotate(90deg) translate(0,0);-ms-transform:rotate(90deg) translate(0,0);transform:rotate(90deg) translate(0,0)} -.control-treeview ol >li.drag-ghost {background-color:transparent;box-sizing:content-box} -.control-treeview ol >li.active >div {background:#ddd} -.control-treeview ol >li.active >div:after {position:absolute;width:4px;left:0;top:-1px;bottom:-1px;background:#e67e22;display:block;content:' '} -.control-treeview ol >li.active >div >span.comment, -.control-treeview ol >li.active >div >span.expand {color:#8f8f8f} -.control-treeview ol >li.active >div >span.borders:before, -.control-treeview ol >li.active >div >span.borders:after {content:' ';position:absolute;width:100%;height:1px;display:block;left:0;background-color:#ddd} -.control-treeview ol >li.active >div >span.borders:before {top:-1px} -.control-treeview ol >li.active >div >span.borders:after {bottom:-1px} -.control-treeview ol >li.no-data {padding:18px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:400} -.control-treeview ol >li >ol >li >div {margin-left:-20px;margin-right:-20px;padding-left:71px} -.control-treeview ol >li >ol >li >div >a {margin-left:-71px;padding-left:71px} -.control-treeview ol >li >ol >li >div:before {margin-left:10px} -.control-treeview ol >li >ol >li >div >span.expand {left:12px} -.control-treeview ol >li >ol >li >ol >li >div {margin-left:-40px;margin-right:-40px;padding-left:81px} -.control-treeview ol >li >ol >li >ol >li >div >a {margin-left:-81px;padding-left:81px} -.control-treeview ol >li >ol >li >ol >li >div:before {margin-left:20px} -.control-treeview ol >li >ol >li >ol >li >div >span.expand {left:22px} -.control-treeview ol >li >ol >li >ol >li >ol >li >div {margin-left:-60px;margin-right:-60px;padding-left:91px} -.control-treeview ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-91px;padding-left:91px} -.control-treeview ol >li >ol >li >ol >li >ol >li >div:before {margin-left:30px} -.control-treeview ol >li >ol >li >ol >li >ol >li >div >span.expand {left:32px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-80px;margin-right:-80px;padding-left:101px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-101px;padding-left:101px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:40px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:42px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-100px;margin-right:-100px;padding-left:111px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-111px;padding-left:111px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:50px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:52px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-120px;margin-right:-120px;padding-left:121px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-121px;padding-left:121px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:60px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:62px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-140px;margin-right:-140px;padding-left:131px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-131px;padding-left:131px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:70px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:72px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-160px;margin-right:-160px;padding-left:141px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-141px;padding-left:141px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:80px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:82px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-180px;margin-right:-180px;padding-left:151px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-151px;padding-left:151px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:90px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:92px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div {margin-left:-200px;margin-right:-200px;padding-left:161px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >a {margin-left:-161px;padding-left:161px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div:before {margin-left:100px} -.control-treeview ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >ol >li >div >span.expand {left:102px} -.control-treeview p.no-data {padding:18px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:400} -.control-treeview a.menu-control {display:block;margin:20px;padding:13px 15px;border:dotted 2px #ebebeb;color:#bdc3c7;font-size:12px;font-weight:600;text-transform:uppercase;border-radius:5px;vertical-align:middle} +.layout-cell.oc-logo-transparent:after{content:'';display:table-cell;position:absolute;left:0;top:0;height:100%;width:100%;background:rgba(249,249,249,0.7)} +.report-widget{padding:15px;background:white;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;font-size:13px} +.report-widget h3{font-size:14px;color:#7e8c8d;text-transform:uppercase;font-weight:600;margin-top:0;margin-bottom:30px} +.report-widget .height-100{height:100px} +.report-widget .height-200{height:200px} +.report-widget .height-300{height:300px} +.report-widget .height-400{height:400px} +.report-widget .height-500{height:500px} +.report-widget p.report-description{margin-bottom:0;margin-top:15px;font-size:12px;line-height:190%;color:#7e8c8d} +.report-widget a:not(.btn){color:#7e8c8d;text-decoration:none} +.report-widget a:not(.btn):hover{color:#0181b9;text-decoration:none} +.report-widget p.flash-message.static{margin-bottom:0} +.report-widget .icon-circle.success{color:#31ac5f} +.report-widget .icon-circle.primary{color:#34495e} +.report-widget .icon-circle.warning{color:#f0ad4e} +.report-widget .icon-circle.danger{color:#ab2a1c} +.report-widget .icon-circle.info{color:#5bc0de} +.control-treelist ol{padding:0;margin:0;list-style:none} +.control-treelist ol ol{margin:0;margin-left:15px;padding-left:15px;border-left:1px solid #dbdee0} +.control-treelist>ol>li>div.record:before{display:none} +.control-treelist li{margin:0;padding:0} +.control-treelist li>div.record{margin:0;font-size:12px;margin-bottom:5px;position:relative;display:block} +.control-treelist li>div.record:before{color:#bdc3c7;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f111";font-size:6px;position:absolute;left:-18px;top:11px} +.control-treelist li>div.record>a.move{display:inline-block;padding:7px 0 7px 10px;text-decoration:none;color:#bdc3c7} +.control-treelist li>div.record>a.move:hover{color:#4ea5e0} +.control-treelist li>div.record>a.move:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f0c9"} +.control-treelist li>div.record>span{color:#666;display:inline-block;padding:7px 15px 7px 5px} +.control-treelist li.dragged{position:absolute;z-index:2000;width:auto !important;height:auto !important} +.control-treelist li.dragged>div.record{opacity:0.5;filter:alpha(opacity=50);background:#4ea5e0 !important} +.control-treelist li.dragged>div.record>a.move:before, +.control-treelist li.dragged>div.record>span{color:white} +.control-treelist li.dragged>div.record:before{display:none} +.control-treelist li.placeholder{display:inline-block;position:relative;background:#4ea5e0 !important;height:25px;margin-bottom:5px} +.control-treelist li.placeholder:before{display:block;position:absolute;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f053";color:#d35714;left:-10px;top:8px;z-index:2000} +.control-treeview{margin-bottom:40px} +.control-treeview ol{margin:0;padding:0;list-style:none;background:#fff} +.control-treeview ol>li{-webkit-transition:width 1s;transition:width 1s} +.control-treeview ol>li>div{font-size:14px;font-weight:normal;background:#fff;border-bottom:1px solid #ecf0f1;position:relative} +.control-treeview ol>li>div>a{color:#2b3e50;padding:11px 45px 10px 61px;display:block;line-height:150%;text-decoration:none;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} +.control-treeview ol>li>div:before{content:' ';background-image:url(../images/treeview-icons.png);background-position:0 -28px;background-repeat:no-repeat;background-size:42px auto;position:absolute;width:21px;height:22px;left:28px;top:15px} +.control-treeview ol>li>div span.comment{display:block;font-weight:400;color:#95a5a6;font-size:13px;margin-top:2px;overflow:hidden;text-overflow:ellipsis} +.control-treeview ol>li>div>span.expand{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;display:none;position:absolute;width:20px;height:20px;top:19px;left:2px;cursor:pointer;color:#bdc3c7;-webkit-transition:transform 0.1s ease;transition:transform 0.1s ease} +.control-treeview ol>li>div>span.expand:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f0da";line-height:100%;font-size:15px;position:relative;left:8px;top:2px} +.control-treeview ol>li>div>span.drag-handle{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;-webkit-transition:opacity 0.4s;transition:opacity 0.4s;position:absolute;right:9px;bottom:0;width:18px;height:19px;cursor:move;color:#bdc3c7;opacity:0;filter:alpha(opacity=0)} +.control-treeview ol>li>div>span.drag-handle:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f0c9";font-size:18px} +.control-treeview ol>li>div span.borders{font-size:0} +.control-treeview ol>li>div>ul.submenu{position:absolute;left:20px;bottom:-36.9px;padding:0;list-style:none;z-index:200;height:37px;display:none;margin-left:15px;background:transparent url(../images/treeview-submenu-tabs.png) repeat-x left -39px} +.control-treeview ol>li>div>ul.submenu:before, +.control-treeview ol>li>div>ul.submenu:after{background:transparent url(../images/treeview-submenu-tabs.png) no-repeat left top;content:' ';display:block;width:20px;height:37px;position:absolute;top:0} +.control-treeview ol>li>div>ul.submenu:before{left:-20px} +.control-treeview ol>li>div>ul.submenu:after{background-position:-100px top;right:-20px} +.control-treeview ol>li>div>ul.submenu li{font-size:12px} +.control-treeview ol>li>div>ul.submenu li a{display:block;padding:4px 3px 0 3px;color:#fff;text-decoration:none;outline:none} +.control-treeview ol>li>div>ul.submenu li a i{margin-right:5px} +.control-treeview ol>li>div:hover>ul.submenu{display:block} +.control-treeview ol>li>div:active>ul.submenu{background-position:left -116px} +.control-treeview ol>li>div:active>ul.submenu:before{background-position:left -77px} +.control-treeview ol>li>div:active>ul.submenu:after{background-position:-100px -77px} +.control-treeview ol>li>div .checkbox{position:absolute;top:-2px;right:0} +.control-treeview ol>li>div .checkbox label{margin-right:0} +.control-treeview ol>li>div .checkbox label:before{border-color:#ccc} +.control-treeview ol>li>div.popover-highlight{background-color:#4ea5e0 !important} +.control-treeview ol>li>div.popover-highlight:before{background-position:0 -80px} +.control-treeview ol>li>div.popover-highlight>a{color:#fff !important;cursor:default} +.control-treeview ol>li>div.popover-highlight span{color:#fff !important} +.control-treeview ol>li>div.popover-highlight>ul.submenu, +.control-treeview ol>li>div.popover-highlight>span.drag-handle{display:none !important} +.control-treeview ol>li.dragged div, +.control-treeview ol>li>div:hover{background-color:#4ea5e0 !important} +.control-treeview ol>li.dragged div>a, +.control-treeview ol>li>div:hover>a{color:#fff !important} +.control-treeview ol>li.dragged div:before, +.control-treeview ol>li>div:hover:before{background-position:0 -80px} +.control-treeview ol>li.dragged div:after, +.control-treeview ol>li>div:hover:after{top:0 !important;bottom:0 !important} +.control-treeview ol>li.dragged div span, +.control-treeview ol>li>div:hover span{color:#fff !important} +.control-treeview ol>li.dragged div span.drag-handle, +.control-treeview ol>li>div:hover span.drag-handle{cursor:move;opacity:1;filter:alpha(opacity=100)} +.control-treeview ol>li.dragged div span.borders, +.control-treeview ol>li>div:hover span.borders{display:none} +.control-treeview ol>li>div:active{background-color:#3498db !important} +.control-treeview ol>li>div:active>a{color:#fff !important} +.control-treeview ol>li[data-no-drag-mode] div:hover span.drag-handle{cursor:default !important;opacity:0.3 !important;filter:alpha(opacity=30) !important} +.control-treeview ol>li.dragged li.has-subitems>div:before, +.control-treeview ol>li.dragged.has-subitems>div:before{background-position:0 -52px} +.control-treeview ol>li.dragged div>ul.submenu{display:none !important} +.control-treeview ol>li>ol{padding-left:20px;padding-right:20px} +.control-treeview ol>li[data-status=collapsed]>ol{display:none} +.control-treeview ol>li.has-subitems>div:before{background-position:0 0;width:23px;height:26px;left:26px} +.control-treeview ol>li.has-subitems>div:hover:before, +.control-treeview ol>li.has-subitems>div.popover-highlight:before{background-position:0 -52px} +.control-treeview ol>li.has-subitems>div span.expand{display:block} +.control-treeview ol>li.placeholder{position:relative;opacity:0.5;filter:alpha(opacity=50)} +.control-treeview ol>li.dragged{position:absolute;z-index:2000;opacity:0.25;filter:alpha(opacity=25)} +.control-treeview ol>li.dragged>div{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +.control-treeview ol>li.drop-target>div{background-color:#2581b8 !important} +.control-treeview ol>li.drop-target>div>a{color:#fff} +.control-treeview ol>li.drop-target>div>a>span.comment{color:#fff} +.control-treeview ol>li.drop-target>div:before{background-position:0 -80px} +.control-treeview ol>li.drop-target.has-subitems>div:before{background-position:0 -52px} +.control-treeview ol>li[data-status=expanded]>div>span.expand{-webkit-transform:rotate(90deg) translate(0,0);-ms-transform:rotate(90deg) translate(0,0);transform:rotate(90deg) translate(0,0)} +.control-treeview ol>li.drag-ghost{background-color:transparent;box-sizing:content-box} +.control-treeview ol>li.active>div{background:#ddd} +.control-treeview ol>li.active>div:after{position:absolute;width:4px;left:0;top:-1px;bottom:-1px;background:#e67e22;display:block;content:' '} +.control-treeview ol>li.active>div>span.comment, +.control-treeview ol>li.active>div>span.expand{color:#8f8f8f} +.control-treeview ol>li.active>div>span.borders:before, +.control-treeview ol>li.active>div>span.borders:after{content:' ';position:absolute;width:100%;height:1px;display:block;left:0;background-color:#ddd} +.control-treeview ol>li.active>div>span.borders:before{top:-1px} +.control-treeview ol>li.active>div>span.borders:after{bottom:-1px} +.control-treeview ol>li.no-data{padding:18px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:400} +.control-treeview ol>li>ol>li>div{margin-left:-20px;margin-right:-20px;padding-left:71px} +.control-treeview ol>li>ol>li>div>a{margin-left:-71px;padding-left:71px} +.control-treeview ol>li>ol>li>div:before{margin-left:10px} +.control-treeview ol>li>ol>li>div>span.expand{left:12px} +.control-treeview ol>li>ol>li>ol>li>div{margin-left:-40px;margin-right:-40px;padding-left:81px} +.control-treeview ol>li>ol>li>ol>li>div>a{margin-left:-81px;padding-left:81px} +.control-treeview ol>li>ol>li>ol>li>div:before{margin-left:20px} +.control-treeview ol>li>ol>li>ol>li>div>span.expand{left:22px} +.control-treeview ol>li>ol>li>ol>li>ol>li>div{margin-left:-60px;margin-right:-60px;padding-left:91px} +.control-treeview ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-91px;padding-left:91px} +.control-treeview ol>li>ol>li>ol>li>ol>li>div:before{margin-left:30px} +.control-treeview ol>li>ol>li>ol>li>ol>li>div>span.expand{left:32px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-80px;margin-right:-80px;padding-left:101px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-101px;padding-left:101px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:40px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:42px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-100px;margin-right:-100px;padding-left:111px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-111px;padding-left:111px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:50px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:52px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-120px;margin-right:-120px;padding-left:121px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-121px;padding-left:121px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:60px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:62px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-140px;margin-right:-140px;padding-left:131px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-131px;padding-left:131px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:70px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:72px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-160px;margin-right:-160px;padding-left:141px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-141px;padding-left:141px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:80px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:82px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-180px;margin-right:-180px;padding-left:151px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-151px;padding-left:151px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:90px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:92px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div{margin-left:-200px;margin-right:-200px;padding-left:161px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>a{margin-left:-161px;padding-left:161px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div:before{margin-left:100px} +.control-treeview ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>ol>li>div>span.expand{left:102px} +.control-treeview p.no-data{padding:18px 0;margin:0;color:#666;font-size:14px;text-align:center;font-weight:400} +.control-treeview a.menu-control{display:block;margin:20px;padding:13px 15px;border:dotted 2px #ebebeb;color:#bdc3c7;font-size:12px;font-weight:600;text-transform:uppercase;border-radius:5px;vertical-align:middle} .control-treeview a.menu-control:hover, -.control-treeview a.menu-control:focus {text-decoration:none;background-color:#4ea5e0;color:#fff;border:none;padding:15px 17px} -.control-treeview a.menu-control:active {background:#3498db;color:#fff} -.control-treeview a.menu-control i {margin-right:10px;font-size:14px} -.control-treeview.treeview-light {margin-bottom:0;margin-top:20px} -.control-treeview.treeview-light ol {background-color:transparent} -.control-treeview.treeview-light ol >li >div {background-color:transparent;border-bottom:none} -.control-treeview.treeview-light ol >li >div:before {top:15px} -.control-treeview.treeview-light ol >li >div >a {padding-top:10px;padding-bottom:10px} -.control-treeview.treeview-light ol >li >div span.expand {top:19px} -.control-treeview.treeview-light ol >li >div >span.drag-handle {top:0;right:0;bottom:auto;height:100%;width:60px;background:#2581b8;-webkit-transition:none !important;transition:none !important} -.control-treeview.treeview-light ol >li >div >span.drag-handle:before {position:absolute;left:50%;top:50%;margin-left:-6px} -.control-treeview.treeview-light ol >li >div >ul.submenu {right:60px;left:auto;bottom:auto;top:0;height:100%;margin:0;background:transparent;white-space:nowrap;font-size:0} -.control-treeview.treeview-light ol >li >div >ul.submenu:before, -.control-treeview.treeview-light ol >li >div >ul.submenu:after {display:none} -.control-treeview.treeview-light ol >li >div >ul.submenu li {height:100%;display:inline-block;background:#2581b8;border-right:1px solid #328ec8} -.control-treeview.treeview-light ol >li >div >ul.submenu li p {display:table;height:100%;padding:0;margin:0} -.control-treeview.treeview-light ol >li >div >ul.submenu li p a {display:table-cell;vertical-align:middle;height:100%;padding:0 20px;font-size:13px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} -.control-treeview.treeview-light ol >li >div >ul.submenu li p a i.control-icon {font-size:22px;margin-right:0} +.control-treeview a.menu-control:focus{text-decoration:none;background-color:#4ea5e0;color:#fff;border:none;padding:15px 17px} +.control-treeview a.menu-control:active{background:#3498db;color:#fff} +.control-treeview a.menu-control i{margin-right:10px;font-size:14px} +.control-treeview.treeview-light{margin-bottom:0;margin-top:20px} +.control-treeview.treeview-light ol{background-color:transparent} +.control-treeview.treeview-light ol>li>div{background-color:transparent;border-bottom:none} +.control-treeview.treeview-light ol>li>div:before{top:15px} +.control-treeview.treeview-light ol>li>div>a{padding-top:10px;padding-bottom:10px} +.control-treeview.treeview-light ol>li>div span.expand{top:19px} +.control-treeview.treeview-light ol>li>div>span.drag-handle{top:0;right:0;bottom:auto;height:100%;width:60px;background:#2581b8;-webkit-transition:none !important;transition:none !important} +.control-treeview.treeview-light ol>li>div>span.drag-handle:before{position:absolute;left:50%;top:50%;margin-left:-6px} +.control-treeview.treeview-light ol>li>div>ul.submenu{right:60px;left:auto;bottom:auto;top:0;height:100%;margin:0;background:transparent;white-space:nowrap;font-size:0} +.control-treeview.treeview-light ol>li>div>ul.submenu:before, +.control-treeview.treeview-light ol>li>div>ul.submenu:after{display:none} +.control-treeview.treeview-light ol>li>div>ul.submenu li{height:100%;display:inline-block;background:#2581b8;border-right:1px solid #328ec8} +.control-treeview.treeview-light ol>li>div>ul.submenu li p{display:table;height:100%;padding:0;margin:0} +.control-treeview.treeview-light ol>li>div>ul.submenu li p a{display:table-cell;vertical-align:middle;height:100%;padding:0 20px;font-size:13px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} +.control-treeview.treeview-light ol>li>div>ul.submenu li p a i.control-icon{font-size:22px;margin-right:0} body.dragging .control-treeview ol.dragging, -body.dragging .control-treeview ol.dragging ol {background:#ccc;padding-right:20px;-webkit-transition:padding 1s;transition:padding 1s} -body.dragging .control-treeview ol.dragging >li >div, -body.dragging .control-treeview ol.dragging ol >li >div {margin-right:0;-webkit-transition:margin 1s;transition:margin 1s} -body.dragging .control-treeview ol.dragging >li >div .custom-checkbox, -body.dragging .control-treeview ol.dragging ol >li >div .custom-checkbox {-webkit-transition:opacity 0.5s;transition:opacity 0.5s;opacity:0;filter:alpha(opacity=0)} -body.dragging .control-treeview.treeview-light ol.dragging >li >div, -body.dragging .control-treeview.treeview-light ol.dragging ol >li >div {background-color:#f9f9f9} -@media only screen and (min--moz-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-devicepixel-ratio:1.5),only screen and (min-resolution:1.5dppx) {.control-treeview ol >li >div:before {background-position:0 -79px;background-size:21px auto }.control-treeview ol >li.has-subitems >div:before {background-position:0 -52px }.control-treeview ol >li.has-subitems >div:hover:before,.control-treeview ol >li.has-subitems >div.popover-highlight:before {background-position:0 -102px }.control-treeview ol >li.dragged >div:before,.control-treeview ol >li.dragged li >div:before,.control-treeview ol >li >div:hover:before,.control-treeview ol >li >div.popover-highlight:before {background-position:0 -129px }.control-treeview ol >li.dragged li.has-subitems >div:before,.control-treeview ol >li.dragged.has-subitems >div:before {background-position:0 -102px }.control-treeview ol >li.drop-target >div:before {background-position:0 -129px }.control-treeview ol >li.drop-target.has-subitems >div:before {background-position:0 -102px }} -.sidenav-tree {width:300px} -.sidenav-tree .control-toolbar {padding:0} -.sidenav-tree .control-toolbar .toolbar-item {display:block} -.sidenav-tree .control-toolbar input.form-control {border:none;outline:none;padding:12px 13px 13px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inset -3px 0 3px rgba(0,0,0,0.1);box-shadow:inset -3px 0 3px rgba(0,0,0,0.1)} -.sidenav-tree .control-toolbar input.form-control.search {background-position:right -78px} -.sidenav-tree ul {padding:0;margin:0;list-style:none} -.sidenav-tree div.scrollbar-thumb {background:rgba(0,0,0,0.2) !important} -.sidenav-tree ul.top-level >li[data-status=collapsed] >div.group h3:before {-webkit-transform:rotate(0deg) translate(2px,-2px);-ms-transform:rotate(0deg) translate(2px,-2px);transform:rotate(0deg) translate(2px,-2px)} -.sidenav-tree ul.top-level >li[data-status=collapsed] >div.group:before, -.sidenav-tree ul.top-level >li[data-status=collapsed] >div.group:after {display:none} -.sidenav-tree ul.top-level >li[data-status=collapsed] ul {display:none} -.sidenav-tree ul.top-level >li >div.group {position:relative} -.sidenav-tree ul.top-level >li >div.group h3 {background:rgba(0,0,0,0.15);color:#ecf0f1;text-transform:uppercase;font-size:15px;padding:15px 15px 15px 40px;margin:0;position:relative;cursor:pointer;font-weight:400} -.sidenav-tree ul.top-level >li >div.group h3:before {display:block;position:absolute;width:10px;height:10px;left:16px;top:15px;color:#cfcfcf;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f105";-webkit-transform:rotate(90deg) translate(5px,-3px);-ms-transform:rotate(90deg) translate(5px,-3px);transform:rotate(90deg) translate(5px,-3px);-webkit-transition:all 0.1s ease;transition:all 0.1s ease;font-size:16px} -.sidenav-tree ul.top-level >li >div.group:before, -.sidenav-tree ul.top-level >li >div.group:after {content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #34495e;border-bottom-width:0;position:absolute;left:15px;bottom:-8px;z-index:101} -.sidenav-tree ul.top-level >li >div.group:after {content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid rgba(0,0,0,0.15);border-bottom-width:0} -.sidenav-tree ul.top-level >li >ul li a {display:block;position:relative;padding:18px 25px 18px 55px;background:transparent;border-bottom:1px solid rgba(0,0,0,0.15);color:#fff;text-decoration:none !important;opacity:0.65;filter:alpha(opacity=65)} -.sidenav-tree ul.top-level >li >ul li a:active, -.sidenav-tree ul.top-level >li >ul li a:hover {opacity:1;filter:alpha(opacity=100);text-decoration:none} -.sidenav-tree ul.top-level >li >ul li a i {position:absolute;left:16px;top:18px;font-size:22px} -.sidenav-tree ul.top-level >li >ul li a span {display:block;line-height:150%} -.sidenav-tree ul.top-level >li >ul li a span.header {color:#fff;font-size:15px;margin-bottom:5px} -.sidenav-tree ul.top-level >li >ul li a span.description {color:rgba(255,255,255,0.6);font-size:13px} -.sidenav-tree ul.top-level >li >ul li:hover a, -.sidenav-tree ul.top-level >li >ul li.active a {opacity:1;filter:alpha(opacity=100)} -.sidenav-tree ul.top-level >li >ul li.active {border-left:5px solid #e67e22} -.sidenav-tree ul.top-level >li >ul li.active a {color:rgba(255,255,255,0.91);padding-right:20px} -.sidenav-tree ul.top-level >li >ul li.active a span.header {color:#fff} -.sidenav-tree ul.top-level >li >ul li.active a span.description {color:rgba(255,255,255,0.91)} -.sidenav-tree .back-link {display:none} -@media (min-width:768px) {.sidenav-tree-root .sidenav-tree {width:600px }.sidenav-tree-root .sidenav-tree ul.top-level >li >ul {font-size:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;align-content:stretch }.sidenav-tree-root .sidenav-tree ul.top-level >li >ul >li {display:inline-block;width:300px }.sidenav-tree-root .sidenav-tree ul.top-level >li >ul >li a {height:100% }} -@media (min-width:768px) and (max-width:991px) {.sidenav-tree-root .sidenav-tree {width:100% }.sidenav-tree-root .sidenav-tree ul.top-level >li >ul >li {width:50% }} -@media (min-width:1200px) {.sidenav-tree-root .sidenav-tree {width:900px }} -@media (max-width:768px) {.sidenav-tree {width:100%;height:auto !important;display:block !important }.sidenav-tree >.layout {display:none }.sidenav-tree-root .sidenav-tree {width:100% !important;height:100% !important;display:table-cell !important }.sidenav-tree-root .sidenav-tree .back-link {display:none !important }.sidenav-tree-root .sidenav-tree >.layout {display:table !important }.sidenav-tree-root #layout-body {display:none }body.has-sidenav-tree .sidenav-tree .back-link {display:block;padding:13px 15px;background:#2b3e50;color:#bdc3c7;font-size:14px;line-height:14px;text-transform:uppercase }body.has-sidenav-tree .sidenav-tree .back-link i {display:inline-block;margin-right:10px }body.has-sidenav-tree .sidenav-tree .back-link:hover {text-decoration:none }body.has-sidenav-tree #layout-body {display:block !important }} -div.panel {padding:20px} -div.panel.no-padding {padding:0} -div.panel.no-padding-bottom {padding-bottom:0} -div.panel.padding-top {padding-top:20px} -div.panel.padding-less {padding:15px} -div.panel.transparent {background:transparent} -div.panel.border-left {border-left:1px solid #e8eaeb} -div.panel.border-right {border-right:1px solid #e8eaeb} -div.panel.border-bottom {border-bottom:1px solid #e8eaeb} -div.panel.border-top {border-top:1px solid #e8eaeb} -div.panel.triangle-down {position:relative} -div.panel.triangle-down:after {content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #fff;border-bottom-width:0;position:absolute;left:15px;bottom:-8px;z-index:101} -div.panel.triangle-down:before {content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-top:9px solid #e8eaeb;border-bottom-width:0;position:absolute;left:14px;bottom:-9px;z-index:100} +body.dragging .control-treeview ol.dragging ol{background:#ccc;padding-right:20px;-webkit-transition:padding 1s;transition:padding 1s} +body.dragging .control-treeview ol.dragging>li>div, +body.dragging .control-treeview ol.dragging ol>li>div{margin-right:0;-webkit-transition:margin 1s;transition:margin 1s} +body.dragging .control-treeview ol.dragging>li>div .custom-checkbox, +body.dragging .control-treeview ol.dragging ol>li>div .custom-checkbox{-webkit-transition:opacity 0.5s;transition:opacity 0.5s;opacity:0;filter:alpha(opacity=0)} +body.dragging .control-treeview.treeview-light ol.dragging>li>div, +body.dragging .control-treeview.treeview-light ol.dragging ol>li>div{background-color:#f9f9f9} +@media only screen and (min--moz-device-pixel-ratio:1.5),only screen and (-o-min-device-pixel-ratio:3/2),only screen and (-webkit-min-device-pixel-ratio:1.5),only screen and (min-devicepixel-ratio:1.5),only screen and (min-resolution:1.5dppx){.control-treeview ol>li>div:before{background-position:0 -79px;background-size:21px auto}.control-treeview ol>li.has-subitems>div:before{background-position:0 -52px}.control-treeview ol>li.has-subitems>div:hover:before,.control-treeview ol>li.has-subitems>div.popover-highlight:before{background-position:0 -102px}.control-treeview ol>li.dragged>div:before,.control-treeview ol>li.dragged li>div:before,.control-treeview ol>li>div:hover:before,.control-treeview ol>li>div.popover-highlight:before{background-position:0 -129px}.control-treeview ol>li.dragged li.has-subitems>div:before,.control-treeview ol>li.dragged.has-subitems>div:before{background-position:0 -102px}.control-treeview ol>li.drop-target>div:before{background-position:0 -129px}.control-treeview ol>li.drop-target.has-subitems>div:before{background-position:0 -102px}} +.sidenav-tree{width:300px} +.sidenav-tree .control-toolbar{padding:0} +.sidenav-tree .control-toolbar .toolbar-item{display:block} +.sidenav-tree .control-toolbar input.form-control{border:none;outline:none;padding:12px 13px 13px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:inset -3px 0 3px rgba(0,0,0,0.1);box-shadow:inset -3px 0 3px rgba(0,0,0,0.1)} +.sidenav-tree .control-toolbar input.form-control.search{background-position:right -78px} +.sidenav-tree ul{padding:0;margin:0;list-style:none} +.sidenav-tree div.scrollbar-thumb{background:rgba(0,0,0,0.2) !important} +.sidenav-tree ul.top-level>li[data-status=collapsed]>div.group h3:before{-webkit-transform:rotate(0deg) translate(2px,-2px);-ms-transform:rotate(0deg) translate(2px,-2px);transform:rotate(0deg) translate(2px,-2px)} +.sidenav-tree ul.top-level>li[data-status=collapsed]>div.group:before, +.sidenav-tree ul.top-level>li[data-status=collapsed]>div.group:after{display:none} +.sidenav-tree ul.top-level>li[data-status=collapsed] ul{display:none} +.sidenav-tree ul.top-level>li>div.group{position:relative} +.sidenav-tree ul.top-level>li>div.group h3{background:rgba(0,0,0,0.15);color:#ecf0f1;text-transform:uppercase;font-size:15px;padding:15px 15px 15px 40px;margin:0;position:relative;cursor:pointer;font-weight:400} +.sidenav-tree ul.top-level>li>div.group h3:before{display:block;position:absolute;width:10px;height:10px;left:16px;top:15px;color:#cfcfcf;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f105";-webkit-transform:rotate(90deg) translate(5px,-3px);-ms-transform:rotate(90deg) translate(5px,-3px);transform:rotate(90deg) translate(5px,-3px);-webkit-transition:all 0.1s ease;transition:all 0.1s ease;font-size:16px} +.sidenav-tree ul.top-level>li>div.group:before, +.sidenav-tree ul.top-level>li>div.group:after{content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #34495e;border-bottom-width:0;position:absolute;left:15px;bottom:-8px;z-index:101} +.sidenav-tree ul.top-level>li>div.group:after{content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid rgba(0,0,0,0.15);border-bottom-width:0} +.sidenav-tree ul.top-level>li>ul li a{display:block;position:relative;padding:18px 25px 18px 55px;background:transparent;border-bottom:1px solid rgba(0,0,0,0.15);color:#fff;text-decoration:none !important;opacity:0.65;filter:alpha(opacity=65)} +.sidenav-tree ul.top-level>li>ul li a:active, +.sidenav-tree ul.top-level>li>ul li a:hover{opacity:1;filter:alpha(opacity=100);text-decoration:none} +.sidenav-tree ul.top-level>li>ul li a i{position:absolute;left:16px;top:18px;font-size:22px} +.sidenav-tree ul.top-level>li>ul li a span{display:block;line-height:150%} +.sidenav-tree ul.top-level>li>ul li a span.header{color:#fff;font-size:15px;margin-bottom:5px} +.sidenav-tree ul.top-level>li>ul li a span.description{color:rgba(255,255,255,0.6);font-size:13px} +.sidenav-tree ul.top-level>li>ul li:hover a, +.sidenav-tree ul.top-level>li>ul li.active a{opacity:1;filter:alpha(opacity=100)} +.sidenav-tree ul.top-level>li>ul li.active{border-left:5px solid #e67e22} +.sidenav-tree ul.top-level>li>ul li.active a{color:rgba(255,255,255,0.91);padding-right:20px} +.sidenav-tree ul.top-level>li>ul li.active a span.header{color:#fff} +.sidenav-tree ul.top-level>li>ul li.active a span.description{color:rgba(255,255,255,0.91)} +.sidenav-tree .back-link{display:none} +@media (min-width:768px){.sidenav-tree-root .sidenav-tree{width:600px}.sidenav-tree-root .sidenav-tree ul.top-level>li>ul{font-size:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:stretch;align-content:stretch}.sidenav-tree-root .sidenav-tree ul.top-level>li>ul>li{display:inline-block;width:300px}.sidenav-tree-root .sidenav-tree ul.top-level>li>ul>li a{height:100%}} +@media (min-width:768px) and (max-width:991px){.sidenav-tree-root .sidenav-tree{width:100%}.sidenav-tree-root .sidenav-tree ul.top-level>li>ul>li{width:50%}} +@media (min-width:1200px){.sidenav-tree-root .sidenav-tree{width:900px}} +@media (max-width:768px){.sidenav-tree{width:100%;height:auto !important;display:block !important}.sidenav-tree>.layout{display:none}.sidenav-tree-root .sidenav-tree{width:100% !important;height:100% !important;display:table-cell !important}.sidenav-tree-root .sidenav-tree .back-link{display:none !important}.sidenav-tree-root .sidenav-tree>.layout{display:table !important}.sidenav-tree-root #layout-body{display:none}body.has-sidenav-tree .sidenav-tree .back-link{display:block;padding:13px 15px;background:#2b3e50;color:#bdc3c7;font-size:14px;line-height:14px;text-transform:uppercase}body.has-sidenav-tree .sidenav-tree .back-link i{display:inline-block;margin-right:10px}body.has-sidenav-tree .sidenav-tree .back-link:hover{text-decoration:none}body.has-sidenav-tree #layout-body{display:block !important}} +div.panel{padding:20px} +div.panel.no-padding{padding:0} +div.panel.no-padding-bottom{padding-bottom:0} +div.panel.padding-top{padding-top:20px} +div.panel.padding-less{padding:15px} +div.panel.transparent{background:transparent} +div.panel.border-left{border-left:1px solid #e8eaeb} +div.panel.border-right{border-right:1px solid #e8eaeb} +div.panel.border-bottom{border-bottom:1px solid #e8eaeb} +div.panel.border-top{border-top:1px solid #e8eaeb} +div.panel.triangle-down{position:relative} +div.panel.triangle-down:after{content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #fff;border-bottom-width:0;position:absolute;left:15px;bottom:-8px;z-index:101} +div.panel.triangle-down:before{content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-top:9px solid #e8eaeb;border-bottom-width:0;position:absolute;left:14px;bottom:-9px;z-index:100} div.panel h3.section, -div.panel >label {text-transform:uppercase;color:#95a5a6;font-size:13px;font-weight:600;margin:0 0 15px 0} -div.panel >label {margin-bottom:5px} -.nav.selector-group {font-size:13px;letter-spacing:0.01em;margin-bottom:20px} -.nav.selector-group li a {padding:7px 20px 7px 23px;color:#95a5a6} -.nav.selector-group li.active {border-left:3px solid #e6802b;padding-left:0} -.nav.selector-group li.active a {padding-left:20px;color:#2b3e50} -.nav.selector-group li i[class^="icon-"] {font-size:17px;margin-right:6px;position:relative;top:1px} -div.panel .nav.selector-group {margin:0 -20px 20px -20px} -ul.tree-path {list-style:none;padding:0;margin-bottom:0} -ul.tree-path li {display:inline-block;margin-right:1px;font-size:13px} -ul.tree-path li:after {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f105";display:inline-block;font-size:13px;margin-left:5px;position:relative;top:1px;color:#95a5a6} -ul.tree-path li:last-child a {cursor:default} -ul.tree-path li:last-child:after {display:none} -ul.tree-path li.go-up {font-size:12px;margin-right:7px} -ul.tree-path li.go-up a {color:#95a5a6} -ul.tree-path li.go-up a:hover {color:#0181b9} -ul.tree-path li.go-up:after {display:none} -ul.tree-path li.root a {font-weight:600;color:#405261} -ul.tree-path li a {color:#95a5a6} -ul.tree-path li a:hover {text-decoration:none} -table.name-value-list {border-collapse:collapse;font-size:13px} +div.panel>label{text-transform:uppercase;color:#95a5a6;font-size:13px;font-weight:600;margin:0 0 15px 0} +div.panel>label{margin-bottom:5px} +.nav.selector-group{font-size:13px;letter-spacing:0.01em;margin-bottom:20px} +.nav.selector-group li a{padding:7px 20px 7px 23px;color:#95a5a6} +.nav.selector-group li.active{border-left:3px solid #e6802b;padding-left:0} +.nav.selector-group li.active a{padding-left:20px;color:#2b3e50} +.nav.selector-group li i[class^="icon-"]{font-size:17px;margin-right:6px;position:relative;top:1px} +div.panel .nav.selector-group{margin:0 -20px 20px -20px} +ul.tree-path{list-style:none;padding:0;margin-bottom:0} +ul.tree-path li{display:inline-block;margin-right:1px;font-size:13px} +ul.tree-path li:after{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f105";display:inline-block;font-size:13px;margin-left:5px;position:relative;top:1px;color:#95a5a6} +ul.tree-path li:last-child a{cursor:default} +ul.tree-path li:last-child:after{display:none} +ul.tree-path li.go-up{font-size:12px;margin-right:7px} +ul.tree-path li.go-up a{color:#95a5a6} +ul.tree-path li.go-up a:hover{color:#0181b9} +ul.tree-path li.go-up:after{display:none} +ul.tree-path li.root a{font-weight:600;color:#405261} +ul.tree-path li a{color:#95a5a6} +ul.tree-path li a:hover{text-decoration:none} +table.name-value-list{border-collapse:collapse;font-size:13px} table.name-value-list th, -table.name-value-list td {padding:4px 0 4px 0;vertical-align:top} +table.name-value-list td{padding:4px 0 4px 0;vertical-align:top} table.name-value-list tr:first-child th, -table.name-value-list tr:first-child td {padding-top:0} -table.name-value-list th {font-weight:600;color:#95a5a6;padding-right:15px;text-transform:uppercase} -table.name-value-list td {color:#2b3e50;word-wrap:break-word} -.scrollpad-scrollbar-size-tester {width:50px;height:50px;overflow-y:scroll;position:absolute;top:-200px;left:-200px} -.scrollpad-scrollbar-size-tester div {height:100px} -.scrollpad-scrollbar-size-tester::-webkit-scrollbar {width:0;height:0} -div.control-scrollpad {position:relative;width:100%;height:100%;overflow:hidden} -div.control-scrollpad >div {overflow:hidden;overflow-y:scroll;height:100%} -div.control-scrollpad >div::-webkit-scrollbar {width:0;height:0} -div.control-scrollpad[data-direction=horizontal] >div {overflow-x:scroll;overflow-y:hidden;width:100%} -div.control-scrollpad[data-direction=horizontal] >div::-webkit-scrollbar {width:auto;height:0} -div.control-scrollpad >.scrollpad-scrollbar {z-index:199;position:absolute;top:0;right:0;bottom:0;width:11px;background-color:transparent;opacity:0;overflow:hidden;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-transition:opacity 0.3s;transition:opacity 0.3s} -div.control-scrollpad >.scrollpad-scrollbar .drag-handle {position:absolute;right:2px;min-height:10px;width:7px;background-color:rgba(0,0,0,0.35);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px} -div.control-scrollpad >.scrollpad-scrollbar:hover {opacity:0.7;filter:alpha(opacity=70);-webkit-transition:opacity 0 linear;transition:opacity 0 linear} -div.control-scrollpad >.scrollpad-scrollbar[data-visible] {opacity:0.7;filter:alpha(opacity=70)} -div.control-scrollpad >.scrollpad-scrollbar[data-hidden] {display:none} -div.control-scrollpad[data-direction=horizontal] >.scrollpad-scrollbar {top:auto;left:0;width:auto;height:11px} -div.control-scrollpad[data-direction=horizontal] >.scrollpad-scrollbar .drag-handle {right:auto;top:2px;height:7px;min-height:0;min-width:10px;width:auto} -.svg-icon-container img.svg-icon {display:none} -.svg-icon-container.svg-active-effects img.svg-icon {-webkit-filter:grayscale(100%);filter:grayscale(100%);opacity:0.6;filter:alpha(opacity=60)} +table.name-value-list tr:first-child td{padding-top:0} +table.name-value-list th{font-weight:600;color:#95a5a6;padding-right:15px;text-transform:uppercase} +table.name-value-list td{color:#2b3e50;word-wrap:break-word} +.scrollpad-scrollbar-size-tester{width:50px;height:50px;overflow-y:scroll;position:absolute;top:-200px;left:-200px} +.scrollpad-scrollbar-size-tester div{height:100px} +.scrollpad-scrollbar-size-tester::-webkit-scrollbar{width:0;height:0} +div.control-scrollpad{position:relative;width:100%;height:100%;overflow:hidden} +div.control-scrollpad>div{overflow:hidden;overflow-y:scroll;height:100%} +div.control-scrollpad>div::-webkit-scrollbar{width:0;height:0} +div.control-scrollpad[data-direction=horizontal]>div{overflow-x:scroll;overflow-y:hidden;width:100%} +div.control-scrollpad[data-direction=horizontal]>div::-webkit-scrollbar{width:auto;height:0} +div.control-scrollpad>.scrollpad-scrollbar{z-index:199;position:absolute;top:0;right:0;bottom:0;width:11px;background-color:transparent;opacity:0;overflow:hidden;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;-webkit-transition:opacity 0.3s;transition:opacity 0.3s} +div.control-scrollpad>.scrollpad-scrollbar .drag-handle{position:absolute;right:2px;min-height:10px;width:7px;background-color:rgba(0,0,0,0.35);-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px} +div.control-scrollpad>.scrollpad-scrollbar:hover{opacity:0.7;filter:alpha(opacity=70);-webkit-transition:opacity 0 linear;transition:opacity 0 linear} +div.control-scrollpad>.scrollpad-scrollbar[data-visible]{opacity:0.7;filter:alpha(opacity=70)} +div.control-scrollpad>.scrollpad-scrollbar[data-hidden]{display:none} +div.control-scrollpad[data-direction=horizontal]>.scrollpad-scrollbar{top:auto;left:0;width:auto;height:11px} +div.control-scrollpad[data-direction=horizontal]>.scrollpad-scrollbar .drag-handle{right:auto;top:2px;height:7px;min-height:0;min-width:10px;width:auto} +.svg-icon-container img.svg-icon{display:none} +.svg-icon-container.svg-active-effects img.svg-icon{-webkit-filter:grayscale(100%);filter:grayscale(100%);opacity:0.6;filter:alpha(opacity=60)} .svg-icon-container.svg-active-effects:hover img.svg-icon, -.svg-icon-container.svg-active-effects.active img.svg-icon {-webkit-filter:none;filter:none;opacity:1;filter:alpha(opacity=100)} -html.svg .svg-icon-container i.svg-replace {display:none} -@-webkit-keyframes fadeIn {0% {opacity:0 }100% {opacity:1 }} -@keyframes fadeIn {0% {opacity:0 }100% {opacity:1 }} -.fadeIn {-webkit-animation-name:fadeIn;animation-name:fadeIn} -@-webkit-keyframes fadeInDown {0% {opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0) }100% {opacity:1;-webkit-transform:none;transform:none }} -@keyframes fadeInDown {0% {opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0) }100% {opacity:1;-webkit-transform:none;-ms-transform:none;transform:none }} -.fadeInDown {-webkit-animation-name:fadeInDown;animation-name:fadeInDown} -@-webkit-keyframes fadeInLeft {0% {opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0) }100% {opacity:1;-webkit-transform:none;transform:none }} -@keyframes fadeInLeft {0% {opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0) }100% {opacity:1;-webkit-transform:none;-ms-transform:none;transform:none }} -.fadeInLeft {-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft} -@-webkit-keyframes fadeInRight {0% {opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0) }100% {opacity:1;-webkit-transform:none;transform:none }} -@keyframes fadeInRight {0% {opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0) }100% {opacity:1;-webkit-transform:none;-ms-transform:none;transform:none }} -.fadeInRight {-webkit-animation-name:fadeInRight;animation-name:fadeInRight} -@-webkit-keyframes fadeInUp {0% {opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0) }100% {opacity:1;-webkit-transform:none;transform:none }} -@keyframes fadeInUp {0% {opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0) }100% {opacity:1;-webkit-transform:none;-ms-transform:none;transform:none }} -.fadeInUp {-webkit-animation-name:fadeInUp;animation-name:fadeInUp} -@-webkit-keyframes fadeInUpBig {0% {opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0) }100% {opacity:1;-webkit-transform:none;transform:none }} -@-webkit-keyframes fadeOut {0% {opacity:1 }100% {opacity:0 }} -@keyframes fadeOut {0% {opacity:1 }100% {opacity:0 }} -.fadeOut {-webkit-animation-name:fadeOut;animation-name:fadeOut} -@-webkit-keyframes fadeOutDown {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0) }} -@keyframes fadeOutDown {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0) }} -.fadeOutDown {-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown} -@-webkit-keyframes fadeOutLeft {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0) }} -@keyframes fadeOutLeft {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0) }} -.fadeOutLeft {-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft} -@-webkit-keyframes fadeOutRight {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0) }} -@keyframes fadeOutRight {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0) }} -.fadeOutRight {-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight} -@-webkit-keyframes fadeOutUp {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0) }} -@keyframes fadeOutUp {0% {opacity:1 }100% {opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0) }} -.fadeOutUp {-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp} -html:not(.mobile) body.drag * {cursor:grab !important;cursor:-webkit-grab !important;cursor:-moz-grab !important} +.svg-icon-container.svg-active-effects.active img.svg-icon{-webkit-filter:none;filter:none;opacity:1;filter:alpha(opacity=100)} +html.svg .svg-icon-container i.svg-replace{display:none} +@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}} +@keyframes fadeIn{0%{opacity:0}100%{opacity:1}} +.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn} +@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}} +@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}} +.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown} +@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}} +@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}} +.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft} +@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;transform:none}} +@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}} +.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight} +@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;transform:none}} +@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}100%{opacity:1;-webkit-transform:none;-ms-transform:none;transform:none}} +.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp} +@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}100%{opacity:1;-webkit-transform:none;transform:none}} +@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}} +@keyframes fadeOut{0%{opacity:1}100%{opacity:0}} +.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut} +@-webkit-keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}} +@keyframes fadeOutDown{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}} +.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown} +@-webkit-keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}} +@keyframes fadeOutLeft{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}} +.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft} +@-webkit-keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}} +@keyframes fadeOutRight{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}} +.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight} +@-webkit-keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}} +@keyframes fadeOutUp{0%{opacity:1}100%{opacity:0;-webkit-transform:translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}} +.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp} +html:not(.mobile) body.drag *{cursor:grab !important;cursor:-webkit-grab !important;cursor:-moz-grab !important} body.dragging, -body.dragging * {cursor:move !important} +body.dragging *{cursor:move !important} body.loading, -body.loading * {cursor:wait !important} -body.no-select {-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default !important} +body.loading *{cursor:wait !important} +body.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default !important} html, -body {height:100%} -body {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";background:#f9f9f9;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} -#layout-canvas {min-height:100%;height:100%} -.control-tabs.primary-tabs >ul.nav-tabs, -.control-tabs.primary-tabs >div >ul.nav-tabs, -.control-tabs.primary-tabs >div >div >ul.nav-tabs {margin-left:-20px;margin-right:-20px} -.control-tabs.primary-tabs.tabs-no-inset >ul.nav-tabs, -.control-tabs.primary-tabs.tabs-no-inset >div >ul.nav-tabs, -.control-tabs.primary-tabs.tabs-no-inset >div >div >ul.nav-tabs {margin-left:0;margin-right:0} -.global-notice{position:sticky;top:0;display:flex;align-items:center;flex-wrap:wrap;gap:0.5em;justify-content:space-between;z-index:10500;background:#ab2a1c;color:#FFF;padding:0.5em 0.75em} -.global-notice .notice-icon{font-size:1.5em;vertical-align:bottom;display:inline-block;margin-right:.25em} -.global-notice .notice-text{display:inline-block;vertical-align:middle} -.layout {display:table;table-layout:fixed;height:100%;width:100%} -.layout >.layout-row {display:table-row;vertical-align:top;height:100%} -.layout >.layout-row >.layout-cell {display:table-cell;vertical-align:top;height:100%} -.layout >.layout-row >.layout-cell.layout-container, -.layout >.layout-row >.layout-cell .layout-container, -.layout >.layout-row >.layout-cell.padded-container, -.layout >.layout-row >.layout-cell .padded-container {padding:20px 20px 0 20px} -.layout >.layout-row >.layout-cell.layout-container .container-flush, -.layout >.layout-row >.layout-cell .layout-container .container-flush, -.layout >.layout-row >.layout-cell.padded-container .container-flush, -.layout >.layout-row >.layout-cell .padded-container .container-flush {padding-top:0} -.layout >.layout-row >.layout-cell .layout-relative {position:relative;height:100%} -.layout >.layout-row >.layout-cell .layout-absolute {position:absolute;height:100%;width:100%} -.layout >.layout-row >.layout-cell.min-size {width:0} -.layout >.layout-row >.layout-cell.min-height {height:0} -.layout >.layout-row >.layout-cell.center {text-align:center} -.layout >.layout-row >.layout-cell.middle {vertical-align:middle} -.layout >.layout-row >.layout-cell.layout-container, -.layout >.layout-row >.layout-cell .layout-container, -.layout >.layout-row >.layout-cell.padded-container, -.layout >.layout-row >.layout-cell .padded-container {padding:20px 20px 0 20px} -.layout >.layout-row >.layout-cell.layout-container .container-flush, -.layout >.layout-row >.layout-cell .layout-container .container-flush, -.layout >.layout-row >.layout-cell.padded-container .container-flush, -.layout >.layout-row >.layout-cell .padded-container .container-flush {padding-top:0} -.layout >.layout-row >.layout-cell .layout-relative {position:relative;height:100%} -.layout >.layout-row >.layout-cell .layout-absolute {position:absolute;height:100%;width:100%} -.layout >.layout-row >.layout-cell.min-size {width:0} -.layout >.layout-row >.layout-cell.min-height {height:0} -.layout >.layout-row >.layout-cell.center {text-align:center} -.layout >.layout-row >.layout-cell.middle {vertical-align:middle} -.layout >.layout-row.min-size {height:0.1px} -.layout >.layout-cell {display:table-cell;vertical-align:top;height:100%} -.layout >.layout-cell.layout-container, -.layout >.layout-cell .layout-container, -.layout >.layout-cell.padded-container, -.layout >.layout-cell .padded-container {padding:20px 20px 0 20px} -.layout >.layout-cell.layout-container .container-flush, -.layout >.layout-cell .layout-container .container-flush, -.layout >.layout-cell.padded-container .container-flush, -.layout >.layout-cell .padded-container .container-flush {padding-top:0} -.layout >.layout-cell .layout-relative {position:relative;height:100%} -.layout >.layout-cell .layout-absolute {position:absolute;height:100%;width:100%} -.layout >.layout-cell.min-size {width:0} -.layout >.layout-cell.min-height {height:0} -.layout >.layout-cell.center {text-align:center} -.layout >.layout-cell.middle {vertical-align:middle} -.whiteboard {background:white} -.layout-fill-container {position:absolute;left:0;top:0;width:100%;height:100%} -[data-calculate-width] >form, -[data-calculate-width] >div {display:inline-block} +body{height:100%} +body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";background:#f9f9f9;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale} +#layout-canvas{min-height:100%;height:100%} +.control-tabs.primary-tabs>ul.nav-tabs, +.control-tabs.primary-tabs>div>ul.nav-tabs, +.control-tabs.primary-tabs>div>div>ul.nav-tabs{margin-left:-20px;margin-right:-20px} +.control-tabs.primary-tabs.tabs-no-inset>ul.nav-tabs, +.control-tabs.primary-tabs.tabs-no-inset>div>ul.nav-tabs, +.control-tabs.primary-tabs.tabs-no-inset>div>div>ul.nav-tabs{margin-left:0;margin-right:0} +.layout{display:table;table-layout:fixed;height:100%;width:100%} +.layout>.layout-row{display:table-row;vertical-align:top;height:100%} +.layout>.layout-row>.layout-cell{display:table-cell;vertical-align:top;height:100%} +.layout>.layout-row>.layout-cell.layout-container, +.layout>.layout-row>.layout-cell .layout-container, +.layout>.layout-row>.layout-cell.padded-container, +.layout>.layout-row>.layout-cell .padded-container{padding:20px 20px 0 20px} +.layout>.layout-row>.layout-cell.layout-container .container-flush, +.layout>.layout-row>.layout-cell .layout-container .container-flush, +.layout>.layout-row>.layout-cell.padded-container .container-flush, +.layout>.layout-row>.layout-cell .padded-container .container-flush{padding-top:0} +.layout>.layout-row>.layout-cell .layout-relative{position:relative;height:100%} +.layout>.layout-row>.layout-cell .layout-absolute{position:absolute;height:100%;width:100%} +.layout>.layout-row>.layout-cell.min-size{width:0} +.layout>.layout-row>.layout-cell.min-height{height:0} +.layout>.layout-row>.layout-cell.center{text-align:center} +.layout>.layout-row>.layout-cell.middle{vertical-align:middle} +.layout>.layout-row>.layout-cell.layout-container, +.layout>.layout-row>.layout-cell .layout-container, +.layout>.layout-row>.layout-cell.padded-container, +.layout>.layout-row>.layout-cell .padded-container{padding:20px 20px 0 20px} +.layout>.layout-row>.layout-cell.layout-container .container-flush, +.layout>.layout-row>.layout-cell .layout-container .container-flush, +.layout>.layout-row>.layout-cell.padded-container .container-flush, +.layout>.layout-row>.layout-cell .padded-container .container-flush{padding-top:0} +.layout>.layout-row>.layout-cell .layout-relative{position:relative;height:100%} +.layout>.layout-row>.layout-cell .layout-absolute{position:absolute;height:100%;width:100%} +.layout>.layout-row>.layout-cell.min-size{width:0} +.layout>.layout-row>.layout-cell.min-height{height:0} +.layout>.layout-row>.layout-cell.center{text-align:center} +.layout>.layout-row>.layout-cell.middle{vertical-align:middle} +.layout>.layout-row.min-size{height:0.1px} +.layout>.layout-cell{display:table-cell;vertical-align:top;height:100%} +.layout>.layout-cell.layout-container, +.layout>.layout-cell .layout-container, +.layout>.layout-cell.padded-container, +.layout>.layout-cell .padded-container{padding:20px 20px 0 20px} +.layout>.layout-cell.layout-container .container-flush, +.layout>.layout-cell .layout-container .container-flush, +.layout>.layout-cell.padded-container .container-flush, +.layout>.layout-cell .padded-container .container-flush{padding-top:0} +.layout>.layout-cell .layout-relative{position:relative;height:100%} +.layout>.layout-cell .layout-absolute{position:absolute;height:100%;width:100%} +.layout>.layout-cell.min-size{width:0} +.layout>.layout-cell.min-height{height:0} +.layout>.layout-cell.center{text-align:center} +.layout>.layout-cell.middle{vertical-align:middle} +.whiteboard{background:white} +.layout-fill-container{position:absolute;left:0;top:0;width:100%;height:100%} +[data-calculate-width]>form, +[data-calculate-width]>div{display:inline-block} body.compact-container .layout.layout-container, -body.compact-container .layout .layout-container {padding:0 !important} +body.compact-container .layout .layout-container{padding:0 !important} body.slim-container .layout.layout-container, -body.slim-container .layout .layout-container {padding-left:0 !important;padding-right:0 !important} -@media (max-width:768px) {.layout .hide-on-small {display:none }.layout.responsive-sidebar >.layout-cell:first-child {display:table-footer-group;height:auto }.layout.responsive-sidebar >.layout-cell:first-child .control-breadcrumb {display:none }.layout.responsive-sidebar >.layout-cell:last-child {display:table-header-group;width:auto;height:auto }.layout.responsive-sidebar >.layout-cell:last-child .layout-absolute {position:static }} -.flex-layout-column {display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:column;-moz-flex-direction:column;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column} -.flex-layout-column.full-height-strict {height:100%} -.flex-layout-column.absolute {position:absolute !important} -.flex-layout-column.fill-container {position:absolute;left:0;top:0;width:100%;height:100%} -.flex-layout-row {display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:row;-moz-flex-direction:row;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row} +body.slim-container .layout .layout-container{padding-left:0 !important;padding-right:0 !important} +@media (max-width:768px){.layout .hide-on-small{display:none}.layout.responsive-sidebar>.layout-cell:first-child{display:table-footer-group;height:auto}.layout.responsive-sidebar>.layout-cell:first-child .control-breadcrumb{display:none}.layout.responsive-sidebar>.layout-cell:last-child{display:table-header-group;width:auto;height:auto}.layout.responsive-sidebar>.layout-cell:last-child .layout-absolute{position:static}} +.flex-layout-column{display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:column;-moz-flex-direction:column;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column} +.flex-layout-column.full-height-strict{height:100%} +.flex-layout-column.absolute{position:absolute !important} +.flex-layout-column.fill-container{position:absolute;left:0;top:0;width:100%;height:100%} +.flex-layout-row{display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex;-webkit-flex-direction:row;-moz-flex-direction:row;-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row} .flex-layout-column.justify-center, -.flex-layout-row.justify-center {-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-webkit-box-pack:center;justify-content:center} +.flex-layout-row.justify-center{-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-webkit-box-pack:center;justify-content:center} .flex-layout-column.align-center, -.flex-layout-row.align-center {-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-align-content:center;-moz-align-content:center;-webkit-box-align:center;-ms-align-content:center;align-content:center} +.flex-layout-row.align-center{-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;align-items:center;-webkit-align-content:center;-moz-align-content:center;-webkit-box-align:center;-ms-align-content:center;align-content:center} .flex-layout-column.full-height, -.flex-layout-row.full-height {min-height:100%} -.flex-layout-item {margin:0} -.flex-layout-item.fix {-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto} -.flex-layout-item.stretch {-webkit-box-flex:1;-webkit-flex:1 1 auto;-moz-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto} -.flex-layout-item.stretch-constrain {-webkit-box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1} -.flex-layout-item.center {-webkit-align-self:center;-moz-align-self:center;-ms-align-self:center;align-self:center} -.flex-layout-item.relative {position:relative} -.flex-layout-item.layout-container {max-width:none} -body.mainmenu-open {overflow:hidden;position:fixed} -.mainmenu-tooltip .tooltip-inner {font-size:13px;padding:6px 16px} -ul.mainmenu-nav {font-size:14px} -ul.mainmenu-nav li {} -ul.mainmenu-nav li .svg-icon {-webkit-backface-visibility:hidden;backface-visibility:hidden} -ul.mainmenu-nav li span.counter {display:block;position:absolute;top:.143em;right:0;padding:.143em .429em .214em .286em;background-color:#d9350f;color:#fff;font-size:.786em;line-height:100%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1,);-ms-transform:scale(1,);transform:scale(1,);-webkit-transition:all 0.3s;transition:all 0.3s} -ul.mainmenu-nav li span.counter.empty {opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0,);-ms-transform:scale(0,);transform:scale(0,)} -nav#layout-mainmenu {background-color:#000;padding:0 0 0 20px;line-height:0;white-space:nowrap;display:flex} -nav#layout-mainmenu a {text-decoration:none} -nav#layout-mainmenu a:focus {background:transparent} -nav#layout-mainmenu ul {margin:0;padding:0;list-style:none;float:left;white-space:nowrap;overflow:hidden} -nav#layout-mainmenu ul li {color:rgba(255,255,255,0.6);display:inline-block;vertical-align:top;position:relative;margin-right:30px} -nav#layout-mainmenu ul li a {display:inline-block;font-size:14px;color:inherit;padding:14px 0 10px} -nav#layout-mainmenu ul li a:hover {background-color:transparent} +.flex-layout-row.full-height{min-height:100%} +.flex-layout-item{margin:0} +.flex-layout-item.fix{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto} +.flex-layout-item.stretch{-webkit-box-flex:1;-webkit-flex:1 1 auto;-moz-flex:1 1 auto;-ms-flex:1 1 auto;flex:1 1 auto} +.flex-layout-item.stretch-constrain{-webkit-box-flex:1;-webkit-flex:1;-moz-flex:1;-ms-flex:1;flex:1} +.flex-layout-item.center{-webkit-align-self:center;-moz-align-self:center;-ms-align-self:center;align-self:center} +.flex-layout-item.relative{position:relative} +.flex-layout-item.layout-container{max-width:none} +body.mainmenu-open{overflow:hidden;position:fixed} +.mainmenu-tooltip .tooltip-inner{font-size:13px;padding:6px 16px} +ul.mainmenu-nav{font-size:14px} +ul.mainmenu-nav li{} +ul.mainmenu-nav li .svg-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden} +ul.mainmenu-nav li span.counter{display:block;position:absolute;top:.143em;right:0;padding:.143em .429em .214em .286em;background-color:#d9350f;color:#fff;font-size:.786em;line-height:100%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1,);-ms-transform:scale(1,);transform:scale(1,);-webkit-transition:all 0.3s;transition:all 0.3s} +ul.mainmenu-nav li span.counter.empty{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0,);-ms-transform:scale(0,);transform:scale(0,)} +nav#layout-mainmenu{background-color:#000;padding:0 0 0 20px;line-height:0;white-space:nowrap;display:flex} +nav#layout-mainmenu a{text-decoration:none} +nav#layout-mainmenu a:focus{background:transparent} +nav#layout-mainmenu ul{margin:0;padding:0;list-style:none;float:left;white-space:nowrap;overflow:hidden} +nav#layout-mainmenu ul li{color:rgba(255,255,255,0.6);display:inline-block;vertical-align:top;position:relative;margin-right:30px} +nav#layout-mainmenu ul li a{display:inline-block;font-size:14px;color:inherit;padding:14px 0 10px} +nav#layout-mainmenu ul li a:hover{background-color:transparent} nav#layout-mainmenu ul li a:active, -nav#layout-mainmenu ul li a:focus {text-decoration:none;color:rgba(255,255,255,0.6)} -nav#layout-mainmenu ul li a i {line-height:1;font-size:30px;vertical-align:middle} -nav#layout-mainmenu ul li a img.svg-icon {height:30px;width:30px;margin-right:10px;position:relative;top:0} -nav#layout-mainmenu ul.nav {display:inline-block} -nav#layout-mainmenu .toolbar-item {flex:1 1 auto;display:block;padding-right:0;overflow:hidden} -nav#layout-mainmenu .toolbar-item-account {flex:0 0 auto} +nav#layout-mainmenu ul li a:focus{text-decoration:none;color:rgba(255,255,255,0.6)} +nav#layout-mainmenu ul li a i{line-height:1;font-size:30px;vertical-align:middle} +nav#layout-mainmenu ul li a img.svg-icon{height:30px;width:30px;margin-right:10px;position:relative;top:0} +nav#layout-mainmenu ul.nav{display:inline-block} +nav#layout-mainmenu .toolbar-item{flex:1 1 auto;display:block;padding-right:0;overflow:hidden} +nav#layout-mainmenu .toolbar-item-account{flex:0 0 auto} nav#layout-mainmenu .toolbar-item:before, -nav#layout-mainmenu .toolbar-item:after {margin-top:0} -nav#layout-mainmenu .toolbar-item:before {left:-12px} -nav#layout-mainmenu .toolbar-item:after {right:-12px} -nav#layout-mainmenu .toolbar-item.scroll-active-before:before {color:#fff} -nav#layout-mainmenu .toolbar-item.scroll-active-after:after {color:#fff} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action {margin:0} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action:first-child {margin-left:21px} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action i {font-size:20px} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action a {position:relative;padding:0 10px;top:-1px} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account {margin-right:0} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account >a {padding:0 15px 0 10px;font-size:13px;position:relative} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account.highlight >a {z-index:600} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account img.account-avatar {width:45px;height:45px} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account .account-name {margin-right:15px} -nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account ul {line-height:23px} +nav#layout-mainmenu .toolbar-item:after{margin-top:0} +nav#layout-mainmenu .toolbar-item:before{left:-12px} +nav#layout-mainmenu .toolbar-item:after{right:-12px} +nav#layout-mainmenu .toolbar-item.scroll-active-before:before{color:#fff} +nav#layout-mainmenu .toolbar-item.scroll-active-after:after{color:#fff} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action{margin:0} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action:first-child{margin-left:21px} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action i{font-size:20px} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-quick-action a{position:relative;padding:0 10px;top:-1px} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account{margin-right:0} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account>a{padding:0 15px 0 10px;font-size:13px;position:relative} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account.highlight>a{z-index:600} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account img.account-avatar{width:45px;height:45px} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account .account-name{margin-right:15px} +nav#layout-mainmenu ul.mainmenu-toolbar li.mainmenu-account ul{line-height:23px} html.svg nav#layout-mainmenu img.svg-icon, -html.svg .mainmenu-collapsed img.svg-icon {display:inline-block} -nav#layout-mainmenu ul li .mainmenu-accountmenu {position:fixed;top:0;right:20px;background:#f9f9f9;z-index:600;display:none;-webkit-box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);border-radius:3px} -nav#layout-mainmenu ul li .mainmenu-accountmenu.active {display:block} -nav#layout-mainmenu ul li .mainmenu-accountmenu:after {content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #f9f9f9;right:9px;top:-7px;position:absolute} -nav#layout-mainmenu ul li .mainmenu-accountmenu ul {float:none;display:block;overflow:visible} -nav#layout-mainmenu ul li .mainmenu-accountmenu li {padding:0;margin:0;font-weight:normal;text-align:left;display:block} -nav#layout-mainmenu ul li .mainmenu-accountmenu li a {display:block;padding:10px 30px;text-align:left;font-size:14px;color:#666} +html.svg .mainmenu-collapsed img.svg-icon{display:inline-block} +nav#layout-mainmenu ul li .mainmenu-accountmenu{position:fixed;top:0;right:20px;background:#f9f9f9;z-index:600;display:none;-webkit-box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);border-radius:3px} +nav#layout-mainmenu ul li .mainmenu-accountmenu.active{display:block} +nav#layout-mainmenu ul li .mainmenu-accountmenu:after{content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #f9f9f9;right:9px;top:-7px;position:absolute} +nav#layout-mainmenu ul li .mainmenu-accountmenu ul{float:none;display:block;overflow:visible} +nav#layout-mainmenu ul li .mainmenu-accountmenu li{padding:0;margin:0;font-weight:normal;text-align:left;display:block} +nav#layout-mainmenu ul li .mainmenu-accountmenu li a{display:block;padding:10px 30px;text-align:left;font-size:14px;color:#666} nav#layout-mainmenu ul li .mainmenu-accountmenu li a:hover, -nav#layout-mainmenu ul li .mainmenu-accountmenu li a:focus {background:#4ea5e0;color:#fff} -nav#layout-mainmenu ul li .mainmenu-accountmenu li a:active {background:#3498db;color:#fff} +nav#layout-mainmenu ul li .mainmenu-accountmenu li a:focus{background:#4ea5e0;color:#fff} +nav#layout-mainmenu ul li .mainmenu-accountmenu li a:active{background:#3498db;color:#fff} nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:hover:after, nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:focus:after, -nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:active:after {content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #4ea5e0;position:absolute;right:9px;top:-7px;z-index:102} -nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:active:after {content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #3498db} -nav#layout-mainmenu ul li .mainmenu-accountmenu li.divider {height:1px;width:100%;background-color:#e0e0e0} +nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:active:after{content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #4ea5e0;position:absolute;right:9px;top:-7px;z-index:102} +nav#layout-mainmenu ul li .mainmenu-accountmenu li:first-child a:active:after{content:'';display:block;width:0;height:0;border-left:8.5px solid transparent;border-right:8.5px solid transparent;border-bottom:7px solid #3498db} +nav#layout-mainmenu ul li .mainmenu-accountmenu li.divider{height:1px;width:100%;background-color:#e0e0e0} nav#layout-mainmenu.navbar-mode-inline, -nav#layout-mainmenu.navbar-mode-inline_no_icons {height:60px} +nav#layout-mainmenu.navbar-mode-inline_no_icons{height:60px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-toolbar li.mainmenu-quick-action a, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-toolbar li.mainmenu-quick-action a {height:60px;line-height:60px} -nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-toolbar li.mainmenu-account >a, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-toolbar li.mainmenu-account >a {height:60px;line-height:60px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-toolbar li.mainmenu-quick-action a{height:60px;line-height:60px} +nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-toolbar li.mainmenu-account>a, +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-toolbar li.mainmenu-account>a{height:60px;line-height:60px} nav#layout-mainmenu.navbar-mode-inline ul li .mainmenu-accountmenu, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul li .mainmenu-accountmenu {top:70px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul li .mainmenu-accountmenu{top:70px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li {margin:5px 0} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li{margin:5px 0} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li a, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a {padding:10px 15px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a{padding:10px 15px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li a .nav-icon, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-icon {position:relative;top:-1px;margin-right:5px;width:30px;height:30px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-icon{position:relative;top:-1px;margin-right:5px;width:30px;height:30px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li a .nav-icon i, nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-icon i, nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li a .nav-icon img, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-icon img {margin:0} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-icon img{margin:0} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li a .nav-label, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-label {line-height:30px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li a .nav-label{line-height:30px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li:first-child, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li:first-child {margin-left:-13px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li:first-child{margin-left:-13px} nav#layout-mainmenu.navbar-mode-inline ul.mainmenu-nav li:last-child, -nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li:last-child {margin-right:0} -nav#layout-mainmenu.navbar-mode-inline_no_icons .nav-icon {display:none !important} -nav#layout-mainmenu.navbar-mode-tile {height:78px} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-toolbar li.mainmenu-quick-action a {height:78px;line-height:78px} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-toolbar li.mainmenu-account >a {height:78px;line-height:78px} -nav#layout-mainmenu.navbar-mode-tile ul li .mainmenu-accountmenu {top:88px} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a {position:relative;width:65px;height:65px} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-icon {text-align:center;display:block;position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-26.5px;width:30px;height:30px} +nav#layout-mainmenu.navbar-mode-inline_no_icons ul.mainmenu-nav li:last-child{margin-right:0} +nav#layout-mainmenu.navbar-mode-inline_no_icons .nav-icon{display:none !important} +nav#layout-mainmenu.navbar-mode-tile{height:78px} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-toolbar li.mainmenu-quick-action a{height:78px;line-height:78px} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-toolbar li.mainmenu-account>a{height:78px;line-height:78px} +nav#layout-mainmenu.navbar-mode-tile ul li .mainmenu-accountmenu{top:88px} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a{position:relative;width:65px;height:65px} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-icon{text-align:center;display:block;position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-26.5px;width:30px;height:30px} nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-icon i, -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-icon img {margin:0} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-label {display:block;width:100px;height:20px;line-height:20px;position:absolute;bottom:4px;left:50%;padding:0 5px;margin-left:-50px;overflow:hidden;text-overflow:ellipsis;text-align:center} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li {padding:0 15px;margin:7px 0 0} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li:first-child {margin-left:-7px} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li:hover .nav-label {width:auto;min-width:100px;text-overflow:all;overflow:visible;z-index:2} -nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li.active:first-child {margin-left:0} -nav#layout-mainmenu .menu-toggle {height:45px;line-height:45px;font-size:16px;display:none} -nav#layout-mainmenu .menu-toggle .menu-toggle-icon {background:#333;display:inline-block;height:45px;line-height:45px;width:45px;text-align:center;opacity:.7} -nav#layout-mainmenu .menu-toggle .menu-toggle-icon i {line-height:45px;font-size:20px;vertical-align:bottom} -nav#layout-mainmenu .menu-toggle .menu-toggle-title {margin-left:10px} -nav#layout-mainmenu .menu-toggle:hover .menu-toggle-icon {opacity:1} -body.mainmenu-open nav#layout-mainmenu .menu-toggle-icon {opacity:1} -nav#layout-mainmenu.navbar-mode-collapse {padding-left:0;height:45px} -nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-quick-action a {height:45px;line-height:45px} -nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-account >a {height:45px;line-height:45px} -nav#layout-mainmenu.navbar-mode-collapse ul li .mainmenu-accountmenu {top:55px} -nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-account >a {padding-right:0} -nav#layout-mainmenu.navbar-mode-collapse ul li .mainmenu-accountmenu:after {right:13px} -nav#layout-mainmenu.navbar-mode-collapse ul.nav {display:none} -nav#layout-mainmenu.navbar-mode-collapse .menu-toggle {display:inline-block;color:#fff !important} -@media (max-width:769px) {nav#layout-mainmenu.navbar {padding-left:0;height:45px }nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-quick-action a {height:45px;line-height:45px }nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-account >a {height:45px;line-height:45px }nav#layout-mainmenu.navbar ul li .mainmenu-accountmenu {top:55px }nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-account >a {padding-right:0 }nav#layout-mainmenu.navbar ul li .mainmenu-accountmenu:after {right:13px }nav#layout-mainmenu.navbar ul.nav {display:none }nav#layout-mainmenu.navbar .menu-toggle {display:inline-block;color:#fff !important }} -.mainmenu-collapsed {position:absolute;height:100%;top:0;left:0;margin:0;background:#000} -.mainmenu-collapsed >div {display:block;height:100%} -.mainmenu-collapsed >div ul.mainmenu-nav li a {position:relative;width:65px;height:65px} -.mainmenu-collapsed >div ul.mainmenu-nav li a .nav-icon {text-align:center;display:block;position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-26.5px;width:30px;height:30px} -.mainmenu-collapsed >div ul.mainmenu-nav li a .nav-icon i, -.mainmenu-collapsed >div ul.mainmenu-nav li a .nav-icon img {margin:0} -.mainmenu-collapsed >div ul.mainmenu-nav li a .nav-label {display:block;width:100px;height:20px;line-height:20px;position:absolute;bottom:4px;left:50%;padding:0 5px;margin-left:-50px;overflow:hidden;text-overflow:ellipsis;text-align:center} -.mainmenu-collapsed >div ul.mainmenu-nav li {padding:0 15px;margin:7px 0 0} -.mainmenu-collapsed >div ul.mainmenu-nav li:first-child {margin-left:-7px} -.mainmenu-collapsed >div ul.mainmenu-nav li:hover .nav-label {width:auto;min-width:100px;text-overflow:all;overflow:visible;z-index:2} -.mainmenu-collapsed >div ul.mainmenu-nav li.active:first-child {margin-left:0} -.mainmenu-collapsed >div ul.mainmenu-nav li:first-child {margin-left:0} -.mainmenu-collapsed >div ul {margin:0;padding:5px 0 15px 15px;overflow:hidden} -.mainmenu-collapsed >div ul li {color:rgba(255,255,255,0.6);display:inline-block;vertical-align:top;position:relative;margin-right:30px} -.mainmenu-collapsed >div ul li a {display:inline-block;font-size:14px;color:inherit} -.mainmenu-collapsed >div ul li a:hover {background-color:transparent} -.mainmenu-collapsed >div ul li a:active, -.mainmenu-collapsed >div ul li a:focus {text-decoration:none;color:rgba(255,255,255,0.6)} -.mainmenu-collapsed >div ul li a i {line-height:1;font-size:30px;vertical-align:middle} -.mainmenu-collapsed >div ul li a img.svg-icon {height:30px;width:30px;position:relative;top:0} -.mainmenu-collapsed .scroll-marker {position:absolute;left:0;width:100%;height:10px;display:none} -.mainmenu-collapsed .scroll-marker:after {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f141";display:block;position:absolute;left:50%;margin-left:-3px;top:0;height:9px;font-size:10px;color:rgba(255,255,255,0.6)} -.mainmenu-collapsed .scroll-marker.before {top:0} -.mainmenu-collapsed .scroll-marker.after {bottom:3px} -.mainmenu-collapsed .scroll-marker.after:after {top:2px} -.mainmenu-collapsed.scroll-before .scroll-marker.before {display:block} -.mainmenu-collapsed.scroll-after .scroll-marker.after {display:block} -body.mainmenu-open .mainmenu-collapsed ul {position:absolute;left:0;top:10px;bottom:10px} -html.mobile .mainmenu-collapsed ul {overflow:auto;-webkit-overflow-scrolling:touch} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-icon img{margin:0} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li a .nav-label{display:block;width:100px;height:20px;line-height:20px;position:absolute;bottom:4px;left:50%;padding:0 5px;margin-left:-50px;overflow:hidden;text-overflow:ellipsis;text-align:center} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li{padding:0 15px;margin:7px 0 0} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li:first-child{margin-left:-7px} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li:hover .nav-label{width:auto;min-width:100px;text-overflow:all;overflow:visible;z-index:2} +nav#layout-mainmenu.navbar-mode-tile ul.mainmenu-nav li.active:first-child{margin-left:0} +nav#layout-mainmenu .menu-toggle{height:45px;line-height:45px;font-size:16px;display:none} +nav#layout-mainmenu .menu-toggle .menu-toggle-icon{background:#333;display:inline-block;height:45px;line-height:45px;width:45px;text-align:center;opacity:.7} +nav#layout-mainmenu .menu-toggle .menu-toggle-icon i{line-height:45px;font-size:20px;vertical-align:bottom} +nav#layout-mainmenu .menu-toggle .menu-toggle-title{margin-left:10px} +nav#layout-mainmenu .menu-toggle:hover .menu-toggle-icon{opacity:1} +body.mainmenu-open nav#layout-mainmenu .menu-toggle-icon{opacity:1} +nav#layout-mainmenu.navbar-mode-collapse{padding-left:0;height:45px} +nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-quick-action a{height:45px;line-height:45px} +nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-account>a{height:45px;line-height:45px} +nav#layout-mainmenu.navbar-mode-collapse ul li .mainmenu-accountmenu{top:55px} +nav#layout-mainmenu.navbar-mode-collapse ul.mainmenu-toolbar li.mainmenu-account>a{padding-right:0} +nav#layout-mainmenu.navbar-mode-collapse ul li .mainmenu-accountmenu:after{right:13px} +nav#layout-mainmenu.navbar-mode-collapse ul.nav{display:none} +nav#layout-mainmenu.navbar-mode-collapse .menu-toggle{display:inline-block;color:#fff !important} +@media (max-width:769px){nav#layout-mainmenu.navbar{padding-left:0;height:45px}nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-quick-action a{height:45px;line-height:45px}nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-account>a{height:45px;line-height:45px}nav#layout-mainmenu.navbar ul li .mainmenu-accountmenu{top:55px}nav#layout-mainmenu.navbar ul.mainmenu-toolbar li.mainmenu-account>a{padding-right:0}nav#layout-mainmenu.navbar ul li .mainmenu-accountmenu:after{right:13px}nav#layout-mainmenu.navbar ul.nav{display:none}nav#layout-mainmenu.navbar .menu-toggle{display:inline-block;color:#fff !important}} +.mainmenu-collapsed{position:absolute;height:100%;top:0;left:0;margin:0;background:#000} +.mainmenu-collapsed>div{display:block;height:100%} +.mainmenu-collapsed>div ul.mainmenu-nav li a{position:relative;width:65px;height:65px} +.mainmenu-collapsed>div ul.mainmenu-nav li a .nav-icon{text-align:center;display:block;position:absolute;top:50%;left:50%;margin-left:-15px;margin-top:-26.5px;width:30px;height:30px} +.mainmenu-collapsed>div ul.mainmenu-nav li a .nav-icon i, +.mainmenu-collapsed>div ul.mainmenu-nav li a .nav-icon img{margin:0} +.mainmenu-collapsed>div ul.mainmenu-nav li a .nav-label{display:block;width:100px;height:20px;line-height:20px;position:absolute;bottom:4px;left:50%;padding:0 5px;margin-left:-50px;overflow:hidden;text-overflow:ellipsis;text-align:center} +.mainmenu-collapsed>div ul.mainmenu-nav li{padding:0 15px;margin:7px 0 0} +.mainmenu-collapsed>div ul.mainmenu-nav li:first-child{margin-left:-7px} +.mainmenu-collapsed>div ul.mainmenu-nav li:hover .nav-label{width:auto;min-width:100px;text-overflow:all;overflow:visible;z-index:2} +.mainmenu-collapsed>div ul.mainmenu-nav li.active:first-child{margin-left:0} +.mainmenu-collapsed>div ul.mainmenu-nav li:first-child{margin-left:0} +.mainmenu-collapsed>div ul{margin:0;padding:5px 0 15px 15px;overflow:hidden} +.mainmenu-collapsed>div ul li{color:rgba(255,255,255,0.6);display:inline-block;vertical-align:top;position:relative;margin-right:30px} +.mainmenu-collapsed>div ul li a{display:inline-block;font-size:14px;color:inherit} +.mainmenu-collapsed>div ul li a:hover{background-color:transparent} +.mainmenu-collapsed>div ul li a:active, +.mainmenu-collapsed>div ul li a:focus{text-decoration:none;color:rgba(255,255,255,0.6)} +.mainmenu-collapsed>div ul li a i{line-height:1;font-size:30px;vertical-align:middle} +.mainmenu-collapsed>div ul li a img.svg-icon{height:30px;width:30px;position:relative;top:0} +.mainmenu-collapsed .scroll-marker{position:absolute;left:0;width:100%;height:10px;display:none} +.mainmenu-collapsed .scroll-marker:after{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f141";display:block;position:absolute;left:50%;margin-left:-3px;top:0;height:9px;font-size:10px;color:rgba(255,255,255,0.6)} +.mainmenu-collapsed .scroll-marker.before{top:0} +.mainmenu-collapsed .scroll-marker.after{bottom:3px} +.mainmenu-collapsed .scroll-marker.after:after{top:2px} +.mainmenu-collapsed.scroll-before .scroll-marker.before{display:block} +.mainmenu-collapsed.scroll-after .scroll-marker.after{display:block} +body.mainmenu-open .mainmenu-collapsed ul{position:absolute;left:0;top:10px;bottom:10px} +html.mobile .mainmenu-collapsed ul{overflow:auto;-webkit-overflow-scrolling:touch} nav#layout-mainmenu.navbar ul li:hover a:active, .mainmenu-collapsed li:hover a:active, nav#layout-mainmenu.navbar ul li:hover a:focus, -.mainmenu-collapsed li:hover a:focus {color:#fff !important} -.touch .mainmenu-collapsed li a:hover {color:rgba(255,255,255,0.6)} -nav#layout-mainmenu.navbar ul li.highlight >a, -.mainmenu-collapsed li.highlight >a {color:#fff !important} +.mainmenu-collapsed li:hover a:focus{color:#fff !important} +.touch .mainmenu-collapsed li a:hover{color:rgba(255,255,255,0.6)} +nav#layout-mainmenu.navbar ul li.highlight>a, +.mainmenu-collapsed li.highlight>a{color:#fff !important} nav#layout-mainmenu.navbar ul li.active, -.mainmenu-collapsed li.active {color:#fff !important} +.mainmenu-collapsed li.active{color:#fff !important} nav#layout-mainmenu.navbar ul li.active a, -.mainmenu-collapsed li.active a {color:#fff !important} +.mainmenu-collapsed li.active a{color:#fff !important} nav#layout-mainmenu.navbar ul li:hover, -.mainmenu-collapsed li:hover {color:#fff;background:transparent} +.mainmenu-collapsed li:hover{color:#fff;background:transparent} body.drag nav#layout-mainmenu.navbar ul.nav li:hover, -body.drag .mainmenu-collapsed ul li:hover {color:rgba(255,255,255,0.6)} -.layout-sidenav-container {width:120px} -#layout-sidenav {position:absolute;height:100%;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px} -#layout-sidenav ul {position:relative;margin:0;padding:0;height:100%;overflow:hidden} -#layout-sidenav ul li {display:block;text-align:center;position:relative} -#layout-sidenav ul li a {padding:1.429em .714em;display:block;font-size:.929em;color:rgba(255,255,255,0.6);font-weight:normal;position:relative} -#layout-sidenav ul li a:hover {text-decoration:none;background-color:transparent} -#layout-sidenav ul li a:focus {background:transparent} -#layout-sidenav ul li a i {color:rgba(255,255,255,0.6);display:block;margin-bottom:5px;font-size:2em} -#layout-sidenav ul li:first-child a {padding-top:2.143em} +body.drag .mainmenu-collapsed ul li:hover{color:rgba(255,255,255,0.6)} +.layout-sidenav-container{width:120px} +#layout-sidenav{position:absolute;height:100%;width:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;font-size:14px} +#layout-sidenav ul{position:relative;margin:0;padding:0;height:100%;overflow:hidden} +#layout-sidenav ul li{display:block;text-align:center;position:relative} +#layout-sidenav ul li a{padding:1.429em .714em;display:block;font-size:.929em;color:rgba(255,255,255,0.6);font-weight:normal;position:relative} +#layout-sidenav ul li a:hover{text-decoration:none;background-color:transparent} +#layout-sidenav ul li a:focus{background:transparent} +#layout-sidenav ul li a i{color:rgba(255,255,255,0.6);display:block;margin-bottom:5px;font-size:2em} +#layout-sidenav ul li:first-child a{padding-top:2.143em} #layout-sidenav ul li.active a, -#layout-sidenav ul li a:hover {color:#fff} +#layout-sidenav ul li a:hover{color:#fff} #layout-sidenav ul li.active a i, -#layout-sidenav ul li a:hover i {color:#fff} -#layout-sidenav ul li span.counter {display:block;position:absolute;top:1.071em;right:1.071em;padding:.143em .429em .214em .286em;background-color:#d9350f;color:#fff;font-size:.786em;line-height:100%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1,);-ms-transform:scale(1,);transform:scale(1,);-webkit-transition:all 0.3s;transition:all 0.3s} -#layout-sidenav ul li span.counter.empty {opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0,);-ms-transform:scale(0,);transform:scale(0,)} -@media (min-width:768px) and (max-width:991px) {#layout-sidenav {font-size:12px }.layout-sidenav-container {width:100px }} -@media (max-width:767px) {#layout-sidenav {font-size:10px }.layout-sidenav-container {width:80px }} -html.mobile #layout-sidenav ul {overflow:auto;-webkit-overflow-scrolling:touch} +#layout-sidenav ul li a:hover i{color:#fff} +#layout-sidenav ul li span.counter{display:block;position:absolute;top:1.071em;right:1.071em;padding:.143em .429em .214em .286em;background-color:#d9350f;color:#fff;font-size:.786em;line-height:100%;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1,);-ms-transform:scale(1,);transform:scale(1,);-webkit-transition:all 0.3s;transition:all 0.3s} +#layout-sidenav ul li span.counter.empty{opacity:0;filter:alpha(opacity=0);-webkit-transform:scale(0,);-ms-transform:scale(0,);transform:scale(0,)} +@media (min-width:768px) and (max-width:991px){#layout-sidenav{font-size:12px}.layout-sidenav-container{width:100px}} +@media (max-width:767px){#layout-sidenav{font-size:10px}.layout-sidenav-container{width:80px}} +html.mobile #layout-sidenav ul{overflow:auto;-webkit-overflow-scrolling:touch} #layout-sidenav.layout-sidenav ul.drag li:not(.active) a:hover, -.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover {color:rgba(255,255,255,0.6) !important} +.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover{color:rgba(255,255,255,0.6) !important} #layout-sidenav.layout-sidenav ul.drag li:not(.active) a:hover i, -.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover i {color:rgba(255,255,255,0.6) !important} +.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover i{color:rgba(255,255,255,0.6) !important} #layout-sidenav.layout-sidenav ul.drag li:not(.active) a:hover:after, -.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover:after {display:none !important} -#layout-side-panel .fix-button {position:absolute;right:-25px;top:0;display:none;width:25px;height:25px;font-size:13px;background:#ecf0f1;z-index:120;opacity:0.5;filter:alpha(opacity=50);-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0} -#layout-side-panel .fix-button i {display:block;text-align:center;margin-top:5px;color:#aaa} -#layout-side-panel .fix-button:hover {text-decoration:none;display:block;opacity:1 !important;filter:alpha(opacity=100) !important} -#layout-side-panel:hover .fix-button {display:block} -#layout-side-panel .fix-button-content-header .fix-button {top:46px} -#layout-side-panel .sidepanel-content-header {background:#d35400;color:white;font-size:15px;padding:12px 20px 13px;position:relative} -#layout-side-panel .sidepanel-content-header:after {content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #d35400;border-bottom-width:0;position:absolute;left:14px;bottom:-8px} -body.side-panel-not-fixed #layout-side-panel {display:none} -body.side-panel-not-fixed #layout-side-panel .fix-button {opacity:0.5;filter:alpha(opacity=50)} -body.display-side-panel #layout-side-panel {display:block;position:absolute;z-index:600;width:350px;-webkit-box-shadow:3px 0 3px 0 rgba(0,0,0,0.1);box-shadow:3px 0 3px 0 rgba(0,0,0,0.1)} -@media (min-width:992px) {body.side-panel-fix-shadow #layout-side-panel {-webkit-box-shadow:none;box-shadow:none }} -.touch #layout-side-panel .fix-button {display:none} -@media (max-width:768px) {#layout-side-panel .fix-button {display:none }} -#layout-footer {width:100%;z-index:100;height:60px;position:fixed;bottom:0;color:#666;background-color:rgba(255,255,255,0.8);border-top:1px solid #dfdfdf} +.touch #layout-sidenav.layout-sidenav li:not(.active) a:hover:after{display:none !important} +#layout-side-panel .fix-button{position:absolute;right:-25px;top:0;display:none;width:25px;height:25px;font-size:13px;background:#ecf0f1;z-index:120;opacity:0.5;filter:alpha(opacity=50);-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0} +#layout-side-panel .fix-button i{display:block;text-align:center;margin-top:5px;color:#aaa} +#layout-side-panel .fix-button:hover{text-decoration:none;display:block;opacity:1 !important;filter:alpha(opacity=100) !important} +#layout-side-panel:hover .fix-button{display:block} +#layout-side-panel .fix-button-content-header .fix-button{top:46px} +#layout-side-panel .sidepanel-content-header{background:#d35400;color:white;font-size:15px;padding:12px 20px 13px;position:relative} +#layout-side-panel .sidepanel-content-header:after{content:'';display:block;width:0;height:0;border-left:7.5px solid transparent;border-right:7.5px solid transparent;border-top:8px solid #d35400;border-bottom-width:0;position:absolute;left:14px;bottom:-8px} +body.side-panel-not-fixed #layout-side-panel{display:none} +body.side-panel-not-fixed #layout-side-panel .fix-button{opacity:0.5;filter:alpha(opacity=50)} +body.display-side-panel #layout-side-panel{display:block;position:absolute;z-index:600;width:350px;-webkit-box-shadow:3px 0 3px 0 rgba(0,0,0,0.1);box-shadow:3px 0 3px 0 rgba(0,0,0,0.1)} +@media (min-width:992px){body.side-panel-fix-shadow #layout-side-panel{-webkit-box-shadow:none;box-shadow:none}} +.touch #layout-side-panel .fix-button{display:none} +@media (max-width:768px){#layout-side-panel .fix-button{display:none}} +#layout-footer{width:100%;z-index:100;height:60px;position:fixed;bottom:0;color:#666;background-color:rgba(255,255,255,0.8);border-top:1px solid #dfdfdf} #layout-footer .brand, -#layout-footer .tagline {margin:10px;height:40px;line-height:40px} -#layout-footer .brand {float:left;font-size:16px} -#layout-footer .brand .logo {margin:0 10px} -#layout-footer .tagline {float:right} -#layout-footer .tagline p {color:#999} -body.outer {background:#2b3e50} -body.outer .layout >.layout-row.layout-head {text-align:center;background:#f9f9f9} -body.outer .layout >.layout-row.layout-head >.layout-cell {height:40%;padding:50px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;position:relative} -body.outer .layout >.layout-row.layout-head >.layout-cell:after {content:'';display:block;width:0;height:0;border-left:28px solid transparent;border-right:28px solid transparent;border-top:20px solid #f9f9f9;border-bottom-width:0;position:absolute;bottom:-20px;left:50%;margin-left:-28px} -body.outer .layout >.layout-row.layout-head >.layout-cell h1.wn-logo, -body.outer .layout >.layout-row.layout-head >.layout-cell h1.oc-logo {font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;display:inline-block;width:100%;max-width:450px;height:170px;min-height:72px} -body.outer .layout >.layout-row >.layout-cell {vertical-align:top} -body.outer .layout >.layout-row >.layout-cell .outer-form-container {margin:0 auto;width:436px;padding:40px 0} -body.outer .layout >.layout-row >.layout-cell .outer-form-container h2 {font-size:18px;margin:20px 0;color:#feffff} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .horizontal-form {font-size:0;display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .horizontal-form input {vertical-align:top;margin-right:9px;display:inline-block;border:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .horizontal-form button {background:#0181b9;text-align:center;font-size:13px;font-weight:600;height:40px;vertical-align:top;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .remember label {color:rgba(255,255,255,0.44)} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .remember input#remember {display:none} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .forgot-password {margin-top:30px;font-size:13px;top:8px} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .forgot-password a {color:rgba(255,255,255,0.44)} -body.outer .layout >.layout-row >.layout-cell .outer-form-container .forgot-password:before {color:rgba(255,255,255,0.44);font-size:14px;position:relative;margin-right:5px} -html.csstransitions body.outer .outer-form-container {-webkit-transition:all 0.5s ease-out;transition:all 0.5s ease-out;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} -html.csstransitions body.outer.preload .outer-form-container {-webkit-transform:scale(0.2,0.2);-moz-transform:scale(0.2,0.2);-ms-transform:scale(0.2,0.2);-o-transform:scale(0.2,0.2);transform:scale(0.2,0.2)} -@media (max-width:768px) {body.outer .layout >.layout-row.layout-head >.layout-cell {padding:50px 20px }body.outer .layout >.layout-row >.layout-cell .outer-form-container {width:auto;padding:40px }body.outer .layout >.layout-row >.layout-cell .outer-form-container .horizontal-form {display:block }body.outer .layout >.layout-row >.layout-cell .outer-form-container .horizontal-form input {display:block;width:100% !important;margin-bottom:20px }} +#layout-footer .tagline{margin:10px;height:40px;line-height:40px} +#layout-footer .brand{float:left;font-size:16px} +#layout-footer .brand .logo{margin:0 10px} +#layout-footer .tagline{float:right} +#layout-footer .tagline p{color:#999} +body.outer{background:#2b3e50} +body.outer .layout>.layout-row.layout-head{text-align:center;background:#f9f9f9} +body.outer .layout>.layout-row.layout-head>.layout-cell{height:40%;padding:50px 0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;vertical-align:middle;position:relative} +body.outer .layout>.layout-row.layout-head>.layout-cell:after{content:'';display:block;width:0;height:0;border-left:28px solid transparent;border-right:28px solid transparent;border-top:20px solid #f9f9f9;border-bottom-width:0;position:absolute;bottom:-20px;left:50%;margin-left:-28px} +body.outer .layout>.layout-row.layout-head>.layout-cell h1.wn-logo, +body.outer .layout>.layout-row.layout-head>.layout-cell h1.oc-logo{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;display:inline-block;width:100%;max-width:450px;height:170px;min-height:72px} +body.outer .layout>.layout-row>.layout-cell{vertical-align:top} +body.outer .layout>.layout-row>.layout-cell .outer-form-container{margin:0 auto;width:436px;padding:40px 0} +body.outer .layout>.layout-row>.layout-cell .outer-form-container h2{font-size:18px;margin:20px 0;color:#feffff} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form{font-size:0;display:-webkit-box;display:-webkit-flex;display:-moz-flex;display:-ms-flexbox;display:-ms-flex;display:flex} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form input{vertical-align:top;margin-right:9px;display:inline-block;border:none;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form button{background:#0181b9;text-align:center;font-size:13px;font-weight:600;height:40px;vertical-align:top;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .remember label{color:rgba(255,255,255,0.44)} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .remember input#remember{display:none} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .forgot-password{margin-top:30px;font-size:13px;top:8px} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .forgot-password a{color:rgba(255,255,255,0.44)} +body.outer .layout>.layout-row>.layout-cell .outer-form-container .forgot-password:before{color:rgba(255,255,255,0.44);font-size:14px;position:relative;margin-right:5px} +html.csstransitions body.outer .outer-form-container{-webkit-transition:all 0.5s ease-out;transition:all 0.5s ease-out;-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} +html.csstransitions body.outer.preload .outer-form-container{-webkit-transform:scale(0.2,0.2);-moz-transform:scale(0.2,0.2);-ms-transform:scale(0.2,0.2);-o-transform:scale(0.2,0.2);transform:scale(0.2,0.2)} +@media (max-width:768px){body.outer .layout>.layout-row.layout-head>.layout-cell{padding:50px 20px}body.outer .layout>.layout-row>.layout-cell .outer-form-container{width:auto;padding:40px}body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form{display:block}body.outer .layout>.layout-row>.layout-cell .outer-form-container .horizontal-form input{display:block;width:100% !important;margin-bottom:20px}} body.breadcrumb-fancy .control-breadcrumb, -.control-breadcrumb.breadcrumb-fancy {margin-bottom:0;background-color:#e67e22} +.control-breadcrumb.breadcrumb-fancy{margin-bottom:0;background-color:#e67e22} body.breadcrumb-fancy .control-breadcrumb li, -.control-breadcrumb.breadcrumb-fancy li {background-color:#d35400;color:rgba(255,255,255,0.5)} +.control-breadcrumb.breadcrumb-fancy li{background-color:#d35400;color:rgba(255,255,255,0.5)} body.breadcrumb-fancy .control-breadcrumb li a, -.control-breadcrumb.breadcrumb-fancy li a {opacity:.5;-webkit-transition:all 0.3s ease;transition:all 0.3s ease} +.control-breadcrumb.breadcrumb-fancy li a{opacity:.5;-webkit-transition:all 0.3s ease;transition:all 0.3s ease} body.breadcrumb-fancy .control-breadcrumb li a:hover, -.control-breadcrumb.breadcrumb-fancy li a:hover {opacity:1} +.control-breadcrumb.breadcrumb-fancy li a:hover{opacity:1} body.breadcrumb-fancy .control-breadcrumb li:before, -.control-breadcrumb.breadcrumb-fancy li:before {border-left-color:#fff;opacity:.5} +.control-breadcrumb.breadcrumb-fancy li:before{border-left-color:#fff;opacity:.5} body.breadcrumb-fancy .control-breadcrumb li:after, -.control-breadcrumb.breadcrumb-fancy li:after {border-left-color:#d35400} +.control-breadcrumb.breadcrumb-fancy li:after{border-left-color:#d35400} body.breadcrumb-fancy .control-breadcrumb li:last-child, -.control-breadcrumb.breadcrumb-fancy li:last-child {background-color:#d35400} +.control-breadcrumb.breadcrumb-fancy li:last-child{background-color:#d35400} body.breadcrumb-fancy .control-breadcrumb li:last-child:before, -.control-breadcrumb.breadcrumb-fancy li:last-child:before {opacity:1;border-left-color:#d35400} -.fancy-layout .tab-collapse-icon {position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} -.fancy-layout .tab-collapse-icon:hover {text-decoration:none;opacity:1;filter:alpha(opacity=100)} -.fancy-layout .tab-collapse-icon.primary {color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .tab-collapse-icon.primary i {position:relative;display:block} +.control-breadcrumb.breadcrumb-fancy li:last-child:before{opacity:1;border-left-color:#d35400} +.fancy-layout .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} +.fancy-layout .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} +.fancy-layout .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout .tab-collapse-icon.primary i{position:relative;display:block} .fancy-layout .control-tabs.master-tabs, -.fancy-layout.control-tabs.master-tabs {overflow:hidden} +.fancy-layout.control-tabs.master-tabs{overflow:hidden} .fancy-layout .control-tabs.master-tabs:before, .fancy-layout.control-tabs.master-tabs:before, .fancy-layout .control-tabs.master-tabs:after, -.fancy-layout.control-tabs.master-tabs:after {top:13px;font-size:14px;color:rgba(255,255,255,0.35)} +.fancy-layout.control-tabs.master-tabs:after{top:13px;font-size:14px;color:rgba(255,255,255,0.35)} .fancy-layout .control-tabs.master-tabs:before, -.fancy-layout.control-tabs.master-tabs:before {left:8px} +.fancy-layout.control-tabs.master-tabs:before{left:8px} .fancy-layout .control-tabs.master-tabs:after, -.fancy-layout.control-tabs.master-tabs:after {right:8px} +.fancy-layout.control-tabs.master-tabs:after{right:8px} .fancy-layout .control-tabs.master-tabs.scroll-before:before, -.fancy-layout.control-tabs.master-tabs.scroll-before:before {color:#fff} +.fancy-layout.control-tabs.master-tabs.scroll-before:before{color:#fff} .fancy-layout .control-tabs.master-tabs.scroll-after:after, -.fancy-layout.control-tabs.master-tabs.scroll-after:after {color:#fff} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container {background:#d35400;padding-left:20px;padding-right:20px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs {margin-left:-8px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li {margin-left:-5px;top:1px;padding-top:3px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close {top:14px;right:-3px;left:auto;z-index:110;font-family:sans-serif} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close i, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close i {top:4px;right:1px;color:rgba(255,255,255,0.3) !important;font-style:normal;font-weight:bold;font-size:16px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close i:hover, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li span.tab-close i:hover {color:#fff !important} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a {border-bottom:none;background:transparent;font-size:14px;color:rgba(255,255,255,0.35);padding:6px 0 0 24px!important;overflow:visible} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title {position:relative;display:inline-block;padding:12px 5px 0 5px;height:38px;font-size:14px;z-index:100;background-color:#b9530f} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:before, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:before, -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:after, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:after {content:' ';position:absolute;width:20px;display:block;height:37px;top:0;z-index:100;background-color:#b9530f} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:before, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:before {left:-14px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:after, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title:after {right:-14px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title span, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a >span.title span {border-top:none;padding:0;margin-top:0;overflow:visible} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a:before, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a:before {z-index:110;position:absolute;top:18px;left:22px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a[class*=icon] >span.title, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li a[class*=icon] >span.title {padding-left:18px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a {z-index:107;color:#fff} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active span.tab-close i, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active span.tab-close i {color:#fff} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title {background-color:#e67e22;z-index:105} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title:before, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title:before {z-index:107;background-color:#e67e22} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title:after, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li.active a >span.title:after {background-color:#e67e22;z-index:107} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li[data-modified] span.tab-close i, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li[data-modified] span.tab-close i {top:5px;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li[data-modified] span.tab-close i:before, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li[data-modified] span.tab-close i:before {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;content:"\f111";font-size:9px} -.fancy-layout .control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li:first-child, -.fancy-layout.control-tabs.master-tabs >div >div.tabs-container >ul.nav-tabs >li:first-child {margin-left:0} -.fancy-layout .control-tabs.master-tabs[data-closable] >div >div.tabs-container >ul.nav-tabs >li a >span.title, -.fancy-layout.control-tabs.master-tabs[data-closable] >div >div.tabs-container >ul.nav-tabs >li a >span.title {padding-right:10px} +.fancy-layout.control-tabs.master-tabs.scroll-after:after{color:#fff} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container{background:#d35400;padding-left:20px;padding-right:20px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs{margin-left:-8px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li{margin-left:-5px;top:1px;padding-top:3px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close{top:14px;right:-3px;left:auto;z-index:110;font-family:sans-serif} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i{top:4px;right:1px;color:rgba(255,255,255,0.3) !important;font-style:normal;font-weight:bold;font-size:16px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li span.tab-close i:hover{color:#fff !important} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a{border-bottom:none;background:transparent;font-size:14px;color:rgba(255,255,255,0.35);padding:6px 0 0 24px!important;overflow:visible} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:12px 5px 0 5px;height:38px;font-size:14px;z-index:100;background-color:#b9530f} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;width:20px;display:block;height:37px;top:0;z-index:100;background-color:#b9530f} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:before{left:-14px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title:after{right:-14px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title span, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a>span.title span{border-top:none;padding:0;margin-top:0;overflow:visible} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a:before, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a:before{z-index:110;position:absolute;top:18px;left:22px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li a[class*=icon]>span.title{padding-left:18px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a{z-index:107;color:#fff} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active span.tab-close i{color:#fff} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title{background-color:#e67e22;z-index:105} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:before{z-index:107;background-color:#e67e22} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li.active a>span.title:after{background-color:#e67e22;z-index:107} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i{top:5px;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li[data-modified] span.tab-close i:before{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f111";font-size:9px} +.fancy-layout .control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li:first-child, +.fancy-layout.control-tabs.master-tabs>div>div.tabs-container>ul.nav-tabs>li:first-child{margin-left:0} +.fancy-layout .control-tabs.master-tabs[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title, +.fancy-layout.control-tabs.master-tabs[data-closable]>div>div.tabs-container>ul.nav-tabs>li a>span.title{padding-right:10px} .fancy-layout .control-tabs.master-tabs.has-tabs:before, .fancy-layout.control-tabs.master-tabs.has-tabs:before, .fancy-layout .control-tabs.master-tabs.has-tabs:after, -.fancy-layout.control-tabs.master-tabs.has-tabs:after {display:block} +.fancy-layout.control-tabs.master-tabs.has-tabs:after{display:block} .fancy-layout .control-tabs.secondary-tabs:before, -.fancy-layout.control-tabs.secondary-tabs:before {left:5px} +.fancy-layout.control-tabs.secondary-tabs:before{left:5px} .fancy-layout .control-tabs.secondary-tabs:after, -.fancy-layout.control-tabs.secondary-tabs:after {right:5px} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs {background:#475354} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs >li {border-right:none;padding-right:0;margin-right:0} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li a, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs >li a {background:transparent;border:none;padding:12px 10px 13px 10px;font-size:14px;font-weight:normal;line-height:14px;color:#919898} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li a span span, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs >li a span span {overflow:visible;border-top:none;margin-top:0;padding-top:0} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li:first-child, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs >li:first-child {padding-left:15px} -.fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li.active a, -.fancy-layout.control-tabs.secondary-tabs >div >ul.nav-tabs >li.active a {color:#fff} +.fancy-layout.control-tabs.secondary-tabs:after{right:5px} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs{background:#475354} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li{border-right:none;padding-right:0;margin-right:0} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li a, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 10px 13px 10px;font-size:14px;font-weight:normal;line-height:14px;color:#919898} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li a span span, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li a span span{overflow:visible;border-top:none;margin-top:0;padding-top:0} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li:first-child, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li:first-child{padding-left:15px} +.fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a, +.fancy-layout.control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a{color:#fff} .fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon {position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} +.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} .fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon:hover, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon:hover {text-decoration:none;opacity:1;filter:alpha(opacity=100)} +.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} .fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary {color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} .fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary i, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary i {position:relative;display:block} +.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary i{position:relative;display:block} .fancy-layout .control-tabs.secondary-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary {color:#fff;top:12px;right:11px;bottom:auto} +.fancy-layout.control-tabs.secondary-tabs .tab-collapse-icon.primary{color:#fff;top:12px;right:11px;bottom:auto} .fancy-layout .control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary {-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs {background:#f9f9f9} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li {margin-left:-19px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li:first-child, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li:first-child {margin-left:0;padding-left:8px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a {padding:8px 16px 0 16px;font-weight:400;height:36px;color:#2b3e50;opacity:0.6;filter:alpha(opacity=60)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title {position:relative;display:inline-block;padding:8px 5px 9px 5px;font-size:14px;z-index:100;height:27px !important;background-color:transparent} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:after {content:' ';position:absolute;background-color:white;width:15px;height:28px;top:0;z-index:100;display:none} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:before {left:-11px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title:after {right:-11px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title span, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li a >span.title span {height:18px;font-size:14px} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a {opacity:1;filter:alpha(opacity=100)} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title {background-color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs >div >ul.nav-tabs >li.active a >span.title:after {display:block} +.fancy-layout.control-tabs.secondary-tabs.primary-collapsed .tab-collapse-icon.primary{-webkit-transform:scale(1,1);-moz-transform:scale(1,1);-ms-transform:scale(1,1);-o-transform:scale(1,1);transform:scale(1,1)} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs{background:#f9f9f9} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li{margin-left:-19px} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li:first-child, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li:first-child{margin-left:0;padding-left:8px} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a{padding:8px 16px 0 16px;font-weight:400;height:36px;color:#2b3e50;opacity:0.6;filter:alpha(opacity=60)} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title{position:relative;display:inline-block;padding:8px 5px 9px 5px;font-size:14px;z-index:100;height:27px !important;background-color:transparent} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{content:' ';position:absolute;background-color:white;width:15px;height:28px;top:0;z-index:100;display:none} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:before{left:-11px;-webkit-border-radius:8px 0 0 0;-moz-border-radius:8px 0 0 0;border-radius:8px 0 0 0;-webkit-transform:skewX(-20deg);-ms-transform:skewX(-20deg);transform:skewX(-20deg)} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title:after{right:-11px;-webkit-border-radius:0 8px 0 0;-moz-border-radius:0 8px 0 0;border-radius:0 8px 0 0;-webkit-transform:skewX(20deg);-ms-transform:skewX(20deg);transform:skewX(20deg)} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title span, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li a>span.title span{height:18px;font-size:14px} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a{opacity:1;filter:alpha(opacity=100)} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title{background-color:white} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:before, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:before, +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:after, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs>div>ul.nav-tabs>li.active a>span.title:after{display:block} .fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary {color:#808c8d} +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs .tab-collapse-icon.primary{color:#808c8d} .fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary {color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs {background:#e67e22} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a {color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a >span.title:before, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a >span.title:before, -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a >span.title:after, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li a >span.title:after {background-color:white} -.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li.active a, -.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed >div >ul.nav-tabs >li.active a {color:#2b3e50} -.fancy-layout .control-tabs.primary-tabs.master-area >div >ul.nav-tabs, -.fancy-layout.control-tabs.primary-tabs.master-area >div >ul.nav-tabs {-webkit-transition:background-color 0.5s;transition:background-color 0.5s;background:#e67e22} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs {background:#7f8c8d;margin-left:0 !important;margin-right:0 !important} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs:before, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs:before {display:none} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li {background:transparent;border-right:none;margin-right:-8px} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li:first-child, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li:first-child {margin-left:-5px} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a {background:transparent;border:none;padding:12px 16px 0;font-size:14px;font-weight:400;color:#95a5a6} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title {background:#d5d9d8;border-top:none;padding:5px 5px 3px 5px} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:before, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:before, -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:after, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:after {background:#d5d9d8;border-width:0;top:0} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:before, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:before {left:-20px} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:after, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title:after {right:-20px} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title span, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li a span.title span {border-width:0;vertical-align:top} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li.active a, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li.active a {color:#808c8d} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li.active a:before, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li.active a:before {display:none} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title {background:#fafafa} -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title:before, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title:before, -.fancy-layout .control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title:after, -.fancy-layout.control-tabs.primary-tabs >div >ul.nav-tabs >li.active a span.title:after {background:#fafafa} -.fancy-layout .control-tabs.primary-tabs >.tab-content >.tab-pane, -.fancy-layout.control-tabs.primary-tabs >.tab-content >.tab-pane {padding:20px 20px 0 20px} -.fancy-layout .control-tabs.primary-tabs >.tab-content >.tab-pane.pane-compact, -.fancy-layout.control-tabs.primary-tabs >.tab-content >.tab-pane.pane-compact {padding:0} +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed .tab-collapse-icon.primary{color:white} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs{background:#e67e22} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a{color:white} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:before, +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:after, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li a>span.title:after{background-color:white} +.fancy-layout .control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li.active a, +.fancy-layout.control-tabs.secondary-tabs.secondary-content-tabs.primary-collapsed>div>ul.nav-tabs>li.active a{color:#2b3e50} +.fancy-layout .control-tabs.primary-tabs.master-area>div>ul.nav-tabs, +.fancy-layout.control-tabs.primary-tabs.master-area>div>ul.nav-tabs{-webkit-transition:background-color 0.5s;transition:background-color 0.5s;background:#e67e22} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs{background:#7f8c8d;margin-left:0 !important;margin-right:0 !important} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs:before, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs:before{display:none} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li{background:transparent;border-right:none;margin-right:-8px} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li:first-child, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li:first-child{margin-left:-5px} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a{background:transparent;border:none;padding:12px 16px 0;font-size:14px;font-weight:400;color:#95a5a6} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title{background:#d5d9d8;border-top:none;padding:5px 5px 3px 5px} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after{background:#d5d9d8;border-width:0;top:0} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:before{left:-20px} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title:after{right:-20px} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title span, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li a span.title span{border-width:0;vertical-align:top} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a{color:#808c8d} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a:before, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a:before{display:none} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title{background:#fafafa} +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:before, +.fancy-layout .control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:after, +.fancy-layout.control-tabs.primary-tabs>div>ul.nav-tabs>li.active a span.title:after{background:#fafafa} +.fancy-layout .control-tabs.primary-tabs>.tab-content>.tab-pane, +.fancy-layout.control-tabs.primary-tabs>.tab-content>.tab-pane{padding:20px 20px 0 20px} +.fancy-layout .control-tabs.primary-tabs>.tab-content>.tab-pane.pane-compact, +.fancy-layout.control-tabs.primary-tabs>.tab-content>.tab-pane.pane-compact{padding:0} .fancy-layout .control-tabs.primary-tabs.collapsed, -.fancy-layout.control-tabs.primary-tabs.collapsed {display:none} -.fancy-layout .control-tabs.has-tabs >div.tab-content, -.fancy-layout.control-tabs.has-tabs >div.tab-content {background:#f9f9f9} -.fancy-layout .control-tabs >div.tab-content >div.tab-pane, -.fancy-layout.control-tabs >div.tab-content >div.tab-pane {padding:0} -.fancy-layout .control-tabs >div.tab-content >div.tab-pane.padded-pane, -.fancy-layout.control-tabs >div.tab-content >div.tab-pane.padded-pane {padding:20px 20px 0 20px} -.fancy-layout .form-tabless-fields {position:relative;background:#e67e22;padding:18px 23px 0 23px;-webkit-transition:all 0.5s;transition:all 0.5s} +.fancy-layout.control-tabs.primary-tabs.collapsed{display:none} +.fancy-layout .control-tabs.has-tabs>div.tab-content, +.fancy-layout.control-tabs.has-tabs>div.tab-content{background:#f9f9f9} +.fancy-layout .control-tabs>div.tab-content>div.tab-pane, +.fancy-layout.control-tabs>div.tab-content>div.tab-pane{padding:0} +.fancy-layout .control-tabs>div.tab-content>div.tab-pane.padded-pane, +.fancy-layout.control-tabs>div.tab-content>div.tab-pane.padded-pane{padding:20px 20px 0 20px} +.fancy-layout .form-tabless-fields{position:relative;background:#e67e22;padding:18px 23px 0 23px;-webkit-transition:all 0.5s;transition:all 0.5s} .fancy-layout .form-tabless-fields:before, -.fancy-layout .form-tabless-fields:after {content:" ";display:table} -.fancy-layout .form-tabless-fields:after {clear:both} -.fancy-layout .form-tabless-fields label {text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:0} -.fancy-layout .form-tabless-fields input[type=text] {background:transparent;border:none;color:#fff;font-size:35px;font-weight:100;height:auto;padding:0;-webkit-box-shadow:none;box-shadow:none} -.fancy-layout .form-tabless-fields input[type=text]::-moz-placeholder {color:rgba(255,255,255,0.5);opacity:1} -.fancy-layout .form-tabless-fields input[type=text]:-ms-input-placeholder {color:rgba(255,255,255,0.5)} -.fancy-layout .form-tabless-fields input[type=text]::-webkit-input-placeholder {color:rgba(255,255,255,0.5)} +.fancy-layout .form-tabless-fields:after{content:" ";display:table} +.fancy-layout .form-tabless-fields:after{clear:both} +.fancy-layout .form-tabless-fields label{text-transform:uppercase;color:rgba(255,255,255,0.5);margin-bottom:0} +.fancy-layout .form-tabless-fields input[type=text]{background:transparent;border:none;color:#fff;font-size:35px;font-weight:100;height:auto;padding:0;-webkit-box-shadow:none;box-shadow:none} +.fancy-layout .form-tabless-fields input[type=text]::-moz-placeholder{color:rgba(255,255,255,0.5);opacity:1} +.fancy-layout .form-tabless-fields input[type=text]:-ms-input-placeholder{color:rgba(255,255,255,0.5)} +.fancy-layout .form-tabless-fields input[type=text]::-webkit-input-placeholder{color:rgba(255,255,255,0.5)} .fancy-layout .form-tabless-fields input[type=text]:focus, -.fancy-layout .form-tabless-fields input[type=text]:hover {background-color:rgba(255,255,255,0.1)} -.fancy-layout .form-tabless-fields .form-group {padding-bottom:0} -.fancy-layout .form-tabless-fields .form-group.is-required >label:after {display:none} -.fancy-layout .form-tabless-fields .tab-collapse-icon {position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} -.fancy-layout .form-tabless-fields .tab-collapse-icon:hover {text-decoration:none;opacity:1;filter:alpha(opacity=100)} -.fancy-layout .form-tabless-fields .tab-collapse-icon.primary {color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .form-tabless-fields .tab-collapse-icon.primary i {position:relative;display:block} -.fancy-layout .form-tabless-fields .tab-collapse-icon.tabless {top:14px} -.fancy-layout .form-tabless-fields.collapsed {padding:5px 23px 0 10px} -.fancy-layout .form-tabless-fields.collapsed .tab-collapse-icon.tabless {-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} -.fancy-layout .form-tabless-fields.collapsed .form-group:not(.collapse-visible) {display:none} -.fancy-layout .form-tabless-fields.collapsed .form-buttons {margin-left:10px;padding-bottom:0} -.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator {background-color:#e67e22;padding:0 0 0 30px;color:rgba(255,255,255,0.5);margin-top:1px;height:90%;font-size:12px;line-height:100%} -.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator >span {left:-10px;top:18px} -.fancy-layout .form-buttons {-webkit-transition:all 0.5s;transition:all 0.5s;padding-top:14px;padding-bottom:5px} -.fancy-layout .form-buttons .btn {padding:0;margin-right:5px;margin-top:-6px;margin-right:30px;background:transparent;color:#fff;font-weight:normal;-webkit-box-shadow:none;box-shadow:none;opacity:0.5;filter:alpha(opacity=50);-webkit-transition:all 0.3s ease;transition:all 0.3s ease} -.fancy-layout .form-buttons .btn:hover {opacity:1;filter:alpha(opacity=100)} -.fancy-layout .form-buttons .btn:last-child {margin-right:0} +.fancy-layout .form-tabless-fields input[type=text]:hover{background-color:rgba(255,255,255,0.1)} +.fancy-layout .form-tabless-fields .form-group{padding-bottom:0} +.fancy-layout .form-tabless-fields .form-group.is-required>label:after{display:none} +.fancy-layout .form-tabless-fields .tab-collapse-icon{position:absolute;display:block;text-decoration:none;outline:none;opacity:0.6;filter:alpha(opacity=60);-webkit-transition:all 0.3s;transition:all 0.3s;font-size:12px;color:#fff;right:11px} +.fancy-layout .form-tabless-fields .tab-collapse-icon:hover{text-decoration:none;opacity:1;filter:alpha(opacity=100)} +.fancy-layout .form-tabless-fields .tab-collapse-icon.primary{color:#475354;bottom:-25px;z-index:100;-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout .form-tabless-fields .tab-collapse-icon.primary i{position:relative;display:block} +.fancy-layout .form-tabless-fields .tab-collapse-icon.tabless{top:14px} +.fancy-layout .form-tabless-fields.collapsed{padding:5px 23px 0 10px} +.fancy-layout .form-tabless-fields.collapsed .tab-collapse-icon.tabless{-webkit-transform:scale(1,-1);-moz-transform:scale(1,-1);-ms-transform:scale(1,-1);-o-transform:scale(1,-1);transform:scale(1,-1)} +.fancy-layout .form-tabless-fields.collapsed .form-group:not(.collapse-visible){display:none} +.fancy-layout .form-tabless-fields.collapsed .form-buttons{margin-left:10px;padding-bottom:0} +.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator{background-color:#e67e22;padding:0 0 0 30px;color:rgba(255,255,255,0.5);margin-top:1px;height:90%;font-size:12px;line-height:100%} +.fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator>span{left:-10px;top:18px} +.fancy-layout .form-buttons{-webkit-transition:all 0.5s;transition:all 0.5s;padding-top:14px;padding-bottom:5px} +.fancy-layout .form-buttons .btn{padding:0;margin-right:5px;margin-top:-6px;margin-right:30px;background:transparent;color:#fff;font-weight:normal;-webkit-box-shadow:none;box-shadow:none;opacity:0.5;filter:alpha(opacity=50);-webkit-transition:all 0.3s ease;transition:all 0.3s ease} +.fancy-layout .form-buttons .btn:hover{opacity:1;filter:alpha(opacity=100)} +.fancy-layout .form-buttons .btn:last-child{margin-right:0} .fancy-layout .form-buttons .btn[class^="wn-icon-"]:before, .fancy-layout .form-buttons .btn[class*=" wn-icon-"]:before, .fancy-layout .form-buttons .btn[class^="oc-icon-"]:before, -.fancy-layout .form-buttons .btn[class*=" oc-icon-"]:before {opacity:1} +.fancy-layout .form-buttons .btn[class*=" oc-icon-"]:before{opacity:1} .fancy-layout form.oc-data-changed .btn.save, -.fancy-layout form.wn-data-changed .btn.save {opacity:1;filter:alpha(opacity=100)} -.fancy-layout .field-codeeditor {border:none !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.fancy-layout .field-codeeditor .editor-code {-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.fancy-layout .field-richeditor {border:none;border-left:1px solid #d1d6d9 !important} +.fancy-layout form.wn-data-changed .btn.save{opacity:1;filter:alpha(opacity=100)} +.fancy-layout .field-codeeditor{border:none !important;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.fancy-layout .field-codeeditor .editor-code{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.fancy-layout .field-richeditor{border:none;border-left:1px solid #d1d6d9 !important} .fancy-layout .field-richeditor, .fancy-layout .field-richeditor .fr-toolbar, -.fancy-layout .field-richeditor .fr-wrapper {-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-top-right-radius:0;border-top-left-radius:0} -.fancy-layout .secondary-content-tabs .field-richeditor .fr-toolbar {background:white} -body.side-panel-not-fixed .fancy-layout .field-richeditor {border-left:none} -html.cssanimations .fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator >span {-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;background-image:url('../../../system/assets/ui/images/loader-white.svg');background-size:20px 20px} -html.gecko .fancy-layout .control-tabs.secondary-tabs >div >ul.nav-tabs >li.active a {padding-top:13px} -.flyout-container >.flyout {overflow:hidden;width:0;left:0 !important;-webkit-transition:width 0.1s;transition:width 0.1s} -.flyout-overlay {width:100%;height:100%;top:0;z-index:5000;position:absolute;background-color:rgba(0,0,0,0);-webkit-transition:background-color 0.3s;transition:background-color 0.3s} -.flyout-toggle {position:absolute;top:20px;left:0;width:23px;height:25px;background:#2b3e50;cursor:pointer;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#bdc3c7;font-size:10px} -.flyout-toggle i {margin:7px 0 0 6px;display:inline-block} -.flyout-toggle:hover i {color:#fff} -body.flyout-visible {overflow:hidden} -body.flyout-visible .flyout-overlay {background-color:rgba(0,0,0,0.3)} \ No newline at end of file +.fancy-layout .field-richeditor .fr-wrapper{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;border-top-right-radius:0;border-top-left-radius:0} +.fancy-layout .secondary-content-tabs .field-richeditor .fr-toolbar{background:white} +body.side-panel-not-fixed .fancy-layout .field-richeditor{border-left:none} +html.cssanimations .fancy-layout .form-tabless-fields .loading-indicator-container .loading-indicator>span{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite;background-image:url('../../../system/assets/ui/images/loader-white.svg');background-size:20px 20px} +html.gecko .fancy-layout .control-tabs.secondary-tabs>div>ul.nav-tabs>li.active a{padding-top:13px} +.flyout-container>.flyout{overflow:hidden;width:0;left:0 !important;-webkit-transition:width 0.1s;transition:width 0.1s} +.flyout-overlay{width:100%;height:100%;top:0;z-index:5000;position:absolute;background-color:rgba(0,0,0,0);-webkit-transition:background-color 0.3s;transition:background-color 0.3s} +.flyout-toggle{position:absolute;top:20px;left:0;width:23px;height:25px;background:#2b3e50;cursor:pointer;border-bottom-right-radius:4px;border-top-right-radius:4px;color:#bdc3c7;font-size:10px} +.flyout-toggle i{margin:7px 0 0 6px;display:inline-block} +.flyout-toggle:hover i{color:#fff} +body.flyout-visible{overflow:hidden} +body.flyout-visible .flyout-overlay{background-color:rgba(0,0,0,0.3)} \ No newline at end of file diff --git a/modules/backend/assets/js/winter-min.js b/modules/backend/assets/js/winter-min.js index 5d58396141..41225f0d16 100644 --- a/modules/backend/assets/js/winter-min.js +++ b/modules/backend/assets/js/winter-min.js @@ -1,530 +1,131 @@ - -(function($){$.fn.touchwipe=function(settings){var config={min_move_x:20,min_move_y:20,wipeLeft:function(){},wipeRight:function(){},wipeUp:function(){},wipeDown:function(){},preventDefaultEvents:true};if(settings)$.extend(config,settings);this.each(function(){var startX;var startY;var isMoving=false;function cancelTouch(){this.removeEventListener('touchmove',onTouchMove);startX=null;isMoving=false;} -function onTouchMove(e){if(config.preventDefaultEvents){e.preventDefault();} -if(isMoving){var x=e.touches[0].pageX;var y=e.touches[0].pageY;var dx=startX-x;var dy=startY-y;if(Math.abs(dx)>=config.min_move_x){cancelTouch();if(dx>0){config.wipeLeft();} -else{config.wipeRight();}} -else if(Math.abs(dy)>=config.min_move_y){cancelTouch();if(dy>0){config.wipeDown();} -else{config.wipeUp();}}}} -function onTouchStart(e) -{if(e.touches.length==1){startX=e.touches[0].pageX;startY=e.touches[0].pageY;isMoving=true;this.addEventListener('touchmove',onTouchMove,false);}} -if('ontouchstart'in document.documentElement){this.addEventListener('touchstart',onTouchStart,false);}});return this;};})(jQuery);(function($){var liveUpdatingTargetSelectors={};var liveUpdaterIntervalId;var liveUpdaterRunning=false;var defaultSettings={ellipsis:'...',setTitle:'never',live:false};$.fn.ellipsis=function(selector,options){var subjectElements,settings;subjectElements=$(this);if(typeof selector!=='string'){options=selector;selector=undefined;} -settings=$.extend({},defaultSettings,options);settings.selector=selector;subjectElements.each(function(){var elem=$(this);ellipsisOnElement(elem,settings);});if(settings.live){addToLiveUpdater(subjectElements.selector,settings);}else{removeFromLiveUpdater(subjectElements.selector);} -return this;};function ellipsisOnElement(containerElement,settings){var containerData=containerElement.data('jqae');if(!containerData)containerData={};var wrapperElement=containerData.wrapperElement;if(!wrapperElement){wrapperElement=containerElement.wrapInner('
').find('>div');wrapperElement.css({margin:0,padding:0,border:0});} -var wrapperElementData=wrapperElement.data('jqae');if(!wrapperElementData)wrapperElementData={};var wrapperOriginalContent=wrapperElementData.originalContent;if(wrapperOriginalContent){wrapperElement=wrapperElementData.originalContent.clone(true).data('jqae',{originalContent:wrapperOriginalContent}).replaceAll(wrapperElement);}else{wrapperElement.data('jqae',{originalContent:wrapperElement.clone(true)});} -containerElement.data('jqae',{wrapperElement:wrapperElement,containerWidth:containerElement.width(),containerHeight:containerElement.height()});var containerElementHeight=containerElement.height();var wrapperOffset=(parseInt(containerElement.css('padding-top'),10)||0)+(parseInt(containerElement.css('border-top-width'),10)||0)-(wrapperElement.offset().top-containerElement.offset().top);var deferAppendEllipsis=false;var selectedElements=wrapperElement;if(settings.selector)selectedElements=$(wrapperElement.find(settings.selector).get().reverse());selectedElements.each(function(){var selectedElement=$(this),originalText=selectedElement.text(),ellipsisApplied=false;if(wrapperElement.innerHeight()-selectedElement.innerHeight()>containerElementHeight+wrapperOffset){selectedElement.remove();}else{removeLastEmptyElements(selectedElement);if(selectedElement.contents().length){if(deferAppendEllipsis){getLastTextNode(selectedElement).get(0).nodeValue+=settings.ellipsis;deferAppendEllipsis=false;} -while(wrapperElement.innerHeight()>containerElementHeight+wrapperOffset){ellipsisApplied=ellipsisOnLastTextNode(selectedElement);if(ellipsisApplied){removeLastEmptyElements(selectedElement);if(selectedElement.contents().length){getLastTextNode(selectedElement).get(0).nodeValue+=settings.ellipsis;}else{deferAppendEllipsis=true;selectedElement.remove();break;}}else{deferAppendEllipsis=true;selectedElement.remove();break;}} -if(((settings.setTitle=='onEllipsis')&&ellipsisApplied)||(settings.setTitle=='always')){selectedElement.attr('title',originalText);}else if(settings.setTitle!='never'){selectedElement.removeAttr('title');}}}});} -function ellipsisOnLastTextNode(element){var lastTextNode=getLastTextNode(element);if(lastTextNode.length){var text=lastTextNode.get(0).nodeValue;var pos=text.lastIndexOf(' ');if(pos>-1){text=$.trim(text.substring(0,pos));lastTextNode.get(0).nodeValue=text;}else{lastTextNode.get(0).nodeValue='';} -return true;} -return false;} -function getLastTextNode(element){if(element.contents().length){var contents=element.contents();var lastNode=contents.eq(contents.length-1);if(lastNode.filter(textNodeFilter).length){return lastNode;}else{return getLastTextNode(lastNode);}}else{element.append('');var contents=element.contents();return contents.eq(contents.length-1);}} -function removeLastEmptyElements(element){if(element.contents().length){var contents=element.contents();var lastNode=contents.eq(contents.length-1);if(lastNode.filter(textNodeFilter).length){var text=lastNode.get(0).nodeValue;text=$.trim(text);if(text==''){lastNode.remove();return true;}else{return false;}}else{while(removeLastEmptyElements(lastNode)){} -if(lastNode.contents().length){return false;}else{lastNode.remove();return true;}}} -return false;} -function textNodeFilter(){return this.nodeType===3;} -function addToLiveUpdater(targetSelector,settings){liveUpdatingTargetSelectors[targetSelector]=settings;if(!liveUpdaterIntervalId){liveUpdaterIntervalId=window.setInterval(function(){doLiveUpdater();},200);}} -function removeFromLiveUpdater(targetSelector){if(liveUpdatingTargetSelectors[targetSelector]){delete liveUpdatingTargetSelectors[targetSelector];if(!liveUpdatingTargetSelectors.length){if(liveUpdaterIntervalId){window.clearInterval(liveUpdaterIntervalId);liveUpdaterIntervalId=undefined;}}}};function doLiveUpdater(){if(!liveUpdaterRunning){liveUpdaterRunning=true;for(var targetSelector in liveUpdatingTargetSelectors){$(targetSelector).each(function(){var containerElement,containerData;containerElement=$(this);containerData=containerElement.data('jqae');if((containerData.containerWidth!=containerElement.width())||(containerData.containerHeight!=containerElement.height())){ellipsisOnElement(containerElement,liveUpdatingTargetSelectors[targetSelector]);}});} -liveUpdaterRunning=false;}};})(jQuery);(function($){$.waterfall=function(){var steps=[],dfrd=$.Deferred(),pointer=0;$.each(arguments,function(i,a){steps.push(function(){var args=[].slice.apply(arguments),d;if(typeof(a)=='function'){if(!((d=a.apply(null,args))&&d.promise)){d=$.Deferred()[d===false?'reject':'resolve'](d);}}else if(a&&a.promise){d=a;}else{d=$.Deferred()[a===false?'reject':'resolve'](a);} -d.fail(function(){dfrd.reject.apply(dfrd,[].slice.apply(arguments));}).done(function(data){pointer++;args.push(data);pointer==steps.length?dfrd.resolve.apply(dfrd,args):steps[pointer].apply(null,args);});});});steps.length?steps[0]():dfrd.resolve();return dfrd;}})(jQuery);(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports==='object'){factory(require('jquery'));}else{factory(jQuery);}}(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s);} -function decode(s){return config.raw?s:decodeURIComponent(s);} -function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value));} -function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');} -try{s=decodeURIComponent(s.replace(pluses,' '));return config.json?JSON.parse(s):s;}catch(e){}} -function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value;} -var config=$.cookie=function(key,value,options){if(arguments.length>1&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setTime(+t+days*864e+5);} -return(document.cookie=[encode(key),'=',stringifyCookieValue(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));} -var result=key?undefined:{};var cookies=document.cookie?document.cookie.split('; '):[];for(var i=0,l=cookies.length;i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];} -for(var _iterator=callbacks,_isArray=true,_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;} -var callback=_ref;callback.apply(this,args);}} -return this;}},{key:"off",value:function off(event,fn){if(!this._callbacks||arguments.length===0){this._callbacks={};return this;} -var callbacks=this._callbacks[event];if(!callbacks){return this;} -if(arguments.length===1){delete this._callbacks[event];return this;} -for(var i=0;i=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;} -var child=_ref2;if(/(^| )dz-message($| )/.test(child.className)){messageElement=child;child.className="dz-message";break;}} -if(!messageElement){messageElement=Dropzone.createElement("
");this.element.appendChild(messageElement);} -var span=messageElement.getElementsByTagName("span")[0];if(span){if(span.textContent!=null){span.textContent=this.options.dictFallbackMessage;}else if(span.innerText!=null){span.innerText=this.options.dictFallbackMessage;}} -return this.element.appendChild(this.getFallbackForm());},resize:function resize(file,width,height,resizeMethod){var info={srcX:0,srcY:0,srcWidth:file.width,srcHeight:file.height};var srcRatio=file.width/file.height;if(width==null&&height==null){width=info.srcWidth;height=info.srcHeight;}else if(width==null){width=height*srcRatio;}else if(height==null){height=width/srcRatio;} -width=Math.min(width,info.srcWidth);height=Math.min(height,info.srcHeight);var trgRatio=width/height;if(info.srcWidth>width||info.srcHeight>height){if(resizeMethod==='crop'){if(srcRatio>trgRatio){info.srcHeight=file.height;info.srcWidth=info.srcHeight*trgRatio;}else{info.srcWidth=file.width;info.srcHeight=info.srcWidth/trgRatio;}}else if(resizeMethod==='contain'){if(srcRatio>trgRatio){height=width/srcRatio;}else{width=height*srcRatio;}}else{throw new Error("Unknown resizeMethod '"+resizeMethod+"'");}} -info.srcX=(file.width-info.srcWidth)/2;info.srcY=(file.height-info.srcHeight)/2;info.trgWidth=width;info.trgHeight=height;return info;},transformFile:function transformFile(file,done){if((this.options.resizeWidth||this.options.resizeHeight)&&file.type.match(/image.*/)){return this.resizeImage(file,this.options.resizeWidth,this.options.resizeHeight,this.options.resizeMethod,done);}else{return done(file);}},previewTemplate:"
\n
\n
\n
\n
\n
\n
\n
\n
\n \n Check\n \n \n \n \n \n
\n
\n \n Error\n \n \n \n \n \n \n \n
\n
",drop:function drop(e){return this.element.classList.remove("dz-drag-hover");},dragstart:function dragstart(e){},dragend:function dragend(e){return this.element.classList.remove("dz-drag-hover");},dragenter:function dragenter(e){return this.element.classList.add("dz-drag-hover");},dragover:function dragover(e){return this.element.classList.add("dz-drag-hover");},dragleave:function dragleave(e){return this.element.classList.remove("dz-drag-hover");},paste:function paste(e){},reset:function reset(){return this.element.classList.remove("dz-started");},addedfile:function addedfile(file){var _this2=this;if(this.element===this.previewsContainer){this.element.classList.add("dz-started");} -if(this.previewsContainer){file.previewElement=Dropzone.createElement(this.options.previewTemplate.trim());file.previewTemplate=file.previewElement;this.previewsContainer.appendChild(file.previewElement);for(var _iterator3=file.previewElement.querySelectorAll("[data-dz-name]"),_isArray3=true,_i3=0,_iterator3=_isArray3?_iterator3:_iterator3[Symbol.iterator]();;){var _ref3;if(_isArray3){if(_i3>=_iterator3.length)break;_ref3=_iterator3[_i3++];}else{_i3=_iterator3.next();if(_i3.done)break;_ref3=_i3.value;} -var node=_ref3;node.textContent=file.name;} -for(var _iterator4=file.previewElement.querySelectorAll("[data-dz-size]"),_isArray4=true,_i4=0,_iterator4=_isArray4?_iterator4:_iterator4[Symbol.iterator]();;){if(_isArray4){if(_i4>=_iterator4.length)break;node=_iterator4[_i4++];}else{_i4=_iterator4.next();if(_i4.done)break;node=_i4.value;} -node.innerHTML=this.filesize(file.size);} -if(this.options.addRemoveLinks){file._removeLink=Dropzone.createElement(""+this.options.dictRemoveFile+"");file.previewElement.appendChild(file._removeLink);} -var removeFileEvent=function removeFileEvent(e){e.preventDefault();e.stopPropagation();if(file.status===Dropzone.UPLOADING){return Dropzone.confirm(_this2.options.dictCancelUploadConfirmation,function(){return _this2.removeFile(file);});}else{if(_this2.options.dictRemoveFileConfirmation){return Dropzone.confirm(_this2.options.dictRemoveFileConfirmation,function(){return _this2.removeFile(file);});}else{return _this2.removeFile(file);}}};for(var _iterator5=file.previewElement.querySelectorAll("[data-dz-remove]"),_isArray5=true,_i5=0,_iterator5=_isArray5?_iterator5:_iterator5[Symbol.iterator]();;){var _ref4;if(_isArray5){if(_i5>=_iterator5.length)break;_ref4=_iterator5[_i5++];}else{_i5=_iterator5.next();if(_i5.done)break;_ref4=_i5.value;} -var removeLink=_ref4;removeLink.addEventListener("click",removeFileEvent);}}},removedfile:function removedfile(file){if(file.previewElement!=null&&file.previewElement.parentNode!=null){file.previewElement.parentNode.removeChild(file.previewElement);} -return this._updateMaxFilesReachedClass();},thumbnail:function thumbnail(file,dataUrl){if(file.previewElement){file.previewElement.classList.remove("dz-file-preview");for(var _iterator6=file.previewElement.querySelectorAll("[data-dz-thumbnail]"),_isArray6=true,_i6=0,_iterator6=_isArray6?_iterator6:_iterator6[Symbol.iterator]();;){var _ref5;if(_isArray6){if(_i6>=_iterator6.length)break;_ref5=_iterator6[_i6++];}else{_i6=_iterator6.next();if(_i6.done)break;_ref5=_i6.value;} -var thumbnailElement=_ref5;thumbnailElement.alt=file.name;thumbnailElement.src=dataUrl;} -return setTimeout(function(){return file.previewElement.classList.add("dz-image-preview");},1);}},error:function error(file,message){if(file.previewElement){file.previewElement.classList.add("dz-error");if(typeof message!=="String"&&message.error){message=message.error;} -for(var _iterator7=file.previewElement.querySelectorAll("[data-dz-errormessage]"),_isArray7=true,_i7=0,_iterator7=_isArray7?_iterator7:_iterator7[Symbol.iterator]();;){var _ref6;if(_isArray7){if(_i7>=_iterator7.length)break;_ref6=_iterator7[_i7++];}else{_i7=_iterator7.next();if(_i7.done)break;_ref6=_i7.value;} -var node=_ref6;node.textContent=message;}}},errormultiple:function errormultiple(){},processing:function processing(file){if(file.previewElement){file.previewElement.classList.add("dz-processing");if(file._removeLink){return file._removeLink.innerHTML=this.options.dictCancelUpload;}}},processingmultiple:function processingmultiple(){},uploadprogress:function uploadprogress(file,progress,bytesSent){if(file.previewElement){for(var _iterator8=file.previewElement.querySelectorAll("[data-dz-uploadprogress]"),_isArray8=true,_i8=0,_iterator8=_isArray8?_iterator8:_iterator8[Symbol.iterator]();;){var _ref7;if(_isArray8){if(_i8>=_iterator8.length)break;_ref7=_iterator8[_i8++];}else{_i8=_iterator8.next();if(_i8.done)break;_ref7=_i8.value;} -var node=_ref7;node.nodeName==='PROGRESS'?node.value=progress:node.style.width=progress+"%";}}},totaluploadprogress:function totaluploadprogress(){},sending:function sending(){},sendingmultiple:function sendingmultiple(){},success:function success(file){if(file.previewElement){return file.previewElement.classList.add("dz-success");}},successmultiple:function successmultiple(){},canceled:function canceled(file){return this.emit("error",file,this.options.dictUploadCanceled);},canceledmultiple:function canceledmultiple(){},complete:function complete(file){if(file._removeLink){file._removeLink.innerHTML=this.options.dictRemoveFile;} -if(file.previewElement){return file.previewElement.classList.add("dz-complete");}},completemultiple:function completemultiple(){},maxfilesexceeded:function maxfilesexceeded(){},maxfilesreached:function maxfilesreached(){},queuecomplete:function queuecomplete(){},addedfiles:function addedfiles(){}};this.prototype._thumbnailQueue=[];this.prototype._processingThumbnail=false;}},{key:"extend",value:function extend(target){for(var _len2=arguments.length,objects=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){objects[_key2-1]=arguments[_key2];} -for(var _iterator9=objects,_isArray9=true,_i9=0,_iterator9=_isArray9?_iterator9:_iterator9[Symbol.iterator]();;){var _ref8;if(_isArray9){if(_i9>=_iterator9.length)break;_ref8=_iterator9[_i9++];}else{_i9=_iterator9.next();if(_i9.done)break;_ref8=_i9.value;} -var object=_ref8;for(var key in object){var val=object[key];target[key]=val;}} -return target;}}]);function Dropzone(el,options){_classCallCheck(this,Dropzone);var _this=_possibleConstructorReturn(this,(Dropzone.__proto__||Object.getPrototypeOf(Dropzone)).call(this));var fallback=void 0,left=void 0;_this.element=el;_this.version=Dropzone.version;_this.defaultOptions.previewTemplate=_this.defaultOptions.previewTemplate.replace(/\n*/g,"");_this.clickableElements=[];_this.listeners=[];_this.files=[];if(typeof _this.element==="string"){_this.element=document.querySelector(_this.element);} -if(!_this.element||_this.element.nodeType==null){throw new Error("Invalid dropzone element.");} -if(_this.element.dropzone){throw new Error("Dropzone already attached.");} -Dropzone.instances.push(_this);_this.element.dropzone=_this;var elementOptions=(left=Dropzone.optionsForElement(_this.element))!=null?left:{};_this.options=Dropzone.extend({},_this.defaultOptions,elementOptions,options!=null?options:{});if(_this.options.forceFallback||!Dropzone.isBrowserSupported()){var _ret;return _ret=_this.options.fallback.call(_this),_possibleConstructorReturn(_this,_ret);} -if(_this.options.url==null){_this.options.url=_this.element.getAttribute("action");} -if(!_this.options.url){throw new Error("No URL provided.");} -if(_this.options.acceptedFiles&&_this.options.acceptedMimeTypes){throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");} -if(_this.options.uploadMultiple&&_this.options.chunking){throw new Error('You cannot set both: uploadMultiple and chunking.');} -if(_this.options.acceptedMimeTypes){_this.options.acceptedFiles=_this.options.acceptedMimeTypes;delete _this.options.acceptedMimeTypes;} -if(_this.options.renameFilename!=null){_this.options.renameFile=function(file){return _this.options.renameFilename.call(_this,file.name,file);};} -_this.options.method=_this.options.method.toUpperCase();if((fallback=_this.getExistingFallback())&&fallback.parentNode){fallback.parentNode.removeChild(fallback);} -if(_this.options.previewsContainer!==false){if(_this.options.previewsContainer){_this.previewsContainer=Dropzone.getElement(_this.options.previewsContainer,"previewsContainer");}else{_this.previewsContainer=_this.element;}} -if(_this.options.clickable){if(_this.options.clickable===true){_this.clickableElements=[_this.element];}else{_this.clickableElements=Dropzone.getElements(_this.options.clickable,"clickable");}} -_this.init();return _this;} -_createClass(Dropzone,[{key:"getAcceptedFiles",value:function getAcceptedFiles(){return this.files.filter(function(file){return file.accepted;}).map(function(file){return file;});}},{key:"getRejectedFiles",value:function getRejectedFiles(){return this.files.filter(function(file){return!file.accepted;}).map(function(file){return file;});}},{key:"getFilesWithStatus",value:function getFilesWithStatus(status){return this.files.filter(function(file){return file.status===status;}).map(function(file){return file;});}},{key:"getQueuedFiles",value:function getQueuedFiles(){return this.getFilesWithStatus(Dropzone.QUEUED);}},{key:"getUploadingFiles",value:function getUploadingFiles(){return this.getFilesWithStatus(Dropzone.UPLOADING);}},{key:"getAddedFiles",value:function getAddedFiles(){return this.getFilesWithStatus(Dropzone.ADDED);}},{key:"getActiveFiles",value:function getActiveFiles(){return this.files.filter(function(file){return file.status===Dropzone.UPLOADING||file.status===Dropzone.QUEUED;}).map(function(file){return file;});}},{key:"init",value:function init(){var _this3=this;if(this.element.tagName==="form"){this.element.setAttribute("enctype","multipart/form-data");} -if(this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")){this.element.appendChild(Dropzone.createElement("
"+this.options.dictDefaultMessage+"
"));} -if(this.clickableElements.length){var setupHiddenFileInput=function setupHiddenFileInput(){if(_this3.hiddenFileInput){_this3.hiddenFileInput.parentNode.removeChild(_this3.hiddenFileInput);} -_this3.hiddenFileInput=document.createElement("input");_this3.hiddenFileInput.setAttribute("type","file");if(_this3.options.maxFiles===null||_this3.options.maxFiles>1){_this3.hiddenFileInput.setAttribute("multiple","multiple");} -_this3.hiddenFileInput.className="dz-hidden-input";if(_this3.options.acceptedFiles!==null){_this3.hiddenFileInput.setAttribute("accept",_this3.options.acceptedFiles);} -if(_this3.options.capture!==null){_this3.hiddenFileInput.setAttribute("capture",_this3.options.capture);} -_this3.hiddenFileInput.style.visibility="hidden";_this3.hiddenFileInput.style.position="absolute";_this3.hiddenFileInput.style.top="0";_this3.hiddenFileInput.style.left="0";_this3.hiddenFileInput.style.height="0";_this3.hiddenFileInput.style.width="0";Dropzone.getElement(_this3.options.hiddenInputContainer,'hiddenInputContainer').appendChild(_this3.hiddenFileInput);return _this3.hiddenFileInput.addEventListener("change",function(){var files=_this3.hiddenFileInput.files;if(files.length){for(var _iterator10=files,_isArray10=true,_i10=0,_iterator10=_isArray10?_iterator10:_iterator10[Symbol.iterator]();;){var _ref9;if(_isArray10){if(_i10>=_iterator10.length)break;_ref9=_iterator10[_i10++];}else{_i10=_iterator10.next();if(_i10.done)break;_ref9=_i10.value;} -var file=_ref9;_this3.addFile(file);}} -_this3.emit("addedfiles",files);return setupHiddenFileInput();});};setupHiddenFileInput();} -this.URL=window.URL!==null?window.URL:window.webkitURL;for(var _iterator11=this.events,_isArray11=true,_i11=0,_iterator11=_isArray11?_iterator11:_iterator11[Symbol.iterator]();;){var _ref10;if(_isArray11){if(_i11>=_iterator11.length)break;_ref10=_iterator11[_i11++];}else{_i11=_iterator11.next();if(_i11.done)break;_ref10=_i11.value;} -var eventName=_ref10;this.on(eventName,this.options[eventName]);} -this.on("uploadprogress",function(){return _this3.updateTotalUploadProgress();});this.on("removedfile",function(){return _this3.updateTotalUploadProgress();});this.on("canceled",function(file){return _this3.emit("complete",file);});this.on("complete",function(file){if(_this3.getAddedFiles().length===0&&_this3.getUploadingFiles().length===0&&_this3.getQueuedFiles().length===0){return setTimeout(function(){return _this3.emit("queuecomplete");},0);}});var noPropagation=function noPropagation(e){e.stopPropagation();if(e.preventDefault){return e.preventDefault();}else{return e.returnValue=false;}};this.listeners=[{element:this.element,events:{"dragstart":function dragstart(e){return _this3.emit("dragstart",e);},"dragenter":function dragenter(e){noPropagation(e);return _this3.emit("dragenter",e);},"dragover":function dragover(e){var efct=void 0;try{efct=e.dataTransfer.effectAllowed;}catch(error){} -e.dataTransfer.dropEffect='move'===efct||'linkMove'===efct?'move':'copy';noPropagation(e);return _this3.emit("dragover",e);},"dragleave":function dragleave(e){return _this3.emit("dragleave",e);},"drop":function drop(e){noPropagation(e);return _this3.drop(e);},"dragend":function dragend(e){return _this3.emit("dragend",e);}}}];this.clickableElements.forEach(function(clickableElement){return _this3.listeners.push({element:clickableElement,events:{"click":function click(evt){if(clickableElement!==_this3.element||evt.target===_this3.element||Dropzone.elementInside(evt.target,_this3.element.querySelector(".dz-message"))){_this3.hiddenFileInput.click();} -return true;}}});});this.enable();return this.options.init.call(this);}},{key:"destroy",value:function destroy(){this.disable();this.removeAllFiles(true);if(this.hiddenFileInput!=null?this.hiddenFileInput.parentNode:undefined){this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);this.hiddenFileInput=null;} -delete this.element.dropzone;return Dropzone.instances.splice(Dropzone.instances.indexOf(this),1);}},{key:"updateTotalUploadProgress",value:function updateTotalUploadProgress(){var totalUploadProgress=void 0;var totalBytesSent=0;var totalBytes=0;var activeFiles=this.getActiveFiles();if(activeFiles.length){for(var _iterator12=this.getActiveFiles(),_isArray12=true,_i12=0,_iterator12=_isArray12?_iterator12:_iterator12[Symbol.iterator]();;){var _ref11;if(_isArray12){if(_i12>=_iterator12.length)break;_ref11=_iterator12[_i12++];}else{_i12=_iterator12.next();if(_i12.done)break;_ref11=_i12.value;} -var file=_ref11;totalBytesSent+=file.upload.bytesSent;totalBytes+=file.upload.total;} -totalUploadProgress=100*totalBytesSent/totalBytes;}else{totalUploadProgress=100;} -return this.emit("totaluploadprogress",totalUploadProgress,totalBytes,totalBytesSent);}},{key:"_getParamName",value:function _getParamName(n){if(typeof this.options.paramName==="function"){return this.options.paramName(n);}else{return""+this.options.paramName+(this.options.uploadMultiple?"["+n+"]":"");}}},{key:"_renameFile",value:function _renameFile(file){if(typeof this.options.renameFile!=="function"){return file.name;} -return this.options.renameFile(file);}},{key:"getFallbackForm",value:function getFallbackForm(){var existingFallback=void 0,form=void 0;if(existingFallback=this.getExistingFallback()){return existingFallback;} -var fieldsString="
";if(this.options.dictFallbackText){fieldsString+="

"+this.options.dictFallbackText+"

";} -fieldsString+="
";var fields=Dropzone.createElement(fieldsString);if(this.element.tagName!=="FORM"){form=Dropzone.createElement("
");form.appendChild(fields);}else{this.element.setAttribute("enctype","multipart/form-data");this.element.setAttribute("method",this.options.method);} -return form!=null?form:fields;}},{key:"getExistingFallback",value:function getExistingFallback(){var getFallback=function getFallback(elements){for(var _iterator13=elements,_isArray13=true,_i13=0,_iterator13=_isArray13?_iterator13:_iterator13[Symbol.iterator]();;){var _ref12;if(_isArray13){if(_i13>=_iterator13.length)break;_ref12=_iterator13[_i13++];}else{_i13=_iterator13.next();if(_i13.done)break;_ref12=_i13.value;} -var el=_ref12;if(/(^| )fallback($| )/.test(el.className)){return el;}}};var _arr=["div","form"];for(var _i14=0;_i14<_arr.length;_i14++){var tagName=_arr[_i14];var fallback;if(fallback=getFallback(this.element.getElementsByTagName(tagName))){return fallback;}}}},{key:"setupEventListeners",value:function setupEventListeners(){return this.listeners.map(function(elementListeners){return function(){var result=[];for(var event in elementListeners.events){var listener=elementListeners.events[event];result.push(elementListeners.element.addEventListener(event,listener,false));} -return result;}();});}},{key:"removeEventListeners",value:function removeEventListeners(){return this.listeners.map(function(elementListeners){return function(){var result=[];for(var event in elementListeners.events){var listener=elementListeners.events[event];result.push(elementListeners.element.removeEventListener(event,listener,false));} -return result;}();});}},{key:"disable",value:function disable(){var _this4=this;this.clickableElements.forEach(function(element){return element.classList.remove("dz-clickable");});this.removeEventListeners();this.disabled=true;return this.files.map(function(file){return _this4.cancelUpload(file);});}},{key:"enable",value:function enable(){delete this.disabled;this.clickableElements.forEach(function(element){return element.classList.add("dz-clickable");});return this.setupEventListeners();}},{key:"filesize",value:function filesize(size){var selectedSize=0;var selectedUnit="b";if(size>0){var units=['tb','gb','mb','kb','b'];for(var i=0;i=cutoff){selectedSize=size/Math.pow(this.options.filesizeBase,4-i);selectedUnit=unit;break;}} -selectedSize=Math.round(10*selectedSize)/10;} -return""+selectedSize+" "+this.options.dictFileSizeUnits[selectedUnit];}},{key:"_updateMaxFilesReachedClass",value:function _updateMaxFilesReachedClass(){if(this.options.maxFiles!=null&&this.getAcceptedFiles().length>=this.options.maxFiles){if(this.getAcceptedFiles().length===this.options.maxFiles){this.emit('maxfilesreached',this.files);} -return this.element.classList.add("dz-max-files-reached");}else{return this.element.classList.remove("dz-max-files-reached");}}},{key:"drop",value:function drop(e){if(!e.dataTransfer){return;} -this.emit("drop",e);var files=[];for(var i=0;i=_iterator14.length)break;_ref13=_iterator14[_i15++];}else{_i15=_iterator14.next();if(_i15.done)break;_ref13=_i15.value;} -var file=_ref13;this.addFile(file);}}},{key:"_addFilesFromItems",value:function _addFilesFromItems(items){var _this5=this;return function(){var result=[];for(var _iterator15=items,_isArray15=true,_i16=0,_iterator15=_isArray15?_iterator15:_iterator15[Symbol.iterator]();;){var _ref14;if(_isArray15){if(_i16>=_iterator15.length)break;_ref14=_iterator15[_i16++];}else{_i16=_iterator15.next();if(_i16.done)break;_ref14=_i16.value;} -var item=_ref14;var entry;if(item.webkitGetAsEntry!=null&&(entry=item.webkitGetAsEntry())){if(entry.isFile){result.push(_this5.addFile(item.getAsFile()));}else if(entry.isDirectory){result.push(_this5._addFilesFromDirectory(entry,entry.name));}else{result.push(undefined);}}else if(item.getAsFile!=null){if(item.kind==null||item.kind==="file"){result.push(_this5.addFile(item.getAsFile()));}else{result.push(undefined);}}else{result.push(undefined);}} -return result;}();}},{key:"_addFilesFromDirectory",value:function _addFilesFromDirectory(directory,path){var _this6=this;var dirReader=directory.createReader();var errorHandler=function errorHandler(error){return __guardMethod__(console,'log',function(o){return o.log(error);});};var readEntries=function readEntries(){return dirReader.readEntries(function(entries){if(entries.length>0){for(var _iterator16=entries,_isArray16=true,_i17=0,_iterator16=_isArray16?_iterator16:_iterator16[Symbol.iterator]();;){var _ref15;if(_isArray16){if(_i17>=_iterator16.length)break;_ref15=_iterator16[_i17++];}else{_i17=_iterator16.next();if(_i17.done)break;_ref15=_i17.value;} -var entry=_ref15;if(entry.isFile){entry.file(function(file){if(_this6.options.ignoreHiddenFiles&&file.name.substring(0,1)==='.'){return;} -file.fullPath=path+"/"+file.name;return _this6.addFile(file);});}else if(entry.isDirectory){_this6._addFilesFromDirectory(entry,path+"/"+entry.name);}} -readEntries();} -return null;},errorHandler);};return readEntries();}},{key:"accept",value:function accept(file,done){if(this.options.maxFilesize&&file.size>this.options.maxFilesize*1024*1024){return done(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(file.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize));}else if(!Dropzone.isValidFile(file,this.options.acceptedFiles)){return done(this.options.dictInvalidFileType);}else if(this.options.maxFiles!=null&&this.getAcceptedFiles().length>=this.options.maxFiles){done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles));return this.emit("maxfilesexceeded",file);}else{return this.options.accept.call(this,file,done);}}},{key:"addFile",value:function addFile(file){var _this7=this;file.upload={uuid:Dropzone.uuidv4(),progress:0,total:file.size,bytesSent:0,filename:this._renameFile(file),chunked:this.options.chunking&&(this.options.forceChunking||file.size>this.options.chunkSize),totalChunkCount:Math.ceil(file.size/this.options.chunkSize)};this.files.push(file);file.status=Dropzone.ADDED;this.emit("addedfile",file);this._enqueueThumbnail(file);return this.accept(file,function(error){if(error){file.accepted=false;_this7._errorProcessing([file],error);}else{file.accepted=true;if(_this7.options.autoQueue){_this7.enqueueFile(file);}} -return _this7._updateMaxFilesReachedClass();});}},{key:"enqueueFiles",value:function enqueueFiles(files){for(var _iterator17=files,_isArray17=true,_i18=0,_iterator17=_isArray17?_iterator17:_iterator17[Symbol.iterator]();;){var _ref16;if(_isArray17){if(_i18>=_iterator17.length)break;_ref16=_iterator17[_i18++];}else{_i18=_iterator17.next();if(_i18.done)break;_ref16=_i18.value;} -var file=_ref16;this.enqueueFile(file);} -return null;}},{key:"enqueueFile",value:function enqueueFile(file){var _this8=this;if(file.status===Dropzone.ADDED&&file.accepted===true){file.status=Dropzone.QUEUED;if(this.options.autoProcessQueue){return setTimeout(function(){return _this8.processQueue();},0);}}else{throw new Error("This file can't be queued because it has already been processed or was rejected.");}}},{key:"_enqueueThumbnail",value:function _enqueueThumbnail(file){var _this9=this;if(this.options.createImageThumbnails&&file.type.match(/image.*/)&&file.size<=this.options.maxThumbnailFilesize*1024*1024){this._thumbnailQueue.push(file);return setTimeout(function(){return _this9._processThumbnailQueue();},0);}}},{key:"_processThumbnailQueue",value:function _processThumbnailQueue(){var _this10=this;if(this._processingThumbnail||this._thumbnailQueue.length===0){return;} -this._processingThumbnail=true;var file=this._thumbnailQueue.shift();return this.createThumbnail(file,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,true,function(dataUrl){_this10.emit("thumbnail",file,dataUrl);_this10._processingThumbnail=false;return _this10._processThumbnailQueue();});}},{key:"removeFile",value:function removeFile(file){if(file.status===Dropzone.UPLOADING){this.cancelUpload(file);} -this.files=without(this.files,file);this.emit("removedfile",file);if(this.files.length===0){return this.emit("reset");}}},{key:"removeAllFiles",value:function removeAllFiles(cancelIfNecessary){if(cancelIfNecessary==null){cancelIfNecessary=false;} -for(var _iterator18=this.files.slice(),_isArray18=true,_i19=0,_iterator18=_isArray18?_iterator18:_iterator18[Symbol.iterator]();;){var _ref17;if(_isArray18){if(_i19>=_iterator18.length)break;_ref17=_iterator18[_i19++];}else{_i19=_iterator18.next();if(_i19.done)break;_ref17=_i19.value;} -var file=_ref17;if(file.status!==Dropzone.UPLOADING||cancelIfNecessary){this.removeFile(file);}} -return null;}},{key:"resizeImage",value:function resizeImage(file,width,height,resizeMethod,callback){var _this11=this;return this.createThumbnail(file,width,height,resizeMethod,true,function(dataUrl,canvas){if(canvas==null){return callback(file);}else{var resizeMimeType=_this11.options.resizeMimeType;if(resizeMimeType==null){resizeMimeType=file.type;} -var resizedDataURL=canvas.toDataURL(resizeMimeType,_this11.options.resizeQuality);if(resizeMimeType==='image/jpeg'||resizeMimeType==='image/jpg'){resizedDataURL=ExifRestore.restore(file.dataURL,resizedDataURL);} -return callback(Dropzone.dataURItoBlob(resizedDataURL));}});}},{key:"createThumbnail",value:function createThumbnail(file,width,height,resizeMethod,fixOrientation,callback){var _this12=this;var fileReader=new FileReader();fileReader.onload=function(){file.dataURL=fileReader.result;if(file.type==="image/svg+xml"){if(callback!=null){callback(fileReader.result);} -return;} -return _this12.createThumbnailFromUrl(file,width,height,resizeMethod,fixOrientation,callback);};return fileReader.readAsDataURL(file);}},{key:"createThumbnailFromUrl",value:function createThumbnailFromUrl(file,width,height,resizeMethod,fixOrientation,callback,crossOrigin){var _this13=this;var img=document.createElement("img");if(crossOrigin){img.crossOrigin=crossOrigin;} -img.onload=function(){var loadExif=function loadExif(callback){return callback(1);};if(typeof EXIF!=='undefined'&&EXIF!==null&&fixOrientation){loadExif=function loadExif(callback){return EXIF.getData(img,function(){return callback(EXIF.getTag(this,'Orientation'));});};} -return loadExif(function(orientation){file.width=img.width;file.height=img.height;var resizeInfo=_this13.options.resize.call(_this13,file,width,height,resizeMethod);var canvas=document.createElement("canvas");var ctx=canvas.getContext("2d");canvas.width=resizeInfo.trgWidth;canvas.height=resizeInfo.trgHeight;if(orientation>4){canvas.width=resizeInfo.trgHeight;canvas.height=resizeInfo.trgWidth;} -switch(orientation){case 2:ctx.translate(canvas.width,0);ctx.scale(-1,1);break;case 3:ctx.translate(canvas.width,canvas.height);ctx.rotate(Math.PI);break;case 4:ctx.translate(0,canvas.height);ctx.scale(1,-1);break;case 5:ctx.rotate(0.5*Math.PI);ctx.scale(1,-1);break;case 6:ctx.rotate(0.5*Math.PI);ctx.translate(0,-canvas.width);break;case 7:ctx.rotate(0.5*Math.PI);ctx.translate(canvas.height,-canvas.width);ctx.scale(-1,1);break;case 8:ctx.rotate(-0.5*Math.PI);ctx.translate(-canvas.height,0);break;} -drawImageIOSFix(ctx,img,resizeInfo.srcX!=null?resizeInfo.srcX:0,resizeInfo.srcY!=null?resizeInfo.srcY:0,resizeInfo.srcWidth,resizeInfo.srcHeight,resizeInfo.trgX!=null?resizeInfo.trgX:0,resizeInfo.trgY!=null?resizeInfo.trgY:0,resizeInfo.trgWidth,resizeInfo.trgHeight);var thumbnail=canvas.toDataURL("image/png");if(callback!=null){return callback(thumbnail,canvas);}});};if(callback!=null){img.onerror=callback;} -return img.src=file.dataURL;}},{key:"processQueue",value:function processQueue(){var parallelUploads=this.options.parallelUploads;var processingLength=this.getUploadingFiles().length;var i=processingLength;if(processingLength>=parallelUploads){return;} -var queuedFiles=this.getQueuedFiles();if(!(queuedFiles.length>0)){return;} -if(this.options.uploadMultiple){return this.processFiles(queuedFiles.slice(0,parallelUploads-processingLength));}else{while(i=_iterator19.length)break;_ref18=_iterator19[_i20++];}else{_i20=_iterator19.next();if(_i20.done)break;_ref18=_i20.value;} -var file=_ref18;file.processing=true;file.status=Dropzone.UPLOADING;this.emit("processing",file);} -if(this.options.uploadMultiple){this.emit("processingmultiple",files);} -return this.uploadFiles(files);}},{key:"_getFilesWithXhr",value:function _getFilesWithXhr(xhr){var files=void 0;return files=this.files.filter(function(file){return file.xhr===xhr;}).map(function(file){return file;});}},{key:"cancelUpload",value:function cancelUpload(file){if(file.status===Dropzone.UPLOADING){var groupedFiles=this._getFilesWithXhr(file.xhr);for(var _iterator20=groupedFiles,_isArray20=true,_i21=0,_iterator20=_isArray20?_iterator20:_iterator20[Symbol.iterator]();;){var _ref19;if(_isArray20){if(_i21>=_iterator20.length)break;_ref19=_iterator20[_i21++];}else{_i21=_iterator20.next();if(_i21.done)break;_ref19=_i21.value;} -var groupedFile=_ref19;groupedFile.status=Dropzone.CANCELED;} -if(typeof file.xhr!=='undefined'){file.xhr.abort();} -for(var _iterator21=groupedFiles,_isArray21=true,_i22=0,_iterator21=_isArray21?_iterator21:_iterator21[Symbol.iterator]();;){var _ref20;if(_isArray21){if(_i22>=_iterator21.length)break;_ref20=_iterator21[_i22++];}else{_i22=_iterator21.next();if(_i22.done)break;_ref20=_i22.value;} -var _groupedFile=_ref20;this.emit("canceled",_groupedFile);} -if(this.options.uploadMultiple){this.emit("canceledmultiple",groupedFiles);}}else if(file.status===Dropzone.ADDED||file.status===Dropzone.QUEUED){file.status=Dropzone.CANCELED;this.emit("canceled",file);if(this.options.uploadMultiple){this.emit("canceledmultiple",[file]);}} -if(this.options.autoProcessQueue){return this.processQueue();}}},{key:"resolveOption",value:function resolveOption(option){if(typeof option==='function'){for(var _len3=arguments.length,args=Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){args[_key3-1]=arguments[_key3];} -return option.apply(this,args);} -return option;}},{key:"uploadFile",value:function uploadFile(file){return this.uploadFiles([file]);}},{key:"uploadFiles",value:function uploadFiles(files){var _this14=this;this._transformFiles(files,function(transformedFiles){if(files[0].upload.chunked){var file=files[0];var transformedFile=transformedFiles[0];var startedChunkCount=0;file.upload.chunks=[];var handleNextChunk=function handleNextChunk(){var chunkIndex=0;while(file.upload.chunks[chunkIndex]!==undefined){chunkIndex++;} -if(chunkIndex>=file.upload.totalChunkCount)return;startedChunkCount++;var start=chunkIndex*_this14.options.chunkSize;var end=Math.min(start+_this14.options.chunkSize,file.size);var dataBlock={name:_this14._getParamName(0),data:transformedFile.webkitSlice?transformedFile.webkitSlice(start,end):transformedFile.slice(start,end),filename:file.upload.filename,chunkIndex:chunkIndex};file.upload.chunks[chunkIndex]={file:file,index:chunkIndex,dataBlock:dataBlock,status:Dropzone.UPLOADING,progress:0,retries:0};_this14._uploadData(files,[dataBlock]);};file.upload.finishedChunkUpload=function(chunk){var allFinished=true;chunk.status=Dropzone.SUCCESS;chunk.dataBlock=null;chunk.xhr=null;for(var i=0;i=_iterator22.length)break;_ref21=_iterator22[_i24++];}else{_i24=_iterator22.next();if(_i24.done)break;_ref21=_i24.value;} -var file=_ref21;file.xhr=xhr;} -if(files[0].upload.chunked){files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr=xhr;} -var method=this.resolveOption(this.options.method,files);var url=this.resolveOption(this.options.url,files);xhr.open(method,url,true);xhr.timeout=this.resolveOption(this.options.timeout,files);xhr.withCredentials=!!this.options.withCredentials;xhr.onload=function(e){_this15._finishedUploading(files,xhr,e);};xhr.onerror=function(){_this15._handleUploadError(files,xhr);};var progressObj=xhr.upload!=null?xhr.upload:xhr;progressObj.onprogress=function(e){return _this15._updateFilesUploadProgress(files,xhr,e);};var headers={"Accept":"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"};if(this.options.headers){Dropzone.extend(headers,this.options.headers);} -for(var headerName in headers){var headerValue=headers[headerName];if(headerValue){xhr.setRequestHeader(headerName,headerValue);}} -var formData=new FormData();if(this.options.params){var additionalParams=this.options.params;if(typeof additionalParams==='function'){additionalParams=additionalParams.call(this,files,xhr,files[0].upload.chunked?this._getChunk(files[0],xhr):null);} -for(var key in additionalParams){var value=additionalParams[key];formData.append(key,value);}} -for(var _iterator23=files,_isArray23=true,_i25=0,_iterator23=_isArray23?_iterator23:_iterator23[Symbol.iterator]();;){var _ref22;if(_isArray23){if(_i25>=_iterator23.length)break;_ref22=_iterator23[_i25++];}else{_i25=_iterator23.next();if(_i25.done)break;_ref22=_i25.value;} -var _file=_ref22;this.emit("sending",_file,xhr,formData);} -if(this.options.uploadMultiple){this.emit("sendingmultiple",files,xhr,formData);} -this._addFormElementData(formData);for(var i=0;i=_iterator24.length)break;_ref23=_iterator24[_i26++];}else{_i26=_iterator24.next();if(_i26.done)break;_ref23=_i26.value;} -var input=_ref23;var inputName=input.getAttribute("name");var inputType=input.getAttribute("type");if(inputType)inputType=inputType.toLowerCase();if(typeof inputName==='undefined'||inputName===null)continue;if(input.tagName==="SELECT"&&input.hasAttribute("multiple")){for(var _iterator25=input.options,_isArray25=true,_i27=0,_iterator25=_isArray25?_iterator25:_iterator25[Symbol.iterator]();;){var _ref24;if(_isArray25){if(_i27>=_iterator25.length)break;_ref24=_iterator25[_i27++];}else{_i27=_iterator25.next();if(_i27.done)break;_ref24=_i27.value;} -var option=_ref24;if(option.selected){formData.append(inputName,option.value);}}}else if(!inputType||inputType!=="checkbox"&&inputType!=="radio"||input.checked){formData.append(inputName,input.value);}}}}},{key:"_updateFilesUploadProgress",value:function _updateFilesUploadProgress(files,xhr,e){var progress=void 0;if(typeof e!=='undefined'){progress=100*e.loaded/e.total;if(files[0].upload.chunked){var file=files[0];var chunk=this._getChunk(file,xhr);chunk.progress=progress;chunk.total=e.total;chunk.bytesSent=e.loaded;var fileProgress=0,fileTotal=void 0,fileBytesSent=void 0;file.upload.progress=0;file.upload.total=0;file.upload.bytesSent=0;for(var i=0;i=_iterator26.length)break;_ref25=_iterator26[_i28++];}else{_i28=_iterator26.next();if(_i28.done)break;_ref25=_i28.value;} -var _file2=_ref25;_file2.upload.progress=progress;_file2.upload.total=e.total;_file2.upload.bytesSent=e.loaded;}} -for(var _iterator27=files,_isArray27=true,_i29=0,_iterator27=_isArray27?_iterator27:_iterator27[Symbol.iterator]();;){var _ref26;if(_isArray27){if(_i29>=_iterator27.length)break;_ref26=_iterator27[_i29++];}else{_i29=_iterator27.next();if(_i29.done)break;_ref26=_i29.value;} -var _file3=_ref26;this.emit("uploadprogress",_file3,_file3.upload.progress,_file3.upload.bytesSent);}}else{var allFilesFinished=true;progress=100;for(var _iterator28=files,_isArray28=true,_i30=0,_iterator28=_isArray28?_iterator28:_iterator28[Symbol.iterator]();;){var _ref27;if(_isArray28){if(_i30>=_iterator28.length)break;_ref27=_iterator28[_i30++];}else{_i30=_iterator28.next();if(_i30.done)break;_ref27=_i30.value;} -var _file4=_ref27;if(_file4.upload.progress!==100||_file4.upload.bytesSent!==_file4.upload.total){allFilesFinished=false;} -_file4.upload.progress=progress;_file4.upload.bytesSent=_file4.upload.total;} -if(allFilesFinished){return;} -for(var _iterator29=files,_isArray29=true,_i31=0,_iterator29=_isArray29?_iterator29:_iterator29[Symbol.iterator]();;){var _ref28;if(_isArray29){if(_i31>=_iterator29.length)break;_ref28=_iterator29[_i31++];}else{_i31=_iterator29.next();if(_i31.done)break;_ref28=_i31.value;} -var _file5=_ref28;this.emit("uploadprogress",_file5,progress,_file5.upload.bytesSent);}}}},{key:"_finishedUploading",value:function _finishedUploading(files,xhr,e){var response=void 0;if(files[0].status===Dropzone.CANCELED){return;} -if(xhr.readyState!==4){return;} -if(xhr.responseType!=='arraybuffer'&&xhr.responseType!=='blob'){response=xhr.responseText;if(xhr.getResponseHeader("content-type")&&~xhr.getResponseHeader("content-type").indexOf("application/json")){try{response=JSON.parse(response);}catch(error){e=error;response="Invalid JSON response from server.";}}} -this._updateFilesUploadProgress(files);if(!(200<=xhr.status&&xhr.status<300)){this._handleUploadError(files,xhr,response);}else{if(files[0].upload.chunked){files[0].upload.finishedChunkUpload(this._getChunk(files[0],xhr));}else{this._finished(files,response,e);}}}},{key:"_handleUploadError",value:function _handleUploadError(files,xhr,response){if(files[0].status===Dropzone.CANCELED){return;} -if(files[0].upload.chunked&&this.options.retryChunks){var chunk=this._getChunk(files[0],xhr);if(chunk.retries++=_iterator30.length)break;_ref29=_iterator30[_i32++];}else{_i32=_iterator30.next();if(_i32.done)break;_ref29=_i32.value;} -var file=_ref29;this._errorProcessing(files,response||this.options.dictResponseError.replace("{{statusCode}}",xhr.status),xhr);}}},{key:"submitRequest",value:function submitRequest(xhr,formData,files){xhr.send(formData);}},{key:"_finished",value:function _finished(files,responseText,e){for(var _iterator31=files,_isArray31=true,_i33=0,_iterator31=_isArray31?_iterator31:_iterator31[Symbol.iterator]();;){var _ref30;if(_isArray31){if(_i33>=_iterator31.length)break;_ref30=_iterator31[_i33++];}else{_i33=_iterator31.next();if(_i33.done)break;_ref30=_i33.value;} -var file=_ref30;file.status=Dropzone.SUCCESS;this.emit("success",file,responseText,e);this.emit("complete",file);} -if(this.options.uploadMultiple){this.emit("successmultiple",files,responseText,e);this.emit("completemultiple",files);} -if(this.options.autoProcessQueue){return this.processQueue();}}},{key:"_errorProcessing",value:function _errorProcessing(files,message,xhr){for(var _iterator32=files,_isArray32=true,_i34=0,_iterator32=_isArray32?_iterator32:_iterator32[Symbol.iterator]();;){var _ref31;if(_isArray32){if(_i34>=_iterator32.length)break;_ref31=_iterator32[_i34++];}else{_i34=_iterator32.next();if(_i34.done)break;_ref31=_i34.value;} -var file=_ref31;file.status=Dropzone.ERROR;this.emit("error",file,message,xhr);this.emit("complete",file);} -if(this.options.uploadMultiple){this.emit("errormultiple",files,message,xhr);this.emit("completemultiple",files);} -if(this.options.autoProcessQueue){return this.processQueue();}}}],[{key:"uuidv4",value:function uuidv4(){return'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c==='x'?r:r&0x3|0x8;return v.toString(16);});}}]);return Dropzone;}(Emitter);Dropzone.initClass();Dropzone.version="5.5.1";Dropzone.options={};Dropzone.optionsForElement=function(element){if(element.getAttribute("id")){return Dropzone.options[camelize(element.getAttribute("id"))];}else{return undefined;}};Dropzone.instances=[];Dropzone.forElement=function(element){if(typeof element==="string"){element=document.querySelector(element);} -if((element!=null?element.dropzone:undefined)==null){throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");} -return element.dropzone;};Dropzone.autoDiscover=true;Dropzone.discover=function(){var dropzones=void 0;if(document.querySelectorAll){dropzones=document.querySelectorAll(".dropzone");}else{dropzones=[];var checkElements=function checkElements(elements){return function(){var result=[];for(var _iterator33=elements,_isArray33=true,_i35=0,_iterator33=_isArray33?_iterator33:_iterator33[Symbol.iterator]();;){var _ref32;if(_isArray33){if(_i35>=_iterator33.length)break;_ref32=_iterator33[_i35++];}else{_i35=_iterator33.next();if(_i35.done)break;_ref32=_i35.value;} -var el=_ref32;if(/(^| )dropzone($| )/.test(el.className)){result.push(dropzones.push(el));}else{result.push(undefined);}} -return result;}();};checkElements(document.getElementsByTagName("div"));checkElements(document.getElementsByTagName("form"));} -return function(){var result=[];for(var _iterator34=dropzones,_isArray34=true,_i36=0,_iterator34=_isArray34?_iterator34:_iterator34[Symbol.iterator]();;){var _ref33;if(_isArray34){if(_i36>=_iterator34.length)break;_ref33=_iterator34[_i36++];}else{_i36=_iterator34.next();if(_i36.done)break;_ref33=_i36.value;} -var dropzone=_ref33;if(Dropzone.optionsForElement(dropzone)!==false){result.push(new Dropzone(dropzone));}else{result.push(undefined);}} -return result;}();};Dropzone.blacklistedBrowsers=[/opera.*(Macintosh|Windows Phone).*version\/12/i];Dropzone.isBrowserSupported=function(){var capableBrowser=true;if(window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector){if(!("classList"in document.createElement("a"))){capableBrowser=false;}else{for(var _iterator35=Dropzone.blacklistedBrowsers,_isArray35=true,_i37=0,_iterator35=_isArray35?_iterator35:_iterator35[Symbol.iterator]();;){var _ref34;if(_isArray35){if(_i37>=_iterator35.length)break;_ref34=_iterator35[_i37++];}else{_i37=_iterator35.next();if(_i37.done)break;_ref34=_i37.value;} -var regex=_ref34;if(regex.test(navigator.userAgent)){capableBrowser=false;continue;}}}}else{capableBrowser=false;} -return capableBrowser;};Dropzone.dataURItoBlob=function(dataURI){var byteString=atob(dataURI.split(',')[1]);var mimeString=dataURI.split(',')[0].split(':')[1].split(';')[0];var ab=new ArrayBuffer(byteString.length);var ia=new Uint8Array(ab);for(var i=0,end=byteString.length,asc=0<=end;asc?i<=end:i>=end;asc?i++:i--){ia[i]=byteString.charCodeAt(i);} -return new Blob([ab],{type:mimeString});};var without=function without(list,rejectedItem){return list.filter(function(item){return item!==rejectedItem;}).map(function(item){return item;});};var camelize=function camelize(str){return str.replace(/[\-_](\w)/g,function(match){return match.charAt(1).toUpperCase();});};Dropzone.createElement=function(string){var div=document.createElement("div");div.innerHTML=string;return div.childNodes[0];};Dropzone.elementInside=function(element,container){if(element===container){return true;} -while(element=element.parentNode){if(element===container){return true;}} -return false;};Dropzone.getElement=function(el,name){var element=void 0;if(typeof el==="string"){element=document.querySelector(el);}else if(el.nodeType!=null){element=el;} -if(element==null){throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector or a plain HTML element.");} -return element;};Dropzone.getElements=function(els,name){var el=void 0,elements=void 0;if(els instanceof Array){elements=[];try{for(var _iterator36=els,_isArray36=true,_i38=0,_iterator36=_isArray36?_iterator36:_iterator36[Symbol.iterator]();;){if(_isArray36){if(_i38>=_iterator36.length)break;el=_iterator36[_i38++];}else{_i38=_iterator36.next();if(_i38.done)break;el=_i38.value;} -elements.push(this.getElement(el,name));}}catch(e){elements=null;}}else if(typeof els==="string"){elements=[];for(var _iterator37=document.querySelectorAll(els),_isArray37=true,_i39=0,_iterator37=_isArray37?_iterator37:_iterator37[Symbol.iterator]();;){if(_isArray37){if(_i39>=_iterator37.length)break;el=_iterator37[_i39++];}else{_i39=_iterator37.next();if(_i39.done)break;el=_i39.value;} -elements.push(el);}}else if(els.nodeType!=null){elements=[els];} -if(elements==null||!elements.length){throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");} -return elements;};Dropzone.confirm=function(question,accepted,rejected){if(window.confirm(question)){return accepted();}else if(rejected!=null){return rejected();}};Dropzone.isValidFile=function(file,acceptedFiles){if(!acceptedFiles){return true;} -acceptedFiles=acceptedFiles.split(",");var mimeType=file.type;var baseMimeType=mimeType.replace(/\/.*$/,"");for(var _iterator38=acceptedFiles,_isArray38=true,_i40=0,_iterator38=_isArray38?_iterator38:_iterator38[Symbol.iterator]();;){var _ref35;if(_isArray38){if(_i40>=_iterator38.length)break;_ref35=_iterator38[_i40++];}else{_i40=_iterator38.next();if(_i40.done)break;_ref35=_i40.value;} -var validType=_ref35;validType=validType.trim();if(validType.charAt(0)==="."){if(file.name.toLowerCase().indexOf(validType.toLowerCase(),file.name.length-validType.length)!==-1){return true;}}else if(/\/\*$/.test(validType)){if(baseMimeType===validType.replace(/\/.*$/,"")){return true;}}else{if(mimeType===validType){return true;}}} -return false;};if(typeof jQuery!=='undefined'&&jQuery!==null){jQuery.fn.dropzone=function(options){return this.each(function(){return new Dropzone(this,options);});};} -if(typeof module!=='undefined'&&module!==null){module.exports=Dropzone;}else{window.Dropzone=Dropzone;} -Dropzone.ADDED="added";Dropzone.QUEUED="queued";Dropzone.ACCEPTED=Dropzone.QUEUED;Dropzone.UPLOADING="uploading";Dropzone.PROCESSING=Dropzone.UPLOADING;Dropzone.CANCELED="canceled";Dropzone.ERROR="error";Dropzone.SUCCESS="success";var detectVerticalSquash=function detectVerticalSquash(img){var iw=img.naturalWidth;var ih=img.naturalHeight;var canvas=document.createElement("canvas");canvas.width=1;canvas.height=ih;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);var _ctx$getImageData=ctx.getImageData(1,0,1,ih),data=_ctx$getImageData.data;var sy=0;var ey=ih;var py=ih;while(py>sy){var alpha=data[(py-1)*4+3];if(alpha===0){ey=py;}else{sy=py;} -py=ey+sy>>1;} -var ratio=py/ih;if(ratio===0){return 1;}else{return ratio;}};var drawImageIOSFix=function drawImageIOSFix(ctx,img,sx,sy,sw,sh,dx,dy,dw,dh){var vertSquashRatio=detectVerticalSquash(img);return ctx.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh/vertSquashRatio);};var ExifRestore=function(){function ExifRestore(){_classCallCheck(this,ExifRestore);} -_createClass(ExifRestore,null,[{key:"initClass",value:function initClass(){this.KEY_STR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';}},{key:"encode64",value:function encode64(input){var output='';var chr1=undefined;var chr2=undefined;var chr3='';var enc1=undefined;var enc2=undefined;var enc3=undefined;var enc4='';var i=0;while(true){chr1=input[i++];chr2=input[i++];chr3=input[i++];enc1=chr1>>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;} -output=output+this.KEY_STR.charAt(enc1)+this.KEY_STR.charAt(enc2)+this.KEY_STR.charAt(enc3)+this.KEY_STR.charAt(enc4);chr1=chr2=chr3='';enc1=enc2=enc3=enc4='';if(!(irawImageArray.length){break;}} -return segments;}},{key:"decode64",value:function decode64(input){var output='';var chr1=undefined;var chr2=undefined;var chr3='';var enc1=undefined;var enc2=undefined;var enc3=undefined;var enc4='';var i=0;var buf=[];var base64test=/[^A-Za-z0-9\+\/\=]/g;if(base64test.exec(input)){console.warn('There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, \'+\', \'/\',and \'=\'\nExpect errors in decoding.');} -input=input.replace(/[^A-Za-z0-9\+\/\=]/g,'');while(true){enc1=this.KEY_STR.indexOf(input.charAt(i++));enc2=this.KEY_STR.indexOf(input.charAt(i++));enc3=this.KEY_STR.indexOf(input.charAt(i++));enc4=this.KEY_STR.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;buf.push(chr1);if(enc3!==64){buf.push(chr2);} -if(enc4!==64){buf.push(chr3);} -chr1=chr2=chr3='';enc1=enc2=enc3=enc4='';if(!(i=0){newClass=newClass.replace(' '+className+' ',' ');} -elem.className=newClass.replace(/^\s+|\s+$/g,'');}},escapeHtml=function(str){var div=document.createElement('div');div.appendChild(document.createTextNode(str));return div.innerHTML;},_show=function(elem){elem.style.opacity='';elem.style.display='block';},show=function(elems){if(elems&&!elems.length){return _show(elems);} -for(var i=0;i0){setTimeout(tick,interval);}else{elem.style.display='none';}};tick();},fireClick=function(node){if(MouseEvent){var mevt=new MouseEvent('click',{view:window,bubbles:false,cancelable:true});node.dispatchEvent(mevt);}else if(document.createEvent){var evt=document.createEvent('MouseEvents');evt.initEvent('click',false,false);node.dispatchEvent(evt);}else if(document.createEventObject){node.fireEvent('onclick');}else if(typeof node.onclick==='function'){node.onclick();}},stopEventPropagation=function(e){if(typeof e.stopPropagation==='function'){e.stopPropagation();e.preventDefault();}else if(window.event&&window.event.hasOwnProperty('cancelBubble')){window.event.cancelBubble=true;}};var previousActiveElement,previousDocumentClick,previousWindowKeyDown,lastFocusedButton;window.sweetAlertInitialize=function(){var sweetHTML='

Title

Text

',sweetWrap=document.createElement('div');sweetWrap.innerHTML=sweetHTML;document.body.appendChild(sweetWrap);} -window.sweetAlert=window.swal=function(){if(arguments[0]===undefined){window.console.error('sweetAlert expects at least 1 attribute!');return false;} -var params=extend({},defaultParams);switch(typeof arguments[0]){case'string':params.title=arguments[0];params.text=arguments[1]||'';params.type=arguments[2]||'';break;case'object':if(arguments[0].title===undefined){window.console.error('Missing "title" argument!');return false;} -params.title=arguments[0].title;params.text=arguments[0].text||defaultParams.text;params.type=arguments[0].type||defaultParams.type;params.allowOutsideClick=arguments[0].allowOutsideClick||defaultParams.allowOutsideClick;params.showCancelButton=arguments[0].showCancelButton!==undefined?arguments[0].showCancelButton:defaultParams.showCancelButton;params.showConfirmButton=arguments[0].showConfirmButton!==undefined?arguments[0].showConfirmButton:defaultParams.showConfirmButton;params.closeOnConfirm=arguments[0].closeOnConfirm!==undefined?arguments[0].closeOnConfirm:defaultParams.closeOnConfirm;params.closeOnCancel=arguments[0].closeOnCancel!==undefined?arguments[0].closeOnCancel:defaultParams.closeOnCancel;params.timer=arguments[0].timer||defaultParams.timer;params.confirmButtonText=(defaultParams.showCancelButton)?'Confirm':defaultParams.confirmButtonText;params.confirmButtonText=arguments[0].confirmButtonText||defaultParams.confirmButtonText;params.confirmButtonClass=arguments[0].confirmButtonClass||(arguments[0].type?'btn-'+arguments[0].type:null)||defaultParams.confirmButtonClass;params.cancelButtonText=arguments[0].cancelButtonText||defaultParams.cancelButtonText;params.cancelButtonClass=arguments[0].cancelButtonClass||defaultParams.cancelButtonClass;params.containerClass=arguments[0].containerClass||defaultParams.containerClass;params.titleClass=arguments[0].titleClass||defaultParams.titleClass;params.textClass=arguments[0].textClass||defaultParams.textClass;params.imageUrl=arguments[0].imageUrl||defaultParams.imageUrl;params.imageSize=arguments[0].imageSize||defaultParams.imageSize;params.doneFunction=arguments[1]||null;break;default:window.console.error('Unexpected type of argument! Expected "string" or "object", got '+typeof arguments[0]);return false;} -setParameters(params);fixVerticalPosition();openModal();var modal=getModal();var onButtonEvent=function(e){var target=e.target||e.srcElement,targetedConfirm=(target.className.indexOf('confirm')>-1),modalIsVisible=hasClass(modal,'visible'),doneFunctionExists=(params.doneFunction&&modal.getAttribute('data-has-done-function')==='true');switch(e.type){case("click"):if(targetedConfirm&&doneFunctionExists&&modalIsVisible){params.doneFunction(true);if(params.closeOnConfirm){closeModal();}}else if(doneFunctionExists&&modalIsVisible){var functionAsStr=String(params.doneFunction).replace(/\s/g,'');var functionHandlesCancel=functionAsStr.substring(0,9)==="function("&&functionAsStr.substring(9,10)!==")";if(functionHandlesCancel){params.doneFunction(false);} -if(params.closeOnCancel){closeModal();}}else{closeModal();} -break;}};var $buttons=modal.querySelectorAll('button');for(var i=0;i<$buttons.length;i++){$buttons[i].onclick=onButtonEvent;} -previousDocumentClick=document.onclick;document.onclick=function(e){var target=e.target||e.srcElement;var clickedOnModal=(modal===target),clickedOnModalChild=isDescendant(modal,e.target),modalIsVisible=hasClass(modal,'visible'),outsideClickIsAllowed=modal.getAttribute('data-allow-ouside-click')==='true';if(!clickedOnModal&&!clickedOnModalChild&&modalIsVisible&&outsideClickIsAllowed){closeModal();}};var $okButton=modal.querySelector('button.confirm'),$cancelButton=modal.querySelector('button.cancel'),$modalButtons=modal.querySelectorAll('button:not([type=hidden])');function handleKeyDown(e){var keyCode=e.keyCode||e.which;if([9,13,32,27].indexOf(keyCode)===-1){return;} -var $targetElement=e.target||e.srcElement;var btnIndex=-1;for(var i=0;i<$modalButtons.length;i++){if($targetElement===$modalButtons[i]){btnIndex=i;break;}} -if(keyCode===9){if(btnIndex===-1){$targetElement=$okButton;}else{if(btnIndex===$modalButtons.length-1){$targetElement=$modalButtons[0];}else{$targetElement=$modalButtons[btnIndex+1];}} -stopEventPropagation(e);$targetElement.focus();}else{if(keyCode===13||keyCode===32){if(btnIndex===-1){$targetElement=$okButton;}else{$targetElement=undefined;}}else if(keyCode===27&&!($cancelButton.hidden||$cancelButton.style.display==='none')){$targetElement=$cancelButton;}else{$targetElement=undefined;} -if($targetElement!==undefined){fireClick($targetElement,e);}}} -previousWindowKeyDown=window.onkeydown;window.onkeydown=handleKeyDown;function handleOnBlur(e){var $targetElement=e.target||e.srcElement,$focusElement=e.relatedTarget,modalIsVisible=hasClass(modal,'visible'),bootstrapModalIsVisible=document.querySelector('.control-popup.modal')||false;if(bootstrapModalIsVisible){return;} -if(modalIsVisible){var btnIndex=-1;if($focusElement!==null){for(var i=0;i<$modalButtons.length;i++){if($focusElement===$modalButtons[i]){btnIndex=i;break;}} -if(btnIndex===-1){$targetElement.focus();}}else{lastFocusedButton=$targetElement;}}} -$okButton.onblur=handleOnBlur;$cancelButton.onblur=handleOnBlur;window.onfocus=function(){window.setTimeout(function(){if(lastFocusedButton!==undefined){lastFocusedButton.focus();lastFocusedButton=undefined;}},0);};};window.swal.setDefaults=function(userParams){if(!userParams){throw new Error('userParams is required');} -if(typeof userParams!=='object'){throw new Error('userParams has to be a object');} -extend(defaultParams,userParams);};window.swal.close=function(){closeModal();} -function setParameters(params){var modal=getModal();var $title=modal.querySelector('h2'),$text=modal.querySelector('p'),$cancelBtn=modal.querySelector('button.cancel'),$confirmBtn=modal.querySelector('button.confirm');$title.innerHTML=escapeHtml(params.title).split("\n").join("
");$text.innerHTML=escapeHtml(params.text||'').split("\n").join("
");if(params.text){show($text);} -hide(modal.querySelectorAll('.icon'));if(params.type){var validType=false;for(var i=0;iw)&&w>0){nw=w;nh=(w/$obj.width())*$obj.height();} -if((nh>h)&&h>0){nh=h;nw=(h/$obj.height())*$obj.width();} -xscale=$obj.width()/nw;yscale=$obj.height()/nh;$obj.width(nw).height(nh);} -function unscale(c) -{return{x:c.x*xscale,y:c.y*yscale,x2:c.x2*xscale,y2:c.y2*yscale,w:c.w*xscale,h:c.h*yscale};} -function doneSelect(pos) -{var c=Coords.getFixed();if((c.w>options.minSelect[0])&&(c.h>options.minSelect[1])){Selection.enableHandles();Selection.done();}else{Selection.release();} -Tracker.setCursor(options.allowSelect?'crosshair':'default');} -function newSelection(e) -{if(options.disabled){return false;} -if(!options.allowSelect){return false;} -btndown=true;docOffset=getPos($img);Selection.disableHandles();Tracker.setCursor('crosshair');var pos=mouseAbs(e);Coords.setPressed(pos);Selection.update();Tracker.activateHandlers(selectDrag,doneSelect,e.type.substring(0,5)==='touch');KeyManager.watchKeys();e.stopPropagation();e.preventDefault();return false;} -function selectDrag(pos) -{Coords.setCurrent(pos);Selection.update();} -function newTracker() -{var trk=$('
').addClass(cssClass('tracker'));if(is_msie){trk.css({opacity:0,backgroundColor:'white'});} -return trk;} -if(typeof(obj)!=='object'){obj=$(obj)[0];} -if(typeof(opt)!=='object'){opt={};} -setOptions(opt);var img_css={border:'none',visibility:'visible',margin:0,padding:0,position:'absolute',top:0,left:0};var $origimg=$(obj),img_mode=true;if(obj.tagName=='IMG'){if($origimg[0].width!=0&&$origimg[0].height!=0){$origimg.width($origimg[0].width);$origimg.height($origimg[0].height);}else{var tempImage=new Image();tempImage.src=$origimg[0].src;$origimg.width(tempImage.width);$origimg.height(tempImage.height);} -var $img=$origimg.clone().removeAttr('id').css(img_css).show();$img.width($origimg.width());$img.height($origimg.height());$origimg.after($img).hide();}else{$img=$origimg.css(img_css).show();img_mode=false;if(options.shade===null){options.shade=true;}} -presize($img,options.boxWidth,options.boxHeight);var boundx=$img.width(),boundy=$img.height(),$div=$('
').width(boundx).height(boundy).addClass(cssClass('holder')).css({position:'relative',backgroundColor:options.bgColor}).insertAfter($origimg).append($img);if(options.addClass){$div.addClass(options.addClass);} -var $img2=$('
'),$img_holder=$('
').width('100%').height('100%').css({zIndex:310,position:'absolute',overflow:'hidden'}),$hdl_holder=$('
').width('100%').height('100%').css('zIndex',320),$sel=$('
').css({position:'absolute',zIndex:600}).dblclick(function(){var c=Coords.getFixed();options.onDblClick.call(api,c);}).insertBefore($img).append($img_holder,$hdl_holder);if(img_mode){$img2=$('').attr('src',$img.attr('src')).css(img_css).width(boundx).height(boundy),$img_holder.append($img2);} -if(ie6mode){$sel.css({overflowY:'hidden'});} -var bound=options.boundary;var $trk=newTracker().width(boundx+(bound*2)).height(boundy+(bound*2)).css({position:'absolute',top:px(-bound),left:px(-bound),zIndex:290}).mousedown(newSelection);var bgcolor=options.bgColor,bgopacity=options.bgOpacity,xlimit,ylimit,xmin,ymin,xscale,yscale,enabled=true,btndown,animating,shift_down;docOffset=getPos($img);var Touch=(function(){function hasTouchSupport(){var support={},events=['touchstart','touchmove','touchend'],el=document.createElement('div'),i;try{for(i=0;ix1+ox){ox-=ox+x1;} -if(0>y1+oy){oy-=oy+y1;} -if(boundyboundx){xx=boundx;h=Math.abs((xx-x1)/aspect);yy=rh<0?y1-h:h+y1;}}else{xx=x2;h=rwa/aspect;yy=rh<0?y1-h:y1+h;if(yy<0){yy=0;w=Math.abs((yy-y1)*aspect);xx=rw<0?x1-w:w+x1;}else if(yy>boundy){yy=boundy;w=Math.abs(yy-y1)*aspect;xx=rw<0?x1-w:w+x1;}} -if(xx>x1){if(xx-x1max_x){xx=x1+max_x;} -if(yy>y1){yy=y1+(xx-x1)/aspect;}else{yy=y1-(xx-x1)/aspect;}}else if(xxmax_x){xx=x1-max_x;} -if(yy>y1){yy=y1+(x1-xx)/aspect;}else{yy=y1-(x1-xx)/aspect;}} -if(xx<0){x1-=xx;xx=0;}else if(xx>boundx){x1-=xx-boundx;xx=boundx;} -if(yy<0){y1-=yy;yy=0;}else if(yy>boundy){y1-=yy-boundy;yy=boundy;} -return makeObj(flipCoords(x1,y1,xx,yy));} -function rebound(p) -{if(p[0]<0)p[0]=0;if(p[1]<0)p[1]=0;if(p[0]>boundx)p[0]=boundx;if(p[1]>boundy)p[1]=boundy;return[Math.round(p[0]),Math.round(p[1])];} -function flipCoords(x1,y1,x2,y2) -{var xa=x1,xb=x2,ya=y1,yb=y2;if(x2xlimit)){x2=(xsize>0)?(x1+xlimit):(x1-xlimit);} -if(ylimit&&(Math.abs(ysize)>ylimit)){y2=(ysize>0)?(y1+ylimit):(y1-ylimit);} -if(ymin/yscale&&(Math.abs(ysize)0)?(y1+ymin/yscale):(y1-ymin/yscale);} -if(xmin/xscale&&(Math.abs(xsize)0)?(x1+xmin/xscale):(x1-xmin/xscale);} -if(x1<0){x2-=x1;x1-=x1;} -if(y1<0){y2-=y1;y1-=y1;} -if(x2<0){x1-=x2;x2-=x2;} -if(y2<0){y1-=y2;y2-=y2;} -if(x2>boundx){delta=x2-boundx;x1-=delta;x2-=delta;} -if(y2>boundy){delta=y2-boundy;y1-=delta;y2-=delta;} -if(x1>boundx){delta=x1-boundy;y2-=delta;y1-=delta;} -if(y1>boundy){delta=y1-boundy;y2-=delta;y1-=delta;} -return makeObj(flipCoords(x1,y1,x2,y2));} -function makeObj(a) -{return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]};} -return{flipCoords:flipCoords,setPressed:setPressed,setCurrent:setCurrent,getOffset:getOffset,moveOffset:moveOffset,getCorner:getCorner,getFixed:getFixed};}());var Shade=(function(){var enabled=false,holder=$('
').css({position:'absolute',zIndex:240,opacity:0}),shades={top:createShade(),left:createShade().height(boundy),right:createShade().height(boundy),bottom:createShade()};function resizeShades(w,h){shades.left.css({height:px(h)});shades.right.css({height:px(h)});} -function updateAuto() -{return updateShade(Coords.getFixed());} -function updateShade(c) -{shades.top.css({left:px(c.x),width:px(c.w),height:px(c.y)});shades.bottom.css({top:px(c.y2),left:px(c.x),width:px(c.w),height:px(boundy-c.y2)});shades.right.css({left:px(c.x2),width:px(boundx-c.x2)});shades.left.css({width:px(c.x)});} -function createShade(){return $('
').css({position:'absolute',backgroundColor:options.shadeColor||options.bgColor}).appendTo(holder);} -function enableShade(){if(!enabled){enabled=true;holder.insertBefore($img);updateAuto();Selection.setBgOpacity(1,0,1);$img2.hide();setBgColor(options.shadeColor||options.bgColor,1);if(Selection.isAwake()) -{setOpacity(options.bgOpacity,1);} -else setOpacity(1,1);}} -function setBgColor(color,now){colorChangeMacro(getShades(),color,now);} -function disableShade(){if(enabled){holder.remove();$img2.show();enabled=false;if(Selection.isAwake()){Selection.setBgOpacity(options.bgOpacity,1,1);}else{Selection.setBgOpacity(1,1,1);Selection.disableHandles();} -colorChangeMacro($div,0,1);}} -function setOpacity(opacity,now){if(enabled){if(options.bgFade&&!now){holder.animate({opacity:1-opacity},{queue:false,duration:options.fadeTime});} -else holder.css({opacity:1-opacity});}} -function refreshAll(){options.shade?enableShade():disableShade();if(Selection.isAwake())setOpacity(options.bgOpacity);} -function getShades(){return holder.children();} -return{update:updateAuto,updateRaw:updateShade,getShades:getShades,setBgColor:setBgColor,enable:enableShade,disable:disableShade,resize:resizeShades,refresh:refreshAll,opacity:setOpacity};}());var Selection=(function(){var awake,hdep=370,borders={},handle={},dragbar={},seehandles=false;function insertBorder(type) -{var jq=$('
').css({position:'absolute',opacity:options.borderOpacity}).addClass(cssClass(type));$img_holder.append(jq);return jq;} -function dragDiv(ord,zi) -{var jq=$('
').mousedown(createDragger(ord)).css({cursor:ord+'-resize',position:'absolute',zIndex:zi}).addClass('ord-'+ord);if(Touch.support){jq.bind('touchstart.jcrop',Touch.createDragger(ord));} -$hdl_holder.append(jq);return jq;} -function insertHandle(ord) -{var hs=options.handleSize,div=dragDiv(ord,hdep++).css({opacity:options.handleOpacity}).addClass(cssClass('handle'));if(hs){div.width(hs).height(hs);} -return div;} -function insertDragbar(ord) -{return dragDiv(ord,hdep++).addClass('jcrop-dragbar');} -function createDragbars(li) -{var i;for(i=0;i').css({position:'fixed',left:'-120px',width:'12px'}).addClass('jcrop-keymgr'),$keywrap=$('
').css({position:'absolute',overflow:'hidden'}).append($keymgr);function watchKeys() -{if(options.keySupport){$keymgr.show();$keymgr.focus();}} -function onBlur(e) -{$keymgr.hide();} -function doNudge(e,x,y) -{if(options.allowMove){Coords.moveOffset([x,y]);Selection.updateVisible(true);} -e.preventDefault();e.stopPropagation();} -function parseKey(e) -{if(e.ctrlKey||e.metaKey){return true;} -shift_down=e.shiftKey?true:false;var nudge=shift_down?10:1;switch(e.keyCode){case 37:doNudge(e,-nudge,0);break;case 39:doNudge(e,nudge,0);break;case 38:doNudge(e,0,-nudge);break;case 40:doNudge(e,0,nudge);break;case 27:if(options.allowSelect)Selection.release();break;case 9:return true;} -return false;} -if(options.keySupport){$keymgr.keydown(parseKey).blur(onBlur);if(ie6mode||!options.fixedSupport){$keymgr.css({position:'absolute',left:'-20px'});$keywrap.append($keymgr).insertBefore($img);}else{$keymgr.insertBefore($img);}} -return{watchKeys:watchKeys};}());function setClass(cname) -{$div.removeClass().addClass(cssClass('holder')).addClass(cname);} -function animateTo(a,callback) -{var x1=a[0]/xscale,y1=a[1]/yscale,x2=a[2]/xscale,y2=a[3]/yscale;if(animating){return;} -var animto=Coords.flipCoords(x1,y1,x2,y2),c=Coords.getFixed(),initcr=[c.x,c.y,c.x2,c.y2],animat=initcr,interv=options.animationDelay,ix1=animto[0]-initcr[0],iy1=animto[1]-initcr[1],ix2=animto[2]-initcr[2],iy2=animto[3]-initcr[3],pcent=0,velocity=options.swingSpeed;x1=animat[0];y1=animat[1];x2=animat[2];y2=animat[3];Selection.animMode(true);var anim_timer;function queueAnimator(){window.setTimeout(animator,interv);} -var animator=(function(){return function(){pcent+=(100-pcent)/velocity;animat[0]=Math.round(x1+((pcent/100)*ix1));animat[1]=Math.round(y1+((pcent/100)*iy1));animat[2]=Math.round(x2+((pcent/100)*ix2));animat[3]=Math.round(y2+((pcent/100)*iy2));if(pcent>=99.8){pcent=100;} -if(pcent<100){setSelectRaw(animat);queueAnimator();}else{Selection.done();Selection.animMode(false);if(typeof(callback)==='function'){callback.call(api);}}};}());queueAnimator();} -function setSelect(rect) -{setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale]);options.onSelect.call(api,unscale(Coords.getFixed()));Selection.enableHandles();} -function setSelectRaw(l) -{Coords.setPressed([l[0],l[1]]);Coords.setCurrent([l[2],l[3]]);Selection.update();} -function tellSelect() -{return unscale(Coords.getFixed());} -function tellScaled() -{return Coords.getFixed();} -function setOptionsNew(opt) -{setOptions(opt);interfaceUpdate();} -function disableCrop() -{options.disabled=true;Selection.disableHandles();Selection.setCursor('default');Tracker.setCursor('default');} -function enableCrop() -{options.disabled=false;interfaceUpdate();} -function cancelCrop() -{Selection.done();Tracker.activateHandlers(null,null);} -function destroy() -{$(document).unbind('touchstart.jcrop-ios',Touch.fixTouchSupport);$div.remove();$origimg.show();$origimg.css('visibility','visible');$(obj).removeData('Jcrop');} -function setImage(src,callback) -{Selection.release();disableCrop();var img=new Image();img.onload=function(){var iw=img.width;var ih=img.height;var bw=options.boxWidth;var bh=options.boxHeight;$img.width(iw).height(ih);$img.attr('src',src);$img2.attr('src',src);presize($img,bw,bh);boundx=$img.width();boundy=$img.height();$img2.width(boundx).height(boundy);$trk.width(boundx+(bound*2)).height(boundy+(bound*2));$div.width(boundx).height(boundy);Shade.resize(boundx,boundy);enableCrop();if(typeof(callback)==='function'){callback.call(api);}};img.src=src;} -function colorChangeMacro($obj,color,now){var mycolor=color||options.bgColor;if(options.bgFade&&supportsColorFade()&&options.fadeTime&&!now){$obj.animate({backgroundColor:mycolor},{queue:false,duration:options.fadeTime});}else{$obj.css('backgroundColor',mycolor);}} -function interfaceUpdate(alt) -{if(options.allowResize){if(alt){Selection.enableOnly();}else{Selection.enableHandles();}}else{Selection.disableHandles();} -Tracker.setCursor(options.allowSelect?'crosshair':'default');Selection.setCursor(options.allowMove?'move':'default');if(options.hasOwnProperty('trueSize')){xscale=options.trueSize[0]/boundx;yscale=options.trueSize[1]/boundy;} -if(options.hasOwnProperty('setSelect')){setSelect(options.setSelect);Selection.done();delete(options.setSelect);} -Shade.refresh();if(options.bgColor!=bgcolor){colorChangeMacro(options.shade?Shade.getShades():$div,options.shade?(options.shadeColor||options.bgColor):options.bgColor);bgcolor=options.bgColor;} -if(bgopacity!=options.bgOpacity){bgopacity=options.bgOpacity;if(options.shade)Shade.refresh();else Selection.setBgOpacity(bgopacity);} -xlimit=options.maxSize[0]||0;ylimit=options.maxSize[1]||0;xmin=options.minSize[0]||0;ymin=options.minSize[1]||0;if(options.hasOwnProperty('outerImage')){$img.attr('src',options.outerImage);delete(options.outerImage);} -Selection.refresh();} -if(Touch.support)$trk.bind('touchstart.jcrop',Touch.newSelection);$hdl_holder.hide();interfaceUpdate(true);var api={setImage:setImage,animateTo:animateTo,setSelect:setSelect,setOptions:setOptionsNew,tellSelect:tellSelect,tellScaled:tellScaled,setClass:setClass,disable:disableCrop,enable:enableCrop,cancel:cancelCrop,release:Selection.release,destroy:destroy,focus:KeyManager.watchKeys,getBounds:function(){return[boundx*xscale,boundy*yscale];},getWidgetSize:function(){return[boundx,boundy];},getScaleFactor:function(){return[xscale,yscale];},getOptions:function(){return options;},ui:{holder:$div,selection:$sel}};if(is_msie)$div.bind('selectstart',function(){return false;});$origimg.data('Jcrop',api);return api;};$.fn.Jcrop=function(options,callback) -{var api;this.each(function(){if($(this).data('Jcrop')){if(options==='api')return $(this).data('Jcrop');else $(this).data('Jcrop').setOptions(options);} -else{if(this.tagName=='IMG') -$.Jcrop.Loader(this,function(){$(this).css({display:'block',visibility:'hidden'});api=$.Jcrop(this,options);if($.isFunction(callback))callback.call(api);});else{$(this).css({display:'block',visibility:'hidden'});api=$.Jcrop(this,options);if($.isFunction(callback))callback.call(api);}}});return this;};$.Jcrop.Loader=function(imgobj,success,error){var $img=$(imgobj),img=$img[0];function completeCheck(){if(img.complete){$img.unbind('.jcloader');if($.isFunction(success))success.call(img);} -else window.setTimeout(completeCheck,50);} -$img.bind('load.jcloader',completeCheck).bind('error.jcloader',function(e){$img.unbind('.jcloader');if($.isFunction(error))error.call(img);});if(img.complete&&$.isFunction(success)){$img.unbind('.jcloader');success.call(img);}};$.Jcrop.defaults={allowSelect:true,allowMove:true,allowResize:true,trackDocument:true,baseClass:'jcrop',addClass:null,bgColor:'black',bgOpacity:0.6,bgFade:false,borderOpacity:0.4,handleOpacity:0.5,handleSize:null,aspectRatio:0,keySupport:true,createHandles:['n','s','e','w','nw','ne','se','sw'],createDragbars:['n','s','e','w'],createBorders:['n','s','e','w'],drawBorders:true,dragEdges:true,fixedSupport:true,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}};}(jQuery));!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a=b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;ah[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com",/^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+ -s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b(a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}),["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="
"+a+"
";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1});return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i=config.min_move_x){cancelTouch();if(dx>0){config.wipeLeft();}else{config.wipeRight();}}else if(Math.abs(dy)>=config.min_move_y){cancelTouch();if(dy>0){config.wipeDown();}else{config.wipeUp();}}}}function onTouchStart(e){if(e.touches.length==1){startX=e.touches[0].pageX;startY=e.touches[0].pageY;isMoving=true;this.addEventListener('touchmove',onTouchMove,false);}}if('ontouchstart'in document.documentElement) +{this.addEventListener('touchstart',onTouchStart,false);}});return this;};})(jQuery);(function($){var liveUpdatingTargetSelectors={};var liveUpdaterIntervalId;var liveUpdaterRunning=false;var defaultSettings={ellipsis:'...',setTitle:'never',live:false};$.fn.ellipsis=function(selector,options){var subjectElements,settings;subjectElements=$(this);if(typeof selector!=='string'){options=selector;selector=undefined;}settings=$.extend({},defaultSettings,options);settings.selector=selector;subjectElements.each(function(){var elem=$(this);ellipsisOnElement(elem,settings);});if(settings.live){addToLiveUpdater(subjectElements.selector,settings);}else{removeFromLiveUpdater(subjectElements.selector);}return this;};function ellipsisOnElement(containerElement,settings){var containerData=containerElement.data('jqae');if(!containerData)containerData={};var wrapperElement=containerData.wrapperElement;if(!wrapperElement){wrapperElement=containerElement.wrapInner('
').find('>div');wrapperElement.css +({margin:0,padding:0,border:0});}var wrapperElementData=wrapperElement.data('jqae');if(!wrapperElementData)wrapperElementData={};var wrapperOriginalContent=wrapperElementData.originalContent;if(wrapperOriginalContent){wrapperElement=wrapperElementData.originalContent.clone(true).data('jqae',{originalContent:wrapperOriginalContent}).replaceAll(wrapperElement);}else{wrapperElement.data('jqae',{originalContent:wrapperElement.clone(true)});}containerElement.data('jqae',{wrapperElement:wrapperElement,containerWidth:containerElement.width(),containerHeight:containerElement.height()});var containerElementHeight=containerElement.height();var wrapperOffset=(parseInt(containerElement.css('padding-top'),10)||0)+(parseInt(containerElement.css('border-top-width'),10)||0)-(wrapperElement.offset().top-containerElement.offset().top);var deferAppendEllipsis=false;var selectedElements=wrapperElement;if(settings.selector)selectedElements=$(wrapperElement.find(settings.selector).get().reverse()); +selectedElements.each(function(){var selectedElement=$(this),originalText=selectedElement.text(),ellipsisApplied=false;if(wrapperElement.innerHeight()-selectedElement.innerHeight()>containerElementHeight+wrapperOffset){selectedElement.remove();}else{removeLastEmptyElements(selectedElement);if(selectedElement.contents().length){if(deferAppendEllipsis){getLastTextNode(selectedElement).get(0).nodeValue+=settings.ellipsis;deferAppendEllipsis=false;}while(wrapperElement.innerHeight()>containerElementHeight+wrapperOffset){ellipsisApplied=ellipsisOnLastTextNode(selectedElement);if(ellipsisApplied){removeLastEmptyElements(selectedElement);if(selectedElement.contents().length){getLastTextNode(selectedElement).get(0).nodeValue+=settings.ellipsis;}else{deferAppendEllipsis=true;selectedElement.remove();break;}}else{deferAppendEllipsis=true;selectedElement.remove();break;}}if(((settings.setTitle=='onEllipsis')&&ellipsisApplied)||(settings.setTitle=='always')){selectedElement.attr('title', +originalText);}else if(settings.setTitle!='never'){selectedElement.removeAttr('title');}}}});}function ellipsisOnLastTextNode(element){var lastTextNode=getLastTextNode(element);if(lastTextNode.length){var text=lastTextNode.get(0).nodeValue;var pos=text.lastIndexOf(' ');if(pos>-1){text=$.trim(text.substring(0,pos));lastTextNode.get(0).nodeValue=text;}else{lastTextNode.get(0).nodeValue='';}return true;}return false;}function getLastTextNode(element){if(element.contents().length){var contents=element.contents();var lastNode=contents.eq(contents.length-1);if(lastNode.filter(textNodeFilter).length){return lastNode;}else{return getLastTextNode(lastNode);}}else{element.append('');var contents=element.contents();return contents.eq(contents.length-1);}}function removeLastEmptyElements(element){if(element.contents().length){var contents=element.contents();var lastNode=contents.eq(contents.length-1);if(lastNode.filter(textNodeFilter).length){var text=lastNode.get(0).nodeValue;text=$.trim(text);if +(text==''){lastNode.remove();return true;}else{return false;}}else{while(removeLastEmptyElements(lastNode)){}if(lastNode.contents().length){return false;}else{lastNode.remove();return true;}}}return false;}function textNodeFilter(){return this.nodeType===3;}function addToLiveUpdater(targetSelector,settings){liveUpdatingTargetSelectors[targetSelector]=settings;if(!liveUpdaterIntervalId){liveUpdaterIntervalId=window.setInterval(function(){doLiveUpdater();},200);}}function removeFromLiveUpdater(targetSelector){if(liveUpdatingTargetSelectors[targetSelector]){delete liveUpdatingTargetSelectors[targetSelector];if(!liveUpdatingTargetSelectors.length){if(liveUpdaterIntervalId){window.clearInterval(liveUpdaterIntervalId);liveUpdaterIntervalId=undefined;}}}};function doLiveUpdater(){if(!liveUpdaterRunning){liveUpdaterRunning=true;for(var targetSelector in liveUpdatingTargetSelectors){$(targetSelector).each(function(){var containerElement,containerData;containerElement=$(this);containerData= +containerElement.data('jqae');if((containerData.containerWidth!=containerElement.width())||(containerData.containerHeight!=containerElement.height())){ellipsisOnElement(containerElement,liveUpdatingTargetSelectors[targetSelector]);}});}liveUpdaterRunning=false;}};})(jQuery);(function($){$.waterfall=function(){var steps=[],dfrd=$.Deferred(),pointer=0;$.each(arguments,function(i,a){steps.push(function(){var args=[].slice.apply(arguments),d;if(typeof(a)=='function'){if(!((d=a.apply(null,args))&&d.promise)){d=$.Deferred()[d===false?'reject':'resolve'](d);}}else if(a&&a.promise){d=a;}else{d=$.Deferred()[a===false?'reject':'resolve'](a);}d.fail(function(){dfrd.reject.apply(dfrd,[].slice.apply(arguments));}).done(function(data){pointer++;args.push(data);pointer==steps.length?dfrd.resolve.apply(dfrd,args):steps[pointer].apply(null,args);});});});steps.length?steps[0]():dfrd.resolve();return dfrd;}})(jQuery);(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory +);}else if(typeof exports==='object'){factory(require('jquery'));}else{factory(jQuery);}}(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s);}function decode(s){return config.raw?s:decodeURIComponent(s);}function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value));}function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');}try{s=decodeURIComponent(s.replace(pluses,' '));return config.json?JSON.parse(s):s;}catch(e){}}function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value;}var config=$.cookie=function(key,value,options){if(arguments.length>1&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setTime(+t+days*864e+5);}return(document.cookie=[encode(key),'=',stringifyCookieValue(value), +options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}var result=key?undefined:{};var cookies=document.cookie?document.cookie.split('; '):[];for(var i=0,l=cookies.length;i1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}for(var _iterator=callbacks,_isArray=true,_i=0,_iterator=_isArray?_iterator:_iterator[Symbol.iterator]();;){var _ref;if(_isArray){if(_i>=_iterator.length)break;_ref=_iterator[_i++];}else{_i=_iterator.next();if(_i.done)break;_ref=_i.value;}var callback=_ref;callback.apply(this,args);}}return this;}},{key:"off",value:function off(event,fn){if(!this._callbacks||arguments.length===0){this._callbacks={};return this;} +var callbacks=this._callbacks[event];if(!callbacks){return this;}if(arguments.length===1){delete this._callbacks[event];return this;}for(var i=0;i=_iterator2.length)break;_ref2=_iterator2[_i2++];}else{_i2=_iterator2.next();if(_i2.done)break;_ref2=_i2.value;}var child=_ref2;if(/(^| )dz-message($| )/.test(child.className)){messageElement=child;child.className="dz-message";break;}}if(!messageElement){messageElement=Dropzone.createElement("
");this.element.appendChild(messageElement);}var span=messageElement.getElementsByTagName("span")[0];if(span){if(span.textContent!=null){span.textContent=this.options.dictFallbackMessage;}else if(span.innerText!=null){span.innerText=this.options.dictFallbackMessage;}}return this.element.appendChild(this.getFallbackForm());},resize:function resize(file,width,height,resizeMethod){var info={srcX:0,srcY:0,srcWidth:file.width,srcHeight:file.height};var srcRatio=file.width/file.height;if(width==null&&height== +null){width=info.srcWidth;height=info.srcHeight;}else if(width==null){width=height*srcRatio;}else if(height==null){height=width/srcRatio;}width=Math.min(width,info.srcWidth);height=Math.min(height,info.srcHeight);var trgRatio=width/height;if(info.srcWidth>width||info.srcHeight>height){if(resizeMethod==='crop'){if(srcRatio>trgRatio){info.srcHeight=file.height;info.srcWidth=info.srcHeight*trgRatio;}else{info.srcWidth=file.width;info.srcHeight=info.srcWidth/trgRatio;}}else if(resizeMethod==='contain'){if(srcRatio>trgRatio){height=width/srcRatio;}else{width=height*srcRatio;}}else{throw new Error("Unknown resizeMethod '"+resizeMethod+"'");}}info.srcX=(file.width-info.srcWidth)/2;info.srcY=(file.height-info.srcHeight)/2;info.trgWidth=width;info.trgHeight=height;return info;},transformFile:function transformFile(file,done){if((this.options.resizeWidth||this.options.resizeHeight)&&file.type.match(/image.*/)){return this.resizeImage(file,this.options.resizeWidth,this.options.resizeHeight,this. +options.resizeMethod,done);}else{return done(file);}},previewTemplate: +"
\n
\n
\n
\n
\n
\n
\n
\n
\n \n Check\n \n \n \n \n \n
\n
\n \n Error\n \n \n \n \n \n \n \n
\n
" +,drop:function drop(e){return this.element.classList.remove("dz-drag-hover");},dragstart:function dragstart(e){},dragend:function dragend(e){return this.element.classList.remove("dz-drag-hover");},dragenter:function dragenter(e){return this.element.classList.add("dz-drag-hover");},dragover:function dragover(e){return this.element.classList.add("dz-drag-hover");},dragleave:function dragleave(e){return this.element.classList.remove("dz-drag-hover");},paste:function paste(e){},reset:function reset(){return this.element.classList.remove("dz-started");},addedfile:function addedfile(file){var _this2=this;if(this.element===this.previewsContainer){this.element.classList.add("dz-started");}if(this.previewsContainer){file.previewElement=Dropzone.createElement(this.options.previewTemplate.trim());file.previewTemplate=file.previewElement;this.previewsContainer.appendChild(file.previewElement);for(var _iterator3=file.previewElement.querySelectorAll("[data-dz-name]"),_isArray3=true,_i3=0,_iterator3= +_isArray3?_iterator3:_iterator3[Symbol.iterator]();;){var _ref3;if(_isArray3){if(_i3>=_iterator3.length)break;_ref3=_iterator3[_i3++];}else{_i3=_iterator3.next();if(_i3.done)break;_ref3=_i3.value;}var node=_ref3;node.textContent=file.name;}for(var _iterator4=file.previewElement.querySelectorAll("[data-dz-size]"),_isArray4=true,_i4=0,_iterator4=_isArray4?_iterator4:_iterator4[Symbol.iterator]();;){if(_isArray4){if(_i4>=_iterator4.length)break;node=_iterator4[_i4++];}else{_i4=_iterator4.next();if(_i4.done)break;node=_i4.value;}node.innerHTML=this.filesize(file.size);}if(this.options.addRemoveLinks){file._removeLink=Dropzone.createElement(""+this.options.dictRemoveFile+"");file.previewElement.appendChild(file._removeLink);}var removeFileEvent=function removeFileEvent(e){e.preventDefault();e.stopPropagation();if(file.status===Dropzone.UPLOADING){return Dropzone.confirm(_this2.options.dictCancelUploadConfirmation, +function(){return _this2.removeFile(file);});}else{if(_this2.options.dictRemoveFileConfirmation){return Dropzone.confirm(_this2.options.dictRemoveFileConfirmation,function(){return _this2.removeFile(file);});}else{return _this2.removeFile(file);}}};for(var _iterator5=file.previewElement.querySelectorAll("[data-dz-remove]"),_isArray5=true,_i5=0,_iterator5=_isArray5?_iterator5:_iterator5[Symbol.iterator]();;){var _ref4;if(_isArray5){if(_i5>=_iterator5.length)break;_ref4=_iterator5[_i5++];}else{_i5=_iterator5.next();if(_i5.done)break;_ref4=_i5.value;}var removeLink=_ref4;removeLink.addEventListener("click",removeFileEvent);}}},removedfile:function removedfile(file){if(file.previewElement!=null&&file.previewElement.parentNode!=null){file.previewElement.parentNode.removeChild(file.previewElement);}return this._updateMaxFilesReachedClass();},thumbnail:function thumbnail(file,dataUrl){if(file.previewElement){file.previewElement.classList.remove("dz-file-preview");for(var _iterator6=file. +previewElement.querySelectorAll("[data-dz-thumbnail]"),_isArray6=true,_i6=0,_iterator6=_isArray6?_iterator6:_iterator6[Symbol.iterator]();;){var _ref5;if(_isArray6){if(_i6>=_iterator6.length)break;_ref5=_iterator6[_i6++];}else{_i6=_iterator6.next();if(_i6.done)break;_ref5=_i6.value;}var thumbnailElement=_ref5;thumbnailElement.alt=file.name;thumbnailElement.src=dataUrl;}return setTimeout(function(){return file.previewElement.classList.add("dz-image-preview");},1);}},error:function error(file,message){if(file.previewElement){file.previewElement.classList.add("dz-error");if(typeof message!=="String"&&message.error){message=message.error;}for(var _iterator7=file.previewElement.querySelectorAll("[data-dz-errormessage]"),_isArray7=true,_i7=0,_iterator7=_isArray7?_iterator7:_iterator7[Symbol.iterator]();;){var _ref6;if(_isArray7){if(_i7>=_iterator7.length)break;_ref6=_iterator7[_i7++];}else{_i7=_iterator7.next();if(_i7.done)break;_ref6=_i7.value;}var node=_ref6;node.textContent=message;}}}, +errormultiple:function errormultiple(){},processing:function processing(file){if(file.previewElement){file.previewElement.classList.add("dz-processing");if(file._removeLink){return file._removeLink.innerHTML=this.options.dictCancelUpload;}}},processingmultiple:function processingmultiple(){},uploadprogress:function uploadprogress(file,progress,bytesSent){if(file.previewElement){for(var _iterator8=file.previewElement.querySelectorAll("[data-dz-uploadprogress]"),_isArray8=true,_i8=0,_iterator8=_isArray8?_iterator8:_iterator8[Symbol.iterator]();;){var _ref7;if(_isArray8){if(_i8>=_iterator8.length)break;_ref7=_iterator8[_i8++];}else{_i8=_iterator8.next();if(_i8.done)break;_ref7=_i8.value;}var node=_ref7;node.nodeName==='PROGRESS'?node.value=progress:node.style.width=progress+"%";}}},totaluploadprogress:function totaluploadprogress(){},sending:function sending(){},sendingmultiple:function sendingmultiple(){},success:function success(file){if(file.previewElement){return file.previewElement. +classList.add("dz-success");}},successmultiple:function successmultiple(){},canceled:function canceled(file){return this.emit("error",file,this.options.dictUploadCanceled);},canceledmultiple:function canceledmultiple(){},complete:function complete(file){if(file._removeLink){file._removeLink.innerHTML=this.options.dictRemoveFile;}if(file.previewElement){return file.previewElement.classList.add("dz-complete");}},completemultiple:function completemultiple(){},maxfilesexceeded:function maxfilesexceeded(){},maxfilesreached:function maxfilesreached(){},queuecomplete:function queuecomplete(){},addedfiles:function addedfiles(){}};this.prototype._thumbnailQueue=[];this.prototype._processingThumbnail=false;}},{key:"extend",value:function extend(target){for(var _len2=arguments.length,objects=Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){objects[_key2-1]=arguments[_key2];}for(var _iterator9=objects,_isArray9=true,_i9=0,_iterator9=_isArray9?_iterator9:_iterator9[Symbol.iterator]();;){var +_ref8;if(_isArray9){if(_i9>=_iterator9.length)break;_ref8=_iterator9[_i9++];}else{_i9=_iterator9.next();if(_i9.done)break;_ref8=_i9.value;}var object=_ref8;for(var key in object){var val=object[key];target[key]=val;}}return target;}}]);function Dropzone(el,options){_classCallCheck(this,Dropzone);var _this=_possibleConstructorReturn(this,(Dropzone.__proto__||Object.getPrototypeOf(Dropzone)).call(this));var fallback=void 0,left=void 0;_this.element=el;_this.version=Dropzone.version;_this.defaultOptions.previewTemplate=_this.defaultOptions.previewTemplate.replace(/\n*/g,"");_this.clickableElements=[];_this.listeners=[];_this.files=[];if(typeof _this.element==="string"){_this.element=document.querySelector(_this.element);}if(!_this.element||_this.element.nodeType==null){throw new Error("Invalid dropzone element.");}if(_this.element.dropzone){throw new Error("Dropzone already attached.");}Dropzone.instances.push(_this);_this.element.dropzone=_this;var elementOptions=(left=Dropzone. +optionsForElement(_this.element))!=null?left:{};_this.options=Dropzone.extend({},_this.defaultOptions,elementOptions,options!=null?options:{});if(_this.options.forceFallback||!Dropzone.isBrowserSupported()){var _ret;return _ret=_this.options.fallback.call(_this),_possibleConstructorReturn(_this,_ret);}if(_this.options.url==null){_this.options.url=_this.element.getAttribute("action");}if(!_this.options.url){throw new Error("No URL provided.");}if(_this.options.acceptedFiles&&_this.options.acceptedMimeTypes){throw new Error("You can't provide both 'acceptedFiles' and 'acceptedMimeTypes'. 'acceptedMimeTypes' is deprecated.");}if(_this.options.uploadMultiple&&_this.options.chunking){throw new Error('You cannot set both: uploadMultiple and chunking.');}if(_this.options.acceptedMimeTypes){_this.options.acceptedFiles=_this.options.acceptedMimeTypes;delete _this.options.acceptedMimeTypes;}if(_this.options.renameFilename!=null){_this.options.renameFile=function(file){return _this.options. +renameFilename.call(_this,file.name,file);};}_this.options.method=_this.options.method.toUpperCase();if((fallback=_this.getExistingFallback())&&fallback.parentNode){fallback.parentNode.removeChild(fallback);}if(_this.options.previewsContainer!==false){if(_this.options.previewsContainer){_this.previewsContainer=Dropzone.getElement(_this.options.previewsContainer,"previewsContainer");}else{_this.previewsContainer=_this.element;}}if(_this.options.clickable){if(_this.options.clickable===true){_this.clickableElements=[_this.element];}else{_this.clickableElements=Dropzone.getElements(_this.options.clickable,"clickable");}}_this.init();return _this;}_createClass(Dropzone,[{key:"getAcceptedFiles",value:function getAcceptedFiles(){return this.files.filter(function(file){return file.accepted;}).map(function(file){return file;});}},{key:"getRejectedFiles",value:function getRejectedFiles(){return this.files.filter(function(file){return!file.accepted;}).map(function(file){return file;});}},{key: +"getFilesWithStatus",value:function getFilesWithStatus(status){return this.files.filter(function(file){return file.status===status;}).map(function(file){return file;});}},{key:"getQueuedFiles",value:function getQueuedFiles(){return this.getFilesWithStatus(Dropzone.QUEUED);}},{key:"getUploadingFiles",value:function getUploadingFiles(){return this.getFilesWithStatus(Dropzone.UPLOADING);}},{key:"getAddedFiles",value:function getAddedFiles(){return this.getFilesWithStatus(Dropzone.ADDED);}},{key:"getActiveFiles",value:function getActiveFiles(){return this.files.filter(function(file){return file.status===Dropzone.UPLOADING||file.status===Dropzone.QUEUED;}).map(function(file){return file;});}},{key:"init",value:function init(){var _this3=this;if(this.element.tagName==="form"){this.element.setAttribute("enctype","multipart/form-data");}if(this.element.classList.contains("dropzone")&&!this.element.querySelector(".dz-message")){this.element.appendChild(Dropzone.createElement( +"
"+this.options.dictDefaultMessage+"
"));}if(this.clickableElements.length){var setupHiddenFileInput=function setupHiddenFileInput(){if(_this3.hiddenFileInput){_this3.hiddenFileInput.parentNode.removeChild(_this3.hiddenFileInput);}_this3.hiddenFileInput=document.createElement("input");_this3.hiddenFileInput.setAttribute("type","file");if(_this3.options.maxFiles===null||_this3.options.maxFiles>1){_this3.hiddenFileInput.setAttribute("multiple","multiple");}_this3.hiddenFileInput.className="dz-hidden-input";if(_this3.options.acceptedFiles!==null){_this3.hiddenFileInput.setAttribute("accept",_this3.options.acceptedFiles);}if(_this3.options.capture!==null){_this3.hiddenFileInput.setAttribute("capture",_this3.options.capture);}_this3.hiddenFileInput.style.visibility="hidden";_this3.hiddenFileInput.style.position="absolute";_this3.hiddenFileInput.style.top="0";_this3.hiddenFileInput.style.left="0";_this3.hiddenFileInput.style.height="0"; +_this3.hiddenFileInput.style.width="0";Dropzone.getElement(_this3.options.hiddenInputContainer,'hiddenInputContainer').appendChild(_this3.hiddenFileInput);return _this3.hiddenFileInput.addEventListener("change",function(){var files=_this3.hiddenFileInput.files;if(files.length){for(var _iterator10=files,_isArray10=true,_i10=0,_iterator10=_isArray10?_iterator10:_iterator10[Symbol.iterator]();;){var _ref9;if(_isArray10){if(_i10>=_iterator10.length)break;_ref9=_iterator10[_i10++];}else{_i10=_iterator10.next();if(_i10.done)break;_ref9=_i10.value;}var file=_ref9;_this3.addFile(file);}}_this3.emit("addedfiles",files);return setupHiddenFileInput();});};setupHiddenFileInput();}this.URL=window.URL!==null?window.URL:window.webkitURL;for(var _iterator11=this.events,_isArray11=true,_i11=0,_iterator11=_isArray11?_iterator11:_iterator11[Symbol.iterator]();;){var _ref10;if(_isArray11){if(_i11>=_iterator11.length)break;_ref10=_iterator11[_i11++];}else{_i11=_iterator11.next();if(_i11.done)break;_ref10= +_i11.value;}var eventName=_ref10;this.on(eventName,this.options[eventName]);}this.on("uploadprogress",function(){return _this3.updateTotalUploadProgress();});this.on("removedfile",function(){return _this3.updateTotalUploadProgress();});this.on("canceled",function(file){return _this3.emit("complete",file);});this.on("complete",function(file){if(_this3.getAddedFiles().length===0&&_this3.getUploadingFiles().length===0&&_this3.getQueuedFiles().length===0){return setTimeout(function(){return _this3.emit("queuecomplete");},0);}});var noPropagation=function noPropagation(e){e.stopPropagation();if(e.preventDefault){return e.preventDefault();}else{return e.returnValue=false;}};this.listeners=[{element:this.element,events:{"dragstart":function dragstart(e){return _this3.emit("dragstart",e);},"dragenter":function dragenter(e){noPropagation(e);return _this3.emit("dragenter",e);},"dragover":function dragover(e){var efct=void 0;try{efct=e.dataTransfer.effectAllowed;}catch(error){}e.dataTransfer. +dropEffect='move'===efct||'linkMove'===efct?'move':'copy';noPropagation(e);return _this3.emit("dragover",e);},"dragleave":function dragleave(e){return _this3.emit("dragleave",e);},"drop":function drop(e){noPropagation(e);return _this3.drop(e);},"dragend":function dragend(e){return _this3.emit("dragend",e);}}}];this.clickableElements.forEach(function(clickableElement){return _this3.listeners.push({element:clickableElement,events:{"click":function click(evt){if(clickableElement!==_this3.element||evt.target===_this3.element||Dropzone.elementInside(evt.target,_this3.element.querySelector(".dz-message"))){_this3.hiddenFileInput.click();}return true;}}});});this.enable();return this.options.init.call(this);}},{key:"destroy",value:function destroy(){this.disable();this.removeAllFiles(true);if(this.hiddenFileInput!=null?this.hiddenFileInput.parentNode:undefined){this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);this.hiddenFileInput=null;}delete this.element.dropzone;return Dropzone +.instances.splice(Dropzone.instances.indexOf(this),1);}},{key:"updateTotalUploadProgress",value:function updateTotalUploadProgress(){var totalUploadProgress=void 0;var totalBytesSent=0;var totalBytes=0;var activeFiles=this.getActiveFiles();if(activeFiles.length){for(var _iterator12=this.getActiveFiles(),_isArray12=true,_i12=0,_iterator12=_isArray12?_iterator12:_iterator12[Symbol.iterator]();;){var _ref11;if(_isArray12){if(_i12>=_iterator12.length)break;_ref11=_iterator12[_i12++];}else{_i12=_iterator12.next();if(_i12.done)break;_ref11=_i12.value;}var file=_ref11;totalBytesSent+=file.upload.bytesSent;totalBytes+=file.upload.total;}totalUploadProgress=100*totalBytesSent/totalBytes;}else{totalUploadProgress=100;}return this.emit("totaluploadprogress",totalUploadProgress,totalBytes,totalBytesSent);}},{key:"_getParamName",value:function _getParamName(n){if(typeof this.options.paramName==="function"){return this.options.paramName(n);}else{return""+this.options.paramName+(this.options. +uploadMultiple?"["+n+"]":"");}}},{key:"_renameFile",value:function _renameFile(file){if(typeof this.options.renameFile!=="function"){return file.name;}return this.options.renameFile(file);}},{key:"getFallbackForm",value:function getFallbackForm(){var existingFallback=void 0,form=void 0;if(existingFallback=this.getExistingFallback()){return existingFallback;}var fieldsString="
";if(this.options.dictFallbackText){fieldsString+="

"+this.options.dictFallbackText+"

";}fieldsString+="
";var fields=Dropzone.createElement(fieldsString);if(this.element.tagName!=="FORM"){form=Dropzone.createElement("
");form.appendChild(fields);}else{this.element.setAttribute("enctype", +"multipart/form-data");this.element.setAttribute("method",this.options.method);}return form!=null?form:fields;}},{key:"getExistingFallback",value:function getExistingFallback(){var getFallback=function getFallback(elements){for(var _iterator13=elements,_isArray13=true,_i13=0,_iterator13=_isArray13?_iterator13:_iterator13[Symbol.iterator]();;){var _ref12;if(_isArray13){if(_i13>=_iterator13.length)break;_ref12=_iterator13[_i13++];}else{_i13=_iterator13.next();if(_i13.done)break;_ref12=_i13.value;}var el=_ref12;if(/(^| )fallback($| )/.test(el.className)){return el;}}};var _arr=["div","form"];for(var _i14=0;_i14<_arr.length;_i14++){var tagName=_arr[_i14];var fallback;if(fallback=getFallback(this.element.getElementsByTagName(tagName))){return fallback;}}}},{key:"setupEventListeners",value:function setupEventListeners(){return this.listeners.map(function(elementListeners){return function(){var result=[];for(var event in elementListeners.events){var listener=elementListeners.events[event]; +result.push(elementListeners.element.addEventListener(event,listener,false));}return result;}();});}},{key:"removeEventListeners",value:function removeEventListeners(){return this.listeners.map(function(elementListeners){return function(){var result=[];for(var event in elementListeners.events){var listener=elementListeners.events[event];result.push(elementListeners.element.removeEventListener(event,listener,false));}return result;}();});}},{key:"disable",value:function disable(){var _this4=this;this.clickableElements.forEach(function(element){return element.classList.remove("dz-clickable");});this.removeEventListeners();this.disabled=true;return this.files.map(function(file){return _this4.cancelUpload(file);});}},{key:"enable",value:function enable(){delete this.disabled;this.clickableElements.forEach(function(element){return element.classList.add("dz-clickable");});return this.setupEventListeners();}},{key:"filesize",value:function filesize(size){var selectedSize=0;var selectedUnit= +"b";if(size>0){var units=['tb','gb','mb','kb','b'];for(var i=0;i=cutoff){selectedSize=size/Math.pow(this.options.filesizeBase,4-i);selectedUnit=unit;break;}}selectedSize=Math.round(10*selectedSize)/10;}return""+selectedSize+" "+this.options.dictFileSizeUnits[selectedUnit];}},{key:"_updateMaxFilesReachedClass",value:function _updateMaxFilesReachedClass(){if(this.options.maxFiles!=null&&this.getAcceptedFiles().length>=this.options.maxFiles){if(this.getAcceptedFiles().length===this.options.maxFiles){this.emit('maxfilesreached',this.files);}return this.element.classList.add("dz-max-files-reached");}else{return this.element.classList.remove("dz-max-files-reached");}}},{key:"drop",value:function drop(e){if(!e.dataTransfer){return;}this.emit("drop",e);var files=[];for(var i=0;i=_iterator14.length)break;_ref13=_iterator14[_i15++];}else{_i15=_iterator14.next();if(_i15.done)break;_ref13=_i15.value;}var file=_ref13;this.addFile(file);}}},{key:"_addFilesFromItems",value:function _addFilesFromItems(items){var _this5=this;return function(){var result=[];for(var _iterator15=items,_isArray15=true,_i16=0,_iterator15=_isArray15?_iterator15:_iterator15[Symbol.iterator +]();;){var _ref14;if(_isArray15){if(_i16>=_iterator15.length)break;_ref14=_iterator15[_i16++];}else{_i16=_iterator15.next();if(_i16.done)break;_ref14=_i16.value;}var item=_ref14;var entry;if(item.webkitGetAsEntry!=null&&(entry=item.webkitGetAsEntry())){if(entry.isFile){result.push(_this5.addFile(item.getAsFile()));}else if(entry.isDirectory){result.push(_this5._addFilesFromDirectory(entry,entry.name));}else{result.push(undefined);}}else if(item.getAsFile!=null){if(item.kind==null||item.kind==="file"){result.push(_this5.addFile(item.getAsFile()));}else{result.push(undefined);}}else{result.push(undefined);}}return result;}();}},{key:"_addFilesFromDirectory",value:function _addFilesFromDirectory(directory,path){var _this6=this;var dirReader=directory.createReader();var errorHandler=function errorHandler(error){return __guardMethod__(console,'log',function(o){return o.log(error);});};var readEntries=function readEntries(){return dirReader.readEntries(function(entries){if(entries.length>0){ +for(var _iterator16=entries,_isArray16=true,_i17=0,_iterator16=_isArray16?_iterator16:_iterator16[Symbol.iterator]();;){var _ref15;if(_isArray16){if(_i17>=_iterator16.length)break;_ref15=_iterator16[_i17++];}else{_i17=_iterator16.next();if(_i17.done)break;_ref15=_i17.value;}var entry=_ref15;if(entry.isFile){entry.file(function(file){if(_this6.options.ignoreHiddenFiles&&file.name.substring(0,1)==='.'){return;}file.fullPath=path+"/"+file.name;return _this6.addFile(file);});}else if(entry.isDirectory){_this6._addFilesFromDirectory(entry,path+"/"+entry.name);}}readEntries();}return null;},errorHandler);};return readEntries();}},{key:"accept",value:function accept(file,done){if(this.options.maxFilesize&&file.size>this.options.maxFilesize*1024*1024){return done(this.options.dictFileTooBig.replace("{{filesize}}",Math.round(file.size/1024/10.24)/100).replace("{{maxFilesize}}",this.options.maxFilesize));}else if(!Dropzone.isValidFile(file,this.options.acceptedFiles)){return done(this.options. +dictInvalidFileType);}else if(this.options.maxFiles!=null&&this.getAcceptedFiles().length>=this.options.maxFiles){done(this.options.dictMaxFilesExceeded.replace("{{maxFiles}}",this.options.maxFiles));return this.emit("maxfilesexceeded",file);}else{return this.options.accept.call(this,file,done);}}},{key:"addFile",value:function addFile(file){var _this7=this;file.upload={uuid:Dropzone.uuidv4(),progress:0,total:file.size,bytesSent:0,filename:this._renameFile(file),chunked:this.options.chunking&&(this.options.forceChunking||file.size>this.options.chunkSize),totalChunkCount:Math.ceil(file.size/this.options.chunkSize)};this.files.push(file);file.status=Dropzone.ADDED;this.emit("addedfile",file);this._enqueueThumbnail(file);return this.accept(file,function(error){if(error){file.accepted=false;_this7._errorProcessing([file],error);}else{file.accepted=true;if(_this7.options.autoQueue){_this7.enqueueFile(file);}}return _this7._updateMaxFilesReachedClass();});}},{key:"enqueueFiles",value: +function enqueueFiles(files){for(var _iterator17=files,_isArray17=true,_i18=0,_iterator17=_isArray17?_iterator17:_iterator17[Symbol.iterator]();;){var _ref16;if(_isArray17){if(_i18>=_iterator17.length)break;_ref16=_iterator17[_i18++];}else{_i18=_iterator17.next();if(_i18.done)break;_ref16=_i18.value;}var file=_ref16;this.enqueueFile(file);}return null;}},{key:"enqueueFile",value:function enqueueFile(file){var _this8=this;if(file.status===Dropzone.ADDED&&file.accepted===true){file.status=Dropzone.QUEUED;if(this.options.autoProcessQueue){return setTimeout(function(){return _this8.processQueue();},0);}}else{throw new Error("This file can't be queued because it has already been processed or was rejected.");}}},{key:"_enqueueThumbnail",value:function _enqueueThumbnail(file){var _this9=this;if(this.options.createImageThumbnails&&file.type.match(/image.*/)&&file.size<=this.options.maxThumbnailFilesize*1024*1024){this._thumbnailQueue.push(file);return setTimeout(function(){return _this9. +_processThumbnailQueue();},0);}}},{key:"_processThumbnailQueue",value:function _processThumbnailQueue(){var _this10=this;if(this._processingThumbnail||this._thumbnailQueue.length===0){return;}this._processingThumbnail=true;var file=this._thumbnailQueue.shift();return this.createThumbnail(file,this.options.thumbnailWidth,this.options.thumbnailHeight,this.options.thumbnailMethod,true,function(dataUrl){_this10.emit("thumbnail",file,dataUrl);_this10._processingThumbnail=false;return _this10._processThumbnailQueue();});}},{key:"removeFile",value:function removeFile(file){if(file.status===Dropzone.UPLOADING){this.cancelUpload(file);}this.files=without(this.files,file);this.emit("removedfile",file);if(this.files.length===0){return this.emit("reset");}}},{key:"removeAllFiles",value:function removeAllFiles(cancelIfNecessary){if(cancelIfNecessary==null){cancelIfNecessary=false;}for(var _iterator18=this.files.slice(),_isArray18=true,_i19=0,_iterator18=_isArray18?_iterator18:_iterator18[Symbol. +iterator]();;){var _ref17;if(_isArray18){if(_i19>=_iterator18.length)break;_ref17=_iterator18[_i19++];}else{_i19=_iterator18.next();if(_i19.done)break;_ref17=_i19.value;}var file=_ref17;if(file.status!==Dropzone.UPLOADING||cancelIfNecessary){this.removeFile(file);}}return null;}},{key:"resizeImage",value:function resizeImage(file,width,height,resizeMethod,callback){var _this11=this;return this.createThumbnail(file,width,height,resizeMethod,true,function(dataUrl,canvas){if(canvas==null){return callback(file);}else{var resizeMimeType=_this11.options.resizeMimeType;if(resizeMimeType==null){resizeMimeType=file.type;}var resizedDataURL=canvas.toDataURL(resizeMimeType,_this11.options.resizeQuality);if(resizeMimeType==='image/jpeg'||resizeMimeType==='image/jpg'){resizedDataURL=ExifRestore.restore(file.dataURL,resizedDataURL);}return callback(Dropzone.dataURItoBlob(resizedDataURL));}});}},{key:"createThumbnail",value:function createThumbnail(file,width,height,resizeMethod,fixOrientation, +callback){var _this12=this;var fileReader=new FileReader();fileReader.onload=function(){file.dataURL=fileReader.result;if(file.type==="image/svg+xml"){if(callback!=null){callback(fileReader.result);}return;}return _this12.createThumbnailFromUrl(file,width,height,resizeMethod,fixOrientation,callback);};return fileReader.readAsDataURL(file);}},{key:"createThumbnailFromUrl",value:function createThumbnailFromUrl(file,width,height,resizeMethod,fixOrientation,callback,crossOrigin){var _this13=this;var img=document.createElement("img");if(crossOrigin){img.crossOrigin=crossOrigin;}img.onload=function(){var loadExif=function loadExif(callback){return callback(1);};if(typeof EXIF!=='undefined'&&EXIF!==null&&fixOrientation){loadExif=function loadExif(callback){return EXIF.getData(img,function(){return callback(EXIF.getTag(this,'Orientation'));});};}return loadExif(function(orientation){file.width=img.width;file.height=img.height;var resizeInfo=_this13.options.resize.call(_this13,file,width,height +,resizeMethod);var canvas=document.createElement("canvas");var ctx=canvas.getContext("2d");canvas.width=resizeInfo.trgWidth;canvas.height=resizeInfo.trgHeight;if(orientation>4){canvas.width=resizeInfo.trgHeight;canvas.height=resizeInfo.trgWidth;}switch(orientation){case 2:ctx.translate(canvas.width,0);ctx.scale(-1,1);break;case 3:ctx.translate(canvas.width,canvas.height);ctx.rotate(Math.PI);break;case 4:ctx.translate(0,canvas.height);ctx.scale(1,-1);break;case 5:ctx.rotate(0.5*Math.PI);ctx.scale(1,-1);break;case 6:ctx.rotate(0.5*Math.PI);ctx.translate(0,-canvas.width);break;case 7:ctx.rotate(0.5*Math.PI);ctx.translate(canvas.height,-canvas.width);ctx.scale(-1,1);break;case 8:ctx.rotate(-0.5*Math.PI);ctx.translate(-canvas.height,0);break;}drawImageIOSFix(ctx,img,resizeInfo.srcX!=null?resizeInfo.srcX:0,resizeInfo.srcY!=null?resizeInfo.srcY:0,resizeInfo.srcWidth,resizeInfo.srcHeight,resizeInfo.trgX!=null?resizeInfo.trgX:0,resizeInfo.trgY!=null?resizeInfo.trgY:0,resizeInfo.trgWidth, +resizeInfo.trgHeight);var thumbnail=canvas.toDataURL("image/png");if(callback!=null){return callback(thumbnail,canvas);}});};if(callback!=null){img.onerror=callback;}return img.src=file.dataURL;}},{key:"processQueue",value:function processQueue(){var parallelUploads=this.options.parallelUploads;var processingLength=this.getUploadingFiles().length;var i=processingLength;if(processingLength>=parallelUploads){return;}var queuedFiles=this.getQueuedFiles();if(!(queuedFiles.length>0)){return;}if(this.options.uploadMultiple){return this.processFiles(queuedFiles.slice(0,parallelUploads-processingLength));}else{while(i=_iterator19.length)break;_ref18=_iterator19[_i20++];}else{_i20=_iterator19.next();if(_i20.done)break;_ref18=_i20.value;}var file=_ref18;file.processing=true;file.status=Dropzone.UPLOADING;this.emit("processing",file);}if(this.options.uploadMultiple){this.emit("processingmultiple",files);}return this.uploadFiles(files);}},{key:"_getFilesWithXhr",value:function _getFilesWithXhr(xhr){var files=void 0;return files=this.files.filter(function(file){return file.xhr===xhr;}).map(function(file){return file;});}},{key:"cancelUpload",value:function cancelUpload(file){if(file.status===Dropzone.UPLOADING){var groupedFiles=this._getFilesWithXhr(file.xhr);for(var _iterator20=groupedFiles,_isArray20=true,_i21=0,_iterator20=_isArray20?_iterator20:_iterator20[Symbol.iterator]();;){var _ref19;if(_isArray20){if(_i21>=_iterator20.length)break;_ref19=_iterator20[_i21++];}else{_i21=_iterator20.next();if(_i21.done)break;_ref19=_i21.value;}var groupedFile=_ref19;groupedFile.status=Dropzone.CANCELED;} +if(typeof file.xhr!=='undefined'){file.xhr.abort();}for(var _iterator21=groupedFiles,_isArray21=true,_i22=0,_iterator21=_isArray21?_iterator21:_iterator21[Symbol.iterator]();;){var _ref20;if(_isArray21){if(_i22>=_iterator21.length)break;_ref20=_iterator21[_i22++];}else{_i22=_iterator21.next();if(_i22.done)break;_ref20=_i22.value;}var _groupedFile=_ref20;this.emit("canceled",_groupedFile);}if(this.options.uploadMultiple){this.emit("canceledmultiple",groupedFiles);}}else if(file.status===Dropzone.ADDED||file.status===Dropzone.QUEUED){file.status=Dropzone.CANCELED;this.emit("canceled",file);if(this.options.uploadMultiple){this.emit("canceledmultiple",[file]);}}if(this.options.autoProcessQueue){return this.processQueue();}}},{key:"resolveOption",value:function resolveOption(option){if(typeof option==='function'){for(var _len3=arguments.length,args=Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){args[_key3-1]=arguments[_key3];}return option.apply(this,args);}return option;}},{key: +"uploadFile",value:function uploadFile(file){return this.uploadFiles([file]);}},{key:"uploadFiles",value:function uploadFiles(files){var _this14=this;this._transformFiles(files,function(transformedFiles){if(files[0].upload.chunked){var file=files[0];var transformedFile=transformedFiles[0];var startedChunkCount=0;file.upload.chunks=[];var handleNextChunk=function handleNextChunk(){var chunkIndex=0;while(file.upload.chunks[chunkIndex]!==undefined){chunkIndex++;}if(chunkIndex>=file.upload.totalChunkCount)return;startedChunkCount++;var start=chunkIndex*_this14.options.chunkSize;var end=Math.min(start+_this14.options.chunkSize,file.size);var dataBlock={name:_this14._getParamName(0),data:transformedFile.webkitSlice?transformedFile.webkitSlice(start,end):transformedFile.slice(start,end),filename:file.upload.filename,chunkIndex:chunkIndex};file.upload.chunks[chunkIndex]={file:file,index:chunkIndex,dataBlock:dataBlock,status:Dropzone.UPLOADING,progress:0,retries:0};_this14._uploadData(files,[ +dataBlock]);};file.upload.finishedChunkUpload=function(chunk){var allFinished=true;chunk.status=Dropzone.SUCCESS;chunk.dataBlock=null;chunk.xhr=null;for(var i=0;i=_iterator22.length)break;_ref21=_iterator22[_i24++];}else{_i24=_iterator22.next();if(_i24.done)break;_ref21=_i24.value;}var file=_ref21;file.xhr=xhr;}if(files[0].upload.chunked){files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr=xhr;}var method=this.resolveOption(this.options.method,files);var url=this.resolveOption(this.options.url,files);xhr.open(method,url,true);xhr.timeout=this.resolveOption(this.options.timeout,files);xhr.withCredentials=!!this.options.withCredentials;xhr.onload=function(e){_this15._finishedUploading(files,xhr,e);};xhr.onerror=function(){_this15._handleUploadError(files,xhr);};var progressObj=xhr.upload!=null?xhr.upload:xhr;progressObj.onprogress=function(e){return _this15._updateFilesUploadProgress(files +,xhr,e);};var headers={"Accept":"application/json","Cache-Control":"no-cache","X-Requested-With":"XMLHttpRequest"};if(this.options.headers){Dropzone.extend(headers,this.options.headers);}for(var headerName in headers){var headerValue=headers[headerName];if(headerValue){xhr.setRequestHeader(headerName,headerValue);}}var formData=new FormData();if(this.options.params){var additionalParams=this.options.params;if(typeof additionalParams==='function'){additionalParams=additionalParams.call(this,files,xhr,files[0].upload.chunked?this._getChunk(files[0],xhr):null);}for(var key in additionalParams){var value=additionalParams[key];formData.append(key,value);}}for(var _iterator23=files,_isArray23=true,_i25=0,_iterator23=_isArray23?_iterator23:_iterator23[Symbol.iterator]();;){var _ref22;if(_isArray23){if(_i25>=_iterator23.length)break;_ref22=_iterator23[_i25++];}else{_i25=_iterator23.next();if(_i25.done)break;_ref22=_i25.value;}var _file=_ref22;this.emit("sending",_file,xhr,formData);}if(this. +options.uploadMultiple){this.emit("sendingmultiple",files,xhr,formData);}this._addFormElementData(formData);for(var i=0;i=_iterator24.length)break; +_ref23=_iterator24[_i26++];}else{_i26=_iterator24.next();if(_i26.done)break;_ref23=_i26.value;}var input=_ref23;var inputName=input.getAttribute("name");var inputType=input.getAttribute("type");if(inputType)inputType=inputType.toLowerCase();if(typeof inputName==='undefined'||inputName===null)continue;if(input.tagName==="SELECT"&&input.hasAttribute("multiple")){for(var _iterator25=input.options,_isArray25=true,_i27=0,_iterator25=_isArray25?_iterator25:_iterator25[Symbol.iterator]();;){var _ref24;if(_isArray25){if(_i27>=_iterator25.length)break;_ref24=_iterator25[_i27++];}else{_i27=_iterator25.next();if(_i27.done)break;_ref24=_i27.value;}var option=_ref24;if(option.selected){formData.append(inputName,option.value);}}}else if(!inputType||inputType!=="checkbox"&&inputType!=="radio"||input.checked){formData.append(inputName,input.value);}}}}},{key:"_updateFilesUploadProgress",value:function _updateFilesUploadProgress(files,xhr,e){var progress=void 0;if(typeof e!=='undefined'){progress=100*e +.loaded/e.total;if(files[0].upload.chunked){var file=files[0];var chunk=this._getChunk(file,xhr);chunk.progress=progress;chunk.total=e.total;chunk.bytesSent=e.loaded;var fileProgress=0,fileTotal=void 0,fileBytesSent=void 0;file.upload.progress=0;file.upload.total=0;file.upload.bytesSent=0;for(var i=0;i=_iterator26.length)break;_ref25=_iterator26[_i28++];}else{_i28=_iterator26.next();if(_i28.done)break;_ref25=_i28.value;}var _file2=_ref25;_file2.upload.progress=progress;_file2.upload.total=e. +total;_file2.upload.bytesSent=e.loaded;}}for(var _iterator27=files,_isArray27=true,_i29=0,_iterator27=_isArray27?_iterator27:_iterator27[Symbol.iterator]();;){var _ref26;if(_isArray27){if(_i29>=_iterator27.length)break;_ref26=_iterator27[_i29++];}else{_i29=_iterator27.next();if(_i29.done)break;_ref26=_i29.value;}var _file3=_ref26;this.emit("uploadprogress",_file3,_file3.upload.progress,_file3.upload.bytesSent);}}else{var allFilesFinished=true;progress=100;for(var _iterator28=files,_isArray28=true,_i30=0,_iterator28=_isArray28?_iterator28:_iterator28[Symbol.iterator]();;){var _ref27;if(_isArray28){if(_i30>=_iterator28.length)break;_ref27=_iterator28[_i30++];}else{_i30=_iterator28.next();if(_i30.done)break;_ref27=_i30.value;}var _file4=_ref27;if(_file4.upload.progress!==100||_file4.upload.bytesSent!==_file4.upload.total){allFilesFinished=false;}_file4.upload.progress=progress;_file4.upload.bytesSent=_file4.upload.total;}if(allFilesFinished){return;}for(var _iterator29=files,_isArray29= +true,_i31=0,_iterator29=_isArray29?_iterator29:_iterator29[Symbol.iterator]();;){var _ref28;if(_isArray29){if(_i31>=_iterator29.length)break;_ref28=_iterator29[_i31++];}else{_i31=_iterator29.next();if(_i31.done)break;_ref28=_i31.value;}var _file5=_ref28;this.emit("uploadprogress",_file5,progress,_file5.upload.bytesSent);}}}},{key:"_finishedUploading",value:function _finishedUploading(files,xhr,e){var response=void 0;if(files[0].status===Dropzone.CANCELED){return;}if(xhr.readyState!==4){return;}if(xhr.responseType!=='arraybuffer'&&xhr.responseType!=='blob'){response=xhr.responseText;if(xhr.getResponseHeader("content-type")&&~xhr.getResponseHeader("content-type").indexOf("application/json")){try{response=JSON.parse(response);}catch(error){e=error;response="Invalid JSON response from server.";}}}this._updateFilesUploadProgress(files);if(!(200<=xhr.status&&xhr.status<300)){this._handleUploadError(files,xhr,response);}else{if(files[0].upload.chunked){files[0].upload.finishedChunkUpload(this +._getChunk(files[0],xhr));}else{this._finished(files,response,e);}}}},{key:"_handleUploadError",value:function _handleUploadError(files,xhr,response){if(files[0].status===Dropzone.CANCELED){return;}if(files[0].upload.chunked&&this.options.retryChunks){var chunk=this._getChunk(files[0],xhr);if(chunk.retries++=_iterator30.length)break;_ref29=_iterator30[_i32++];}else{_i32=_iterator30.next();if(_i32.done)break;_ref29=_i32.value;}var file=_ref29;this._errorProcessing(files,response||this.options.dictResponseError.replace("{{statusCode}}",xhr.status),xhr);}}},{key:"submitRequest",value:function submitRequest(xhr,formData,files){xhr.send(formData);}},{key:"_finished",value:function _finished(files, +responseText,e){for(var _iterator31=files,_isArray31=true,_i33=0,_iterator31=_isArray31?_iterator31:_iterator31[Symbol.iterator]();;){var _ref30;if(_isArray31){if(_i33>=_iterator31.length)break;_ref30=_iterator31[_i33++];}else{_i33=_iterator31.next();if(_i33.done)break;_ref30=_i33.value;}var file=_ref30;file.status=Dropzone.SUCCESS;this.emit("success",file,responseText,e);this.emit("complete",file);}if(this.options.uploadMultiple){this.emit("successmultiple",files,responseText,e);this.emit("completemultiple",files);}if(this.options.autoProcessQueue){return this.processQueue();}}},{key:"_errorProcessing",value:function _errorProcessing(files,message,xhr){for(var _iterator32=files,_isArray32=true,_i34=0,_iterator32=_isArray32?_iterator32:_iterator32[Symbol.iterator]();;){var _ref31;if(_isArray32){if(_i34>=_iterator32.length)break;_ref31=_iterator32[_i34++];}else{_i34=_iterator32.next();if(_i34.done)break;_ref31=_i34.value;}var file=_ref31;file.status=Dropzone.ERROR;this.emit("error",file +,message,xhr);this.emit("complete",file);}if(this.options.uploadMultiple){this.emit("errormultiple",files,message,xhr);this.emit("completemultiple",files);}if(this.options.autoProcessQueue){return this.processQueue();}}}],[{key:"uuidv4",value:function uuidv4(){return'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c==='x'?r:r&0x3|0x8;return v.toString(16);});}}]);return Dropzone;}(Emitter);Dropzone.initClass();Dropzone.version="5.5.1";Dropzone.options={};Dropzone.optionsForElement=function(element){if(element.getAttribute("id")){return Dropzone.options[camelize(element.getAttribute("id"))];}else{return undefined;}};Dropzone.instances=[];Dropzone.forElement=function(element){if(typeof element==="string"){element=document.querySelector(element);}if((element!=null?element.dropzone:undefined)==null){throw new Error( +"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");}return element.dropzone;};Dropzone.autoDiscover=true;Dropzone.discover=function(){var dropzones=void 0;if(document.querySelectorAll){dropzones=document.querySelectorAll(".dropzone");}else{dropzones=[];var checkElements=function checkElements(elements){return function(){var result=[];for(var _iterator33=elements,_isArray33=true,_i35=0,_iterator33=_isArray33?_iterator33:_iterator33[Symbol.iterator]();;){var _ref32;if(_isArray33){if(_i35>=_iterator33.length)break;_ref32=_iterator33[_i35++];}else{_i35=_iterator33.next();if(_i35.done)break;_ref32=_i35.value;}var el=_ref32;if(/(^| )dropzone($| )/.test(el.className)){result.push(dropzones.push(el));}else{result.push(undefined);}}return result;}();};checkElements(document.getElementsByTagName("div"));checkElements(document. +getElementsByTagName("form"));}return function(){var result=[];for(var _iterator34=dropzones,_isArray34=true,_i36=0,_iterator34=_isArray34?_iterator34:_iterator34[Symbol.iterator]();;){var _ref33;if(_isArray34){if(_i36>=_iterator34.length)break;_ref33=_iterator34[_i36++];}else{_i36=_iterator34.next();if(_i36.done)break;_ref33=_i36.value;}var dropzone=_ref33;if(Dropzone.optionsForElement(dropzone)!==false){result.push(new Dropzone(dropzone));}else{result.push(undefined);}}return result;}();};Dropzone.blacklistedBrowsers=[/opera.*(Macintosh|Windows Phone).*version\/12/i];Dropzone.isBrowserSupported=function(){var capableBrowser=true;if(window.File&&window.FileReader&&window.FileList&&window.Blob&&window.FormData&&document.querySelector){if(!("classList"in document.createElement("a"))){capableBrowser=false;}else{for(var _iterator35=Dropzone.blacklistedBrowsers,_isArray35=true,_i37=0,_iterator35=_isArray35?_iterator35:_iterator35[Symbol.iterator]();;){var _ref34;if(_isArray35){if(_i37>= +_iterator35.length)break;_ref34=_iterator35[_i37++];}else{_i37=_iterator35.next();if(_i37.done)break;_ref34=_i37.value;}var regex=_ref34;if(regex.test(navigator.userAgent)){capableBrowser=false;continue;}}}}else{capableBrowser=false;}return capableBrowser;};Dropzone.dataURItoBlob=function(dataURI){var byteString=atob(dataURI.split(',')[1]);var mimeString=dataURI.split(',')[0].split(':')[1].split(';')[0];var ab=new ArrayBuffer(byteString.length);var ia=new Uint8Array(ab);for(var i=0,end=byteString.length,asc=0<=end;asc?i<=end:i>=end;asc?i++:i--){ia[i]=byteString.charCodeAt(i);}return new Blob([ab],{type:mimeString});};var without=function without(list,rejectedItem){return list.filter(function(item){return item!==rejectedItem;}).map(function(item){return item;});};var camelize=function camelize(str){return str.replace(/[\-_](\w)/g,function(match){return match.charAt(1).toUpperCase();});};Dropzone.createElement=function(string){var div=document.createElement("div");div.innerHTML=string; +return div.childNodes[0];};Dropzone.elementInside=function(element,container){if(element===container){return true;}while(element=element.parentNode){if(element===container){return true;}}return false;};Dropzone.getElement=function(el,name){var element=void 0;if(typeof el==="string"){element=document.querySelector(el);}else if(el.nodeType!=null){element=el;}if(element==null){throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector or a plain HTML element.");}return element;};Dropzone.getElements=function(els,name){var el=void 0,elements=void 0;if(els instanceof Array){elements=[];try{for(var _iterator36=els,_isArray36=true,_i38=0,_iterator36=_isArray36?_iterator36:_iterator36[Symbol.iterator]();;){if(_isArray36){if(_i38>=_iterator36.length)break;el=_iterator36[_i38++];}else{_i38=_iterator36.next();if(_i38.done)break;el=_i38.value;}elements.push(this.getElement(el,name));}}catch(e){elements=null;}}else if(typeof els==="string"){elements=[];for(var _iterator37= +document.querySelectorAll(els),_isArray37=true,_i39=0,_iterator37=_isArray37?_iterator37:_iterator37[Symbol.iterator]();;){if(_isArray37){if(_i39>=_iterator37.length)break;el=_iterator37[_i39++];}else{_i39=_iterator37.next();if(_i39.done)break;el=_i39.value;}elements.push(el);}}else if(els.nodeType!=null){elements=[els];}if(elements==null||!elements.length){throw new Error("Invalid `"+name+"` option provided. Please provide a CSS selector, a plain HTML element or a list of those.");}return elements;};Dropzone.confirm=function(question,accepted,rejected){if(window.confirm(question)){return accepted();}else if(rejected!=null){return rejected();}};Dropzone.isValidFile=function(file,acceptedFiles){if(!acceptedFiles){return true;}acceptedFiles=acceptedFiles.split(",");var mimeType=file.type;var baseMimeType=mimeType.replace(/\/.*$/,"");for(var _iterator38=acceptedFiles,_isArray38=true,_i40=0,_iterator38=_isArray38?_iterator38:_iterator38[Symbol.iterator]();;){var _ref35;if(_isArray38){if( +_i40>=_iterator38.length)break;_ref35=_iterator38[_i40++];}else{_i40=_iterator38.next();if(_i40.done)break;_ref35=_i40.value;}var validType=_ref35;validType=validType.trim();if(validType.charAt(0)==="."){if(file.name.toLowerCase().indexOf(validType.toLowerCase(),file.name.length-validType.length)!==-1){return true;}}else if(/\/\*$/.test(validType)){if(baseMimeType===validType.replace(/\/.*$/,"")){return true;}}else{if(mimeType===validType){return true;}}}return false;};if(typeof jQuery!=='undefined'&&jQuery!==null){jQuery.fn.dropzone=function(options){return this.each(function(){return new Dropzone(this,options);});};}if(typeof module!=='undefined'&&module!==null){module.exports=Dropzone;}else{window.Dropzone=Dropzone;}Dropzone.ADDED="added";Dropzone.QUEUED="queued";Dropzone.ACCEPTED=Dropzone.QUEUED;Dropzone.UPLOADING="uploading";Dropzone.PROCESSING=Dropzone.UPLOADING;Dropzone.CANCELED="canceled";Dropzone.ERROR="error";Dropzone.SUCCESS="success";var detectVerticalSquash=function +detectVerticalSquash(img){var iw=img.naturalWidth;var ih=img.naturalHeight;var canvas=document.createElement("canvas");canvas.width=1;canvas.height=ih;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);var _ctx$getImageData=ctx.getImageData(1,0,1,ih),data=_ctx$getImageData.data;var sy=0;var ey=ih;var py=ih;while(py>sy){var alpha=data[(py-1)*4+3];if(alpha===0){ey=py;}else{sy=py;}py=ey+sy>>1;}var ratio=py/ih;if(ratio===0){return 1;}else{return ratio;}};var drawImageIOSFix=function drawImageIOSFix(ctx,img,sx,sy,sw,sh,dx,dy,dw,dh){var vertSquashRatio=detectVerticalSquash(img);return ctx.drawImage(img,sx,sy,sw,sh,dx,dy,dw,dh/vertSquashRatio);};var ExifRestore=function(){function ExifRestore(){_classCallCheck(this,ExifRestore);}_createClass(ExifRestore,null,[{key:"initClass",value:function initClass(){this.KEY_STR='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';}},{key:"encode64",value:function encode64(input){var output='';var chr1=undefined;var chr2=undefined;var +chr3='';var enc1=undefined;var enc2=undefined;var enc3=undefined;var enc4='';var i=0;while(true){chr1=input[i++];chr2=input[i++];chr3=input[i++];enc1=chr1>>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}output=output+this.KEY_STR.charAt(enc1)+this.KEY_STR.charAt(enc2)+this.KEY_STR.charAt(enc3)+this.KEY_STR.charAt(enc4);chr1=chr2=chr3='';enc1=enc2=enc3=enc4='';if(!(irawImageArray.length){break;}}return segments;}},{key:"decode64",value:function decode64(input){var output='';var chr1=undefined;var chr2=undefined;var chr3='';var enc1=undefined;var enc2=undefined;var enc3=undefined;var enc4='';var i=0;var buf=[];var base64test=/[^A-Za-z0-9\+\/\=]/g;if(base64test.exec(input)){console.warn('There were invalid base64 characters in the input text.\nValid base64 characters are A-Z, a-z, 0-9, \'+\', \'/\',and \'=\'\nExpect errors in decoding.');}input=input.replace(/[^A-Za-z0-9\+\/\=]/g,'');while(true){enc1=this.KEY_STR.indexOf(input.charAt(i++));enc2=this.KEY_STR.indexOf(input.charAt(i++));enc3=this.KEY_STR.indexOf(input.charAt(i++));enc4=this.KEY_STR.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;buf.push(chr1);if(enc3!==64){buf.push(chr2);}if(enc4!==64){buf.push(chr3);}chr1=chr2=chr3='';enc1=enc2= +enc3=enc4='';if(!(i=0){newClass=newClass.replace(' '+className+' ',' ');}elem.className=newClass.replace(/^\s+|\s+$/g,'');}},escapeHtml=function(str){var div=document.createElement('div');div.appendChild(document.createTextNode(str));return div.innerHTML;},_show=function(elem){elem.style.opacity='';elem.style.display='block';},show=function(elems){if(elems&&!elems.length){return _show(elems);}for(var i=0;i0){setTimeout(tick,interval);}else{elem.style.display='none';}};tick();},fireClick=function(node){if(MouseEvent){var mevt=new MouseEvent('click',{view:window,bubbles:false,cancelable:true});node.dispatchEvent(mevt);}else if(document.createEvent){var evt=document.createEvent('MouseEvents');evt.initEvent('click',false,false);node.dispatchEvent(evt);}else if(document.createEventObject){node.fireEvent('onclick');}else if(typeof node.onclick==='function'){node.onclick();}},stopEventPropagation=function(e){if(typeof e.stopPropagation==='function'){e.stopPropagation();e.preventDefault();}else if(window.event&&window.event.hasOwnProperty('cancelBubble')){window.event.cancelBubble=true;}};var previousActiveElement,previousDocumentClick,previousWindowKeyDown,lastFocusedButton;window.sweetAlertInitialize=function(){var sweetHTML= +'

Title

Text

',sweetWrap=document.createElement('div');sweetWrap.innerHTML=sweetHTML;document.body.appendChild(sweetWrap);} +window.sweetAlert=window.swal=function(){if(arguments[0]===undefined){window.console.error('sweetAlert expects at least 1 attribute!');return false;}var params=extend({},defaultParams);switch(typeof arguments[0]){case'string':params.title=arguments[0];params.text=arguments[1]||'';params.type=arguments[2]||'';break;case'object':if(arguments[0].title===undefined){window.console.error('Missing "title" argument!');return false;}params.title=arguments[0].title;params.text=arguments[0].text||defaultParams.text;params.type=arguments[0].type||defaultParams.type;params.allowOutsideClick=arguments[0].allowOutsideClick||defaultParams.allowOutsideClick;params.showCancelButton=arguments[0].showCancelButton!==undefined?arguments[0].showCancelButton:defaultParams.showCancelButton;params.showConfirmButton=arguments[0].showConfirmButton!==undefined?arguments[0].showConfirmButton:defaultParams.showConfirmButton;params.closeOnConfirm=arguments[0].closeOnConfirm!==undefined?arguments[0].closeOnConfirm: +defaultParams.closeOnConfirm;params.closeOnCancel=arguments[0].closeOnCancel!==undefined?arguments[0].closeOnCancel:defaultParams.closeOnCancel;params.timer=arguments[0].timer||defaultParams.timer;params.confirmButtonText=(defaultParams.showCancelButton)?'Confirm':defaultParams.confirmButtonText;params.confirmButtonText=arguments[0].confirmButtonText||defaultParams.confirmButtonText;params.confirmButtonClass=arguments[0].confirmButtonClass||(arguments[0].type?'btn-'+arguments[0].type:null)||defaultParams.confirmButtonClass;params.cancelButtonText=arguments[0].cancelButtonText||defaultParams.cancelButtonText;params.cancelButtonClass=arguments[0].cancelButtonClass||defaultParams.cancelButtonClass;params.containerClass=arguments[0].containerClass||defaultParams.containerClass;params.titleClass=arguments[0].titleClass||defaultParams.titleClass;params.textClass=arguments[0].textClass||defaultParams.textClass;params.imageUrl=arguments[0].imageUrl||defaultParams.imageUrl;params.imageSize= +arguments[0].imageSize||defaultParams.imageSize;params.doneFunction=arguments[1]||null;break;default:window.console.error('Unexpected type of argument! Expected "string" or "object", got '+typeof arguments[0]);return false;}setParameters(params);fixVerticalPosition();openModal();var modal=getModal();var onButtonEvent=function(e){var target=e.target||e.srcElement,targetedConfirm=(target.className.indexOf('confirm')>-1),modalIsVisible=hasClass(modal,'visible'),doneFunctionExists=(params.doneFunction&&modal.getAttribute('data-has-done-function')==='true');switch(e.type){case("click"):if(targetedConfirm&&doneFunctionExists&&modalIsVisible){params.doneFunction(true);if(params.closeOnConfirm){closeModal();}}else if(doneFunctionExists&&modalIsVisible){var functionAsStr=String(params.doneFunction).replace(/\s/g,'');var functionHandlesCancel=functionAsStr.substring(0,9)==="function("&&functionAsStr.substring(9,10)!==")";if(functionHandlesCancel){params.doneFunction(false);}if(params. +closeOnCancel){closeModal();}}else{closeModal();}break;}};var $buttons=modal.querySelectorAll('button');for(var i=0;i<$buttons.length;i++){$buttons[i].onclick=onButtonEvent;}previousDocumentClick=document.onclick;document.onclick=function(e){var target=e.target||e.srcElement;var clickedOnModal=(modal===target),clickedOnModalChild=isDescendant(modal,e.target),modalIsVisible=hasClass(modal,'visible'),outsideClickIsAllowed=modal.getAttribute('data-allow-ouside-click')==='true';if(!clickedOnModal&&!clickedOnModalChild&&modalIsVisible&&outsideClickIsAllowed){closeModal();}};var $okButton=modal.querySelector('button.confirm'),$cancelButton=modal.querySelector('button.cancel'),$modalButtons=modal.querySelectorAll('button:not([type=hidden])');function handleKeyDown(e){var keyCode=e.keyCode||e.which;if([9,13,32,27].indexOf(keyCode)===-1){return;}var $targetElement=e.target||e.srcElement;var btnIndex=-1;for(var i=0;i<$modalButtons.length;i++){if($targetElement===$modalButtons[i]){btnIndex=i; +break;}}if(keyCode===9){if(btnIndex===-1){$targetElement=$okButton;}else{if(btnIndex===$modalButtons.length-1){$targetElement=$modalButtons[0];}else{$targetElement=$modalButtons[btnIndex+1];}}stopEventPropagation(e);$targetElement.focus();}else{if(keyCode===13||keyCode===32){if(btnIndex===-1){$targetElement=$okButton;}else{$targetElement=undefined;}}else if(keyCode===27&&!($cancelButton.hidden||$cancelButton.style.display==='none')){$targetElement=$cancelButton;}else{$targetElement=undefined;}if($targetElement!==undefined){fireClick($targetElement,e);}}}previousWindowKeyDown=window.onkeydown;window.onkeydown=handleKeyDown;function handleOnBlur(e){var $targetElement=e.target||e.srcElement,$focusElement=e.relatedTarget,modalIsVisible=hasClass(modal,'visible'),bootstrapModalIsVisible=document.querySelector('.control-popup.modal')||false;if(bootstrapModalIsVisible){return;}if(modalIsVisible){var btnIndex=-1;if($focusElement!==null){for(var i=0;i<$modalButtons.length;i++){if($focusElement +===$modalButtons[i]){btnIndex=i;break;}}if(btnIndex===-1){$targetElement.focus();}}else{lastFocusedButton=$targetElement;}}}$okButton.onblur=handleOnBlur;$cancelButton.onblur=handleOnBlur;window.onfocus=function(){window.setTimeout(function(){if(lastFocusedButton!==undefined){lastFocusedButton.focus();lastFocusedButton=undefined;}},0);};};window.swal.setDefaults=function(userParams){if(!userParams){throw new Error('userParams is required');}if(typeof userParams!=='object'){throw new Error('userParams has to be a object');}extend(defaultParams,userParams);};window.swal.close=function(){closeModal();} +function setParameters(params){var modal=getModal();var $title=modal.querySelector('h2'),$text=modal.querySelector('p'),$cancelBtn=modal.querySelector('button.cancel'),$confirmBtn=modal.querySelector('button.confirm');$title.innerHTML=escapeHtml(params.title).split("\n").join("
");$text.innerHTML=escapeHtml(params.text||'').split("\n").join("
");if(params.text){show($text);}hide(modal.querySelectorAll('.icon'));if(params.type){var validType=false;for(var i=0;iw)&&w>0){nw=w;nh=(w/$obj.width())*$obj.height();}if((nh>h)&&h>0){nh=h;nw=(h/$obj.height())*$obj.width();}xscale=$obj.width()/nw;yscale=$obj.height()/nh;$obj.width(nw).height(nh);}function unscale(c){return{x:c.x*xscale,y:c.y*yscale,x2:c.x2*xscale,y2:c.y2*yscale,w:c.w*xscale,h:c.h*yscale};}function doneSelect(pos){var c=Coords.getFixed();if((c.w>options.minSelect[0])&&(c.h>options.minSelect[1])){Selection.enableHandles();Selection.done();}else{Selection.release();}Tracker.setCursor(options. +allowSelect?'crosshair':'default');}function newSelection(e){if(options.disabled){return false;}if(!options.allowSelect){return false;}btndown=true;docOffset=getPos($img);Selection.disableHandles();Tracker.setCursor('crosshair');var pos=mouseAbs(e);Coords.setPressed(pos);Selection.update();Tracker.activateHandlers(selectDrag,doneSelect,e.type.substring(0,5)==='touch');KeyManager.watchKeys();e.stopPropagation();e.preventDefault();return false;}function selectDrag(pos){Coords.setCurrent(pos);Selection.update();}function newTracker(){var trk=$('
').addClass(cssClass('tracker'));if(is_msie){trk.css({opacity:0,backgroundColor:'white'});}return trk;}if(typeof(obj)!=='object'){obj=$(obj)[0];}if(typeof(opt)!=='object'){opt={};}setOptions(opt);var img_css={border:'none',visibility:'visible',margin:0,padding:0,position:'absolute',top:0,left:0};var $origimg=$(obj),img_mode=true;if(obj.tagName=='IMG'){if($origimg[0].width!=0&&$origimg[0].height!=0){$origimg.width($origimg[0].width); +$origimg.height($origimg[0].height);}else{var tempImage=new Image();tempImage.src=$origimg[0].src;$origimg.width(tempImage.width);$origimg.height(tempImage.height);}var $img=$origimg.clone().removeAttr('id').css(img_css).show();$img.width($origimg.width());$img.height($origimg.height());$origimg.after($img).hide();}else{$img=$origimg.css(img_css).show();img_mode=false;if(options.shade===null){options.shade=true;}}presize($img,options.boxWidth,options.boxHeight);var boundx=$img.width(),boundy=$img.height(),$div=$('
').width(boundx).height(boundy).addClass(cssClass('holder')).css({position:'relative',backgroundColor:options.bgColor}).insertAfter($origimg).append($img);if(options.addClass){$div.addClass(options.addClass);}var $img2=$('
'),$img_holder=$('
').width('100%').height('100%').css({zIndex:310,position:'absolute',overflow:'hidden'}),$hdl_holder=$('
').width('100%').height('100%').css('zIndex',320),$sel=$('
').css({position:'absolute',zIndex:600}). +dblclick(function(){var c=Coords.getFixed();options.onDblClick.call(api,c);}).insertBefore($img).append($img_holder,$hdl_holder);if(img_mode){$img2=$('').attr('src',$img.attr('src')).css(img_css).width(boundx).height(boundy),$img_holder.append($img2);}if(ie6mode){$sel.css({overflowY:'hidden'});}var bound=options.boundary;var $trk=newTracker().width(boundx+(bound*2)).height(boundy+(bound*2)).css({position:'absolute',top:px(-bound),left:px(-bound),zIndex:290}).mousedown(newSelection);var bgcolor=options.bgColor,bgopacity=options.bgOpacity,xlimit,ylimit,xmin,ymin,xscale,yscale,enabled=true,btndown,animating,shift_down;docOffset=getPos($img);var Touch=(function(){function hasTouchSupport(){var support={},events=['touchstart','touchmove','touchend'],el=document.createElement('div'),i;try{for(i=0;ix1+ox){ox-=ox+x1;}if(0>y1+oy){oy-=oy+y1;}if(boundyboundx +){xx=boundx;h=Math.abs((xx-x1)/aspect);yy=rh<0?y1-h:h+y1;}}else{xx=x2;h=rwa/aspect;yy=rh<0?y1-h:y1+h;if(yy<0){yy=0;w=Math.abs((yy-y1)*aspect);xx=rw<0?x1-w:w+x1;}else if(yy>boundy){yy=boundy;w=Math.abs(yy-y1)*aspect;xx=rw<0?x1-w:w+x1;}}if(xx>x1){if(xx-x1max_x){xx=x1+max_x;}if(yy>y1){yy=y1+(xx-x1)/aspect;}else{yy=y1-(xx-x1)/aspect;}}else if(xxmax_x){xx=x1-max_x;}if(yy>y1){yy=y1+(x1-xx)/aspect;}else{yy=y1-(x1-xx)/aspect;}}if(xx<0){x1-=xx;xx=0;}else if(xx>boundx){x1-=xx-boundx;xx=boundx;}if(yy<0){y1-=yy;yy=0;}else if(yy>boundy){y1-=yy-boundy;yy=boundy;}return makeObj(flipCoords(x1,y1,xx,yy));}function rebound(p){if(p[0]<0)p[0]=0;if(p[1]<0)p[1]=0;if(p[0]>boundx)p[0]=boundx;if(p[1]>boundy)p[1]=boundy;return[Math.round(p[0]),Math.round(p[1])];}function flipCoords(x1,y1,x2,y2){var xa=x1,xb=x2,ya=y1,yb=y2;if(x2xlimit)){x2=(xsize>0)?(x1+xlimit):(x1-xlimit);}if(ylimit&&(Math.abs(ysize)>ylimit)){y2=(ysize>0)?(y1+ylimit):(y1-ylimit);}if(ymin/yscale&&(Math.abs(ysize)0)?(y1+ymin/yscale):(y1-ymin/yscale);}if(xmin/xscale&&(Math.abs(xsize)0)?(x1+xmin/xscale):(x1-xmin/xscale);}if(x1<0){x2-=x1;x1-=x1;}if(y1<0){y2-=y1;y1-=y1;}if(x2<0){x1-=x2;x2-=x2;}if(y2<0){y1-=y2;y2-=y2;}if(x2>boundx){delta=x2-boundx;x1-=delta;x2-=delta;}if(y2>boundy){delta=y2-boundy;y1-=delta;y2-=delta;}if(x1>boundx){delta=x1-boundy;y2-=delta;y1-=delta;}if(y1>boundy){delta=y1-boundy;y2-=delta;y1-=delta;}return makeObj(flipCoords(x1,y1,x2,y2));}function makeObj(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]};}return{flipCoords:flipCoords,setPressed:setPressed,setCurrent:setCurrent,getOffset:getOffset,moveOffset:moveOffset,getCorner:getCorner,getFixed:getFixed};}());var Shade=(function(){var enabled=false,holder=$('
').css({ +position:'absolute',zIndex:240,opacity:0}),shades={top:createShade(),left:createShade().height(boundy),right:createShade().height(boundy),bottom:createShade()};function resizeShades(w,h){shades.left.css({height:px(h)});shades.right.css({height:px(h)});}function updateAuto(){return updateShade(Coords.getFixed());}function updateShade(c){shades.top.css({left:px(c.x),width:px(c.w),height:px(c.y)});shades.bottom.css({top:px(c.y2),left:px(c.x),width:px(c.w),height:px(boundy-c.y2)});shades.right.css({left:px(c.x2),width:px(boundx-c.x2)});shades.left.css({width:px(c.x)});}function createShade(){return $('
').css({position:'absolute',backgroundColor:options.shadeColor||options.bgColor}).appendTo(holder);}function enableShade(){if(!enabled){enabled=true;holder.insertBefore($img);updateAuto();Selection.setBgOpacity(1,0,1);$img2.hide();setBgColor(options.shadeColor||options.bgColor,1);if(Selection.isAwake()){setOpacity(options.bgOpacity,1);}else setOpacity(1,1);}}function setBgColor(color, +now){colorChangeMacro(getShades(),color,now);}function disableShade(){if(enabled){holder.remove();$img2.show();enabled=false;if(Selection.isAwake()){Selection.setBgOpacity(options.bgOpacity,1,1);}else{Selection.setBgOpacity(1,1,1);Selection.disableHandles();}colorChangeMacro($div,0,1);}}function setOpacity(opacity,now){if(enabled){if(options.bgFade&&!now){holder.animate({opacity:1-opacity},{queue:false,duration:options.fadeTime});}else holder.css({opacity:1-opacity});}}function refreshAll(){options.shade?enableShade():disableShade();if(Selection.isAwake())setOpacity(options.bgOpacity);}function getShades(){return holder.children();}return{update:updateAuto,updateRaw:updateShade,getShades:getShades,setBgColor:setBgColor,enable:enableShade,disable:disableShade,resize:resizeShades,refresh:refreshAll,opacity:setOpacity};}());var Selection=(function(){var awake,hdep=370,borders={},handle={},dragbar={},seehandles=false;function insertBorder(type){var jq=$('
').css({position:'absolute', +opacity:options.borderOpacity}).addClass(cssClass(type));$img_holder.append(jq);return jq;}function dragDiv(ord,zi){var jq=$('
').mousedown(createDragger(ord)).css({cursor:ord+'-resize',position:'absolute',zIndex:zi}).addClass('ord-'+ord);if(Touch.support){jq.bind('touchstart.jcrop',Touch.createDragger(ord));}$hdl_holder.append(jq);return jq;}function insertHandle(ord){var hs=options.handleSize,div=dragDiv(ord,hdep++).css({opacity:options.handleOpacity}).addClass(cssClass('handle'));if(hs){div.width(hs).height(hs);}return div;}function insertDragbar(ord){return dragDiv(ord,hdep++).addClass('jcrop-dragbar');}function createDragbars(li){var i;for(i=0;i').css({position:'fixed',left:'-120px',width:'12px'}).addClass('jcrop-keymgr'),$keywrap=$('
').css({position:'absolute',overflow:'hidden'}).append($keymgr);function watchKeys(){if(options.keySupport){$keymgr.show();$keymgr.focus();}}function onBlur(e){$keymgr.hide();}function doNudge(e,x,y){if(options.allowMove){Coords.moveOffset([x,y]);Selection.updateVisible(true);}e.preventDefault();e. +stopPropagation();}function parseKey(e){if(e.ctrlKey||e.metaKey){return true;}shift_down=e.shiftKey?true:false;var nudge=shift_down?10:1;switch(e.keyCode){case 37:doNudge(e,-nudge,0);break;case 39:doNudge(e,nudge,0);break;case 38:doNudge(e,0,-nudge);break;case 40:doNudge(e,0,nudge);break;case 27:if(options.allowSelect)Selection.release();break;case 9:return true;}return false;}if(options.keySupport){$keymgr.keydown(parseKey).blur(onBlur);if(ie6mode||!options.fixedSupport){$keymgr.css({position:'absolute',left:'-20px'});$keywrap.append($keymgr).insertBefore($img);}else{$keymgr.insertBefore($img);}}return{watchKeys:watchKeys};}());function setClass(cname){$div.removeClass().addClass(cssClass('holder')).addClass(cname);}function animateTo(a,callback){var x1=a[0]/xscale,y1=a[1]/yscale,x2=a[2]/xscale,y2=a[3]/yscale;if(animating){return;}var animto=Coords.flipCoords(x1,y1,x2,y2),c=Coords.getFixed(),initcr=[c.x,c.y,c.x2,c.y2],animat=initcr,interv=options.animationDelay,ix1=animto[0]-initcr[0] +,iy1=animto[1]-initcr[1],ix2=animto[2]-initcr[2],iy2=animto[3]-initcr[3],pcent=0,velocity=options.swingSpeed;x1=animat[0];y1=animat[1];x2=animat[2];y2=animat[3];Selection.animMode(true);var anim_timer;function queueAnimator(){window.setTimeout(animator,interv);}var animator=(function(){return function(){pcent+=(100-pcent)/velocity;animat[0]=Math.round(x1+((pcent/100)*ix1));animat[1]=Math.round(y1+((pcent/100)*iy1));animat[2]=Math.round(x2+((pcent/100)*ix2));animat[3]=Math.round(y2+((pcent/100)*iy2));if(pcent>=99.8){pcent=100;}if(pcent<100){setSelectRaw(animat);queueAnimator();}else{Selection.done();Selection.animMode(false);if(typeof(callback)==='function'){callback.call(api);}}};}());queueAnimator();}function setSelect(rect){setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale]);options.onSelect.call(api,unscale(Coords.getFixed()));Selection.enableHandles();}function setSelectRaw(l){Coords.setPressed([l[0],l[1]]);Coords.setCurrent([l[2],l[3]]);Selection.update();} +function tellSelect(){return unscale(Coords.getFixed());}function tellScaled(){return Coords.getFixed();}function setOptionsNew(opt){setOptions(opt);interfaceUpdate();}function disableCrop(){options.disabled=true;Selection.disableHandles();Selection.setCursor('default');Tracker.setCursor('default');}function enableCrop(){options.disabled=false;interfaceUpdate();}function cancelCrop(){Selection.done();Tracker.activateHandlers(null,null);}function destroy(){$(document).unbind('touchstart.jcrop-ios',Touch.fixTouchSupport);$div.remove();$origimg.show();$origimg.css('visibility','visible');$(obj).removeData('Jcrop');}function setImage(src,callback){Selection.release();disableCrop();var img=new Image();img.onload=function(){var iw=img.width;var ih=img.height;var bw=options.boxWidth;var bh=options.boxHeight;$img.width(iw).height(ih);$img.attr('src',src);$img2.attr('src',src);presize($img,bw,bh);boundx=$img.width();boundy=$img.height();$img2.width(boundx).height(boundy);$trk.width(boundx+( +bound*2)).height(boundy+(bound*2));$div.width(boundx).height(boundy);Shade.resize(boundx,boundy);enableCrop();if(typeof(callback)==='function'){callback.call(api);}};img.src=src;}function colorChangeMacro($obj,color,now){var mycolor=color||options.bgColor;if(options.bgFade&&supportsColorFade()&&options.fadeTime&&!now){$obj.animate({backgroundColor:mycolor},{queue:false,duration:options.fadeTime});}else{$obj.css('backgroundColor',mycolor);}}function interfaceUpdate(alt){if(options.allowResize){if(alt){Selection.enableOnly();}else{Selection.enableHandles();}}else{Selection.disableHandles();}Tracker.setCursor(options.allowSelect?'crosshair':'default');Selection.setCursor(options.allowMove?'move':'default');if(options.hasOwnProperty('trueSize')){xscale=options.trueSize[0]/boundx;yscale=options.trueSize[1]/boundy;}if(options.hasOwnProperty('setSelect')){setSelect(options.setSelect);Selection.done();delete(options.setSelect);}Shade.refresh();if(options.bgColor!=bgcolor){colorChangeMacro( +options.shade?Shade.getShades():$div,options.shade?(options.shadeColor||options.bgColor):options.bgColor);bgcolor=options.bgColor;}if(bgopacity!=options.bgOpacity){bgopacity=options.bgOpacity;if(options.shade)Shade.refresh();else Selection.setBgOpacity(bgopacity);}xlimit=options.maxSize[0]||0;ylimit=options.maxSize[1]||0;xmin=options.minSize[0]||0;ymin=options.minSize[1]||0;if(options.hasOwnProperty('outerImage')){$img.attr('src',options.outerImage);delete(options.outerImage);}Selection.refresh();}if(Touch.support)$trk.bind('touchstart.jcrop',Touch.newSelection);$hdl_holder.hide();interfaceUpdate(true);var api={setImage:setImage,animateTo:animateTo,setSelect:setSelect,setOptions:setOptionsNew,tellSelect:tellSelect,tellScaled:tellScaled,setClass:setClass,disable:disableCrop,enable:enableCrop,cancel:cancelCrop,release:Selection.release,destroy:destroy,focus:KeyManager.watchKeys,getBounds:function(){return[boundx*xscale,boundy*yscale];},getWidgetSize:function(){return[boundx,boundy];}, +getScaleFactor:function(){return[xscale,yscale];},getOptions:function(){return options;},ui:{holder:$div,selection:$sel}};if(is_msie)$div.bind('selectstart',function(){return false;});$origimg.data('Jcrop',api);return api;};$.fn.Jcrop=function(options,callback){var api;this.each(function(){if($(this).data('Jcrop')){if(options==='api')return $(this).data('Jcrop');else $(this).data('Jcrop').setOptions(options);}else{if(this.tagName=='IMG')$.Jcrop.Loader(this,function(){$(this).css({display:'block',visibility:'hidden'});api=$.Jcrop(this,options);if($.isFunction(callback))callback.call(api);});else{$(this).css({display:'block',visibility:'hidden'});api=$.Jcrop(this,options);if($.isFunction(callback))callback.call(api);}}});return this;};$.Jcrop.Loader=function(imgobj,success,error){var $img=$(imgobj),img=$img[0];function completeCheck(){if(img.complete){$img.unbind('.jcloader');if($.isFunction(success))success.call(img);}else window.setTimeout(completeCheck,50);}$img.bind('load.jcloader', +completeCheck).bind('error.jcloader',function(e){$img.unbind('.jcloader');if($.isFunction(error))error.call(img);});if(img.complete&&$.isFunction(success)){$img.unbind('.jcloader');success.call(img);}};$.Jcrop.defaults={allowSelect:true,allowMove:true,allowResize:true,trackDocument:true,baseClass:'jcrop',addClass:null,bgColor:'black',bgOpacity:0.6,bgFade:false,borderOpacity:0.4,handleOpacity:0.5,handleSize:null,aspectRatio:0,keySupport:true,createHandles:['n','s','e','w','nw','ne','se','sw'],createDragbars:['n','s','e','w'],createBorders:['n','s','e','w'],drawBorders:true,dragEdges:true,fixedSupport:true,touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}};}(jQuery));!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;(function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92) +return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a=b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;ah[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c. +push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,q,"'\"`"]):d +.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com",/^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+s+ +")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b( +a,c){var d=c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y, +"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"],O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E, +"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/,V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments: +!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", +/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}),["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords: +"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]);p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="
"+a+"
";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1});return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i') this.registerHandlers()} MediaManagerPopup.prototype.registerHandlers=function(){this.$popupRootElement.one('hide.oc.popup',this.proxy(this.onPopupHidden)) @@ -548,50 +148,36 @@ MediaManagerPopup.prototype.unregisterHandlers=function(){this.$popupElement.off this.$popupRootElement.off('popupcommand',this.proxy(this.onPopupCommand))} MediaManagerPopup.prototype.show=function(){var data={bottomToolbar:this.options.bottomToolbar?1:0,cropAndInsertButton:this.options.cropAndInsertButton?1:0} this.$popupRootElement.popup({extraData:data,size:'adaptive',adaptiveHeight:true,handler:this.options.alias+'::onLoadPopup'})} -MediaManagerPopup.prototype.hide=function(){if(this.$popupElement) -this.$popupElement.trigger('close.oc.popup')} +MediaManagerPopup.prototype.hide=function(){if(this.$popupElement)this.$popupElement.trigger('close.oc.popup')} MediaManagerPopup.prototype.getMediaManagerElement=function(){return this.$popupElement.find('[data-control="media-manager"]')} MediaManagerPopup.prototype.insertMedia=function(){var items=this.getMediaManagerElement().mediaManager('getSelectedItems') -if(this.options.onInsert!==undefined) -this.options.onInsert.call(this,items)} -MediaManagerPopup.prototype.insertCroppedImage=function(imageItem){if(this.options.onInsert!==undefined) -this.options.onInsert.call(this,[imageItem])} +if(this.options.onInsert!==undefined)this.options.onInsert.call(this,items)} +MediaManagerPopup.prototype.insertCroppedImage=function(imageItem){if(this.options.onInsert!==undefined)this.options.onInsert.call(this,[imageItem])} MediaManagerPopup.prototype.onPopupHidden=function(event,element,popup){var mediaManager=this.getMediaManagerElement() mediaManager.mediaManager('dispose') mediaManager.remove() $(document).trigger('mousedown') this.dispose() -if(this.options.onClose!==undefined) -this.options.onClose.call(this)} +if(this.options.onClose!==undefined)this.options.onClose.call(this)} MediaManagerPopup.prototype.onPopupShown=function(event,element,popup){this.$popupElement=popup this.$popupElement.on('popupcommand',this.proxy(this.onPopupCommand)) this.getMediaManagerElement().mediaManager('selectFirstItem')} MediaManagerPopup.prototype.onPopupCommand=function(ev,command,param){switch(command){case'insert':this.insertMedia() break;case'insert-cropped':this.insertCroppedImage(param) -break;} -return false} +break;}return false} MediaManagerPopup.DEFAULTS={alias:undefined,bottomToolbar:true,cropAndInsertButton:false,onInsert:undefined,onClose:undefined} -$.wn.mediaManager.popup=MediaManagerPopup}(window.jQuery);if($.wn===undefined) -$.wn={} -if($.oc===undefined) -$.oc=$.wn -if($.wn.langMessages===undefined) -$.wn.langMessages={} -$.wn.lang=(function(lang,messages){lang.load=function(locale){if(messages[locale]===undefined){messages[locale]={}} -lang.loadedMessages=messages[locale]} +$.wn.mediaManager.popup=MediaManagerPopup}(window.jQuery);if($.wn===undefined)$.wn={} +if($.oc===undefined)$.oc=$.wn +if($.wn.langMessages===undefined)$.wn.langMessages={} +$.wn.lang=(function(lang,messages){lang.load=function(locale){if(messages[locale]===undefined){messages[locale]={}}lang.loadedMessages=messages[locale]} lang.get=function(name,defaultValue){if(!name)return var result=lang.loadedMessages if(!defaultValue)defaultValue=name $.each(name.split('.'),function(index,value){if(result[value]===undefined){result=defaultValue -return false} -result=result[value]}) +return false}result=result[value]}) return result} -if(lang.locale===undefined){lang.locale=$('html').attr('lang')||'en'} -if(lang.loadedMessages===undefined){lang.load(lang.locale)} -return lang})($.wn.lang||{},$.wn.langMessages);(function($){if($.wn===undefined) -$.wn={} -if($.oc===undefined) -$.oc=$.wn +if(lang.locale===undefined){lang.locale=$('html').attr('lang')||'en'}if(lang.loadedMessages===undefined){lang.load(lang.locale)}return lang})($.wn.lang||{},$.wn.langMessages);(function($){if($.wn===undefined)$.wn={} +if($.oc===undefined)$.oc=$.wn $.wn.alert=function alert(message){swal({title:message,confirmButtonClass:'btn-primary'})} $.wn.confirm=function confirm(message,callback){swal({title:message,showCancelButton:true,confirmButtonClass:'btn-primary'},callback)}})(jQuery);$(window).on('ajaxErrorMessage',function(event,message){if(!message)return $.wn.alert(message) @@ -603,10 +189,7 @@ return true}) $(document).ready(function(){if(!window.swal)return var swal=window.swal window.sweetAlert=window.swal=function(message,callback){if(typeof message==='object'){message.confirmButtonText=message.confirmButtonText||$.wn.lang.get('alert.confirm_button_text') -message.cancelButtonText=message.cancelButtonText||$.wn.lang.get('alert.cancel_button_text')} -else{message={title:message,confirmButtonText:$.wn.lang.get('alert.confirm_button_text'),cancelButtonText:$.wn.lang.get('alert.cancel_button_text')}} -swal(message,callback)}}) -+function($){"use strict";var Base=$.wn.foundation.base,BaseProto=Base.prototype +message.cancelButtonText=message.cancelButtonText||$.wn.lang.get('alert.cancel_button_text')}else{message={title:message,confirmButtonText:$.wn.lang.get('alert.confirm_button_text'),cancelButtonText:$.wn.lang.get('alert.cancel_button_text')}}swal(message,callback)}})+function($){"use strict";var Base=$.wn.foundation.base,BaseProto=Base.prototype var Scrollpad=function(element,options){this.$el=$(element) this.scrollbarElement=null this.dragHandleElement=null @@ -655,41 +238,31 @@ this.dragHandleElement.removeEventListener('mousedown',this.proxy(this.onStartDr document.removeEventListener('mousemove',this.proxy(this.onMouseMove)) document.removeEventListener('mouseup',this.proxy(this.onEndDrag))} Scrollpad.prototype.setScrollContentSize=function(){var scrollbarSize=this.getScrollbarSize() -if(this.options.direction=='vertical') -this.scrollContentElement.setAttribute('style','margin-right: -'+scrollbarSize+'px') -else -this.scrollContentElement.setAttribute('style','margin-bottom: -'+scrollbarSize+'px')} -Scrollpad.prototype.getScrollbarSize=function(){if(this.scrollbarSize!==null) -return this.scrollbarSize +if(this.options.direction=='vertical')this.scrollContentElement.setAttribute('style','margin-right: -'+scrollbarSize+'px') +else this.scrollContentElement.setAttribute('style','margin-bottom: -'+scrollbarSize+'px')} +Scrollpad.prototype.getScrollbarSize=function(){if(this.scrollbarSize!==null)return this.scrollbarSize var testerElement=document.createElement('div') testerElement.setAttribute('class','scrollpad-scrollbar-size-tester') testerElement.appendChild(document.createElement('div')) document.body.appendChild(testerElement) var width=testerElement.offsetWidth,innerWidth=testerElement.querySelector('div').offsetWidth document.body.removeChild(testerElement) -if(width===innerWidth&&navigator.userAgent.toLowerCase().indexOf('firefox')>-1) -return this.scrollbarSize=17 +if(width===innerWidth&&navigator.userAgent.toLowerCase().indexOf('firefox')>-1)return this.scrollbarSize=17 return this.scrollbarSize=width-innerWidth} Scrollpad.prototype.updateScrollbarSize=function(){this.scrollbarElement.removeAttribute('data-hidden') -var contentSize=this.options.direction=='vertical'?this.contentElement.scrollHeight:this.contentElement.scrollWidth,scrollOffset=this.options.direction=='vertical'?this.scrollContentElement.scrollTop:this.scrollContentElement.scrollLeft,scrollbarSize=this.options.direction=='vertical'?this.scrollbarElement.offsetHeight:this.scrollbarElement.offsetWidth,scrollbarRatio=scrollbarSize/contentSize,handleOffset=Math.round(scrollbarRatio*scrollOffset)+2,handleSize=Math.floor(scrollbarRatio*(scrollbarSize-2))-2;if(scrollbarSize1) -dragPerc=1 +if(dragPerc>1)dragPerc=1 var scrollPos=dragPerc*contentSize;this.scrollContentElement[scrollAttr]=scrollPos} Scrollpad.prototype.onEndDrag=function(ev){document.removeEventListener('mousemove',this.proxy(this.onMouseMove)) document.removeEventListener('mouseup',this.proxy(this.onEndDrag))} @@ -734,21 +306,17 @@ self.wrapper.css({'position':'absolute','min-width':self.wrapper.width(),'height self.body.addClass(self.options.bodyMenuOpenClass) self.menuContainer.css('display','block') self.wrapper.animate({'left':self.options.menuWidth},{duration:200,queue:false}) -self.menuPanel.animate({'width':self.options.menuWidth},{duration:200,queue:false,complete:function(){self.menuElement.css('width',self.options.menuWidth)}})} -else{closeMenu()} -return false}) +self.menuPanel.animate({'width':self.options.menuWidth},{duration:200,queue:false,complete:function(){self.menuElement.css('width',self.options.menuWidth)}})}else{closeMenu()}return false}) this.wrapper.click(function(){if(self.body.hasClass(self.options.bodyMenuOpenClass)){closeMenu() return false}}) $(window).resize(function(){if(self.body.hasClass(self.options.bodyMenuOpenClass)){if($(window).width()>self.breakpoint){hideMenu()}}}) this.menuElement.dragScroll({vertical:true,useNative:true,start:function(){self.menuElement.addClass('drag')},stop:function(){self.menuElement.removeClass('drag')},scrollClassContainer:self.menuPanel,scrollMarkerContainer:self.menuContainer}) -this.menuElement.on('click',function(){if(self.menuElement.hasClass('drag')) -return false}) +this.menuElement.on('click',function(){if(self.menuElement.hasClass('drag'))return false}) function hideMenu(){self.body.removeClass(self.options.bodyMenuOpenClass) self.wrapper.css({'position':'static','min-width':0,'right':0,'height':'100%'}) self.menuPanel.css('width',0) self.menuElement.css('width','auto') -self.menuContainer.css('display','none')} -function closeMenu(){self.wrapper.animate({'left':0},{duration:200,queue:false}) +self.menuContainer.css('display','none')}function closeMenu(){self.wrapper.animate({'left':0},{duration:200,queue:false}) self.menuPanel.animate({'width':0},{duration:200,queue:false,complete:hideMenu}) self.menuElement.animate({'width':0},{duration:200,queue:false})}} VerticalMenu.DEFAULTS={menuWidth:230,breakpoint:769,bodyMenuOpenClass:'mainmenu-open',collapsedMenuClass:'mainmenu-collapsed',contentWrapper:'#layout-canvas'} @@ -760,15 +328,12 @@ if(!data)$this.data('oc.verticalMenu',(data=new VerticalMenu(this,toggleSelector if(typeof option=='string')data[option].call($this)})} $.fn.verticalMenu.Constructor=VerticalMenu $.fn.verticalMenu.noConflict=function(){$.fn.verticalMenu=old -return this}}(window.jQuery);(function($){$(document).ready(function(){$('nav.navbar').each(function(){var -navbar=$(this),nav=$('ul.nav',navbar),collapseMode=navbar.hasClass('navbar-mode-collapse'),isMobile=$('html').hasClass('mobile') +return this}}(window.jQuery);(function($){$(document).ready(function(){$('nav.navbar').each(function(){var navbar=$(this),nav=$('ul.nav',navbar),collapseMode=navbar.hasClass('navbar-mode-collapse'),isMobile=$('html').hasClass('mobile') nav.verticalMenu($('a.menu-toggle',navbar),{breakpoint:collapseMode?Infinity:769}) $('li.with-tooltip:not(.active) > a',navbar).tooltip({container:'body',placement:'bottom',template:''}).on('show.bs.tooltip',function(e){if(isMobile)e.preventDefault()}) var dragScroll=$('[data-control=toolbar]',navbar).data('oc.dragScroll') -if(dragScroll){dragScroll.goToElement($('ul.nav > li.active',navbar),undefined,{'duration':0})}})})})(jQuery);+function($){"use strict";if($.wn===undefined) -$.wn={} -if($.oc===undefined) -$.oc=$.wn +if(dragScroll){dragScroll.goToElement($('ul.nav > li.active',navbar),undefined,{'duration':0})}})})})(jQuery);+function($){"use strict";if($.wn===undefined)$.wn={} +if($.oc===undefined)$.oc=$.wn var SideNav=function(element,options){this.options=options this.$el=$(element) this.$list=$('ul',this.$el) @@ -779,8 +344,7 @@ SideNav.prototype.init=function(){var self=this this.$list.dragScroll({vertical:true,useNative:true,start:function(){self.$list.addClass('drag')},stop:function(){self.$list.removeClass('drag')},scrollClassContainer:self.$el,scrollMarkerContainer:self.$el}) this.$list.on('click',function(){if(self.$list.hasClass('drag')){return false}})} SideNav.prototype.unsetActiveItem=function(itemId){this.$items.removeClass(this.options.activeClass)} -SideNav.prototype.setActiveItem=function(itemId){if(!itemId){return} -this.$items.removeClass(this.options.activeClass).filter('[data-menu-item='+itemId+']').addClass(this.options.activeClass)} +SideNav.prototype.setActiveItem=function(itemId){if(!itemId){return}this.$items.removeClass(this.options.activeClass).filter('[data-menu-item='+itemId+']').addClass(this.options.activeClass)} SideNav.prototype.setCounter=function(itemId,value){var $counter=$('span.counter[data-menu-id="'+itemId+'"]',this.$el) $counter.removeClass('empty') $counter.toggleClass('empty',value==0) @@ -788,8 +352,7 @@ $counter.text(value) return this} SideNav.prototype.increaseCounter=function(itemId,value){var $counter=$('span.counter[data-menu-id="'+itemId+'"]',this.$el) var originalValue=parseInt($counter.text()) -if(isNaN(originalValue)) -originalValue=0 +if(isNaN(originalValue))originalValue=0 var newValue=value+originalValue $counter.toggleClass('empty',newValue==0) $counter.text(newValue) @@ -804,27 +367,22 @@ var options=$.extend({},SideNav.DEFAULTS,$this.data(),typeof option=='object'&&o if(!data)$this.data('oc.sideNav',(data=new SideNav(this,options))) if(typeof option=='string')result=data[option].apply(data,args) if(typeof result!='undefined')return false -if($.wn.sideNav===undefined) -$.wn.sideNav=data}) +if($.wn.sideNav===undefined)$.wn.sideNav=data}) return result?result:this} $.fn.sideNav.Constructor=SideNav $.fn.sideNav.noConflict=function(){$.fn.sideNav=old return this} $(document).ready(function(){$('[data-control="sidenav"]').sideNav()})}(window.jQuery);+function($){"use strict";var Base=$.wn.foundation.base,BaseProto=Base.prototype -var Scrollbar=function(element,options){var -$el=this.$el=$(element),el=$el.get(0),self=this,options=this.options=options||{},sizeName=this.sizeName=options.vertical?'height':'width',isNative=$('html').hasClass('mobile'),isTouch=this.isTouch=Modernizr.touchevents,isScrollable=this.isScrollable=false,isLocked=this.isLocked=false,eventElementName=options.vertical?'pageY':'pageX',dragStart=0,startOffset=0;$.wn.foundation.controlUtils.markDisposable(element) +var Scrollbar=function(element,options){var $el=this.$el=$(element),el=$el.get(0),self=this,options=this.options=options||{},sizeName=this.sizeName=options.vertical?'height':'width',isNative=$('html').hasClass('mobile'),isTouch=this.isTouch=Modernizr.touchevents,isScrollable=this.isScrollable=false,isLocked=this.isLocked=false,eventElementName=options.vertical?'pageY':'pageX',dragStart=0,startOffset=0;$.wn.foundation.controlUtils.markDisposable(element) Base.call(this) this.$el.one('dispose-control',this.proxy(this.dispose)) -if(isNative){return} -this.$scrollbar=$('
').addClass('scrollbar-scrollbar') +if(isNative){return}this.$scrollbar=$('
').addClass('scrollbar-scrollbar') this.$track=$('
').addClass('scrollbar-track').appendTo(this.$scrollbar) this.$thumb=$('
').addClass('scrollbar-thumb').appendTo(this.$track) $el.addClass('drag-scrollbar').addClass(options.vertical?'vertical':'horizontal').prepend(this.$scrollbar) if(isTouch){this.$el.on('touchstart',function(event){var touchEvent=event.originalEvent;if(touchEvent.touches.length==1){startDrag(touchEvent.touches[0]) -event.stopPropagation()}})} -else{this.$thumb.on('mousedown',function(event){startDrag(event)}) -this.$track.on('mouseup',function(event){moveDrag(event)})} -$el.mousewheel(function(event){var offset=self.options.vertical?((event.deltaFactor*event.deltaY)*-1):(event.deltaFactor*event.deltaX) +event.stopPropagation()}})}else{this.$thumb.on('mousedown',function(event){startDrag(event)}) +this.$track.on('mouseup',function(event){moveDrag(event)})}$el.mousewheel(function(event){var offset=self.options.vertical?((event.deltaFactor*event.deltaY)*-1):(event.deltaFactor*event.deltaX) return!scrollWheel(offset*self.options.scrollSpeed)}) $el.on('oc.scrollbar.gotoStart',function(event){self.options.vertical?$el.scrollTop(0):$el.scrollLeft(0) self.update() @@ -836,43 +394,31 @@ $el.trigger('oc.scrollStart') dragStart=event[eventElementName] startOffset=self.options.vertical?$el.scrollTop():$el.scrollLeft() if(isTouch){$(window).on('touchmove.scrollbar',function(event){var touchEvent=event.originalEvent -if(moveDrag(touchEvent.touches[0])) -event.preventDefault();});$el.on('touchend.scrollbar',stopDrag)} -else{$(window).on('mousemove.scrollbar',function(event){moveDrag(event) +if(moveDrag(touchEvent.touches[0]))event.preventDefault();});$el.on('touchend.scrollbar',stopDrag)}else{$(window).on('mousemove.scrollbar',function(event){moveDrag(event) return false}) $(window).on('mouseup.scrollbar',function(){stopDrag() -return false})}} -function moveDrag(event){self.isLocked=true;var -offset,dragTo=event[eventElementName] -if(self.isTouch){offset=dragStart-dragTo} -else{var ratio=self.getCanvasSize()/self.getViewportSize() -offset=(dragTo-dragStart)*ratio} -self.options.vertical?$el.scrollTop(startOffset+offset):$el.scrollLeft(startOffset+offset) +return false})}}function moveDrag(event){self.isLocked=true;var offset,dragTo=event[eventElementName] +if(self.isTouch){offset=dragStart-dragTo}else{var ratio=self.getCanvasSize()/self.getViewportSize() +offset=(dragTo-dragStart)*ratio}self.options.vertical?$el.scrollTop(startOffset+offset):$el.scrollLeft(startOffset+offset) self.setThumbPosition() -return self.options.vertical?el.scrollTop!=startOffset:el.scrollLeft!=startOffset} -function stopDrag(){$('body').removeClass('drag-noselect') +return self.options.vertical?el.scrollTop!=startOffset:el.scrollLeft!=startOffset}function stopDrag(){$('body').removeClass('drag-noselect') $el.trigger('oc.scrollEnd') -$(window).off('.scrollbar')} -var isWebkit=$(document.documentElement).hasClass('webkit') +$(window).off('.scrollbar')}var isWebkit=$(document.documentElement).hasClass('webkit') function scrollWheel(offset){startOffset=self.options.vertical?el.scrollTop:el.scrollLeft $el.trigger('oc.scrollStart') self.options.vertical?$el.scrollTop(startOffset+offset):$el.scrollLeft(startOffset+offset) var scrolled=self.options.vertical?el.scrollTop!=startOffset:el.scrollLeft!=startOffset self.setThumbPosition() if(!isWebkit){if(self.endScrollTimeout!==undefined){clearTimeout(self.endScrollTimeout) -self.endScrollTimeout=undefined} -self.endScrollTimeout=setTimeout(function(){$el.trigger('oc.scrollEnd') -self.endScrollTimeout=undefined},50)}else{$el.trigger('oc.scrollEnd')} -return scrolled} -setTimeout(function(){self.update()},1);} +self.endScrollTimeout=undefined}self.endScrollTimeout=setTimeout(function(){$el.trigger('oc.scrollEnd') +self.endScrollTimeout=undefined},50)}else{$el.trigger('oc.scrollEnd')}return scrolled}setTimeout(function(){self.update()},1);} Scrollbar.prototype=Object.create(BaseProto) Scrollbar.prototype.constructor=Scrollbar Scrollbar.prototype.dispose=function(){this.unregisterHandlers() BaseProto.dispose.call(this)} Scrollbar.prototype.unregisterHandlers=function(){} Scrollbar.DEFAULTS={vertical:true,scrollSpeed:2,animation:true,start:function(){},drag:function(){},stop:function(){}} -Scrollbar.prototype.update=function(){if(!this.$scrollbar) -return +Scrollbar.prototype.update=function(){if(!this.$scrollbar)return this.$scrollbar.hide() this.setThumbSize() this.setThumbPosition() @@ -880,14 +426,11 @@ this.$scrollbar.show()} Scrollbar.prototype.setThumbSize=function(){var properties=this.calculateProperties() this.isScrollable=!(properties.thumbSizeRatio>=1);this.$scrollbar.toggleClass('disabled',!this.isScrollable) if(this.options.vertical){this.$track.height(properties.canvasSize) -this.$thumb.height(properties.thumbSize)} -else{this.$track.width(properties.canvasSize) +this.$thumb.height(properties.thumbSize)}else{this.$track.width(properties.canvasSize) this.$thumb.width(properties.thumbSize)}} Scrollbar.prototype.setThumbPosition=function(){var properties=this.calculateProperties() -if(this.options.vertical) -this.$thumb.css({top:properties.thumbPosition}) -else -this.$thumb.css({left:properties.thumbPosition})} +if(this.options.vertical)this.$thumb.css({top:properties.thumbPosition}) +else this.$thumb.css({left:properties.thumbPosition})} Scrollbar.prototype.calculateProperties=function(){var $el=this.$el,properties={};properties.viewportSize=this.getViewportSize() properties.canvasSize=this.getCanvasSize() properties.scrollAmount=(this.options.vertical)?$el.scrollTop():$el.scrollLeft() @@ -895,15 +438,12 @@ properties.thumbSizeRatio=properties.viewportSize/properties.canvasSize properties.thumbSize=properties.viewportSize*properties.thumbSizeRatio properties.thumbPositionRatio=properties.scrollAmount/(properties.canvasSize-properties.viewportSize) properties.thumbPosition=((properties.viewportSize-properties.thumbSize)*properties.thumbPositionRatio)+properties.scrollAmount -if(isNaN(properties.thumbPosition)) -properties.thumbPosition=0 +if(isNaN(properties.thumbPosition))properties.thumbPosition=0 return properties;} Scrollbar.prototype.getViewportSize=function(){return(this.options.vertical)?this.$el.height():this.$el.width();} Scrollbar.prototype.getCanvasSize=function(){return(this.options.vertical)?this.$el.get(0).scrollHeight:this.$el.get(0).scrollWidth;} Scrollbar.prototype.gotoElement=function(element,callback){var $el=$(element) -if(!$el.length) -return;var self=this,offset=0,animated=false,params={duration:300,queue:false,complete:function(){if(callback!==undefined) -callback()}} +if(!$el.length)return;var self=this,offset=0,animated=false,params={duration:300,queue:false,complete:function(){if(callback!==undefined)callback()}} if(!this.options.vertical){offset=$el.get(0).offsetLeft-this.$el.scrollLeft() if(offset<0){this.$el.animate({'scrollLeft':$el.get(0).offsetLeft},params) animated=true}else{offset=$el.get(0).offsetLeft+$el.outerWidth()-(this.$el.scrollLeft()+this.$el.outerWidth()) @@ -913,10 +453,7 @@ if(this.options.animation){if(offset<0){this.$el.animate({'scrollTop':$el.get(0) animated=true}else{offset=$el.get(0).offsetTop-(this.$el.scrollTop()+this.$el.outerHeight()) if(offset>0){this.$el.animate({'scrollTop':$el.get(0).offsetTop+$el.outerHeight()-this.$el.outerHeight()},params) animated=true}}}else{if(offset<0){this.$el.scrollTop($el.get(0).offsetTop)}else{offset=$el.get(0).offsetTop-(this.$el.scrollTop()+this.$el.outerHeight()) -if(offset>0) -this.$el.scrollTop($el.get(0).offsetTop+$el.outerHeight()-this.$el.outerHeight())}}} -if(!animated&&callback!==undefined) -callback() +if(offset>0)this.$el.scrollTop($el.get(0).offsetTop+$el.outerHeight()-this.$el.outerHeight())}}}if(!animated&&callback!==undefined)callback() return this} Scrollbar.prototype.dispose=function(){this.$el=null this.$scrollbar=null @@ -939,45 +476,37 @@ FileList.prototype.init=function(){var self=this this.$el.on('click','li.group > h4 > a, li.group > div.group',function(){self.toggleGroup($(this).closest('li')) return false;});if(!this.options.ignoreItemClick){this.$el.on('click','li.item > a',function(event){var e=$.Event('open.oc.list',{relatedTarget:$(this).parent().get(0),clickEvent:event}) self.$el.trigger(e,this) -return false})} -this.$el.on('ajaxUpdate',$.proxy(this.update,this))} +return false})}this.$el.on('ajaxUpdate',$.proxy(this.update,this))} FileList.prototype.toggleGroup=function(group){var $group=$(group);$group.attr('data-status')=='expanded'?this.collapseGroup($group):this.expandGroup($group)} -FileList.prototype.collapseGroup=function(group){var -$list=$('> ul, > div.subitems',group),self=this;$list.css('overflow','hidden') +FileList.prototype.collapseGroup=function(group){var $list=$('> ul, > div.subitems',group),self=this;$list.css('overflow','hidden') $list.animate({'height':0},{duration:100,queue:false,complete:function(){$list.css({'overflow':'visible','display':'none'}) $(group).attr('data-status','collapsed') $(window).trigger('resize')}}) this.sendGroupStatusRequest(group,0);} -FileList.prototype.expandGroup=function(group){var -$list=$('> ul, > div.subitems',group),self=this;$list.css({'overflow':'hidden','display':'block','height':0}) +FileList.prototype.expandGroup=function(group){var $list=$('> ul, > div.subitems',group),self=this;$list.css({'overflow':'hidden','display':'block','height':0}) $list.animate({'height':$list[0].scrollHeight},{duration:100,queue:false,complete:function(){$list.css({'overflow':'visible','height':'auto'}) $(group).attr('data-status','expanded') $(window).trigger('resize')}}) this.sendGroupStatusRequest(group,1);} FileList.prototype.sendGroupStatusRequest=function(group,status){if(this.options.groupStatusHandler!==undefined){var groupId=$(group).data('group-id') -if(groupId===undefined) -groupId=$('> h4 a',group).text();$(group).request(this.options.groupStatusHandler,{data:{group:groupId,status:status}})}} +if(groupId===undefined)groupId=$('> h4 a',group).text();$(group).request(this.options.groupStatusHandler,{data:{group:groupId,status:status}})}} FileList.prototype.markActive=function(dataId){$('li.item',this.$el).removeClass('active') -if(dataId) -$('li.item[data-id="'+dataId+'"]',this.$el).addClass('active') +if(dataId)$('li.item[data-id="'+dataId+'"]',this.$el).addClass('active') this.dataId=dataId} -FileList.prototype.update=function(){if(this.dataId!==undefined) -this.markActive(this.dataId)} +FileList.prototype.update=function(){if(this.dataId!==undefined)this.markActive(this.dataId)} var old=$.fn.fileList $.fn.fileList=function(option){var args=arguments;return this.each(function(){var $this=$(this) var data=$this.data('oc.fileList') var options=$.extend({},FileList.DEFAULTS,$this.data(),typeof option=='object'&&option) if(!data)$this.data('oc.fileList',(data=new FileList(this,options))) -if(typeof option=='string'){var methodArgs=[];for(var i=1;i0){fixedWidth=0 $children.each(function(){$el=$(this) margin=$el.data('oc.layoutMargin') if(margin===undefined){margin=parseInt($el.css('marginRight'))+parseInt($el.css('marginLeft')) -$el.data('oc.layoutMargin',margin)} -fixedWidth+=$el.get(0).offsetWidth+margin}) +$el.data('oc.layoutMargin',margin)}fixedWidth+=$el.get(0).offsetWidth+margin}) $(this).width(fixedWidth) $(this).trigger('oc.widthFixed')}})} WinterLayout.prototype.toggleAccountMenu=function(el){var self=this,$el=$(el),$parent=$(el).parent(),$menu=$el.next() $el.tooltip('hide') if($menu.hasClass('active')){self.$accountMenuOverlay.remove() $parent.removeClass('highlight') -$menu.removeClass('active')} -else{self.$accountMenuOverlay=$('
').addClass('popover-overlay') +$menu.removeClass('active')}else{self.$accountMenuOverlay=$('
').addClass('popover-overlay') $(document.body).append(self.$accountMenuOverlay) $parent.addClass('highlight') $menu.addClass('active') self.$accountMenuOverlay.one('click',function(){self.$accountMenuOverlay.remove() $menu.removeClass('active') $parent.removeClass('highlight')})}} -if($.wn===undefined) -$.wn={} -if($.oc===undefined) -$.oc=$.wn +if($.wn===undefined)$.wn={} +if($.oc===undefined)$.oc=$.wn $.wn.layout=new WinterLayout() $(document).ready(function(){$.wn.layout.updateLayout() window.setTimeout($.wn.layout.updateLayout,100)}) @@ -1027,30 +552,23 @@ this.$fixButton=$('this.options.breakpoint&&this.panelFixed()){this.hideSidePanel()}} -SidePanelTab.prototype.updateActiveTab=function(){if($.wn.sideNav===undefined){return} -if(!this.panelVisible&&($(window).width()this.options.breakpoint&&this.panelFixed()){this.hideSidePanel()}} +SidePanelTab.prototype.updateActiveTab=function(){if($.wn.sideNav===undefined){return}if(!this.panelVisible&&($(window).width() ul, > ol').sortable(sortableOptions)} -if($el.hasClass('is-scrollable')){$el.wrapInner($('
').addClass('control-scrollbar')) +if(this.options.sortableHandle)sortableOptions[handle]=this.options.sortableHandle +$el.find('> ul, > ol').sortable(sortableOptions)}if($el.hasClass('is-scrollable')){$el.wrapInner($('
').addClass('control-scrollbar')) var $scrollbar=$el.find('>.control-scrollbar:first') $scrollbar.scrollbar()}} SimpleList.DEFAULTS={sortableHandle:null} @@ -1119,23 +627,19 @@ TreeListWidget.prototype=Object.create(BaseProto) TreeListWidget.prototype.constructor=TreeListWidget TreeListWidget.prototype.init=function(){var sortableOptions={handle:this.options.handle,nested:this.options.nested,onDrop:this.proxy(this.onDrop),afterMove:this.proxy(this.onAfterMove)} this.$el.find('> ol').sortable($.extend(sortableOptions,this.options)) -if(!this.options.nested) -this.$el.find('> ol ol').sortable($.extend(sortableOptions,this.options)) +if(!this.options.nested)this.$el.find('> ol ol').sortable($.extend(sortableOptions,this.options)) this.$el.one('dispose-control',this.proxy(this.dispose))} TreeListWidget.prototype.dispose=function(){this.unbind() BaseProto.dispose.call(this)} TreeListWidget.prototype.unbind=function(){this.$el.off('dispose-control',this.proxy(this.dispose)) this.$el.find('> ol').sortable('destroy') -if(!this.options.nested){this.$el.find('> ol ol').sortable('destroy')} -this.$el.removeData('oc.treelist') +if(!this.options.nested){this.$el.find('> ol ol').sortable('destroy')}this.$el.removeData('oc.treelist') this.$el=null this.options=null} TreeListWidget.DEFAULTS={handle:null,nested:true} -TreeListWidget.prototype.onDrop=function($item,container,_super){if(!this.$el){return} -this.$el.trigger('move.oc.treelist',{item:$item,container:container}) +TreeListWidget.prototype.onDrop=function($item,container,_super){if(!this.$el){return}this.$el.trigger('move.oc.treelist',{item:$item,container:container}) _super($item,container)} -TreeListWidget.prototype.onAfterMove=function($placeholder,container,$closestEl){if(!this.$el){return} -this.$el.trigger('aftermove.oc.treelist',{placeholder:$placeholder,container:container,closestEl:$closestEl})} +TreeListWidget.prototype.onAfterMove=function($placeholder,container,$closestEl){if(!this.$el){return}this.$el.trigger('aftermove.oc.treelist',{placeholder:$placeholder,container:container,closestEl:$closestEl})} var old=$.fn.treeListWidget $.fn.treeListWidget=function(option){var args=arguments,result this.each(function(){var $this=$(this) @@ -1162,20 +666,17 @@ return false}) this.$searchInput.on('input',function(){self.handleSearchChange()}) var searchTerm=$.cookie(this.searchCookieName) if(searchTerm!==undefined&&searchTerm.length>0){this.$searchInput.val(searchTerm) -this.applySearch()} -var scrollbar=$('[data-control=scrollbar]',this.$el).data('oc.scrollbar'),active=$('li.active',this.$el) +this.applySearch()}var scrollbar=$('[data-control=scrollbar]',this.$el).data('oc.scrollbar'),active=$('li.active',this.$el) if(active.length>0){scrollbar.gotoElement(active)}} SidenavTree.prototype.toggleGroup=function(group){var $group=$(group),status=$group.attr('data-status') status===undefined||status=='expanded'?this.collapseGroup($group):this.expandGroup($group)} -SidenavTree.prototype.collapseGroup=function(group){var -$list=$('> ul',group),self=this +SidenavTree.prototype.collapseGroup=function(group){var $list=$('> ul',group),self=this $list.css('overflow','hidden') $list.animate({'height':0},{duration:100,queue:false,complete:function(){$list.css({'overflow':'visible','display':'none'}) $(group).attr('data-status','collapsed') $(window).trigger('oc.updateUi') self.saveGroupStatus($(group).data('group-code'),true)}})} -SidenavTree.prototype.expandGroup=function(group,duration){var -$list=$('> ul',group),self=this +SidenavTree.prototype.expandGroup=function(group,duration){var $list=$('> ul',group),self=this duration=duration===undefined?100:duration $list.css({'overflow':'hidden','height':0}) $list.animate({'height':$list[0].scrollHeight},{duration:duration,queue:false,complete:function(){$list.css({'overflow':'visible','height':'auto','display':''}) @@ -1183,43 +684,32 @@ $(group).attr('data-status','expanded') $(window).trigger('oc.updateUi') self.saveGroupStatus($(group).data('group-code'),false)}})} SidenavTree.prototype.saveGroupStatus=function(groupCode,collapsed){var collapsedGroups=$.cookie(this.statusCookieName),updatedGroups=[] -if(collapsedGroups===undefined){collapsedGroups=''} -collapsedGroups=collapsedGroups.split('|') -$.each(collapsedGroups,function(){if(groupCode!=this) -updatedGroups.push(this)}) -if(collapsed){updatedGroups.push(groupCode)} -$.cookie(this.statusCookieName,updatedGroups.join('|'),{expires:30,path:'/'})} -SidenavTree.prototype.handleSearchChange=function(){var lastValue=this.$searchInput.data('oc.lastvalue');if(lastValue!==undefined&&lastValue==this.$searchInput.val()){return} -this.$searchInput.data('oc.lastvalue',this.$searchInput.val()) -if(this.dataTrackInputTimer!==undefined){window.clearTimeout(this.dataTrackInputTimer)} -var self=this +if(collapsedGroups===undefined){collapsedGroups=''}collapsedGroups=collapsedGroups.split('|') +$.each(collapsedGroups,function(){if(groupCode!=this)updatedGroups.push(this)}) +if(collapsed){updatedGroups.push(groupCode)}$.cookie(this.statusCookieName,updatedGroups.join('|'),{expires:30,path:'/'})} +SidenavTree.prototype.handleSearchChange=function(){var lastValue=this.$searchInput.data('oc.lastvalue');if(lastValue!==undefined&&lastValue==this.$searchInput.val()){return}this.$searchInput.data('oc.lastvalue',this.$searchInput.val()) +if(this.dataTrackInputTimer!==undefined){window.clearTimeout(this.dataTrackInputTimer)}var self=this this.dataTrackInputTimer=window.setTimeout(function(){self.applySearch()},300);$.cookie(this.searchCookieName,$.trim(this.$searchInput.val()),{expires:30,path:'/'})} SidenavTree.prototype.applySearch=function(){var query=$.trim(this.$searchInput.val()),words=query.toLowerCase().split(' '),visibleGroups=[],visibleItems=[],self=this if(query.length==0){$('li',this.$el).removeClass('hidden') -return} -$('ul.top-level > li',this.$el).each(function(){var $li=$(this) +return}$('ul.top-level > li',this.$el).each(function(){var $li=$(this) if(self.textContainsWords($('div.group h3',$li).text(),words)){visibleGroups.push($li.get(0)) -$('ul li',$li).each(function(){visibleItems.push(this)})} -else{$('ul li',$li).each(function(){if(self.textContainsWords($(this).text(),words)||self.textContainsWords($(this).data('keywords'),words)){visibleGroups.push($li.get(0)) +$('ul li',$li).each(function(){visibleItems.push(this)})}else{$('ul li',$li).each(function(){if(self.textContainsWords($(this).text(),words)||self.textContainsWords($(this).data('keywords'),words)){visibleGroups.push($li.get(0)) visibleItems.push(this)}})}}) $('ul.top-level > li',this.$el).each(function(){var $li=$(this),groupIsVisible=$.inArray(this,visibleGroups)!==-1 $li.toggleClass('hidden',!groupIsVisible) -if(groupIsVisible) -self.expandGroup($li,0) +if(groupIsVisible)self.expandGroup($li,0) $('ul li',$li).each(function(){var $itemLi=$(this) $itemLi.toggleClass('hidden',$.inArray(this,visibleItems)==-1)})}) return false} SidenavTree.prototype.textContainsWords=function(text,words){text=text.toLowerCase() -for(var i=0;i':'>','"':'"',"'":''','/':'/'},htmlEscaper=/[&<>"'\/]/g return(''+string).replace(htmlEscaper,function(match){return htmlEscapes[match];})} if(!!window.MSInputMethodContext&&!!document.documentMode){$(window).on('resize',function(){fixMediaManager() fixSidebar()}) function fixMediaManager(){var $el=$('div[data-control="media-manager"] .control-scrollpad') -$el.height($el.parent().height())} -function fixSidebar(){$('#layout-sidenav').height(Math.max($('#layout-body').innerHeight(),$(window).height()-$('#layout-mainmenu').height()))}} \ No newline at end of file +$el.height($el.parent().height())}function fixSidebar(){$('#layout-sidenav').height(Math.max($('#layout-body').innerHeight(),$(window).height()-$('#layout-mainmenu').height()))}} \ No newline at end of file diff --git a/modules/backend/behaviors/RelationController.php b/modules/backend/behaviors/RelationController.php index 8f81627a9b..9e0f221ed8 100644 --- a/modules/backend/behaviors/RelationController.php +++ b/modules/backend/behaviors/RelationController.php @@ -596,7 +596,7 @@ protected function makeToolbarWidget() $defaultButtons = null; if (!$this->readOnly && $this->toolbarButtons) { - $defaultButtons = '~/modules/backend/behaviors/relationcontroller/partials/_toolbar.htm'; + $defaultButtons = '~/modules/backend/behaviors/relationcontroller/partials/_toolbar.php'; } $defaultConfig['buttons'] = $this->getConfig('view[toolbarPartial]', $defaultButtons); diff --git a/modules/backend/behaviors/importexportcontroller/partials/_button_export.htm b/modules/backend/behaviors/importexportcontroller/partials/_button_export.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_button_export.htm rename to modules/backend/behaviors/importexportcontroller/partials/_button_export.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_button_import.htm b/modules/backend/behaviors/importexportcontroller/partials/_button_import.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_button_import.htm rename to modules/backend/behaviors/importexportcontroller/partials/_button_import.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_column_sample_form.htm b/modules/backend/behaviors/importexportcontroller/partials/_column_sample_form.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_column_sample_form.htm rename to modules/backend/behaviors/importexportcontroller/partials/_column_sample_form.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_container_export.htm b/modules/backend/behaviors/importexportcontroller/partials/_container_export.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_container_export.htm rename to modules/backend/behaviors/importexportcontroller/partials/_container_export.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_container_import.htm b/modules/backend/behaviors/importexportcontroller/partials/_container_import.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_container_import.htm rename to modules/backend/behaviors/importexportcontroller/partials/_container_import.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_export_columns.htm b/modules/backend/behaviors/importexportcontroller/partials/_export_columns.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_export_columns.htm rename to modules/backend/behaviors/importexportcontroller/partials/_export_columns.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_export_form.htm b/modules/backend/behaviors/importexportcontroller/partials/_export_form.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_export_form.htm rename to modules/backend/behaviors/importexportcontroller/partials/_export_form.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_export_result_form.htm b/modules/backend/behaviors/importexportcontroller/partials/_export_result_form.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_export_result_form.htm rename to modules/backend/behaviors/importexportcontroller/partials/_export_result_form.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.htm rename to modules/backend/behaviors/importexportcontroller/partials/_import_db_columns.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_file_columns.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_file_columns.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_import_file_columns.htm rename to modules/backend/behaviors/importexportcontroller/partials/_import_file_columns.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_form.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_form.php similarity index 100% rename from modules/backend/behaviors/importexportcontroller/partials/_import_form.htm rename to modules/backend/behaviors/importexportcontroller/partials/_import_form.php diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import_result_form.htm b/modules/backend/behaviors/importexportcontroller/partials/_import_result_form.php similarity index 87% rename from modules/backend/behaviors/importexportcontroller/partials/_import_result_form.htm rename to modules/backend/behaviors/importexportcontroller/partials/_import_result_form.php index c6d97e89fd..b559361121 100644 --- a/modules/backend/behaviors/importexportcontroller/partials/_import_result_form.htm +++ b/modules/backend/behaviors/importexportcontroller/partials/_import_result_form.php @@ -33,15 +33,21 @@

hasMessages): ?> trans('backend::lang.import_export.skipped_rows'), - 'warnings' => trans('backend::lang.import_export.warnings'), - 'errors' => trans('backend::lang.import_export.errors'), - ]; + $tabs = [ + 'skipped' => trans('backend::lang.import_export.skipped_rows'), + 'warnings' => trans('backend::lang.import_export.warnings'), + 'errors' => trans('backend::lang.import_export.errors'), + ]; - if (!$importResults->skippedCount) unset($tabs['skipped']); - if (!$importResults->warningCount) unset($tabs['warnings']); - if (!$importResults->errorCount) unset($tabs['errors']); + if (!$importResults->skippedCount) { + unset($tabs['skipped']); + } + if (!$importResults->warningCount) { + unset($tabs['warnings']); + } + if (!$importResults->errorCount) { + unset($tabs['errors']); + } ?>
- +
diff --git a/modules/backend/controllers/index/index.htm b/modules/backend/controllers/index/index.php similarity index 100% rename from modules/backend/controllers/index/index.htm rename to modules/backend/controllers/index/index.php diff --git a/modules/backend/controllers/media/index.htm b/modules/backend/controllers/media/index.php similarity index 100% rename from modules/backend/controllers/media/index.htm rename to modules/backend/controllers/media/index.php diff --git a/modules/backend/controllers/preferences/_example_code.htm b/modules/backend/controllers/preferences/_example_code.php similarity index 100% rename from modules/backend/controllers/preferences/_example_code.htm rename to modules/backend/controllers/preferences/_example_code.php diff --git a/modules/backend/controllers/preferences/_field_editor_preview.htm b/modules/backend/controllers/preferences/_field_editor_preview.php similarity index 100% rename from modules/backend/controllers/preferences/_field_editor_preview.htm rename to modules/backend/controllers/preferences/_field_editor_preview.php diff --git a/modules/backend/controllers/preferences/index.htm b/modules/backend/controllers/preferences/index.php similarity index 100% rename from modules/backend/controllers/preferences/index.htm rename to modules/backend/controllers/preferences/index.php diff --git a/modules/backend/controllers/usergroups/_list_toolbar.htm b/modules/backend/controllers/usergroups/_list_toolbar.php similarity index 100% rename from modules/backend/controllers/usergroups/_list_toolbar.htm rename to modules/backend/controllers/usergroups/_list_toolbar.php diff --git a/modules/backend/controllers/usergroups/create.htm b/modules/backend/controllers/usergroups/create.php similarity index 100% rename from modules/backend/controllers/usergroups/create.htm rename to modules/backend/controllers/usergroups/create.php diff --git a/modules/backend/controllers/usergroups/index.htm b/modules/backend/controllers/usergroups/index.php similarity index 100% rename from modules/backend/controllers/usergroups/index.htm rename to modules/backend/controllers/usergroups/index.php diff --git a/modules/backend/controllers/usergroups/update.htm b/modules/backend/controllers/usergroups/update.php similarity index 100% rename from modules/backend/controllers/usergroups/update.htm rename to modules/backend/controllers/usergroups/update.php diff --git a/modules/backend/controllers/userroles/__users.htm b/modules/backend/controllers/userroles/__users.htm deleted file mode 100644 index 85372e143e..0000000000 --- a/modules/backend/controllers/userroles/__users.htm +++ /dev/null @@ -1 +0,0 @@ -relationRender('users'); ?> \ No newline at end of file diff --git a/modules/backend/controllers/userroles/__users.php b/modules/backend/controllers/userroles/__users.php new file mode 100644 index 0000000000..f4b08fcb37 --- /dev/null +++ b/modules/backend/controllers/userroles/__users.php @@ -0,0 +1 @@ +relationRender('users') ?> diff --git a/modules/backend/controllers/userroles/_list_toolbar.htm b/modules/backend/controllers/userroles/_list_toolbar.php similarity index 100% rename from modules/backend/controllers/userroles/_list_toolbar.htm rename to modules/backend/controllers/userroles/_list_toolbar.php diff --git a/modules/backend/controllers/userroles/create.htm b/modules/backend/controllers/userroles/create.php similarity index 100% rename from modules/backend/controllers/userroles/create.htm rename to modules/backend/controllers/userroles/create.php diff --git a/modules/backend/controllers/userroles/index.htm b/modules/backend/controllers/userroles/index.php similarity index 100% rename from modules/backend/controllers/userroles/index.htm rename to modules/backend/controllers/userroles/index.php diff --git a/modules/backend/controllers/userroles/update.htm b/modules/backend/controllers/userroles/update.php similarity index 100% rename from modules/backend/controllers/userroles/update.htm rename to modules/backend/controllers/userroles/update.php diff --git a/modules/backend/controllers/users/_btn_impersonate.htm b/modules/backend/controllers/users/_btn_impersonate.php similarity index 100% rename from modules/backend/controllers/users/_btn_impersonate.htm rename to modules/backend/controllers/users/_btn_impersonate.php diff --git a/modules/backend/controllers/users/_btn_unsuspend.htm b/modules/backend/controllers/users/_btn_unsuspend.php similarity index 100% rename from modules/backend/controllers/users/_btn_unsuspend.htm rename to modules/backend/controllers/users/_btn_unsuspend.php diff --git a/modules/backend/controllers/users/_hint_trashed.htm b/modules/backend/controllers/users/_hint_trashed.php similarity index 100% rename from modules/backend/controllers/users/_hint_trashed.htm rename to modules/backend/controllers/users/_hint_trashed.php diff --git a/modules/backend/controllers/users/_list_toolbar.htm b/modules/backend/controllers/users/_list_toolbar.php similarity index 100% rename from modules/backend/controllers/users/_list_toolbar.htm rename to modules/backend/controllers/users/_list_toolbar.php diff --git a/modules/backend/controllers/users/create.htm b/modules/backend/controllers/users/create.php similarity index 99% rename from modules/backend/controllers/users/create.htm rename to modules/backend/controllers/users/create.php index 3197f49070..4638a6a2d9 100644 --- a/modules/backend/controllers/users/create.htm +++ b/modules/backend/controllers/users/create.php @@ -63,4 +63,4 @@

fatalError)) ?>

- \ No newline at end of file + diff --git a/modules/backend/controllers/users/index.htm b/modules/backend/controllers/users/index.htm deleted file mode 100644 index 498d5dc562..0000000000 --- a/modules/backend/controllers/users/index.htm +++ /dev/null @@ -1 +0,0 @@ -listRender() ?> \ No newline at end of file diff --git a/modules/backend/controllers/users/index.php b/modules/backend/controllers/users/index.php new file mode 100644 index 0000000000..ea43a3636c --- /dev/null +++ b/modules/backend/controllers/users/index.php @@ -0,0 +1 @@ +listRender() ?> diff --git a/modules/backend/controllers/users/myaccount.htm b/modules/backend/controllers/users/myaccount.php similarity index 99% rename from modules/backend/controllers/users/myaccount.htm rename to modules/backend/controllers/users/myaccount.php index ff70c54cb5..9c91187d18 100644 --- a/modules/backend/controllers/users/myaccount.htm +++ b/modules/backend/controllers/users/myaccount.php @@ -65,4 +65,4 @@

fatalError)) ?>

- \ No newline at end of file + diff --git a/modules/backend/controllers/users/update.htm b/modules/backend/controllers/users/update.php similarity index 98% rename from modules/backend/controllers/users/update.htm rename to modules/backend/controllers/users/update.php index 25b83ece8d..6317998ea4 100644 --- a/modules/backend/controllers/users/update.htm +++ b/modules/backend/controllers/users/update.php @@ -44,7 +44,7 @@ - trashed()) : ?> + trashed()): ?>
- \ No newline at end of file + diff --git a/modules/backend/database/migrations/2016_10_01_000009_Db_Backend_Timestamp_Fix.php b/modules/backend/database/migrations/2016_10_01_000009_Db_Backend_Timestamp_Fix.php index fb09bdfa3d..553dec7005 100644 --- a/modules/backend/database/migrations/2016_10_01_000009_Db_Backend_Timestamp_Fix.php +++ b/modules/backend/database/migrations/2016_10_01_000009_Db_Backend_Timestamp_Fix.php @@ -24,18 +24,12 @@ public function up() DbDongle::convertTimestamps($table); } - // Use this opportunity to reset backend preferences and styles for stable - Db::table('system_settings') - ->where('item', 'backend_brand_settings') - ->delete() - ; - + // Use this opportunity to reset backend preferences for stable Db::table('backend_user_preferences') ->where('namespace', 'backend') ->where('group', 'backend') ->where('item', 'preferences') - ->delete() - ; + ->delete(); } public function down() diff --git a/modules/backend/formwidgets/DatePicker.php b/modules/backend/formwidgets/DatePicker.php index c6ad5f3c9f..d792979768 100644 --- a/modules/backend/formwidgets/DatePicker.php +++ b/modules/backend/formwidgets/DatePicker.php @@ -5,6 +5,7 @@ use Backend\Classes\FormField; use Backend\Classes\FormWidgetBase; use System\Helpers\DateTime as DateTimeHelper; +use Winter\Storm\Exception\ApplicationException; /** * Date picker @@ -108,7 +109,12 @@ public function init() */ public function render() { - $this->prepareVars(); + try { + $this->prepareVars(); + } catch (ApplicationException $ex) { + $this->vars['error'] = $ex->getMessage(); + } + return $this->makePartial('datepicker'); } @@ -119,6 +125,11 @@ public function prepareVars() { if ($value = $this->getLoadValue()) { $value = DateTimeHelper::makeCarbon($value, false); + + if (!($value instanceof Carbon)) { + throw new ApplicationException(sprintf('"%s" is not a valid date / time value.', $value)); + } + if ($this->mode === 'date' && !$this->ignoreTimezone) { $backendTimeZone = \Backend\Models\Preference::get('timezone'); $value->setTimezone($backendTimeZone); diff --git a/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css b/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css index 3f2591eaf2..59cfa51420 100644 --- a/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css +++ b/modules/backend/formwidgets/codeeditor/assets/css/codeeditor.css @@ -1,27 +1,27 @@ -.field-codeeditor {width:100%;position:relative;border:2px solid #d1d6d9;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -.field-codeeditor textarea {opacity:0;filter:alpha(opacity=0)} -.field-codeeditor.editor-focus {border:2px solid #d1d6d9} -.field-codeeditor.size-tiny {min-height:50px} -.field-codeeditor.size-small {min-height:100px} -.field-codeeditor.size-large {min-height:200px} -.field-codeeditor.size-huge {min-height:250px} -.field-codeeditor.size-giant {min-height:350px} -.field-codeeditor .ace_search {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;color:#333;z-index:13} -.field-codeeditor .ace_search .ace_search_form.ace_nomatch {outline:none !important} -.field-codeeditor .ace_search .ace_search_form.ace_nomatch .ace_search_field {border:.0625rem solid red;-webkit-box-shadow:0 0 .1875rem .125rem red;box-shadow:0 0 .1875rem .125rem red;z-index:1;position:relative} -.field-codeeditor .editor-code {-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -.field-codeeditor .editor-toolbar {position:absolute;padding:0 5px;bottom:10px;right:25px;z-index:10;background:rgba(0,0,0,0.8);border-radius:5px} -.field-codeeditor .editor-toolbar >ul, -.field-codeeditor .editor-toolbar ul >li {list-style-type:none;padding:0;margin:0} -.field-codeeditor .editor-toolbar >ul >li {float:left} -.field-codeeditor .editor-toolbar >ul >li .tooltip.left {margin-right:25px} -.field-codeeditor .editor-toolbar >ul >li >a {display:block;height:25px;width:25px;color:#666;font-size:20px;text-align:center;text-decoration:none;text-shadow:0 0 5px #000} -.field-codeeditor .editor-toolbar >ul >li >a >abbr {position:absolute;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} -.field-codeeditor .editor-toolbar >ul >li >a >i {opacity:1;filter:alpha(opacity=100);display:block} -.field-codeeditor .editor-toolbar >ul >li >a >i:before {font-size:15px} -.field-codeeditor .editor-toolbar >ul >li >a:hover >i, -.field-codeeditor .editor-toolbar >ul >li >a:focus >i {opacity:1;filter:alpha(opacity=100);color:#fff} -.field-codeeditor.editor-fullscreen {z-index:301;position:fixed !important;top:0;left:0;height:100%;border-width:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.field-codeeditor.editor-fullscreen .editor-toolbar {z-index:302} -.field-codeeditor.editor-fullscreen .editor-code {-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} -.field-codeeditor.editor-fullscreen .ace_search {z-index:303} +.field-codeeditor{width:100%;position:relative;border:2px solid #d1d6d9;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +.field-codeeditor textarea{opacity:0;filter:alpha(opacity=0)} +.field-codeeditor.editor-focus{border:2px solid #d1d6d9} +.field-codeeditor.size-tiny{min-height:50px} +.field-codeeditor.size-small{min-height:100px} +.field-codeeditor.size-large{min-height:200px} +.field-codeeditor.size-huge{min-height:250px} +.field-codeeditor.size-giant{min-height:350px} +.field-codeeditor .ace_search{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;color:#333;z-index:13} +.field-codeeditor .ace_search .ace_search_form.ace_nomatch{outline:none !important} +.field-codeeditor .ace_search .ace_search_form.ace_nomatch .ace_search_field{border:.0625rem solid red;-webkit-box-shadow:0 0 .1875rem .125rem red;box-shadow:0 0 .1875rem .125rem red;z-index:1;position:relative} +.field-codeeditor .editor-code{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +.field-codeeditor .editor-toolbar{position:absolute;padding:0 5px;bottom:10px;right:25px;z-index:10;background:rgba(0,0,0,0.8);border-radius:5px} +.field-codeeditor .editor-toolbar>ul, +.field-codeeditor .editor-toolbar ul>li{list-style-type:none;padding:0;margin:0} +.field-codeeditor .editor-toolbar>ul>li{float:left} +.field-codeeditor .editor-toolbar>ul>li .tooltip.left{margin-right:25px} +.field-codeeditor .editor-toolbar>ul>li>a{display:block;height:25px;width:25px;color:#666;font-size:20px;text-align:center;text-decoration:none;text-shadow:0 0 5px #000} +.field-codeeditor .editor-toolbar>ul>li>a>abbr{position:absolute;font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} +.field-codeeditor .editor-toolbar>ul>li>a>i{opacity:1;filter:alpha(opacity=100);display:block} +.field-codeeditor .editor-toolbar>ul>li>a>i:before{font-size:15px} +.field-codeeditor .editor-toolbar>ul>li>a:hover>i, +.field-codeeditor .editor-toolbar>ul>li>a:focus>i{opacity:1;filter:alpha(opacity=100);color:#fff} +.field-codeeditor.editor-fullscreen{z-index:301;position:fixed !important;top:0;left:0;height:100%;border-width:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.field-codeeditor.editor-fullscreen .editor-toolbar{z-index:302} +.field-codeeditor.editor-fullscreen .editor-code{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0} +.field-codeeditor.editor-fullscreen .ace_search{z-index:303} \ No newline at end of file diff --git a/modules/backend/formwidgets/codeeditor/assets/js/build-min.js b/modules/backend/formwidgets/codeeditor/assets/js/build-min.js index d00a0a23bd..1799e5c418 100644 --- a/modules/backend/formwidgets/codeeditor/assets/js/build-min.js +++ b/modules/backend/formwidgets/codeeditor/assets/js/build-min.js @@ -1,2467 +1,597 @@ - -var _=(function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var slice=ArrayProto.slice,unshift=ArrayProto.unshift,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var -nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){return new wrapper(obj);};if(typeof exports!=='undefined'){if(typeof module!=='undefined'&&module.exports){exports=module.exports=_;} -exports._=_;}else{root['_']=_;} -_.VERSION='1.3.3';var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context);}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator);} -each(obj,function(value,index,list){if(!initial){memo=value;initial=true;}else{memo=iterator.call(context,memo,value,index,list);}});if(!initial)throw new TypeError('Reduce of empty array with no initial value');return memo;};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator);} -var reversed=_.toArray(obj).reverse();if(context&&!initial)iterator=_.bind(iterator,context);return initial?_.reduce(reversed,iterator,memo,context):_.reduce(reversed,iterator);};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true;}});return result;};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value;});return results;};_.reject=function(obj,iterator,context){var results=[];if(obj==null)return results;each(obj,function(value,index,list){if(!iterator.call(context,value,index,list))results[results.length]=value;});return results;};_.every=_.all=function(obj,iterator,context){var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker;});return!!result;};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker;});return!!result;};_.include=_.contains=function(obj,target){var found=false;if(obj==null)return found;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;found=any(obj,function(value){return value===target;});return found;};_.invoke=function(obj,method){var args=slice.call(arguments,2);return _.map(obj,function(value){return(_.isFunction(method)?method||value:value[method]).apply(value,args);});};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key];});};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0])return Math.max.apply(Math,obj);if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed});});return result.value;};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0])return Math.min.apply(Math,obj);if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computedb?1:0;}),'value');};_.groupBy=function(obj,val){var result={};var iterator=_.isFunction(val)?val:function(obj){return obj[val];};each(obj,function(value,index){var key=iterator(value,index);(result[key]||(result[key]=[])).push(value);});return result;};_.sortedIndex=function(array,obj,iterator){iterator||(iterator=_.identity);var low=0,high=array.length;while(low>1;iterator(array[mid])=0;});});};_.difference=function(array){var rest=_.flatten(slice.call(arguments,1),true);return _.filter(array,function(value){return!_.include(rest,value);});};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,'length'));var results=new Array(length);for(var i=0;i=0;i--){args=[funcs[i].apply(this,args)];} -return args[0];};};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments);}};};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError('Invalid object');var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys;};_.values=function(obj){return _.map(obj,_.identity);};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key);} -return names.sort();};_.extend=function(obj){each(slice.call(arguments,1),function(source){for(var prop in source){obj[prop]=source[prop];}});return obj;};_.pick=function(obj){var result={};each(_.flatten(slice.call(arguments,1)),function(key){if(key in obj)result[key]=obj[key];});return result;};_.defaults=function(obj){each(slice.call(arguments,1),function(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop];}});return obj;};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj);};_.tap=function(obj,interceptor){interceptor(obj);return obj;};function eq(a,b,stack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a._chain)a=a._wrapped;if(b._chain)b=b._wrapped;if(a.isEqual&&_.isFunction(a.isEqual))return a.isEqual(b);if(b.isEqual&&_.isFunction(b.isEqual))return b.isEqual(a);var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case'[object String]':return a==String(b);case'[object Number]':return a!=+a?b!=+b:(a==0?1/a==1/b:a==+b);case'[object Date]':case'[object Boolean]':return+a==+b;case'[object RegExp]':return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase;} -if(typeof a!='object'||typeof b!='object')return false;var length=stack.length;while(length--){if(stack[length]==a)return true;} -stack.push(a);var size=0,result=true;if(className=='[object Array]'){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=size in a==size in b&&eq(a[size],b[size],stack)))break;}}}else{if('constructor'in a!='constructor'in b||a.constructor!=b.constructor)return false;for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],stack)))break;}} -if(result){for(key in b){if(_.has(b,key)&&!(size--))break;} -result=!size;}} -stack.pop();return result;} -_.isEqual=function(a,b){return eq(a,b,[]);};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true;};_.isElement=function(obj){return!!(obj&&obj.nodeType==1);};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=='[object Array]';};_.isObject=function(obj){return obj===Object(obj);};_.isArguments=function(obj){return toString.call(obj)=='[object Arguments]';};if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,'callee'));};} -_.isFunction=function(obj){return toString.call(obj)=='[object Function]';};_.isString=function(obj){return toString.call(obj)=='[object String]';};_.isNumber=function(obj){return toString.call(obj)=='[object Number]';};_.isFinite=function(obj){return _.isNumber(obj)&&isFinite(obj);};_.isNaN=function(obj){return obj!==obj;};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=='[object Boolean]';};_.isDate=function(obj){return toString.call(obj)=='[object Date]';};_.isRegExp=function(obj){return toString.call(obj)=='[object RegExp]';};_.isNull=function(obj){return obj===null;};_.isUndefined=function(obj){return obj===void 0;};_.has=function(obj,key){return hasOwnProperty.call(obj,key);};_.noConflict=function(){root._=previousUnderscore;return this;};_.identity=function(value){return value;};_.times=function(n,iterator,context){for(var i=0;i/g,'>').replace(/"/g,'"').replace(/'/g,''').replace(/\//g,'/');};_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value;};_.mixin=function(obj){each(_.functions(obj),function(name){addToWrapper(name,_[name]=obj[name]);});};var idCounter=0;_.uniqueId=function(prefix){var id=idCounter++;return prefix?prefix+id:id;};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/.^/;var escapes={'\\':'\\',"'":"'",'r':'\r','n':'\n','t':'\t','u2028':'\u2028','u2029':'\u2029'};for(var p in escapes)escapes[escapes[p]]=p;var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;var unescaper=/\\(\\|'|r|n|t|u2028|u2029)/g;var unescape=function(code){return code.replace(unescaper,function(match,escape){return escapes[escape];});};_.template=function(text,data,settings){settings=_.defaults(settings||{},_.templateSettings);var source="__p+='"+text.replace(escaper,function(match){return'\\'+escapes[match];}).replace(settings.escape||noMatch,function(match,code){return"'+\n_.escape("+unescape(code)+")+\n'";}).replace(settings.interpolate||noMatch,function(match,code){return"'+\n("+unescape(code)+")+\n'";}).replace(settings.evaluate||noMatch,function(match,code){return"';\n"+unescape(code)+"\n;__p+='";})+"';\n";if(!settings.variable)source='with(obj||{}){\n'+source+'}\n';source="var __p='';"+"var print=function(){__p+=Array.prototype.join.call(arguments, '')};\n"+ -source+"return __p;\n";var render=new Function(settings.variable||'obj','_',source);if(data)return render(data,_);var template=function(data){return render.call(this,data,_);};template.source='function('+(settings.variable||'obj')+'){\n'+ -source+'}';return template;};_.chain=function(obj){return _(obj).chain();};var wrapper=function(obj){this._wrapped=obj;};_.prototype=wrapper.prototype;var result=function(obj,chain){return chain?_(obj).chain():obj;};var addToWrapper=function(name,func){wrapper.prototype[name]=function(){var args=slice.call(arguments);unshift.call(args,this._wrapped);return result(func.apply(_,args),this._chain);};};_.mixin(_);each(['pop','push','reverse','shift','sort','splice','unshift'],function(name){var method=ArrayProto[name];wrapper.prototype[name]=function(){var wrapped=this._wrapped;method.apply(wrapped,arguments);var length=wrapped.length;if((name=='shift'||name=='splice')&&length===0)delete wrapped[0];return result(wrapped,this._chain);};});each(['concat','join','slice'],function(name){var method=ArrayProto[name];wrapper.prototype[name]=function(){return result(method.apply(this._wrapped,arguments),this._chain);};});wrapper.prototype.chain=function(){this._chain=true;return this;};wrapper.prototype.value=function(){return this._wrapped;};return _;}).call({});var emmet=(function(global){var defaultSyntax='html';var defaultProfile='plain';if(typeof _=='undefined'){try{_=global[['require'][0]]('underscore');}catch(e){}} -if(typeof _=='undefined'){throw'Cannot access to Underscore.js lib';} -var modules={_:_};var ctor=function(){};function inherits(parent,protoProps,staticProps){var child;if(protoProps&&protoProps.hasOwnProperty('constructor')){child=protoProps.constructor;}else{child=function(){parent.apply(this,arguments);};} -_.extend(child,parent);ctor.prototype=parent.prototype;child.prototype=new ctor();if(protoProps) -_.extend(child.prototype,protoProps);if(staticProps) -_.extend(child,staticProps);child.prototype.constructor=child;child.__super__=parent.prototype;return child;};var moduleLoader=null;function r(name){if(!(name in modules)&&moduleLoader) -moduleLoader(name);return modules[name];} -return{define:function(name,factory){if(!(name in modules)){modules[name]=_.isFunction(factory)?this.exec(factory):factory;}},require:r,exec:function(fn,context){return fn.call(context||global,_.bind(r,this),_,this);},extend:function(protoProps,classProps){var child=inherits(this,protoProps,classProps);child.extend=this.extend;if(protoProps.hasOwnProperty('toString')) -child.prototype.toString=protoProps.toString;return child;},expandAbbreviation:function(abbr,syntax,profile,contextNode){if(!abbr)return'';syntax=syntax||defaultSyntax;var filters=r('filters');var parser=r('abbreviationParser');profile=r('profile').get(profile,syntax);r('tabStops').resetTabstopIndex();var data=filters.extractFromAbbreviation(abbr);var outputTree=parser.parse(data[0],{syntax:syntax,contextNode:contextNode});var filtersList=filters.composeList(syntax,profile,data[1]);filters.apply(outputTree,filtersList,profile);return outputTree.toString();},defaultSyntax:function(){return defaultSyntax;},defaultProfile:function(){return defaultProfile;},log:function(){if(global.console&&global.console.log) -global.console.log.apply(global.console,arguments);},setModuleLoader:function(fn){moduleLoader=fn;}};})(this);if(typeof exports!=='undefined'){if(typeof module!=='undefined'&&module.exports){exports=module.exports=emmet;} -exports.emmet=emmet;} -if(typeof define!=='undefined'){define('emmet',[],emmet);} -emmet.define('abbreviationParser',function(require,_){var reValidName=/^[\w\-\$\:@\!%]+\+?$/i;var reWord=/[\w\-:\$@]/;var pairs={'[':']','(':')','{':'}'};var spliceFn=Array.prototype.splice;var preprocessors=[];var postprocessors=[];var outputProcessors=[];function AbbreviationNode(parent){this.parent=null;this.children=[];this._attributes=[];this.abbreviation='';this.counter=1;this._name=null;this._text='';this.repeatCount=1;this.hasImplicitRepeat=false;this._data={};this.start='';this.end='';this.content='';this.padding='';} -AbbreviationNode.prototype={addChild:function(child,position){child=child||new AbbreviationNode;child.parent=this;if(_.isUndefined(position)){this.children.push(child);}else{this.children.splice(position,0,child);} -return child;},clone:function(){var node=new AbbreviationNode();var attrs=['abbreviation','counter','_name','_text','repeatCount','hasImplicitRepeat','start','end','content','padding'];_.each(attrs,function(a){node[a]=this[a];},this);node._attributes=_.map(this._attributes,function(attr){return _.clone(attr);});node._data=_.clone(this._data);node.children=_.map(this.children,function(child){child=child.clone();child.parent=node;return child;});return node;},remove:function(){if(this.parent){this.parent.children=_.without(this.parent.children,this);} -return this;},replace:function(){var parent=this.parent;var ix=_.indexOf(parent.children,this);var items=_.flatten(arguments);spliceFn.apply(parent.children,[ix,1].concat(items));_.each(items,function(item){item.parent=parent;});},updateProperty:function(name,value){this[name]=value;_.each(this.children,function(child){child.updateProperty(name,value);});return this;},find:function(fn){return this.findAll(fn)[0];},findAll:function(fn){if(!_.isFunction(fn)){var elemName=fn.toLowerCase();fn=function(item){return item.name().toLowerCase()==elemName;};} -var result=[];_.each(this.children,function(child){if(fn(child)) -result.push(child);result=result.concat(child.findAll(fn));});return _.compact(result);},data:function(name,value){if(arguments.length==2){this._data[name]=value;if(name=='resource'&&require('elements').is(value,'snippet')){this.content=value.data;if(this._text){this.content=require('abbreviationUtils').insertChildContent(value.data,this._text);}}} -return this._data[name];},name:function(){var res=this.matchedResource();if(require('elements').is(res,'element')){return res.name;} -return this._name;},attributeList:function(){var attrs=[];var res=this.matchedResource();if(require('elements').is(res,'element')&&_.isArray(res.attributes)){attrs=attrs.concat(res.attributes);} -return optimizeAttributes(attrs.concat(this._attributes));},attribute:function(name,value){if(arguments.length==2){var ix=_.indexOf(_.pluck(this._attributes,'name'),name.toLowerCase());if(~ix){this._attributes[ix].value=value;}else{this._attributes.push({name:name,value:value});}} -return(_.find(this.attributeList(),function(attr){return attr.name==name;})||{}).value;},matchedResource:function(){return this.data('resource');},index:function(){return this.parent?_.indexOf(this.parent.children,this):-1;},_setRepeat:function(count){if(count){this.repeatCount=parseInt(count,10)||1;}else{this.hasImplicitRepeat=true;}},setAbbreviation:function(abbr){abbr=abbr||'';var that=this;abbr=abbr.replace(/\*(\d+)?$/,function(str,repeatCount){that._setRepeat(repeatCount);return'';});this.abbreviation=abbr;var abbrText=extractText(abbr);if(abbrText){abbr=abbrText.element;this.content=this._text=abbrText.text;} -var abbrAttrs=parseAttributes(abbr);if(abbrAttrs){abbr=abbrAttrs.element;this._attributes=abbrAttrs.attributes;} -this._name=abbr;if(this._name&&!reValidName.test(this._name)){throw'Invalid abbreviation';}},toString:function(){var utils=require('utils');var start=this.start;var end=this.end;var content=this.content;var node=this;_.each(outputProcessors,function(fn){start=fn(start,node,'start');content=fn(content,node,'content');end=fn(end,node,'end');});var innerContent=_.map(this.children,function(child){return child.toString();}).join('');content=require('abbreviationUtils').insertChildContent(content,innerContent,{keepVariable:false});return start+utils.padString(content,this.padding)+end;},hasEmptyChildren:function(){return!!_.find(this.children,function(child){return child.isEmpty();});},hasImplicitName:function(){return!this._name&&!this.isTextNode();},isGroup:function(){return!this.abbreviation;},isEmpty:function(){return!this.abbreviation&&!this.children.length;},isRepeating:function(){return this.repeatCount>1||this.hasImplicitRepeat;},isTextNode:function(){return!this.name()&&!this.attributeList().length;},isElement:function(){return!this.isEmpty()&&!this.isTextNode();},deepestChild:function(){if(!this.children.length) -return null;var deepestChild=this;while(deepestChild.children.length){deepestChild=_.last(deepestChild.children);} -return deepestChild;}};function stripped(str){return str.substring(1,str.length-1);} -function consumeQuotedValue(stream,quote){var ch;while(ch=stream.next()){if(ch===quote) -return true;if(ch=='\\') -continue;} -return false;} -function parseAbbreviation(abbr){abbr=require('utils').trim(abbr);var root=new AbbreviationNode;var context=root.addChild(),ch;var stream=require('stringStream').create(abbr);var loopProtector=1000,multiplier;while(!stream.eol()&&--loopProtector>0){ch=stream.peek();switch(ch){case'(':stream.start=stream.pos;if(stream.skipToPair('(',')')){var inner=parseAbbreviation(stripped(stream.current()));if(multiplier=stream.match(/^\*(\d+)?/,true)){context._setRepeat(multiplier[1]);} -_.each(inner.children,function(child){context.addChild(child);});}else{throw'Invalid abbreviation: mo matching ")" found for character at '+stream.pos;} -break;case'>':context=context.addChild();stream.next();break;case'+':context=context.parent.addChild();stream.next();break;case'^':var parent=context.parent||context;context=(parent.parent||parent).addChild();stream.next();break;default:stream.start=stream.pos;stream.eatWhile(function(c){if(c=='['||c=='{'){if(stream.skipToPair(c,pairs[c])){stream.backUp(1);return true;} -throw'Invalid abbreviation: mo matching "'+pairs[c]+'" found for character at '+stream.pos;} -if(c=='+'){stream.next();var isMarker=stream.eol()||~'+>^*'.indexOf(stream.peek());stream.backUp(1);return isMarker;} -return c!='('&&isAllowedChar(c);});context.setAbbreviation(stream.current());stream.start=stream.pos;}} -if(loopProtector<1) -throw'Endless loop detected';return root;} -function extractAttributes(attrSet,attrs){attrSet=require('utils').trim(attrSet);var result=[];var stream=require('stringStream').create(attrSet);stream.eatSpace();while(!stream.eol()){stream.start=stream.pos;if(stream.eatWhile(reWord)){var attrName=stream.current();var attrValue='';if(stream.peek()=='='){stream.next();stream.start=stream.pos;var quote=stream.peek();if(quote=='"'||quote=="'"){stream.next();if(consumeQuotedValue(stream,quote)){attrValue=stream.current();attrValue=attrValue.substring(1,attrValue.length-1);}else{throw'Invalid attribute value';}}else if(stream.eatWhile(/[^\s\]]/)){attrValue=stream.current();}else{throw'Invalid attribute value';}} -result.push({name:attrName,value:attrValue});stream.eatSpace();}else{break;}} -return result;} -function parseAttributes(abbr){var result=[];var attrMap={'#':'id','.':'class'};var nameEnd=null;var stream=require('stringStream').create(abbr);while(!stream.eol()){switch(stream.peek()){case'#':case'.':if(nameEnd===null) -nameEnd=stream.pos;var attrName=attrMap[stream.peek()];stream.next();stream.start=stream.pos;stream.eatWhile(reWord);result.push({name:attrName,value:stream.current()});break;case'[':if(nameEnd===null) -nameEnd=stream.pos;stream.start=stream.pos;if(!stream.skipToPair('[',']')) -throw'Invalid attribute set definition';result=result.concat(extractAttributes(stripped(stream.current())));break;default:stream.next();}} -if(!result.length) -return null;return{element:abbr.substring(0,nameEnd),attributes:optimizeAttributes(result)};} -function optimizeAttributes(attrs){attrs=_.map(attrs,function(attr){return _.clone(attr);});var lookup={};return _.filter(attrs,function(attr){if(!(attr.name in lookup)){return lookup[attr.name]=attr;} -var la=lookup[attr.name];if(attr.name.toLowerCase()=='class'){la.value+=(la.value.length?' ':'')+attr.value;}else{la.value=attr.value;} -return false;});} -function extractText(abbr){if(!~abbr.indexOf('{')) -return null;var stream=require('stringStream').create(abbr);while(!stream.eol()){switch(stream.peek()){case'[':case'(':stream.skipToPair(stream.peek(),pairs[stream.peek()]);break;case'{':stream.start=stream.pos;stream.skipToPair('{','}');return{element:abbr.substring(0,stream.start),text:stripped(stream.current())};default:stream.next();}}} -function unroll(node){for(var i=node.children.length-1,j,child,maxCount;i>=0;i--){child=node.children[i];if(child.isRepeating()){maxCount=j=child.repeatCount;child.repeatCount=1;child.updateProperty('counter',1);child.updateProperty('maxCount',maxCount);while(--j>0){child.parent.addChild(child.clone(),i+1).updateProperty('counter',j+1).updateProperty('maxCount',maxCount);}}} -_.each(node.children,unroll);return node;} -function squash(node){for(var i=node.children.length-1;i>=0;i--){var n=node.children[i];if(n.isGroup()){n.replace(squash(n).children);}else if(n.isEmpty()){n.remove();}} -_.each(node.children,squash);return node;} -function isAllowedChar(ch){var charCode=ch.charCodeAt(0);var specialChars='#.*:$-_!@|%';return(charCode>64&&charCode<91)||(charCode>96&&charCode<123)||(charCode>47&&charCode<58)||specialChars.indexOf(ch)!=-1;} -outputProcessors.push(function(text,node){return require('utils').replaceCounter(text,node.counter,node.maxCount);});return{parse:function(abbr,options){options=options||{};var tree=parseAbbreviation(abbr);if(options.contextNode){tree._name=options.contextNode.name;var attrLookup={};_.each(tree._attributes,function(attr){attrLookup[attr.name]=attr;});_.each(options.contextNode.attributes,function(attr){if(attr.name in attrLookup){attrLookup[attr.name].value=attr.value;}else{attr=_.clone(attr);tree._attributes.push(attr);attrLookup[attr.name]=attr;}});} -_.each(preprocessors,function(fn){fn(tree,options);});tree=squash(unroll(tree));_.each(postprocessors,function(fn){fn(tree,options);});return tree;},AbbreviationNode:AbbreviationNode,addPreprocessor:function(fn){if(!_.include(preprocessors,fn)) -preprocessors.push(fn);},removeFilter:function(fn){preprocessor=_.without(preprocessors,fn);},addPostprocessor:function(fn){if(!_.include(postprocessors,fn)) -postprocessors.push(fn);},removePostprocessor:function(fn){postprocessors=_.without(postprocessors,fn);},addOutputProcessor:function(fn){if(!_.include(outputProcessors,fn)) -outputProcessors.push(fn);},removeOutputProcessor:function(fn){outputProcessors=_.without(outputProcessors,fn);},isAllowedChar:function(ch){ch=String(ch);return isAllowedChar(ch)||~'>+^[](){}'.indexOf(ch);}};});emmet.exec(function(require,_){function matchResources(node,syntax){var resources=require('resources');var elements=require('elements');var parser=require('abbreviationParser');_.each(_.clone(node.children),function(child){var r=resources.getMatchedResource(child,syntax);if(_.isString(r)){child.data('resource',elements.create('snippet',r));}else if(elements.is(r,'reference')){var subtree=parser.parse(r.data,{syntax:syntax});if(child.repeatCount>1){var repeatedChildren=subtree.findAll(function(node){return node.hasImplicitRepeat;});_.each(repeatedChildren,function(node){node.repeatCount=child.repeatCount;node.hasImplicitRepeat=false;});} -var deepestChild=subtree.deepestChild();if(deepestChild){_.each(child.children,function(c){deepestChild.addChild(c);});} -_.each(subtree.children,function(node){_.each(child.attributeList(),function(attr){node.attribute(attr.name,attr.value);});});child.replace(subtree.children);}else{child.data('resource',r);} -matchResources(child,syntax);});} -require('abbreviationParser').addPreprocessor(function(tree,options){var syntax=options.syntax||emmet.defaultSyntax();matchResources(tree,syntax);});});emmet.exec(function(require,_){var parser=require('abbreviationParser');var outputPlaceholder='$#';function locateOutputPlaceholder(text){var range=require('range');var result=[];var stream=require('stringStream').create(text);while(!stream.eol()){if(stream.peek()=='\\'){stream.next();}else{stream.start=stream.pos;if(stream.match(outputPlaceholder,true)){result.push(range.create(stream.start,outputPlaceholder));continue;}} -stream.next();} -return result;} -function replaceOutputPlaceholders(source,value){var utils=require('utils');var ranges=locateOutputPlaceholder(source);ranges.reverse();_.each(ranges,function(r){source=utils.replaceSubstring(source,value,r);});return source;} -function hasOutputPlaceholder(node){if(locateOutputPlaceholder(node.content).length) -return true;return!!_.find(node.attributeList(),function(attr){return!!locateOutputPlaceholder(attr.value).length;});} -function insertPastedContent(node,content,overwrite){var nodesWithPlaceholders=node.findAll(function(item){return hasOutputPlaceholder(item);});if(hasOutputPlaceholder(node)) -nodesWithPlaceholders.unshift(node);if(nodesWithPlaceholders.length){_.each(nodesWithPlaceholders,function(item){item.content=replaceOutputPlaceholders(item.content,content);_.each(item._attributes,function(attr){attr.value=replaceOutputPlaceholders(attr.value,content);});});}else{var deepest=node.deepestChild()||node;if(overwrite){deepest.content=content;}else{deepest.content=require('abbreviationUtils').insertChildContent(deepest.content,content);}}} -parser.addPreprocessor(function(tree,options){if(options.pastedContent){var utils=require('utils');var lines=_.map(utils.splitByLines(options.pastedContent,true),utils.trim);tree.findAll(function(item){if(item.hasImplicitRepeat){item.data('paste',lines);return item.repeatCount=lines.length;}});}});parser.addPostprocessor(function(tree,options){var targets=tree.findAll(function(item){var pastedContentObj=item.data('paste');var pastedContent='';if(_.isArray(pastedContentObj)){pastedContent=pastedContentObj[item.counter-1];}else if(_.isFunction(pastedContentObj)){pastedContent=pastedContentObj(item.counter-1,item.content);}else if(pastedContentObj){pastedContent=pastedContentObj;} -if(pastedContent){insertPastedContent(item,pastedContent,!!item.data('pasteOverwrites'));} -item.data('paste',null);return!!pastedContentObj;});if(!targets.length&&options.pastedContent){insertPastedContent(tree,options.pastedContent);}});});emmet.exec(function(require,_){function resolveNodeNames(tree){var tagName=require('tagName');_.each(tree.children,function(node){if(node.hasImplicitName()||node.data('forceNameResolving')){node._name=tagName.resolve(node.parent.name());} -resolveNodeNames(node);});return tree;} -require('abbreviationParser').addPostprocessor(resolveNodeNames);});emmet.define('cssParser',function(require,_){var walker,tokens=[],isOp,isNameChar,isDigit;walker={lines:null,total_lines:0,linenum:-1,line:'',ch:'',chnum:-1,init:function(source){var me=walker;me.lines=source.replace(/\r\n/g,'\n').replace(/\r/g,'\n').split('\n');me.total_lines=me.lines.length;me.chnum=-1;me.linenum=-1;me.ch='';me.line='';me.nextLine();me.nextChar();},nextLine:function(){var me=this;me.linenum+=1;if(me.total_lines<=me.linenum){me.line=false;}else{me.line=me.lines[me.linenum];} -if(me.chnum!==-1){me.chnum=0;} -return me.line;},nextChar:function(){var me=this;me.chnum+=1;while(me.line.charAt(me.chnum)===''){if(this.nextLine()===false){me.ch=false;return false;} -me.chnum=-1;me.ch='\n';return'\n';} -me.ch=me.line.charAt(me.chnum);return me.ch;},peek:function(){return this.line.charAt(this.chnum+1);}};isNameChar=function(c){return(c=='&'||c==='_'||c==='-'||(c>='a'&&c<='z')||(c>='A'&&c<='Z'));};isDigit=function(ch){return(ch!==false&&ch>='0'&&ch<='9');};isOp=(function(){var opsa="{}[]()+*=.,;:>~|\\%$#@^!".split(''),opsmatcha="*^|$~".split(''),ops={},opsmatch={},i=0;for(;i"));else -return null;}else if(stream.match("--")) -return chain(inBlock("comment","-->"));else if(stream.match("DOCTYPE",true,true)){stream.eatWhile(/[\w\._\-]/);return chain(doctype(1));}else -return null;}else if(stream.eat("?")){stream.eatWhile(/[\w\._\-]/);state.tokenize=inBlock("meta","?>");return"meta";}else{type=stream.eat("/")?"closeTag":"openTag";stream.eatSpace();tagName="";var c;while((c=stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) -tagName+=c;state.tokenize=inTag;return"tag";}}else if(ch=="&"){var ok;if(stream.eat("#")){if(stream.eat("x")){ok=stream.eatWhile(/[a-fA-F\d]/)&&stream.eat(";");}else{ok=stream.eatWhile(/[\d]/)&&stream.eat(";");}}else{ok=stream.eatWhile(/[\w\.\-:]/)&&stream.eat(";");} -return ok?"atom":"error";}else{stream.eatWhile(/[^&<]/);return"text";}} -function inTag(stream,state){var ch=stream.next();if(ch==">"||(ch=="/"&&stream.eat(">"))){state.tokenize=inText;type=ch==">"?"endTag":"selfcloseTag";return"tag";}else if(ch=="="){type="equals";return null;}else if(/[\'\"]/.test(ch)){state.tokenize=inAttribute(ch);return state.tokenize(stream,state);}else{stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/);return"word";}} -function inAttribute(quote){return function(stream,state){while(!stream.eol()){if(stream.next()==quote){state.tokenize=inTag;break;}} -return"string";};} -function inBlock(style,terminator){return function(stream,state){while(!stream.eol()){if(stream.match(terminator)){state.tokenize=inText;break;} -stream.next();} -return style;};} -function doctype(depth){return function(stream,state){var ch;while((ch=stream.next())!=null){if(ch=="<"){state.tokenize=doctype(depth+1);return state.tokenize(stream,state);}else if(ch==">"){if(depth==1){state.tokenize=inText;break;}else{state.tokenize=doctype(depth-1);return state.tokenize(stream,state);}}} -return"meta";};} -var curState=null,setStyle;function pass(){for(var i=arguments.length-1;i>=0;i--) -curState.cc.push(arguments[i]);} -function cont(){pass.apply(null,arguments);return true;} -function pushContext(tagName,startOfLine){var noIndent=Kludges.doNotIndent.hasOwnProperty(tagName)||(curState.context&&curState.context.noIndent);curState.context={prev:curState.context,tagName:tagName,indent:curState.indented,startOfLine:startOfLine,noIndent:noIndent};} -function popContext(){if(curState.context) -curState.context=curState.context.prev;} -function element(type){if(type=="openTag"){curState.tagName=tagName;return cont(attributes,endtag(curState.startOfLine));}else if(type=="closeTag"){var err=false;if(curState.context){if(curState.context.tagName!=tagName){if(Kludges.implicitlyClosed.hasOwnProperty(curState.context.tagName.toLowerCase())){popContext();} -err=!curState.context||curState.context.tagName!=tagName;}}else{err=true;} -if(err) -setStyle="error";return cont(endclosetag(err));} -return cont();} -function endtag(startOfLine){return function(type){if(type=="selfcloseTag"||(type=="endTag"&&Kludges.autoSelfClosers.hasOwnProperty(curState.tagName.toLowerCase()))){maybePopContext(curState.tagName.toLowerCase());return cont();} -if(type=="endTag"){maybePopContext(curState.tagName.toLowerCase());pushContext(curState.tagName,startOfLine);return cont();} -return cont();};} -function endclosetag(err){return function(type){if(err) -setStyle="error";if(type=="endTag"){popContext();return cont();} -setStyle="error";return cont(arguments.callee);};} -function maybePopContext(nextTagName){var parentTagName;while(true){if(!curState.context){return;} -parentTagName=curState.context.tagName.toLowerCase();if(!Kludges.contextGrabbers.hasOwnProperty(parentTagName)||!Kludges.contextGrabbers[parentTagName].hasOwnProperty(nextTagName)){return;} -popContext();}} -function attributes(type){if(type=="word"){setStyle="attribute";return cont(attribute,attributes);} -if(type=="endTag"||type=="selfcloseTag") -return pass();setStyle="error";return cont(attributes);} -function attribute(type){if(type=="equals") -return cont(attvalue,attributes);if(!Kludges.allowMissing) -setStyle="error";return(type=="endTag"||type=="selfcloseTag")?pass():cont();} -function attvalue(type){if(type=="string") -return cont(attvaluemaybe);if(type=="word"&&Kludges.allowUnquoted){setStyle="string";return cont();} -setStyle="error";return(type=="endTag"||type=="selfCloseTag")?pass():cont();} -function attvaluemaybe(type){if(type=="string") -return cont(attvaluemaybe);else -return pass();} -function startState(){return{tokenize:inText,cc:[],indented:0,startOfLine:true,tagName:null,context:null};} -function token(stream,state){if(stream.sol()){state.startOfLine=true;state.indented=0;} -if(stream.eatSpace()) -return null;setStyle=type=tagName=null;var style=state.tokenize(stream,state);state.type=type;if((style||type)&&style!="comment"){curState=state;while(true){var comb=state.cc.pop()||element;if(comb(type||style)) -break;}} -state.startOfLine=false;return setStyle||style;} -return{parse:function(data,offset){offset=offset||0;var state=startState();var stream=require('stringStream').create(data);var tokens=[];while(!stream.eol()){tokens.push({type:token(stream,state),start:stream.start+offset,end:stream.pos+offset});stream.start=stream.pos;} -return tokens;}};});emmet.define('string-score',function(require,_){return{score:function(string,abbreviation,fuzziness){if(string==abbreviation){return 1;} -if(abbreviation==""){return 0;} -var total_character_score=0,abbreviation_length=abbreviation.length,string_length=string.length,start_of_string_bonus,abbreviation_score,fuzzies=1,final_score;for(var i=0,character_score,index_in_string,c,index_c_lowercase,index_c_uppercase,min_index;i-1)?min_index:Math.max(index_c_lowercase,index_c_uppercase);if(index_in_string===-1){if(fuzziness){fuzzies+=1-fuzziness;continue;}else{return 0;}}else{character_score=0.1;} -if(string[index_in_string]===c){character_score+=0.1;} -if(index_in_string===0){character_score+=0.6;if(i===0){start_of_string_bonus=1;}} -else{if(string.charAt(index_in_string-1)===' '){character_score+=0.8;}} -string=string.substring(index_in_string+1,string_length);total_character_score+=character_score;} -abbreviation_score=total_character_score/abbreviation_length;final_score=((abbreviation_score*(abbreviation_length/string_length))+abbreviation_score)/2;final_score=final_score/fuzzies;if(start_of_string_bonus&&(final_score+0.15<1)){final_score+=0.15;} -return final_score;}};});emmet.define('utils',function(require,_){var caretPlaceholder='${0}';function StringBuilder(value){this._data=[];this.length=0;if(value) -this.append(value);} -StringBuilder.prototype={append:function(text){this._data.push(text);this.length+=text.length;},toString:function(){return this._data.join('');},valueOf:function(){return this.toString();}};return{reTag:/<\/?[\w:\-]+(?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*(\/?)>$/,endsWithTag:function(str){return this.reTag.test(str);},isNumeric:function(ch){if(typeof(ch)=='string') -ch=ch.charCodeAt(0);return(ch&&ch>47&&ch<58);},trim:function(text){return(text||"").replace(/^\s+|\s+$/g,"");},getNewline:function(){var res=require('resources');if(!res){return'\n';} -var nl=res.getVariable('newline');return _.isString(nl)?nl:'\n';},setNewline:function(str){var res=require('resources');res.setVariable('newline',str);res.setVariable('nl',str);},splitByLines:function(text,removeEmpty){var nl=this.getNewline();var lines=(text||'').replace(/\r\n/g,'\n').replace(/\n\r/g,'\n').replace(/\r/g,'\n').replace(/\n/g,nl).split(nl);if(removeEmpty){lines=_.filter(lines,function(line){return line.length&&!!this.trim(line);},this);} -return lines;},normalizeNewline:function(text){return this.splitByLines(text).join(this.getNewline());},repeatString:function(str,howMany){var result=[];for(var i=0;iil++)padding+='0';return padding+str;},unindentString:function(text,pad){var lines=this.splitByLines(text);for(var i=0;istr.length) -return str;return str.substring(0,start)+value+str.substring(end);},narrowToNonSpace:function(text,start,end){var range=require('range').create(start,end);var reSpace=/[\s\n\r\u00a0]/;while(range.startrange.start){range.end--;if(!reSpace.test(text.charAt(range.end))){range.end++;break;}} -return range;},findNewlineBounds:function(text,from){var len=text.length,start=0,end=len-1;for(var i=from-1;i>0;i--){var ch=text.charAt(i);if(ch=='\n'||ch=='\r'){start=i+1;break;}} -for(var j=from;j':return a>b;case'gte':case'>=':return a>=b;}} -function Range(start,len){if(_.isObject(start)&&'start'in start){this.start=Math.min(start.start,start.end);this.end=Math.max(start.start,start.end);}else if(_.isArray(start)){this.start=start[0];this.end=start[1];}else{len=_.isString(len)?len.length:+len;this.start=start;this.end=start+len;}} -Range.prototype={length:function(){return Math.abs(this.end-this.start);},equal:function(range){return this.cmp(range,'eq','eq');},shift:function(delta){this.start+=delta;this.end+=delta;return this;},overlap:function(range){return range.start<=this.end&&range.end>=this.start;},intersection:function(range){if(this.overlap(range)){var start=Math.max(range.start,this.start);var end=Math.min(range.end,this.end);return new Range(start,end-start);} -return null;},union:function(range){if(this.overlap(range)){var start=Math.min(range.start,this.start);var end=Math.max(range.end,this.end);return new Range(start,end-start);} -return null;},inside:function(loc){return this.cmp(loc,'lte','gt');},contains:function(loc){return this.cmp(loc,'lt','gt');},include:function(r){return this.cmp(loc,'lte','gte');},cmp:function(loc,left,right){var a,b;if(loc instanceof Range){a=loc.start;b=loc.end;}else{a=b=loc;} -return cmp(this.start,a,left||'<=')&&cmp(this.end,b,right||'>');},substring:function(str){return this.length()>0?str.substring(this.start,this.end):'';},clone:function(){return new Range(this.start,this.length());},toArray:function(){return[this.start,this.end];},toString:function(){return'{'+this.start+', '+this.length()+'}';}};return{create:function(start,len){if(_.isUndefined(start)||start===null) -return null;if(start instanceof Range) -return start;if(_.isObject(start)&&'start'in start&&'end'in start){len=start.end-start.start;start=start.start;} -return new Range(start,len);},create2:function(start,end){if(_.isNumber(start)&&_.isNumber(end)){end-=start;} -return this.create(start,end);}};});emmet.define('handlerList',function(require,_){function HandlerList(){this._list=[];} -HandlerList.prototype={add:function(fn,options){this._list.push(_.extend({order:0},options||{},{fn:fn}));},remove:function(fn){this._list=_.without(this._list,_.find(this._list,function(item){return item.fn===fn;}));},list:function(){return _.sortBy(this._list,'order').reverse();},listFn:function(){return _.pluck(this.list(),'fn');},exec:function(skipValue,args){args=args||[];var result=null;_.find(this.list(),function(h){result=h.fn.apply(h,args);if(result!==skipValue) -return true;});return result;}};return{create:function(){return new HandlerList();}};});emmet.define('tokenIterator',function(require,_){function TokenIterator(tokens){this.tokens=tokens;this._position=0;this.reset();} -TokenIterator.prototype={next:function(){if(this.hasNext()){var token=this.tokens[++this._i];this._position=token.start;return token;} -return null;},current:function(){return this.tokens[this._i];},position:function(){return this._position;},hasNext:function(){return this._i=this.string.length;},sol:function(){return this.pos==0;},peek:function(){return this.string.charAt(this.pos);},next:function(){if(this.posstart;},eatSpace:function(){var start=this.pos;while(/[\s\u00a0]/.test(this.string.charAt(this.pos))) -++this.pos;return this.pos>start;},skipToEnd:function(){this.pos=this.string.length;},skipTo:function(ch){var found=this.string.indexOf(ch,this.pos);if(found>-1){this.pos=found;return true;}},skipToPair:function(open,close){var braceCount=0,ch;var pos=this.pos,len=this.string.length;while(pos/;var systemSettings={};var userSettings={};var resolvers=require('handlerList').create();function normalizeCaretPlaceholder(text){var utils=require('utils');return utils.replaceUnescapedSymbol(text,'|',utils.getCaretPlaceholder());} -function parseItem(name,value,type){value=normalizeCaretPlaceholder(value);if(type=='snippets'){return require('elements').create('snippet',value);} -if(type=='abbreviations'){return parseAbbreviation(name,value);}} -function parseAbbreviation(key,value){key=require('utils').trim(key);var elements=require('elements');var m;if(m=reTag.exec(value)){return elements.create('element',m[1],m[2],m[4]=='/');}else{return elements.create('reference',value);}} -function normalizeName(str){return str.replace(/:$/,'').replace(/:/g,'-');} -return{setVocabulary:function(data,type){cache={};if(type==VOC_SYSTEM) -systemSettings=data;else -userSettings=data;},getVocabulary:function(name){return name==VOC_SYSTEM?systemSettings:userSettings;},getMatchedResource:function(node,syntax){return resolvers.exec(null,_.toArray(arguments))||this.findSnippet(syntax,node.name());},getVariable:function(name){return(this.getSection('variables')||{})[name];},setVariable:function(name,value){var voc=this.getVocabulary('user')||{};if(!('variables'in voc)) -voc.variables={};voc.variables[name]=value;this.setVocabulary(voc,'user');},hasSyntax:function(syntax){return syntax in this.getVocabulary(VOC_USER)||syntax in this.getVocabulary(VOC_SYSTEM);},addResolver:function(fn,options){resolvers.add(fn,options);},removeResolver:function(fn){resolvers.remove(fn);},getSection:function(name){if(!name) -return null;if(!(name in cache)){cache[name]=require('utils').deepMerge({},systemSettings[name],userSettings[name]);} -var data=cache[name],subsections=_.rest(arguments),key;while(data&&(key=subsections.shift())){if(key in data){data=data[key];}else{return null;}} -return data;},findItem:function(topSection,subsection){var data=this.getSection(topSection);while(data){if(subsection in data) -return data[subsection];data=this.getSection(data['extends']);}},findSnippet:function(syntax,name,memo){if(!syntax||!name) -return null;memo=memo||[];var names=[name];if(~name.indexOf('-')) -names.push(name.replace(/\-/g,':'));var data=this.getSection(syntax),matchedItem=null;_.find(['snippets','abbreviations'],function(sectionName){var data=this.getSection(syntax,sectionName);if(data){return _.find(names,function(n){if(data[n]) -return matchedItem=parseItem(n,data[n],sectionName);});}},this);memo.push(syntax);if(!matchedItem&&data['extends']&&!_.include(memo,data['extends'])){return this.findSnippet(data['extends'],name,memo);} -return matchedItem;},fuzzyFindSnippet:function(syntax,name,minScore){minScore=minScore||0.3;var payload=this.getAllSnippets(syntax);var sc=require('string-score');name=normalizeName(name);var scores=_.map(payload,function(value,key){return{key:key,score:sc.score(value.nk,name,0.1)};});var result=_.last(_.sortBy(scores,'score'));if(result&&result.score>=minScore){var k=result.key;return payload[k].parsedValue;}},getAllSnippets:function(syntax){var cacheKey='all-'+syntax;if(!cache[cacheKey]){var stack=[],sectionKey=syntax;var memo=[];do{var section=this.getSection(sectionKey);if(!section) -break;_.each(['snippets','abbreviations'],function(sectionName){var stackItem={};_.each(section[sectionName]||null,function(v,k){stackItem[k]={nk:normalizeName(k),value:v,parsedValue:parseItem(k,v,sectionName),type:sectionName};});stack.push(stackItem);});memo.push(sectionKey);sectionKey=section['extends'];}while(sectionKey&&!_.include(memo,sectionKey));cache[cacheKey]=_.extend.apply(_,stack.reverse());} -return cache[cacheKey];}};});emmet.define('actions',function(require,_,zc){var actions={};function humanizeActionName(name){return require('utils').trim(name.charAt(0).toUpperCase() -+name.substring(1).replace(/_[a-z]/g,function(str){return' '+str.charAt(1).toUpperCase();}));} -return{add:function(name,fn,options){name=name.toLowerCase();options=options||{};if(!options.label){options.label=humanizeActionName(name);} -actions[name]={name:name,fn:fn,options:options};},get:function(name){return actions[name.toLowerCase()];},run:function(name,args){if(!_.isArray(args)){args=_.rest(arguments);} -var action=this.get(name);if(action){return action.fn.apply(emmet,args);}else{emmet.log('Action "%s" is not defined',name);return false;}},getAll:function(){return actions;},getList:function(){return _.values(this.getAll());},getMenu:function(skipActions){var result=[];skipActions=skipActions||[];_.each(this.getList(),function(action){if(action.options.hidden||_.include(skipActions,action.name)) -return;var actionName=humanizeActionName(action.name);var ctx=result;if(action.options.label){var parts=action.options.label.split('/');actionName=parts.pop();var menuName,submenu;while(menuName=parts.shift()){submenu=_.find(ctx,function(item){return item.type=='submenu'&&item.name==menuName;});if(!submenu){submenu={name:menuName,type:'submenu',items:[]};ctx.push(submenu);} -ctx=submenu.items;}} -ctx.push({type:'action',name:action.name,label:actionName});});return result;},getActionNameForMenuTitle:function(title,menu){var item=null;_.find(menu||this.getMenu(),function(val){if(val.type=='action'){if(val.label==title||val.name==title){return item=val.name;}}else{return item=this.getActionNameForMenuTitle(title,val.items);}},this);return item||null;}};});emmet.define('profile',function(require,_){var profiles={};var defaultProfile={tag_case:'asis',attr_case:'asis',attr_quotes:'double',tag_nl:'decide',tag_nl_leaf:false,place_cursor:true,indent:true,inline_break:3,self_closing_tag:'xhtml',filters:'',extraFilters:''};function OutputProfile(options){_.extend(this,defaultProfile,options);} -OutputProfile.prototype={tagName:function(name){return stringCase(name,this.tag_case);},attributeName:function(name){return stringCase(name,this.attr_case);},attributeQuote:function(){return this.attr_quotes=='single'?"'":'"';},selfClosing:function(param){if(this.self_closing_tag=='xhtml') -return' /';if(this.self_closing_tag===true) -return'/';return'';},cursor:function(){return this.place_cursor?require('utils').getCaretPlaceholder():'';}};function stringCase(str,caseValue){switch(String(caseValue||'').toLowerCase()){case'lower':return str.toLowerCase();case'upper':return str.toUpperCase();} -return str;} -function createProfile(name,options){return profiles[name.toLowerCase()]=new OutputProfile(options);} -function createDefaultProfiles(){createProfile('xhtml');createProfile('html',{self_closing_tag:false});createProfile('xml',{self_closing_tag:true,tag_nl:true});createProfile('plain',{tag_nl:false,indent:false,place_cursor:false});createProfile('line',{tag_nl:false,indent:false,extraFilters:'s'});} -createDefaultProfiles();return{create:function(name,options){if(arguments.length==2) -return createProfile(name,options);else -return new OutputProfile(_.defaults(name||{},defaultProfile));},get:function(name,syntax){if(!name&&syntax){var profile=require('resources').findItem(syntax,'profile');if(profile){name=profile;}} -if(!name){return profiles.plain;} -if(name instanceof OutputProfile){return name;} -if(_.isString(name)&&name.toLowerCase()in profiles){return profiles[name.toLowerCase()];} -return this.create(name);},remove:function(name){name=(name||'').toLowerCase();if(name in profiles) -delete profiles[name];},reset:function(){profiles={};createDefaultProfiles();},stringCase:stringCase};});emmet.define('editorUtils',function(require,_){return{isInsideTag:function(html,caretPos){var reTag=/^<\/?\w[\w\:\-]*.*?>/;var pos=caretPos;while(pos>-1){if(html.charAt(pos)=='<') -break;pos--;} -if(pos!=-1){var m=reTag.exec(html.substring(pos));if(m&&caretPos>pos&&caretPos'&&utils.endsWithTag(str.substring(0,curOffset+1)))){startIndex=curOffset+1;break;}}} -if(startIndex!=-1&&!textCount&&!braceCount&&!groupCount) -return str.substring(startIndex).replace(/^[\*\+\>\^]+/,'');else -return'';},getImageSize:function(stream){var pngMagicNum="\211PNG\r\n\032\n",jpgMagicNum="\377\330",gifMagicNum="GIF8",nextByte=function(){return stream.charCodeAt(pos++);};if(stream.substr(0,8)===pngMagicNum){var pos=stream.indexOf('IHDR')+4;return{width:(nextByte()<<24)|(nextByte()<<16)|(nextByte()<<8)|nextByte(),height:(nextByte()<<24)|(nextByte()<<16)|(nextByte()<<8)|nextByte()};}else if(stream.substr(0,4)===gifMagicNum){pos=6;return{width:nextByte()|(nextByte()<<8),height:nextByte()|(nextByte()<<8)};}else if(stream.substr(0,2)===jpgMagicNum){pos=2;var l=stream.length;while(pos=0xC0&&marker<=0xCF&&!(marker&0x4)&&!(marker&0x8)){pos+=1;return{height:(nextByte()<<8)|nextByte(),width:(nextByte()<<8)|nextByte()};}else{pos+=size-2;}}}},captureContext:function(editor){var allowedSyntaxes={'html':1,'xml':1,'xsl':1};var syntax=String(editor.getSyntax());if(syntax in allowedSyntaxes){var content=String(editor.getContent());var tag=require('htmlMatcher').find(content,editor.getCaretPos());if(tag&&tag.type=='tag'){var startTag=tag.open;var contextNode={name:startTag.name,attributes:[]};var tagTree=require('xmlEditTree').parse(startTag.range.substring(content));if(tagTree){contextNode.attributes=_.map(tagTree.getAll(),function(item){return{name:item.name(),value:item.value()};});} -return contextNode;}} -return null;},findExpressionBounds:function(editor,fn){var content=String(editor.getContent());var il=content.length;var exprStart=editor.getCaretPos()-1;var exprEnd=exprStart+1;while(exprStart>=0&&fn(content.charAt(exprStart),exprStart,content))exprStart--;while(exprEndexprStart){return require('range').create([++exprStart,exprEnd]);}},compoundUpdate:function(editor,data){if(data){var sel=editor.getSelectionRange();editor.replaceContent(data.data,data.start,data.end,true);editor.createSelection(data.caret,data.caret+sel.end-sel.start);return true;} -return false;},detectSyntax:function(editor,hint){var syntax=hint||'html';if(!require('resources').hasSyntax(syntax)){syntax='html';} -if(syntax=='html'&&(this.isStyle(editor)||this.isInlineCSS(editor))){syntax='css';} -return syntax;},detectProfile:function(editor){var syntax=editor.getSyntax();var profile=require('resources').findItem(syntax,'profile');if(profile){return profile;} -switch(syntax){case'xml':case'xsl':return'xml';case'css':if(this.isInlineCSS(editor)){return'line';} -break;case'html':var profile=require('resources').getVariable('profile');if(!profile){profile=this.isXHTML(editor)?'xhtml':'html';} -return profile;} -return'xhtml';},isXHTML:function(editor){return editor.getContent().search(/]+XHTML/i)!=-1;},isStyle:function(editor){var content=String(editor.getContent());var caretPos=editor.getCaretPos();var tag=require('htmlMatcher').tag(content,caretPos);return tag&&tag.open.name.toLowerCase()=='style'&&tag.innerRange.cmp(caretPos,'lte','gte');},isInlineCSS:function(editor){var content=String(editor.getContent());var caretPos=editor.getCaretPos();var tree=require('xmlEditTree').parseFromPosition(content,caretPos,true);if(tree){var attr=tree.itemFromPosition(caretPos,true);return attr&&attr.name().toLowerCase()=='style'&&attr.valueRange(true).cmp(caretPos,'lte','gte');} -return false;}};});emmet.define('abbreviationUtils',function(require,_){return{isSnippet:function(node){return require('elements').is(node.matchedResource(),'snippet');},isUnary:function(node){if(node.children.length||node._text||this.isSnippet(node)){return false;} -var r=node.matchedResource();return r&&r.is_empty;},isInline:function(node){return node.isTextNode()||!node.name()||require('tagName').isInlineLevel(node.name());},isBlock:function(node){return this.isSnippet(node)||!this.isInline(node);},isSnippet:function(node){return require('elements').is(node.matchedResource(),'snippet');},hasTagsInContent:function(node){return require('utils').matchesTag(node.content);},hasBlockChildren:function(node){return(this.hasTagsInContent(node)&&this.isBlock(node))||_.any(node.children,function(child){return this.isBlock(child);},this);},insertChildContent:function(text,childContent,options){options=_.extend({keepVariable:true,appendIfNoChild:true},options||{});var childVariableReplaced=false;var utils=require('utils');text=utils.replaceVariables(text,function(variable,name,data){var output=variable;if(name=='child'){output=utils.padString(childContent,utils.getLinePaddingFromPosition(text,data.start));childVariableReplaced=true;if(options.keepVariable) -output+=variable;} -return output;});if(!childVariableReplaced&&options.appendIfNoChild){text+=childContent;} -return text;}};});emmet.define('base64',function(require,_){var chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';return{encode:function(input){var output=[];var chr1,chr2,chr3,enc1,enc2,enc3,enc4,cdp1,cdp2,cdp3;var i=0,il=input.length,b64=chars;while(i>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(cdp2)){enc3=enc4=64;}else if(isNaN(cdp3)){enc4=64;} -output.push(b64.charAt(enc1)+b64.charAt(enc2)+b64.charAt(enc3)+b64.charAt(enc4));} -return output.join('');},decode:function(data){var o1,o2,o3,h1,h2,h3,h4,bits,i=0,ac=0,tmpArr=[];var b64=chars,il=data.length;if(!data){return data;} -data+='';do{h1=b64.indexOf(data.charAt(i++));h2=b64.indexOf(data.charAt(i++));h3=b64.indexOf(data.charAt(i++));h4=b64.indexOf(data.charAt(i++));bits=h1<<18|h2<<12|h3<<6|h4;o1=bits>>16&0xff;o2=bits>>8&0xff;o3=bits&0xff;if(h3==64){tmpArr[ac++]=String.fromCharCode(o1);}else if(h4==64){tmpArr[ac++]=String.fromCharCode(o1,o2);}else{tmpArr[ac++]=String.fromCharCode(o1,o2,o3);}}while(i\s]+))?)*)\s*(\/?)>/;var reCloseTag=/^<\/([\w\:\-]+)[^>]*>/;function openTag(i,match){return{name:match[1],selfClose:!!match[3],range:require('range').create(i,match[0]),type:'open'};} -function closeTag(i,match){return{name:match[1],range:require('range').create(i,match[0]),type:'close'};} -function comment(i,match){return{range:require('range').create(i,_.isNumber(match)?match-i:match[0]),type:'comment'};} -function createMatcher(text){var memo={},m;return{open:function(i){var m=this.matches(i);return m&&m.type=='open'?m:null;},close:function(i){var m=this.matches(i);return m&&m.type=='close'?m:null;},matches:function(i){var key='p'+i;if(!(key in memo)){if(text.charAt(i)=='<'){var substr=text.slice(i);if(m=substr.match(reOpenTag)){memo[key]=openTag(i,m);}else if(m=substr.match(reCloseTag)){memo[key]=closeTag(i,m);}else{memo[key]=false;}}} -return memo[key];},text:function(){return text;}};} -function matches(text,pos,pattern){return text.substring(pos,pos+pattern.length)==pattern;} -function findClosingPair(open,matcher){var stack=[],tag=null;var text=matcher.text();for(var pos=open.range.end,len=text.length;pos')){pos=j+3;break;}}} -if(tag=matcher.matches(pos)){if(tag.type=='open'&&!tag.selfClose){stack.push(tag.name);}else if(tag.type=='close'){if(!stack.length){return tag.name==open.name?tag:null;} -if(_.last(stack)==tag.name){stack.pop();}else{var found=false;while(stack.length&&!found){var last=stack.pop();if(last==tag.name){found=true;}} -if(!stack.length&&!found){return tag.name==open.name?tag:null;}}}}}} -return{find:function(text,pos){var range=require('range');var matcher=createMatcher(text);var open=null,close=null;for(var i=pos;i>=0;i--){if(open=matcher.open(i)){if(open.selfClose){if(open.range.cmp(pos,'lt','gt')){break;} -continue;} -close=findClosingPair(open,matcher);if(close){var r=range.create2(open.range.start,close.range.end);if(r.contains(pos)){break;}}else if(open.range.contains(pos)){break;} -open=null;}else if(matches(text,i,'-->')){for(var j=i-1;j>=0;j--){if(matches(text,j,'-->')){break;}else if(matches(text,j,'')){j+=3;break;}} -open=comment(i,j);break;}} -if(open){var outerRange=null;var innerRange=null;if(close){outerRange=range.create2(open.range.start,close.range.end);innerRange=range.create2(open.range.end,close.range.start);}else{outerRange=innerRange=range.create2(open.range.start,open.range.end);} -if(open.type=='comment'){var _c=outerRange.substring(text);innerRange.start+=_c.length-_c.replace(/^<\!--\s*/,'').length;innerRange.end-=_c.length-_c.replace(/\s*-->$/,'').length;} -return{open:open,close:close,type:open.type=='comment'?'comment':'tag',innerRange:innerRange,innerContent:function(){return this.innerRange.substring(text);},outerRange:outerRange,outerContent:function(){return this.outerRange.substring(text);},range:!innerRange.length()||!innerRange.cmp(pos,'lte','gte')?outerRange:innerRange,content:function(){return this.range.substring(text);},source:text};}},tag:function(text,pos){var result=this.find(text,pos);if(result&&result.type=='tag'){return result;}}};});emmet.define('tabStops',function(require,_){var startPlaceholderNum=100;var tabstopIndex=0;var defaultOptions={replaceCarets:false,escape:function(ch){return'\\'+ch;},tabstop:function(data){return data.token;},variable:function(data){return data.token;}};require('abbreviationParser').addOutputProcessor(function(text,node,type){var maxNum=0;var tabstops=require('tabStops');var utils=require('utils');var tsOptions={tabstop:function(data){var group=parseInt(data.group);if(group==0) -return'${0}';if(group>maxNum)maxNum=group;if(data.placeholder){var ix=group+tabstopIndex;var placeholder=tabstops.processText(data.placeholder,tsOptions);return'${'+ix+':'+placeholder+'}';}else{return'${'+(group+tabstopIndex)+'}';}}};text=tabstops.processText(text,tsOptions);text=utils.replaceVariables(text,tabstops.variablesResolver(node));tabstopIndex+=maxNum+1;return text;});return{extract:function(text,options){var utils=require('utils');var placeholders={carets:''};var marks=[];options=_.extend({},defaultOptions,options,{tabstop:function(data){var token=data.token;var ret='';if(data.placeholder=='cursor'){marks.push({start:data.start,end:data.start+token.length,group:'carets',value:''});}else{if('placeholder'in data) -placeholders[data.group]=data.placeholder;if(data.group in placeholders) -ret=placeholders[data.group];marks.push({start:data.start,end:data.start+token.length,group:data.group,value:ret});} -return token;}});if(options.replaceCarets){text=text.replace(new RegExp(utils.escapeForRegexp(utils.getCaretPlaceholder()),'g'),'${0:cursor}');} -text=this.processText(text,options);var buf=utils.stringBuilder(),lastIx=0;var tabStops=_.map(marks,function(mark){buf.append(text.substring(lastIx,mark.start));var pos=buf.length;var ph=placeholders[mark.group]||'';buf.append(ph);lastIx=mark.end;return{group:mark.group,start:pos,end:pos+ph.length};});buf.append(text.substring(lastIx));return{text:buf.toString(),tabstops:_.sortBy(tabStops,'start')};},processText:function(text,options){options=_.extend({},defaultOptions,options);var buf=require('utils').stringBuilder();var stream=require('stringStream').create(text);var ch,m,a;while(ch=stream.next()){if(ch=='\\'&&!stream.eol()){buf.append(options.escape(stream.next()));continue;} -a=ch;if(ch=='$'){stream.start=stream.pos-1;if(m=stream.match(/^[0-9]+/)){a=options.tabstop({start:buf.length,group:stream.current().substr(1),token:stream.current()});}else if(m=stream.match(/^\{([a-z_\-][\w\-]*)\}/)){a=options.variable({start:buf.length,name:m[1],token:stream.current()});}else if(m=stream.match(/^\{([0-9]+)(:.+?)?\}/,false)){stream.skipToPair('{','}');var obj={start:buf.length,group:m[1],token:stream.current()};var placeholder=obj.token.substring(obj.group.length+2,obj.token.length-1);if(placeholder){obj.placeholder=placeholder.substr(1);} -a=options.tabstop(obj);}} -buf.append(a);} -return buf.toString();},upgrade:function(node,offset){var maxNum=0;var options={tabstop:function(data){var group=parseInt(data.group);if(group>maxNum)maxNum=group;if(data.placeholder) -return'${'+(group+offset)+':'+data.placeholder+'}';else -return'${'+(group+offset)+'}';}};_.each(['start','end','content'],function(p){node[p]=this.processText(node[p],options);},this);return maxNum;},variablesResolver:function(node){var placeholderMemo={};var res=require('resources');return function(str,varName){if(varName=='child') -return str;if(varName=='cursor') -return require('utils').getCaretPlaceholder();var attr=node.attribute(varName);if(!_.isUndefined(attr)&&attr!==str){return attr;} -var varValue=res.getVariable(varName);if(varValue) -return varValue;if(!placeholderMemo[varName]) -placeholderMemo[varName]=startPlaceholderNum++;return'${'+placeholderMemo[varName]+':'+varName+'}';};},resetTabstopIndex:function(){tabstopIndex=0;startPlaceholderNum=100;}};});emmet.define('preferences',function(require,_){var preferences={};var defaults={};var _dbgDefaults=null;var _dbgPreferences=null;function toBoolean(val){if(_.isString(val)){val=val.toLowerCase();return val=='yes'||val=='true'||val=='1';} -return!!val;} -function isValueObj(obj){return _.isObject(obj)&&'value'in obj&&_.keys(obj).length<3;} -return{define:function(name,value,description){var prefs=name;if(_.isString(name)){prefs={};prefs[name]={value:value,description:description};} -_.each(prefs,function(v,k){defaults[k]=isValueObj(v)?v:{value:v};});},set:function(name,value){var prefs=name;if(_.isString(name)){prefs={};prefs[name]=value;} -_.each(prefs,function(v,k){if(!(k in defaults)){throw'Property "'+k+'" is not defined. You should define it first with `define` method of current module';} -if(v!==defaults[k].value){switch(typeof defaults[k].value){case'boolean':v=toBoolean(v);break;case'number':v=parseInt(v+'',10)||0;break;default:if(v!==null){v+='';}} -preferences[k]=v;}else if(k in preferences){delete preferences[k];}});},get:function(name){if(name in preferences) -return preferences[name];if(name in defaults) -return defaults[name].value;return void 0;},getArray:function(name){var val=this.get(name);if(_.isUndefined(val)||val===null||val===''){return null;} -val=_.map(val.split(','),require('utils').trim);if(!val.length){return null;} -return val;},getDict:function(name){var result={};_.each(this.getArray(name),function(val){var parts=val.split(':');result[parts[0]]=parts[1];});return result;},description:function(name){return name in defaults?defaults[name].description:void 0;},remove:function(name){if(!_.isArray(name)) -name=[name];_.each(name,function(key){if(key in preferences) -delete preferences[key];if(key in defaults) -delete defaults[key];});},list:function(){return _.map(_.keys(defaults).sort(),function(key){return{name:key,value:this.get(key),type:typeof defaults[key].value,description:defaults[key].description};},this);},load:function(json){_.each(json,function(value,key){this.set(key,value);},this);},exportModified:function(){return _.clone(preferences);},reset:function(){preferences={};},_startTest:function(){_dbgDefaults=defaults;_dbgPreferences=preferences;defaults={};preferences={};},_stopTest:function(){defaults=_dbgDefaults;preferences=_dbgPreferences;}};});emmet.define('filters',function(require,_){var registeredFilters={};var basicFilters='html';function list(filters){if(!filters) -return[];if(_.isString(filters)) -return filters.split(/[\|,]/g);return filters;} -return{add:function(name,fn){registeredFilters[name]=fn;},apply:function(tree,filters,profile){var utils=require('utils');profile=require('profile').get(profile);_.each(list(filters),function(filter){var name=utils.trim(filter.toLowerCase());if(name&&name in registeredFilters){tree=registeredFilters[name](tree,profile);}});return tree;},composeList:function(syntax,profile,additionalFilters){profile=require('profile').get(profile);var filters=list(profile.filters||require('resources').findItem(syntax,'filters')||basicFilters);if(profile.extraFilters){filters=filters.concat(list(profile.extraFilters));} -if(additionalFilters){filters=filters.concat(list(additionalFilters));} -if(!filters||!filters.length){filters=list(basicFilters);} -return filters;},extractFromAbbreviation:function(abbr){var filters='';abbr=abbr.replace(/\|([\w\|\-]+)$/,function(str,p1){filters=p1;return'';});return[abbr,list(filters)];}};});emmet.define('elements',function(require,_){var factories={};var reAttrs=/([\w\-:]+)\s*=\s*(['"])(.*?)\2/g;var result={add:function(name,factory){var that=this;factories[name]=function(){var elem=factory.apply(that,arguments);if(elem) -elem.type=name;return elem;};},get:function(name){return factories[name];},create:function(name){var args=[].slice.call(arguments,1);var factory=this.get(name);return factory?factory.apply(this,args):null;},is:function(elem,type){return elem&&elem.type===type;}};function commonFactory(value){return{data:value};} -result.add('element',function(elementName,attrs,isEmpty){var ret={name:elementName,is_empty:!!isEmpty};if(attrs){ret.attributes=[];if(_.isArray(attrs)){ret.attributes=attrs;}else if(_.isString(attrs)){var m;while(m=reAttrs.exec(attrs)){ret.attributes.push({name:m[1],value:m[3]});}}else{_.each(attrs,function(value,name){ret.attributes.push({name:name,value:value});});}} -return ret;});result.add('snippet',commonFactory);result.add('reference',commonFactory);result.add('empty',function(){return{};});return result;});emmet.define('editTree',function(require,_,core){var range=require('range').create;function EditContainer(source,options){this.options=_.extend({offset:0},options);this.source=source;this._children=[];this._positions={name:0};this.initialize.apply(this,arguments);} -EditContainer.extend=core.extend;EditContainer.prototype={initialize:function(){},_updateSource:function(value,start,end){var r=range(start,_.isUndefined(end)?0:end-start);var delta=value.length-r.length();var update=function(obj){_.each(obj,function(v,k){if(v>=r.end) -obj[k]+=delta;});};update(this._positions);_.each(this.list(),function(item){update(item._positions);});this.source=require('utils').replaceSubstring(this.source,value,r);},add:function(name,value,pos){var item=new EditElement(name,value);this._children.push(item);return item;},get:function(name){if(_.isNumber(name)) -return this.list()[name];if(_.isString(name)) -return _.find(this.list(),function(prop){return prop.name()===name;});return name;},getAll:function(name){if(!_.isArray(name)) -name=[name];var names=[],indexes=[];_.each(name,function(item){if(_.isString(item)) -names.push(item);else if(_.isNumber(item)) -indexes.push(item);});return _.filter(this.list(),function(attribute,i){return _.include(indexes,i)||_.include(names,attribute.name());});},value:function(name,value,pos){var element=this.get(name);if(element) -return element.value(value);if(!_.isUndefined(value)){return this.add(name,value,pos);}},values:function(name){return _.map(this.getAll(name),function(element){return element.value();});},remove:function(name){var element=this.get(name);if(element){this._updateSource('',element.fullRange());this._children=_.without(this._children,element);}},list:function(){return this._children;},indexOf:function(item){return _.indexOf(this.list(),this.get(item));},name:function(val){if(!_.isUndefined(val)&&this._name!==(val=String(val))){this._updateSource(val,this._positions.name,this._positions.name+this._name.length);this._name=val;} -return this._name;},nameRange:function(isAbsolute){return range(this._positions.name+(isAbsolute?this.options.offset:0),this.name());},range:function(isAbsolute){return range(isAbsolute?this.options.offset:0,this.toString());},itemFromPosition:function(pos,isAbsolute){return _.find(this.list(),function(elem){return elem.range(isAbsolute).inside(pos);});},toString:function(){return this.source;}};function EditElement(parent,nameToken,valueToken){this.parent=parent;this._name=nameToken.value;this._value=valueToken?valueToken.value:'';this._positions={name:nameToken.start,value:valueToken?valueToken.start:-1};this.initialize.apply(this,arguments);} -EditElement.extend=core.extend;EditElement.prototype={initialize:function(){},_pos:function(num,isAbsolute){return num+(isAbsolute?this.parent.options.offset:0);},value:function(val){if(!_.isUndefined(val)&&this._value!==(val=String(val))){this.parent._updateSource(val,this.valueRange());this._value=val;} -return this._value;},name:function(val){if(!_.isUndefined(val)&&this._name!==(val=String(val))){this.parent._updateSource(val,this.nameRange());this._name=val;} -return this._name;},namePosition:function(isAbsolute){return this._pos(this._positions.name,isAbsolute);},valuePosition:function(isAbsolute){return this._pos(this._positions.value,isAbsolute);},range:function(isAbsolute){return range(this.namePosition(isAbsolute),this.toString());},fullRange:function(isAbsolute){return this.range(isAbsolute);},nameRange:function(isAbsolute){return range(this.namePosition(isAbsolute),this.name());},valueRange:function(isAbsolute){return range(this.valuePosition(isAbsolute),this.value());},toString:function(){return this.name()+this.value();},valueOf:function(){return this.toString();}};return{EditContainer:EditContainer,EditElement:EditElement,createToken:function(start,value,type){var obj={start:start||0,value:value||'',type:type};obj.end=obj.start+obj.value.length;return obj;}};});emmet.define('cssEditTree',function(require,_){var defaultOptions={styleBefore:'\n\t',styleSeparator:': ',offset:0};var WHITESPACE_REMOVE_FROM_START=1;var WHITESPACE_REMOVE_FROM_END=2;function range(start,len){return require('range').create(start,len);} -function trimWhitespaceTokens(tokens,mask){mask=mask||(WHITESPACE_REMOVE_FROM_START|WHITESPACE_REMOVE_FROM_END);var whitespace=['white','line'];if((mask&WHITESPACE_REMOVE_FROM_END)==WHITESPACE_REMOVE_FROM_END) -while(tokens.length&&_.include(whitespace,_.last(tokens).type)){tokens.pop();} -if((mask&WHITESPACE_REMOVE_FROM_START)==WHITESPACE_REMOVE_FROM_START) -while(tokens.length&&_.include(whitespace,tokens[0].type)){tokens.shift();} -return tokens;} -function findSelectorRange(it){var tokens=[],token;var start=it.position(),end;while(token=it.next()){if(token.type=='{') -break;tokens.push(token);} -trimWhitespaceTokens(tokens);if(tokens.length){start=tokens[0].start;end=_.last(tokens).end;}else{end=start;} -return range(start,end-start);} -function findValueRange(it){var skipTokens=['white','line',':'];var tokens=[],token,start,end;it.nextUntil(function(tok){return!_.include(skipTokens,this.itemNext().type);});start=it.current().end;while(token=it.next()){if(token.type=='}'||token.type==';'){trimWhitespaceTokens(tokens,WHITESPACE_REMOVE_FROM_START|(token.type=='}'?WHITESPACE_REMOVE_FROM_END:0));if(tokens.length){start=tokens[0].start;end=_.last(tokens).end;}else{end=start;} -return range(start,end-start);} -tokens.push(token);} -if(tokens.length){return range(tokens[0].start,_.last(tokens).end-tokens[0].start);}} -function findParts(str){var stream=require('stringStream').create(str);var ch;var result=[];var sep=/[\s\u00a0,]/;var add=function(){stream.next();result.push(range(stream.start,stream.current()));stream.start=stream.pos;};stream.eatSpace();stream.start=stream.pos;while(ch=stream.next()){if(ch=='"'||ch=="'"){stream.next();if(!stream.skipTo(ch))break;add();}else if(ch=='('){stream.backUp(1);if(!stream.skipToPair('(',')'))break;stream.backUp(1);add();}else{if(sep.test(ch)){result.push(range(stream.start,stream.current().length-1));stream.eatWhile(sep);stream.start=stream.pos;}}} -add();return _.chain(result).filter(function(item){return!!item.length();}).uniq(false,function(item){return item.toString();}).value();} -function isValidIdentifier(it){var tokens=it.tokens;for(var i=it._i+1,il=tokens.length;i1){p.styleBefore='\n'+_.last(lines);} -p.styleSeparator=source.substring(p.nameRange().end,p.valuePosition());p.styleBefore=_.last(p.styleBefore.split('*/'));p.styleSeparator=p.styleSeparator.replace(/\/\*.*?\*\//g,'');start=p.range().end;});},add:function(name,value,pos){var list=this.list();var start=this._positions.contentStart;var styles=_.pick(this.options,'styleBefore','styleSeparator');var editTree=require('editTree');if(_.isUndefined(pos)) -pos=list.length;var donor=list[pos];if(donor){start=donor.fullRange().start;}else if(donor=list[pos-1]){donor.end(';');start=donor.range().end;} -if(donor){styles=_.pick(donor,'styleBefore','styleSeparator');} -var nameToken=editTree.createToken(start+styles.styleBefore.length,name);var valueToken=editTree.createToken(nameToken.end+styles.styleSeparator.length,value);var property=new CSSEditElement(this,nameToken,valueToken,editTree.createToken(valueToken.end,';'));_.extend(property,styles);this._updateSource(property.styleBefore+property.toString(),start);this._children.splice(pos,0,property);return property;}});var CSSEditElement=require('editTree').EditElement.extend({initialize:function(rule,name,value,end){this.styleBefore=rule.options.styleBefore;this.styleSeparator=rule.options.styleSeparator;this._end=end.value;this._positions.end=end.start;},valueParts:function(isAbsolute){var parts=findParts(this.value());if(isAbsolute){var offset=this.valuePosition(true);_.each(parts,function(p){p.shift(offset);});} -return parts;},end:function(val){if(!_.isUndefined(val)&&this._end!==val){this.parent._updateSource(val,this._positions.end,this._positions.end+this._end.length);this._end=val;} -return this._end;},fullRange:function(isAbsolute){var r=this.range(isAbsolute);r.start-=this.styleBefore.length;return r;},toString:function(){return this.name()+this.styleSeparator+this.value()+this.end();}});return{parse:function(source,options){return new CSSEditContainer(source,options);},parseFromPosition:function(content,pos,isBackward){var bounds=this.extractRule(content,pos,isBackward);if(!bounds||!bounds.inside(pos)) -return null;return this.parse(bounds.substring(content),{offset:bounds.start});},extractRule:function(content,pos,isBackward){var result='';var len=content.length;var offset=pos;var stopChars='{}/\\<>\n\r';var bracePos=-1,ch;while(offset>=0){ch=content.charAt(offset);if(ch=='{'){bracePos=offset;break;} -else if(ch=='}'&&!isBackward){offset++;break;} -offset--;} -while(offset=0){ch=content.charAt(offset);if(stopChars.indexOf(ch)!=-1)break;offset--;} -selector=content.substring(offset+1,bracePos).replace(/^[\s\n\r]+/m,'');return require('range').create(bracePos-selector.length,result.length+selector.length);} -return null;},baseName:function(name){return name.replace(/^\s*\-\w+\-/,'');},findParts:findParts};});emmet.define('xmlEditTree',function(require,_){var defaultOptions={styleBefore:' ',styleSeparator:'=',styleQuote:'"',offset:0};var startTag=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/m;var XMLEditContainer=require('editTree').EditContainer.extend({initialize:function(source,options){_.defaults(this.options,defaultOptions);this._positions.name=1;var attrToken=null;var tokens=require('xmlParser').parse(source);var range=require('range');_.each(tokens,function(token){token.value=range.create(token).substring(source);switch(token.type){case'tag':if(/^<[^\/]+/.test(token.value)){this._name=token.value.substring(1);} -break;case'attribute':if(attrToken){this._children.push(new XMLEditElement(this,attrToken));} -attrToken=token;break;case'string':this._children.push(new XMLEditElement(this,attrToken,token));attrToken=null;break;}},this);if(attrToken){this._children.push(new XMLEditElement(this,attrToken));} -this._saveStyle();},_saveStyle:function(){var start=this.nameRange().end;var source=this.source;_.each(this.list(),function(p){p.styleBefore=source.substring(start,p.namePosition());if(p.valuePosition()!==-1){p.styleSeparator=source.substring(p.namePosition()+p.name().length,p.valuePosition()-p.styleQuote.length);} -start=p.range().end;});},add:function(name,value,pos){var list=this.list();var start=this.nameRange().end;var editTree=require('editTree');var styles=_.pick(this.options,'styleBefore','styleSeparator','styleQuote');if(_.isUndefined(pos)) -pos=list.length;var donor=list[pos];if(donor){start=donor.fullRange().start;}else if(donor=list[pos-1]){start=donor.range().end;} -if(donor){styles=_.pick(donor,'styleBefore','styleSeparator','styleQuote');} -value=styles.styleQuote+value+styles.styleQuote;var attribute=new XMLEditElement(this,editTree.createToken(start+styles.styleBefore.length,name),editTree.createToken(start+styles.styleBefore.length+name.length -+styles.styleSeparator.length,value));_.extend(attribute,styles);this._updateSource(attribute.styleBefore+attribute.toString(),start);this._children.splice(pos,0,attribute);return attribute;}});var XMLEditElement=require('editTree').EditElement.extend({initialize:function(parent,nameToken,valueToken){this.styleBefore=parent.options.styleBefore;this.styleSeparator=parent.options.styleSeparator;var value='',quote=parent.options.styleQuote;if(valueToken){value=valueToken.value;quote=value.charAt(0);if(quote=='"'||quote=="'"){value=value.substring(1);}else{quote='';} -if(quote&&value.charAt(value.length-1)==quote){value=value.substring(0,value.length-1);}} -this.styleQuote=quote;this._value=value;this._positions.value=valueToken?valueToken.start+quote.length:-1;},fullRange:function(isAbsolute){var r=this.range(isAbsolute);r.start-=this.styleBefore.length;return r;},toString:function(){return this.name()+this.styleSeparator -+this.styleQuote+this.value()+this.styleQuote;}});return{parse:function(source,options){return new XMLEditContainer(source,options);},parseFromPosition:function(content,pos,isBackward){var bounds=this.extractTag(content,pos,isBackward);if(!bounds||!bounds.inside(pos)) -return null;return this.parse(bounds.substring(content),{offset:bounds.start});},extractTag:function(content,pos,isBackward){var len=content.length,i;var range=require('range');var maxLen=Math.min(2000,len);var r=null;var match=function(pos){var m;if(content.charAt(pos)=='<'&&(m=content.substr(pos,maxLen).match(startTag))) -return range.create(pos,m[0]);};for(i=pos;i>=0;i--){if(r=match(i))break;} -if(r&&(r.inside(pos)||isBackward)) -return r;if(!r&&isBackward) -return null;for(i=pos;i',range);} -function toggleCSSComment(editor){var range=require('range').create(editor.getSelectionRange());var info=require('editorUtils').outputInfo(editor);if(!range.length()){var rule=require('cssEditTree').parseFromPosition(info.content,editor.getCaretPos());if(rule){var property=cssItemFromPosition(rule,editor.getCaretPos());range=property?property.range(true):require('range').create(rule.nameRange(true).start,rule.source);}} -if(!range.length()){range=require('range').create(editor.getCurrentLineRange());require('utils').narrowToNonSpace(info.content,range);} -return genericCommentToggle(editor,'/*','*/',range);} -function cssItemFromPosition(rule,absPos){var relPos=absPos-(rule.options.offset||0);var reSafeChar=/^[\s\n\r]/;return _.find(rule.list(),function(item){if(item.range().end===relPos){return reSafeChar.test(rule.source.charAt(relPos));} -return item.range().inside(relPos);});} -function searchComment(text,from,startToken,endToken){var commentStart=-1;var commentEnd=-1;var hasMatch=function(str,start){return text.substr(start,str.length)==str;};while(from--){if(hasMatch(startToken,from)){commentStart=from;break;}} -if(commentStart!=-1){from=commentStart;var contentLen=text.length;while(contentLen>=from++){if(hasMatch(endToken,from)){commentEnd=from+endToken.length;break;}}} -return(commentStart!=-1&&commentEnd!=-1)?require('range').create(commentStart,commentEnd-commentStart):null;} -function genericCommentToggle(editor,commentStart,commentEnd,range){var editorUtils=require('editorUtils');var content=editorUtils.outputInfo(editor).content;var caretPos=editor.getCaretPos();var newContent=null;var utils=require('utils');function removeComment(str){return str.replace(new RegExp('^'+utils.escapeForRegexp(commentStart)+'\\s*'),function(str){caretPos-=str.length;return'';}).replace(new RegExp('\\s*'+utils.escapeForRegexp(commentEnd)+'$'),'');} -var commentRange=searchComment(content,caretPos,commentStart,commentEnd);if(commentRange&&commentRange.overlap(range)){range=commentRange;newContent=removeComment(range.substring(content));}else{newContent=commentStart+' '+ -range.substring(content).replace(new RegExp(utils.escapeForRegexp(commentStart)+'\\s*|\\s*'+utils.escapeForRegexp(commentEnd),'g'),'')+' '+commentEnd;caretPos+=commentStart.length+1;} -if(newContent!==null){newContent=utils.escapeText(newContent);editor.setCaretPos(range.start);editor.replaceContent(editorUtils.unindent(editor,newContent),range.start,range.end);editor.setCaretPos(caretPos);return true;} -return false;} -require('actions').add('toggle_comment',function(editor){var info=require('editorUtils').outputInfo(editor);if(info.syntax=='css'){var caretPos=editor.getCaretPos();var tag=require('htmlMatcher').tag(info.content,caretPos);if(tag&&tag.open.range.inside(caretPos)){info.syntax='html';}} -if(info.syntax=='css') -return toggleCSSComment(editor);return toggleHTMLComment(editor);});});emmet.exec(function(require,_){function findNewEditPoint(editor,inc,offset){inc=inc||1;offset=offset||0;var curPoint=editor.getCaretPos()+offset;var content=String(editor.getContent());var maxLen=content.length;var nextPoint=-1;var reEmptyLine=/^\s+$/;function getLine(ix){var start=ix;while(start>=0){var c=content.charAt(start);if(c=='\n'||c=='\r') -break;start--;} -return content.substring(start,ix);} -while(curPoint<=maxLen&&curPoint>=0){curPoint+=inc;var curChar=content.charAt(curPoint);var nextChar=content.charAt(curPoint+1);var prevChar=content.charAt(curPoint-1);switch(curChar){case'"':case'\'':if(nextChar==curChar&&prevChar=='='){nextPoint=curPoint+1;} -break;case'>':if(nextChar=='<'){nextPoint=curPoint+1;} -break;case'\n':case'\r':if(reEmptyLine.test(getLine(curPoint-1))){nextPoint=curPoint;} -break;} -if(nextPoint!=-1) -break;} -return nextPoint;} -var actions=require('actions');actions.add('prev_edit_point',function(editor){var curPos=editor.getCaretPos();var newPoint=findNewEditPoint(editor,-1);if(newPoint==curPos) -newPoint=findNewEditPoint(editor,-1,-2);if(newPoint!=-1){editor.setCaretPos(newPoint);return true;} -return false;},{label:'Previous Edit Point'});actions.add('next_edit_point',function(editor){var newPoint=findNewEditPoint(editor,1);if(newPoint!=-1){editor.setCaretPos(newPoint);return true;} -return false;});});emmet.exec(function(require,_){var startTag=/^<([\w\:\-]+)((?:\s+[\w\-:]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*)\s*(\/?)>/;function findItem(editor,isBackward,extractFn,rangeFn){var range=require('range');var content=require('editorUtils').outputInfo(editor).content;var contentLength=content.length;var itemRange,rng;var prevRange=range.create(-1,0);var sel=range.create(editor.getSelectionRange());var searchPos=sel.start,loop=100000;while(searchPos>=0&&searchPos0){if((itemRange=extractFn(content,searchPos,isBackward))){if(prevRange.equal(itemRange)){break;} -prevRange=itemRange.clone();rng=rangeFn(itemRange.substring(content),itemRange.start,sel.clone());if(rng){editor.createSelection(rng.start,rng.end);return true;}else{searchPos=isBackward?itemRange.start:itemRange.end-1;}} -searchPos+=isBackward?-1:1;} -return false;} -function findNextHTMLItem(editor){var isFirst=true;return findItem(editor,false,function(content,searchPos){if(isFirst){isFirst=false;return findOpeningTagFromPosition(content,searchPos);}else{return getOpeningTagFromPosition(content,searchPos);}},function(tag,offset,selRange){return getRangeForHTMLItem(tag,offset,selRange,false);});} -function findPrevHTMLItem(editor){return findItem(editor,true,getOpeningTagFromPosition,function(tag,offset,selRange){return getRangeForHTMLItem(tag,offset,selRange,true);});} -function makePossibleRangesHTML(source,tokens,offset){offset=offset||0;var range=require('range');var result=[];var attrStart=-1,attrName='',attrValue='',attrValueRange,tagName;_.each(tokens,function(tok){switch(tok.type){case'tag':tagName=source.substring(tok.start,tok.end);if(/^<[\w\:\-]/.test(tagName)){result.push(range.create({start:tok.start+1,end:tok.end}));} -break;case'attribute':attrStart=tok.start;attrName=source.substring(tok.start,tok.end);break;case'string':result.push(range.create(attrStart,tok.end-attrStart));attrValueRange=range.create(tok);attrValue=attrValueRange.substring(source);if(isQuote(attrValue.charAt(0))) -attrValueRange.start++;if(isQuote(attrValue.charAt(attrValue.length-1))) -attrValueRange.end--;result.push(attrValueRange);if(attrName=='class'){result=result.concat(classNameRanges(attrValueRange.substring(source),attrValueRange.start));} -break;}});_.each(result,function(r){r.shift(offset);});return _.chain(result).filter(function(item){return!!item.length();}).uniq(false,function(item){return item.toString();}).value();} -function classNameRanges(className,offset){offset=offset||0;var result=[];var stream=require('stringStream').create(className);var range=require('range');stream.eatSpace();stream.start=stream.pos;var ch;while(ch=stream.next()){if(/[\s\u00a0]/.test(ch)){result.push(range.create(stream.start+offset,stream.pos-stream.start-1));stream.eatSpace();stream.start=stream.pos;}} -result.push(range.create(stream.start+offset,stream.pos-stream.start));return result;} -function getRangeForHTMLItem(tag,offset,selRange,isBackward){var ranges=makePossibleRangesHTML(tag,require('xmlParser').parse(tag),offset);if(isBackward) -ranges.reverse();var curRange=_.find(ranges,function(r){return r.equal(selRange);});if(curRange){var ix=_.indexOf(ranges,curRange);if(ix1) -return matchedRanges[1];} -return _.find(ranges,function(r){return r.end>selRange.end;});} -function findOpeningTagFromPosition(html,pos){var tag;while(pos>=0){if(tag=getOpeningTagFromPosition(html,pos)) -return tag;pos--;} -return null;} -function getOpeningTagFromPosition(html,pos){var m;if(html.charAt(pos)=='<'&&(m=html.substring(pos,html.length).match(startTag))){return require('range').create(pos,m[0]);}} -function isQuote(ch){return ch=='"'||ch=="'";} -function makePossibleRangesCSS(property){var valueRange=property.valueRange(true);var result=[property.range(true),valueRange];var stringStream=require('stringStream');var cssEditTree=require('cssEditTree');var range=require('range');var value=property.value();_.each(property.valueParts(),function(r){var clone=r.clone();result.push(clone.shift(valueRange.start));var stream=stringStream.create(r.substring(value));if(stream.match(/^[\w\-]+\(/,true)){stream.start=stream.pos;stream.skipToPair('(',')');var fnBody=stream.current();result.push(range.create(clone.start+stream.start,fnBody));_.each(cssEditTree.findParts(fnBody),function(part){result.push(range.create(clone.start+stream.start+part.start,part.substring(fnBody)));});}});return _.chain(result).filter(function(item){return!!item.length();}).uniq(false,function(item){return item.toString();}).value();} -function matchedRangeForCSSProperty(rule,selRange,isBackward){var property=null;var possibleRanges,curRange=null,ix;var list=rule.list();var searchFn,nearestItemFn;if(isBackward){list.reverse();searchFn=function(p){return p.range(true).start<=selRange.start;};nearestItemFn=function(r){return r.start=selRange.end;};nearestItemFn=function(r){return r.end>selRange.start;};} -while(property=_.find(list,searchFn)){possibleRanges=makePossibleRangesCSS(property);if(isBackward) -possibleRanges.reverse();curRange=_.find(possibleRanges,function(r){return r.equal(selRange);});if(!curRange){var matchedRanges=_.filter(possibleRanges,function(r){return r.inside(selRange.end);});if(matchedRanges.length>1){curRange=matchedRanges[1];break;} -if(curRange=_.find(possibleRanges,nearestItemFn)) -break;}else{ix=_.indexOf(possibleRanges,curRange);if(ix!=possibleRanges.length-1){curRange=possibleRanges[ix+1];break;}} -curRange=null;selRange.start=selRange.end=isBackward?property.range(true).start-1:property.range(true).end+1;} -return curRange;} -function findNextCSSItem(editor){return findItem(editor,false,require('cssEditTree').extractRule,getRangeForNextItemInCSS);} -function findPrevCSSItem(editor){return findItem(editor,true,require('cssEditTree').extractRule,getRangeForPrevItemInCSS);} -function getRangeForNextItemInCSS(rule,offset,selRange){var tree=require('cssEditTree').parse(rule,{offset:offset});var range=tree.nameRange(true);if(selRange.endrange.start){return range;}} -return curRange;} -var actions=require('actions');actions.add('select_next_item',function(editor){if(editor.getSyntax()=='css') -return findNextCSSItem(editor);else -return findNextHTMLItem(editor);});actions.add('select_previous_item',function(editor){if(editor.getSyntax()=='css') -return findPrevCSSItem(editor);else -return findPrevHTMLItem(editor);});});emmet.exec(function(require,_){var actions=require('actions');var matcher=require('htmlMatcher');var lastMatch=null;function matchPair(editor,direction){direction=String((direction||'out').toLowerCase());var info=require('editorUtils').outputInfo(editor);var range=require('range');var sel=range.create(editor.getSelectionRange());var content=info.content;if(lastMatch&&!lastMatch.range.equal(sel)){lastMatch=null;} -if(lastMatch&&sel.length()){if(direction=='in'){if(lastMatch.type=='tag'&&!lastMatch.close){return false;}else{if(lastMatch.range.equal(lastMatch.outerRange)){lastMatch.range=lastMatch.innerRange;}else{var narrowed=require('utils').narrowToNonSpace(content,lastMatch.innerRange);lastMatch=matcher.find(content,narrowed.start+1);if(lastMatch&&lastMatch.range.equal(sel)&&lastMatch.outerRange.equal(sel)){lastMatch.range=lastMatch.innerRange;}}}}else{if(!lastMatch.innerRange.equal(lastMatch.outerRange)&&lastMatch.range.equal(lastMatch.innerRange)&&sel.equal(lastMatch.range)){lastMatch.range=lastMatch.outerRange;}else{lastMatch=matcher.find(content,sel.start);if(lastMatch&&lastMatch.range.equal(sel)&&lastMatch.innerRange.equal(sel)){lastMatch.range=lastMatch.outerRange;}}}}else{lastMatch=matcher.find(content,sel.start);} -if(lastMatch&&!lastMatch.range.equal(sel)){editor.createSelection(lastMatch.range.start,lastMatch.range.end);return true;} -lastMatch=null;return false;} -actions.add('match_pair',matchPair,{hidden:true});actions.add('match_pair_inward',function(editor){return matchPair(editor,'in');},{label:'HTML/Match Pair Tag (inward)'});actions.add('match_pair_outward',function(editor){return matchPair(editor,'out');},{label:'HTML/Match Pair Tag (outward)'});actions.add('matching_pair',function(editor){var content=String(editor.getContent());var caretPos=editor.getCaretPos();if(content.charAt(caretPos)=='<') -caretPos++;var tag=matcher.tag(content,caretPos);if(tag&&tag.close){if(tag.open.range.inside(caretPos)){editor.setCaretPos(tag.close.range.start);}else{editor.setCaretPos(tag.open.range.start);} -return true;} -return false;},{label:'HTML/Go To Matching Tag Pair'});});emmet.exec(function(require,_){require('actions').add('remove_tag',function(editor){var utils=require('utils');var info=require('editorUtils').outputInfo(editor);var tag=require('htmlMatcher').tag(info.content,editor.getCaretPos());if(tag){if(!tag.close){editor.replaceContent(utils.getCaretPlaceholder(),tag.range.start,tag.range.end);}else{var tagContentRange=utils.narrowToNonSpace(info.content,tag.innerRange);var startLineBounds=utils.findNewlineBounds(info.content,tagContentRange.start);var startLinePad=utils.getLinePadding(startLineBounds.substring(info.content));var tagContent=tagContentRange.substring(info.content);tagContent=utils.unindentString(tagContent,startLinePad);editor.replaceContent(utils.getCaretPlaceholder()+utils.escapeText(tagContent),tag.outerRange.start,tag.outerRange.end);} -return true;} -return false;},{label:'HTML/Remove Tag'});});emmet.exec(function(require,_){function joinTag(editor,profile,tag){var utils=require('utils');var slash=profile.selfClosing()||' /';var content=tag.open.range.substring(tag.source).replace(/\s*>$/,slash+'>');var caretPos=editor.getCaretPos();if(content.length+tag.outerRange.start$/,'>');caretPos=tag.outerRange.start+content.length;content+=tagContent+'';content=utils.escapeText(content);editor.replaceContent(content,tag.outerRange.start,tag.outerRange.end);editor.setCaretPos(caretPos);return true;} -require('actions').add('split_join_tag',function(editor,profileName){var matcher=require('htmlMatcher');var info=require('editorUtils').outputInfo(editor,null,profileName);var profile=require('profile').get(info.profile);var tag=matcher.tag(info.content,editor.getCaretPos());if(tag){return tag.close?joinTag(editor,profile,tag):splitTag(editor,profile,tag);} -return false;},{label:'HTML/Split\\Join Tag Declaration'});});emmet.define('reflectCSSValue',function(require,_){var handlers=require('handlerList').create();require('actions').add('reflect_css_value',function(editor){if(editor.getSyntax()!='css')return false;return require('actionUtils').compoundUpdate(editor,doCSSReflection(editor));},{label:'CSS/Reflect Value'});function doCSSReflection(editor){var cssEditTree=require('cssEditTree');var outputInfo=require('editorUtils').outputInfo(editor);var caretPos=editor.getCaretPos();var cssRule=cssEditTree.parseFromPosition(outputInfo.content,caretPos);if(!cssRule)return;var property=cssRule.itemFromPosition(caretPos,true);if(!property)return;var oldRule=cssRule.source;var offset=cssRule.options.offset;var caretDelta=caretPos-offset-property.range().start;handlers.exec(false,[property]);if(oldRule!==cssRule.source){return{data:cssRule.source,start:offset,end:offset+oldRule.length,caret:offset+property.range().start+caretDelta};}} -function getReflectedCSSName(name){name=require('cssEditTree').baseName(name);var vendorPrefix='^(?:\\-\\w+\\-)?',m;if(name=='opacity'||name=='filter'){return new RegExp(vendorPrefix+'(?:opacity|filter)$');}else if(m=name.match(/^border-radius-(top|bottom)(left|right)/)){return new RegExp(vendorPrefix+'(?:'+name+'|border-'+m[1]+'-'+m[2]+'-radius)$');}else if(m=name.match(/^border-(top|bottom)-(left|right)-radius/)){return new RegExp(vendorPrefix+'(?:'+name+'|border-radius-'+m[1]+m[2]+')$');} -return new RegExp(vendorPrefix+name+'$');} -function reflectValue(donor,receiver){var value=getReflectedValue(donor.name(),donor.value(),receiver.name(),receiver.value());receiver.value(value);} -function getReflectedValue(curName,curValue,refName,refValue){var cssEditTree=require('cssEditTree');var utils=require('utils');curName=cssEditTree.baseName(curName);refName=cssEditTree.baseName(refName);if(curName=='opacity'&&refName=='filter'){return refValue.replace(/opacity=[^)]*/i,'opacity='+Math.floor(parseFloat(curValue)*100));}else if(curName=='filter'&&refName=='opacity'){var m=curValue.match(/opacity=([^)]*)/i);return m?utils.prettifyNumber(parseInt(m[1])/100):refValue;} -return curValue;} -handlers.add(function(property){var reName=getReflectedCSSName(property.name());_.each(property.parent.list(),function(p){if(reName.test(p.name())){reflectValue(property,p);}});},{order:-1});return{addHandler:function(fn,options){handlers.add(fn,options);},removeHandler:function(fn){handlers.remove(fn,options);}};});emmet.exec(function(require,_){require('actions').add('evaluate_math_expression',function(editor){var actionUtils=require('actionUtils');var utils=require('utils');var content=String(editor.getContent());var chars='.+-*/\\';var sel=require('range').create(editor.getSelectionRange());if(!sel.length()){sel=actionUtils.findExpressionBounds(editor,function(ch){return utils.isNumeric(ch)||chars.indexOf(ch)!=-1;});} -if(sel&&sel.length()){var expr=sel.substring(content);expr=expr.replace(/([\d\.\-]+)\\([\d\.\-]+)/g,'Math.round($1/$2)');try{var result=utils.prettifyNumber(new Function('return '+expr)());editor.replaceContent(result,sel.start,sel.end);editor.setCaretPos(sel.start+result.length);return true;}catch(e){}} -return false;},{label:'Numbers/Evaluate Math Expression'});});emmet.exec(function(require,_){function incrementNumber(editor,step){var utils=require('utils');var actionUtils=require('actionUtils');var hasSign=false;var hasDecimal=false;var r=actionUtils.findExpressionBounds(editor,function(ch,pos,content){if(utils.isNumeric(ch)) -return true;if(ch=='.'){if(!utils.isNumeric(content.charAt(pos+1))) -return false;return hasDecimal?false:hasDecimal=true;} -if(ch=='-') -return hasSign?false:hasSign=true;return false;});if(r&&r.length()){var strNum=r.substring(String(editor.getContent()));var num=parseFloat(strNum);if(!_.isNaN(num)){num=utils.prettifyNumber(num+step);if(/^(\-?)0+[1-9]/.test(strNum)){var minus='';if(RegExp.$1){minus='-';num=num.substring(1);} -var parts=num.split('.');parts[0]=utils.zeroPadString(parts[0],intLength(strNum));num=minus+parts.join('.');} -editor.replaceContent(num,r.start,r.end);editor.createSelection(r.start,r.start+num.length);return true;}} -return false;} -function intLength(num){num=num.replace(/^\-/,'');if(~num.indexOf('.')){return num.split('.')[0].length;} -return num.length;} -var actions=require('actions');_.each([1,-1,10,-10,0.1,-0.1],function(num){var prefix=num>0?'increment':'decrement';actions.add(prefix+'_number_by_'+String(Math.abs(num)).replace('.','').substring(0,2),function(editor){return incrementNumber(editor,num);},{label:'Numbers/'+prefix.charAt(0).toUpperCase()+prefix.substring(1)+' number by '+Math.abs(num)});});});emmet.exec(function(require,_){var actions=require('actions');var prefs=require('preferences');prefs.define('css.closeBraceIndentation','\n','Indentation before closing brace of CSS rule. Some users prefere ' -+'indented closing brace of CSS rule for better readability. ' -+'This preference’s value will be automatically inserted before ' -+'closing brace when user adds newline in newly created CSS rule ' -+'(e.g. when “Insert formatted linebreak” action will be performed ' -+'in CSS file). If you’re such user, you may want to write put a value ' -+'like \\n\\t in this preference.');actions.add('insert_formatted_line_break_only',function(editor){var utils=require('utils');var res=require('resources');var info=require('editorUtils').outputInfo(editor);var caretPos=editor.getCaretPos();var nl=utils.getNewline();if(_.include(['html','xml','xsl'],info.syntax)){var pad=res.getVariable('indentation');var tag=require('htmlMatcher').tag(info.content,caretPos);if(tag&&!tag.innerRange.length()){editor.replaceContent(nl+pad+utils.getCaretPlaceholder()+nl,caretPos);return true;}}else if(info.syntax=='css'){var content=info.content;if(caretPos&&content.charAt(caretPos-1)=='{'){var append=prefs.get('css.closeBraceIndentation');var pad=res.getVariable('indentation');var hasCloseBrace=content.charAt(caretPos)=='}';if(!hasCloseBrace){for(var i=caretPos,il=content.length,ch;icurPadding.length) -editor.replaceContent(nl+nextPadding,caretPos,caretPos,true);else -editor.replaceContent(nl,caretPos);} -return true;},{hidden:true});});emmet.exec(function(require,_){require('actions').add('merge_lines',function(editor){var matcher=require('htmlMatcher');var utils=require('utils');var editorUtils=require('editorUtils');var info=editorUtils.outputInfo(editor);var selection=require('range').create(editor.getSelectionRange());if(!selection.length()){var pair=matcher.find(info.content,editor.getCaretPos());if(pair){selection=pair.outerRange;}} -if(selection.length()){var text=selection.substring(info.content);var lines=utils.splitByLines(text);for(var i=1;i=0){if(startsWith('src=',text,caretPos)){if(m=text.substr(caretPos).match(/^(src=(["'])?)([^'"<>\s]+)\1?/)){data=m[3];caretPos+=m[1].length;} -break;}else if(startsWith('url(',text,caretPos)){if(m=text.substr(caretPos).match(/^(url\((['"])?)([^'"\)\s]+)\1?/)){data=m[3];caretPos+=m[1].length;} -break;}}} -if(data){if(startsWith('data:',data)) -return decodeFromBase64(editor,data,caretPos);else -return encodeToBase64(editor,data,caretPos);} -return false;},{label:'Encode\\Decode data:URL image'});function startsWith(token,text,pos){pos=pos||0;return text.charAt(pos)==token.charAt(0)&&text.substr(pos,token.length)==token;} -function encodeToBase64(editor,imgPath,pos){var file=require('file');var actionUtils=require('actionUtils');var editorFile=editor.getFilePath();var defaultMimeType='application/octet-stream';if(editorFile===null){throw"You should save your file before using this action";} -var realImgPath=file.locateFile(editorFile,imgPath);if(realImgPath===null){throw"Can't find "+imgPath+' file';} -file.read(realImgPath,function(err,content){if(err){throw'Unable to read '+realImgPath+': '+err;} -var b64=require('base64').encode(String(content));if(!b64){throw"Can't encode file content to base64";} -b64='data:'+(actionUtils.mimeTypes[String(file.getExt(realImgPath))]||defaultMimeType)+';base64,'+b64;editor.replaceContent('$0'+b64,pos,pos+imgPath.length);});return true;} -function decodeFromBase64(editor,data,pos){var filePath=String(editor.prompt('Enter path to file (absolute or relative)'));if(!filePath) -return false;var file=require('file');var absPath=file.createPath(editor.getFilePath(),filePath);if(!absPath){throw"Can't save file";} -file.save(absPath,require('base64').decode(data.replace(/^data\:.+?;.+?,/,'')));editor.replaceContent('$0'+filePath,pos,pos+data.length);return true;}});emmet.exec(function(require,_){function updateImageSizeHTML(editor){var offset=editor.getCaretPos();var info=require('editorUtils').outputInfo(editor);var xmlElem=require('xmlEditTree').parseFromPosition(info.content,offset,true);if(xmlElem&&(xmlElem.name()||'').toLowerCase()=='img'){getImageSizeForSource(editor,xmlElem.value('src'),function(size){if(size){var compoundData=xmlElem.range(true);xmlElem.value('width',size.width);xmlElem.value('height',size.height,xmlElem.indexOf('width')+1);require('actionUtils').compoundUpdate(editor,_.extend(compoundData,{data:xmlElem.toString(),caret:offset}));}});}} -function updateImageSizeCSS(editor){var offset=editor.getCaretPos();var info=require('editorUtils').outputInfo(editor);var cssRule=require('cssEditTree').parseFromPosition(info.content,offset,true);if(cssRule){var prop=cssRule.itemFromPosition(offset,true),m;if(prop&&(m=/url\((["']?)(.+?)\1\)/i.exec(prop.value()||''))){getImageSizeForSource(editor,m[2],function(size){if(size){var compoundData=cssRule.range(true);cssRule.value('width',size.width+'px');cssRule.value('height',size.height+'px',cssRule.indexOf('width')+1);require('actionUtils').compoundUpdate(editor,_.extend(compoundData,{data:cssRule.toString(),caret:offset}));}});}}} -function getImageSizeForSource(editor,src,callback){var fileContent;var au=require('actionUtils');if(src){if(/^data:/.test(src)){fileContent=require('base64').decode(src.replace(/^data\:.+?;.+?,/,''));return callback(au.getImageSize(fileContent));} -var file=require('file');var absPath=file.locateFile(editor.getFilePath(),src);if(absPath===null){throw"Can't find "+src+' file';} -file.read(absPath,function(err,content){if(err){throw'Unable to read '+absPath+': '+err;} -content=String(content);callback(au.getImageSize(content));});}} -require('actions').add('update_image_size',function(editor){if(_.include(['css','less','scss'],String(editor.getSyntax()))){updateImageSizeCSS(editor);}else{updateImageSizeHTML(editor);} -return true;});});emmet.define('cssResolver',function(require,_){var module=null;var prefixObj={prefix:'emmet',obsolete:false,transformName:function(name){return'-'+this.prefix+'-'+name;},properties:function(){return getProperties('css.'+this.prefix+'Properties')||[];},supports:function(name){return _.include(this.properties(),name);}};var vendorPrefixes={};var defaultValue='${1};';var prefs=require('preferences');prefs.define('css.valueSeparator',': ','Defines a symbol that should be placed between CSS property and ' -+'value when expanding CSS abbreviations.');prefs.define('css.propertyEnd',';','Defines a symbol that should be placed at the end of CSS property ' -+'when expanding CSS abbreviations.');prefs.define('stylus.valueSeparator',' ','Defines a symbol that should be placed between CSS property and ' -+'value when expanding CSS abbreviations in Stylus dialect.');prefs.define('stylus.propertyEnd','','Defines a symbol that should be placed at the end of CSS property ' -+'when expanding CSS abbreviations in Stylus dialect.');prefs.define('sass.propertyEnd','','Defines a symbol that should be placed at the end of CSS property ' -+'when expanding CSS abbreviations in SASS dialect.');prefs.define('css.autoInsertVendorPrefixes',true,'Automatically generate vendor-prefixed copies of expanded CSS ' -+'property. By default, Emmet will generate vendor-prefixed ' -+'properties only when you put dash before abbreviation ' -+'(e.g. -bxsh). With this option enabled, you don’t ' -+'need dashes before abbreviations: Emmet will produce ' -+'vendor-prefixed properties for you.');var descTemplate=_.template('A comma-separated list of CSS properties that may have ' -+'<%= vendor %> vendor prefix. This list is used to generate ' -+'a list of prefixed properties when expanding -property ' -+'abbreviations. Empty list means that all possible CSS values may ' -+'have <%= vendor %> prefix.');var descAddonTemplate=_.template('A comma-separated list of additional CSS properties ' -+'for css.<%= vendor %>Preperties preference. ' -+'You should use this list if you want to add or remove a few CSS ' -+'properties to original set. To add a new property, simply write its name, ' -+'to remove it, precede property with hyphen.
' -+'For example, to add foo property and remove border-radius one, ' -+'the preference value will look like this: foo, -border-radius.');var props={'webkit':'animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-clip, background-composite, background-origin, background-size, border-fit, border-horizontal-spacing, border-image, border-vertical-spacing, box-align, box-direction, box-flex, box-flex-group, box-lines, box-ordinal-group, box-orient, box-pack, box-reflect, box-shadow, color-correction, column-break-after, column-break-before, column-break-inside, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-span, column-width, dashboard-region, font-smoothing, highlight, hyphenate-character, hyphenate-limit-after, hyphenate-limit-before, hyphens, line-box-contain, line-break, line-clamp, locale, margin-before-collapse, margin-after-collapse, marquee-direction, marquee-increment, marquee-repetition, marquee-style, mask-attachment, mask-box-image, mask-box-image-outset, mask-box-image-repeat, mask-box-image-slice, mask-box-image-source, mask-box-image-width, mask-clip, mask-composite, mask-image, mask-origin, mask-position, mask-repeat, mask-size, nbsp-mode, perspective, perspective-origin, rtl-ordering, text-combine, text-decorations-in-effect, text-emphasis-color, text-emphasis-position, text-emphasis-style, text-fill-color, text-orientation, text-security, text-stroke-color, text-stroke-width, transform, transition, transform-origin, transform-style, transition-delay, transition-duration, transition-property, transition-timing-function, user-drag, user-modify, user-select, writing-mode, svg-shadow, box-sizing, border-radius','moz':'animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, appearance, backface-visibility, background-inline-policy, binding, border-bottom-colors, border-image, border-left-colors, border-right-colors, border-top-colors, box-align, box-direction, box-flex, box-ordinal-group, box-orient, box-pack, box-shadow, box-sizing, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-width, float-edge, font-feature-settings, font-language-override, force-broken-image-icon, hyphens, image-region, orient, outline-radius-bottomleft, outline-radius-bottomright, outline-radius-topleft, outline-radius-topright, perspective, perspective-origin, stack-sizing, tab-size, text-blink, text-decoration-color, text-decoration-line, text-decoration-style, text-size-adjust, transform, transform-origin, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-focus, user-input, user-modify, user-select, window-shadow, background-clip, border-radius','ms':'accelerator, backface-visibility, background-position-x, background-position-y, behavior, block-progression, box-align, box-direction, box-flex, box-line-progression, box-lines, box-ordinal-group, box-orient, box-pack, content-zoom-boundary, content-zoom-boundary-max, content-zoom-boundary-min, content-zoom-chaining, content-zoom-snap, content-zoom-snap-points, content-zoom-snap-type, content-zooming, filter, flow-from, flow-into, font-feature-settings, grid-column, grid-column-align, grid-column-span, grid-columns, grid-layer, grid-row, grid-row-align, grid-row-span, grid-rows, high-contrast-adjust, hyphenate-limit-chars, hyphenate-limit-lines, hyphenate-limit-zone, hyphens, ime-mode, interpolation-mode, layout-flow, layout-grid, layout-grid-char, layout-grid-line, layout-grid-mode, layout-grid-type, line-break, overflow-style, perspective, perspective-origin, perspective-origin-x, perspective-origin-y, scroll-boundary, scroll-boundary-bottom, scroll-boundary-left, scroll-boundary-right, scroll-boundary-top, scroll-chaining, scroll-rails, scroll-snap-points-x, scroll-snap-points-y, scroll-snap-type, scroll-snap-x, scroll-snap-y, scrollbar-arrow-color, scrollbar-base-color, scrollbar-darkshadow-color, scrollbar-face-color, scrollbar-highlight-color, scrollbar-shadow-color, scrollbar-track-color, text-align-last, text-autospace, text-justify, text-kashida-space, text-overflow, text-size-adjust, text-underline-position, touch-action, transform, transform-origin, transform-origin-x, transform-origin-y, transform-origin-z, transform-style, transition, transition-delay, transition-duration, transition-property, transition-timing-function, user-select, word-break, word-wrap, wrap-flow, wrap-margin, wrap-through, writing-mode','o':'dashboard-region, animation, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, border-image, link, link-source, object-fit, object-position, tab-size, table-baseline, transform, transform-origin, transition, transition-delay, transition-duration, transition-property, transition-timing-function, accesskey, input-format, input-required, marquee-dir, marquee-loop, marquee-speed, marquee-style'};_.each(props,function(v,k){prefs.define('css.'+k+'Properties',v,descTemplate({vendor:k}));prefs.define('css.'+k+'PropertiesAddon','',descAddonTemplate({vendor:k}));});prefs.define('css.unitlessProperties','z-index, line-height, opacity, font-weight, zoom','The list of properties whose values ​​must not contain units.');prefs.define('css.intUnit','px','Default unit for integer values');prefs.define('css.floatUnit','em','Default unit for float values');prefs.define('css.keywords','auto, inherit','A comma-separated list of valid keywords that can be used in CSS abbreviations.');prefs.define('css.keywordAliases','a:auto, i:inherit, s:solid, da:dashed, do:dotted, t:transparent','A comma-separated list of keyword aliases, used in CSS abbreviation. ' -+'Each alias should be defined as alias:keyword_name.');prefs.define('css.unitAliases','e:em, p:%, x:ex, r:rem','A comma-separated list of unit aliases, used in CSS abbreviation. ' -+'Each alias should be defined as alias:unit_value.');prefs.define('css.color.short',true,'Should color values like #ffffff be shortened to ' -+'#fff after abbreviation with color was expanded.');prefs.define('css.color.case','keep','Letter case of color values generated by abbreviations with color ' -+'(like c#0). Possible values are upper, ' -+'lower and keep.');prefs.define('css.fuzzySearch',true,'Enable fuzzy search among CSS snippet names. When enabled, every ' -+'unknown snippet will be scored against available snippet ' -+'names (not values or CSS properties!). The match with best score ' -+'will be used to resolve snippet value. For example, with this ' -+'preference enabled, the following abbreviations are equal: ' -+'ov:h == ov-h == o-h == ' -+'oh');prefs.define('css.fuzzySearchMinScore',0.3,'The minium score (from 0 to 1) that fuzzy-matched abbreviation should ' -+'achive. Lower values may produce many false-positive matches, ' -+'higher values may reduce possible matches.');prefs.define('css.alignVendor',false,'If set to true, all generated vendor-prefixed properties ' -+'will be aligned by real property name.');function isNumeric(ch){var code=ch&&ch.charCodeAt(0);return(ch&&ch=='.'||(code>47&&code<58));} -function isSingleProperty(snippet){var utils=require('utils');snippet=utils.trim(snippet);if(~snippet.indexOf('/*')||/[\n\r]/.test(snippet)){return false;} -if(!/^[a-z0-9\-]+\s*\:/i.test(snippet)){return false;} -snippet=require('tabStops').processText(snippet,{replaceCarets:true,tabstop:function(){return'value';}});return snippet.split(':').length==2;} -function normalizeValue(value){if(value.charAt(0)=='-'&&!/^\-[\.\d]/.test(value)){value=value.replace(/^\-+/,'');} -if(value.charAt(0)=='#'){return normalizeHexColor(value);} -return getKeyword(value);} -function normalizeHexColor(value){var hex=value.replace(/^#+/,'')||'0';if(hex.toLowerCase()=='t'){return'transparent';} -var repeat=require('utils').repeatString;var color=null;switch(hex.length){case 1:color=repeat(hex,6);break;case 2:color=repeat(hex,3);break;case 3:color=hex.charAt(0)+hex.charAt(0)+hex.charAt(1)+hex.charAt(1)+hex.charAt(2)+hex.charAt(2);break;case 4:color=hex+hex.substr(0,2);break;case 5:color=hex+hex.charAt(0);break;default:color=hex.substr(0,6);} -if(prefs.get('css.color.short')){var p=color.split('');if(p[0]==p[1]&&p[2]==p[3]&&p[4]==p[5]){color=p[0]+p[2]+p[4];}} -switch(prefs.get('css.color.case')){case'upper':color=color.toUpperCase();break;case'lower':color=color.toLowerCase();break;} -return'#'+color;} -function getKeyword(name){var aliases=prefs.getDict('css.keywordAliases');return name in aliases?aliases[name]:name;} -function getUnit(name){var aliases=prefs.getDict('css.unitAliases');return name in aliases?aliases[name]:name;} -function isValidKeyword(keyword){return _.include(prefs.getArray('css.keywords'),getKeyword(keyword));} -function hasPrefix(property,prefix){var info=vendorPrefixes[prefix];if(!info) -info=_.find(vendorPrefixes,function(data){return data.prefix==prefix;});return info&&info.supports(property);} -function findPrefixes(property,noAutofill){var result=[];_.each(vendorPrefixes,function(obj,prefix){if(hasPrefix(property,prefix)){result.push(prefix);}});if(!result.length&&!noAutofill){_.each(vendorPrefixes,function(obj,prefix){if(!obj.obsolete) -result.push(prefix);});} -return result;} -function addPrefix(name,obj){if(_.isString(obj)) -obj={prefix:obj};vendorPrefixes[name]=_.extend({},prefixObj,obj);} -function getSyntaxPreference(name,syntax){if(syntax){var val=prefs.get(syntax+'.'+name);if(!_.isUndefined(val)) -return val;} -return prefs.get('css.'+name);} -function formatProperty(property,syntax){var ix=property.indexOf(':');property=property.substring(0,ix).replace(/\s+$/,'') -+getSyntaxPreference('valueSeparator',syntax) -+require('utils').trim(property.substring(ix+1));return property.replace(/\s*;\s*$/,getSyntaxPreference('propertyEnd',syntax));} -function transformSnippet(snippet,isImportant,syntax){if(!_.isString(snippet)) -snippet=snippet.data;if(!isSingleProperty(snippet)) -return snippet;if(isImportant){if(~snippet.indexOf(';')){snippet=snippet.split(';').join(' !important;');}else{snippet+=' !important';}} -return formatProperty(snippet,syntax);} -function parseList(list){var result=_.map((list||'').split(','),require('utils').trim);return result.length?result:null;} -function getProperties(key){var list=prefs.getArray(key);_.each(prefs.getArray(key+'Addon'),function(prop){if(prop.charAt(0)=='-'){list=_.without(list,prop.substr(1));}else{if(prop.charAt(0)=='+') -prop=prop.substr(1);list.push(prop);}});return list;} -addPrefix('w',{prefix:'webkit'});addPrefix('m',{prefix:'moz'});addPrefix('s',{prefix:'ms'});addPrefix('o',{prefix:'o'});var cssSyntaxes=['css','less','sass','scss','stylus'];require('resources').addResolver(function(node,syntax){if(_.include(cssSyntaxes,syntax)&&node.isElement()){return module.expandToSnippet(node.abbreviation,syntax);} -return null;});var ea=require('expandAbbreviation');ea.addHandler(function(editor,syntax,profile){if(!_.include(cssSyntaxes,syntax)){return false;} -var caretPos=editor.getSelectionRange().end;var abbr=ea.findAbbreviation(editor);if(abbr){var content=emmet.expandAbbreviation(abbr,syntax,profile);if(content){var replaceFrom=caretPos-abbr.length;var replaceTo=caretPos;if(editor.getContent().charAt(caretPos)==';'&&content.charAt(content.length-1)==';'){replaceTo++;} -editor.replaceContent(content,replaceFrom,replaceTo);return true;}} -return false;});return module={addPrefix:addPrefix,supportsPrefix:hasPrefix,prefixed:function(property,prefix){return hasPrefix(property,prefix)?'-'+prefix+'-'+property:property;},listPrefixes:function(){return _.map(vendorPrefixes,function(obj){return obj.prefix;});},getPrefix:function(name){return vendorPrefixes[name];},removePrefix:function(name){if(name in vendorPrefixes) -delete vendorPrefixes[name];},extractPrefixes:function(abbr){if(abbr.charAt(0)!='-'){return{property:abbr,prefixes:null};} -var i=1,il=abbr.length,ch;var prefixes=[];while(ibackground-color property with gradient first color ' -+'as fallback for old browsers.');function normalizeSpace(str){return require('utils').trim(str).replace(/\s+/g,' ');} -function parseLinearGradient(gradient){var direction=defaultLinearDirections[0];var stream=require('stringStream').create(require('utils').trim(gradient));var colorStops=[],ch;while(ch=stream.next()){if(stream.peek()==','){colorStops.push(stream.current());stream.next();stream.eatSpace();stream.start=stream.pos;}else if(ch=='('){stream.skipTo(')');}} -colorStops.push(stream.current());colorStops=_.compact(_.map(colorStops,normalizeSpace));if(!colorStops.length) -return null;if(reDeg.test(colorStops[0])||reKeyword.test(colorStops[0])){direction=colorStops.shift();} -return{type:'linear',direction:direction,colorStops:_.map(colorStops,parseColorStop)};} -function parseColorStop(colorStop){colorStop=normalizeSpace(colorStop);var color=null;colorStop=colorStop.replace(/^(\w+\(.+?\))\s*/,function(str,c){color=c;return'';});if(!color){var parts=colorStop.split(' ');color=parts[0];colorStop=parts[1]||'';} -var result={color:color};if(colorStop){colorStop.replace(/^(\-?[\d\.]+)([a-z%]+)?$/,function(str,pos,unit){result.position=pos;if(~pos.indexOf('.')){unit='';}else if(!unit){unit='%';} -if(unit) -result.unit=unit;});} -return result;} -function resolvePropertyName(name,syntax){var res=require('resources');var prefs=require('preferences');var snippet=res.findSnippet(syntax,name);if(!snippet&&prefs.get('css.fuzzySearch')){snippet=res.fuzzyFindSnippet(syntax,name,parseFloat(prefs.get('css.fuzzySearchMinScore')));} -if(snippet){if(!_.isString(snippet)){snippet=snippet.data;} -return require('cssResolver').splitSnippet(snippet).name;}} -function fillImpliedPositions(colorStops){var from=0;_.each(colorStops,function(cs,i){if(!i) -return cs.position=cs.position||0;if(i==colorStops.length-1&&!('position'in cs)) -cs.position=1;if('position'in cs){var start=colorStops[from].position||0;var step=(cs.position-start)/(i-from);_.each(colorStops.slice(from,i),function(cs2,j){cs2.position=start+step*j;});from=i;}});} -function textualDirection(direction){var angle=parseFloat(direction);if(!_.isNaN(angle)){switch(angle%360){case 0:return'left';case 90:return'bottom';case 180:return'right';case 240:return'top';}} -return direction;} -function oldWebkitDirection(direction){direction=textualDirection(direction);if(reDeg.test(direction)) -throw"The direction is an angle that can’t be converted.";var v=function(pos){return~direction.indexOf(pos)?'100%':'0';};return v('right')+' '+v('bottom')+', '+v('left')+' '+v('top');} -function getPrefixedNames(name){var prefixes=prefs.getArray('css.gradient.prefixes');var names=prefixes?_.map(prefixes,function(p){return'-'+p+'-'+name;}):[];names.push(name);return names;} -function getPropertiesForGradient(gradient,propertyName){var props=[];var css=require('cssResolver');if(prefs.get('css.gradient.fallback')&&~propertyName.toLowerCase().indexOf('background')){props.push({name:'background-color',value:'${1:'+gradient.colorStops[0].color+'}'});} -_.each(prefs.getArray('css.gradient.prefixes'),function(prefix){var name=css.prefixed(propertyName,prefix);if(prefix=='webkit'&&prefs.get('css.gradient.oldWebkit')){try{props.push({name:name,value:module.oldWebkitLinearGradient(gradient)});}catch(e){}} -props.push({name:name,value:module.toString(gradient,prefix)});});return props.sort(function(a,b){return b.name.length-a.name.length;});} -function pasteGradient(property,gradient,valueRange){var rule=property.parent;var utils=require('utils');var alignVendor=require('preferences').get('css.alignVendor');var sep=property.styleSeparator;var before=property.styleBefore;_.each(rule.getAll(getPrefixedNames(property.name())),function(item){if(item!=property&&/gradient/i.test(item.value())){if(item.styleSeparator.length<%= attr("class", ".") %> -->','A definition of comment that should be placed after matched ' -+'element when comment filter is applied. This definition ' -+'is an ERB-style template passed to _.template() ' -+'function (see Underscore.js docs for details). In template context, ' -+'the following properties and functions are availabe:\n' -+'
    ' -+'
  • attr(name, before, after) – a function that outputs' -+'specified attribute value concatenated with before ' -+'and after strings. If attribute doesn\'t exists, the ' -+'empty string will be returned.
  • ' -+'
  • node – current node (instance of AbbreviationNode)
  • ' -+'
  • name – name of current tag
  • ' -+'
  • padding – current string padding, can be used ' -+'for formatting
  • ' -+'
');prefs.define('filter.commentBefore','','A definition of comment that should be placed before matched ' -+'element when comment filter is applied. ' -+'For more info, read description of filter.commentAfter ' -+'property');prefs.define('filter.commentTrigger','id, class','A comma-separated list of attribute names that should exist in abbreviatoin ' -+'where comment should be added. If you wish to add comment for ' -+'every element, set this option to *');function addComments(node,templateBefore,templateAfter){var utils=require('utils');var trigger=prefs.get('filter.commentTrigger');if(trigger!='*'){var shouldAdd=_.find(trigger.split(','),function(name){return!!node.attribute(utils.trim(name));});if(!shouldAdd)return;} -var ctx={node:node,name:node.name(),padding:node.parent?node.parent.padding:'',attr:function(name,before,after){var attr=node.attribute(name);if(attr){return(before||'')+attr+(after||'');} -return'';}};var nodeBefore=utils.normalizeNewline(templateBefore?templateBefore(ctx):'');var nodeAfter=utils.normalizeNewline(templateAfter?templateAfter(ctx):'');node.start=node.start.replace(//,'>'+nodeAfter);} -function process(tree,before,after){var abbrUtils=require('abbreviationUtils');_.each(tree.children,function(item){if(abbrUtils.isBlock(item)) -addComments(item,before,after);process(item,before,after);});return tree;} -require('filters').add('c',function(tree){var templateBefore=_.template(prefs.get('filter.commentBefore'));var templateAfter=_.template(prefs.get('filter.commentAfter'));return process(tree,templateBefore,templateAfter);});});emmet.exec(function(require,_){var charMap={'<':'<','>':'>','&':'&'};function escapeChars(str){return str.replace(/([<>&])/g,function(str,p1){return charMap[p1];});} -require('filters').add('e',function process(tree){_.each(tree.children,function(item){item.start=escapeChars(item.start);item.end=escapeChars(item.end);item.content=escapeChars(item.content);process(item);});return tree;});});emmet.exec(function(require,_){var placeholder='%s';var prefs=require('preferences');prefs.define('format.noIndentTags','html','A comma-separated list of tag names that should not get inner indentation.');prefs.define('format.forceIndentationForTags','body','A comma-separated list of tag names that should always get inner indentation.');function getIndentation(node){if(_.include(prefs.getArray('format.noIndentTags')||[],node.name())){return'';} -return require('resources').getVariable('indentation');} -function hasBlockSibling(item){return item.parent&&require('abbreviationUtils').hasBlockChildren(item.parent);} -function isVeryFirstChild(item){return item.parent&&!item.parent.parent&&!item.index();} -function shouldAddLineBreak(node,profile){var abbrUtils=require('abbreviationUtils');if(profile.tag_nl===true||abbrUtils.isBlock(node)) -return true;if(!node.parent||!profile.inline_break) -return false;return shouldFormatInline(node.parent,profile);} -function shouldBreakChild(node,profile){return node.children.length&&shouldAddLineBreak(node.children[0],profile);} -function shouldFormatInline(node,profile){var nodeCount=0;var abbrUtils=require('abbreviationUtils');return!!_.find(node.children,function(child){if(child.isTextNode()||!abbrUtils.isInline(child)) -nodeCount=0;else if(abbrUtils.isInline(child)) -nodeCount++;if(nodeCount>=profile.inline_break) -return true;});} -function isRoot(item){return!item.parent;} -function processSnippet(item,profile,level){item.start=item.end='';if(!isVeryFirstChild(item)&&profile.tag_nl!==false&&shouldAddLineBreak(item,profile)){if(isRoot(item.parent)||!require('abbreviationUtils').isInline(item.parent)){item.start=require('utils').getNewline()+item.start;}} -return item;} -function shouldBreakInsideInline(node,profile){var abbrUtils=require('abbreviationUtils');var hasBlockElems=_.any(node.children,function(child){if(abbrUtils.isSnippet(child)) -return false;return!abbrUtils.isInline(child);});if(!hasBlockElems){return shouldFormatInline(node,profile);} -return true;} -function processTag(item,profile,level){item.start=item.end=placeholder;var utils=require('utils');var abbrUtils=require('abbreviationUtils');var isUnary=abbrUtils.isUnary(item);var nl=utils.getNewline();var indent=getIndentation(item);if(profile.tag_nl!==false){var forceNl=profile.tag_nl===true&&(profile.tag_nl_leaf||item.children.length);if(!forceNl){forceNl=_.include(prefs.getArray('format.forceIndentationForTags')||[],item.name());} -if(!item.isTextNode()){if(shouldAddLineBreak(item,profile)){if(!isVeryFirstChild(item)&&(!abbrUtils.isSnippet(item.parent)||item.index())) -item.start=nl+item.start;if(abbrUtils.hasBlockChildren(item)||shouldBreakChild(item,profile)||(forceNl&&!isUnary)) -item.end=nl+item.end;if(abbrUtils.hasTagsInContent(item)||(forceNl&&!item.children.length&&!isUnary)) -item.start+=nl+indent;}else if(abbrUtils.isInline(item)&&hasBlockSibling(item)&&!isVeryFirstChild(item)){item.start=nl+item.start;}else if(abbrUtils.isInline(item)&&shouldBreakInsideInline(item,profile)){item.end=nl+item.end;} -item.padding=indent;}} -return item;} -require('filters').add('_format',function process(tree,profile,level){level=level||0;var abbrUtils=require('abbreviationUtils');_.each(tree.children,function(item){if(abbrUtils.isSnippet(item)) -processSnippet(item,profile,level);else -processTag(item,profile,level);process(item,profile,level+1);});return tree;});});emmet.exec(function(require,_){var childToken='${child}';function transformClassName(className){return require('utils').trim(className).replace(/\s+/g,'.');} -function makeAttributesString(tag,profile){var attrs='';var otherAttrs=[];var attrQuote=profile.attributeQuote();var cursor=profile.cursor();_.each(tag.attributeList(),function(a){var attrName=profile.attributeName(a.name);switch(attrName.toLowerCase()){case'id':attrs+='#'+(a.value||cursor);break;case'class':attrs+='.'+transformClassName(a.value||cursor);break;default:otherAttrs.push(':'+attrName+' => '+attrQuote+(a.value||cursor)+attrQuote);}});if(otherAttrs.length) -attrs+='{'+otherAttrs.join(', ')+'}';return attrs;} -function hasBlockSibling(item){return item.parent&&item.parent.hasBlockChildren();} -function processTag(item,profile,level){if(!item.parent) -return item;var abbrUtils=require('abbreviationUtils');var utils=require('utils');var attrs=makeAttributesString(item,profile);var cursor=profile.cursor();var isUnary=abbrUtils.isUnary(item);var selfClosing=profile.self_closing_tag&&isUnary?'/':'';var start='';var tagName='%'+profile.tagName(item.name());if(tagName.toLowerCase()=='%div'&&attrs&&attrs.indexOf('{')==-1) -tagName='';item.end='';start=tagName+attrs+selfClosing+' ';var placeholder='%s';item.start=utils.replaceSubstring(item.start,start,item.start.indexOf(placeholder),placeholder);if(!item.children.length&&!isUnary) -item.start+=cursor;return item;} -require('filters').add('haml',function process(tree,profile,level){level=level||0;var abbrUtils=require('abbreviationUtils');if(!level){tree=require('filters').apply(tree,'_format',profile);} -_.each(tree.children,function(item){if(!abbrUtils.isSnippet(item)) -processTag(item,profile,level);process(item,profile,level+1);});return tree;});});emmet.exec(function(require,_){function makeAttributesString(node,profile){var attrQuote=profile.attributeQuote();var cursor=profile.cursor();return _.map(node.attributeList(),function(a){var attrName=profile.attributeName(a.name);return' '+attrName+'='+attrQuote+(a.value||cursor)+attrQuote;}).join('');} -function processTag(item,profile,level){if(!item.parent) -return item;var abbrUtils=require('abbreviationUtils');var utils=require('utils');var attrs=makeAttributesString(item,profile);var cursor=profile.cursor();var isUnary=abbrUtils.isUnary(item);var start='';var end='';if(!item.isTextNode()){var tagName=profile.tagName(item.name());if(isUnary){start='<'+tagName+attrs+profile.selfClosing()+'>';item.end='';}else{start='<'+tagName+attrs+'>';end='';}} -var placeholder='%s';item.start=utils.replaceSubstring(item.start,start,item.start.indexOf(placeholder),placeholder);item.end=utils.replaceSubstring(item.end,end,item.end.indexOf(placeholder),placeholder);if(!item.children.length&&!isUnary&&!~item.content.indexOf(cursor)&&!require('tabStops').extract(item.content).tabstops.length){item.start+=cursor;} -return item;} -require('filters').add('html',function process(tree,profile,level){level=level||0;var abbrUtils=require('abbreviationUtils');if(!level){tree=require('filters').apply(tree,'_format',profile);} -_.each(tree.children,function(item){if(!abbrUtils.isSnippet(item)) -processTag(item,profile,level);process(item,profile,level+1);});return tree;});});emmet.exec(function(require,_){var rePad=/^\s+/;var reNl=/[\n\r]/g;require('filters').add('s',function process(tree,profile,level){var abbrUtils=require('abbreviationUtils');_.each(tree.children,function(item){if(!abbrUtils.isSnippet(item)){item.start=item.start.replace(rePad,'');item.end=item.end.replace(rePad,'');} -item.start=item.start.replace(reNl,'');item.end=item.end.replace(reNl,'');item.content=item.content.replace(reNl,'');process(item);});return tree;});});emmet.exec(function(require,_){require('preferences').define('filter.trimRegexp','[\\s|\\u00a0]*[\\d|#|\\-|\*|\\u2022]+\\.?\\s*','Regular expression used to remove list markers (numbers, dashes, ' -+'bullets, etc.) in t (trim) filter. The trim filter ' -+'is useful for wrapping with abbreviation lists, pased from other ' -+'documents (for example, Word documents).');function process(tree,re){_.each(tree.children,function(item){if(item.content) -item.content=item.content.replace(re,'');process(item,re);});return tree;} -require('filters').add('t',function(tree){var re=new RegExp(require('preferences').get('filter.trimRegexp'));return process(tree,re);});});emmet.exec(function(require,_){var tags={'xsl:variable':1,'xsl:with-param':1};function trimAttribute(node){node.start=node.start.replace(/\s+select\s*=\s*(['"]).*?\1/,'');} -require('filters').add('xsl',function process(tree){var abbrUtils=require('abbreviationUtils');_.each(tree.children,function(item){if(!abbrUtils.isSnippet(item)&&(item.name()||'').toLowerCase()in tags&&item.children.length) -trimAttribute(item);process(item);});return tree;});});emmet.define('lorem',function(require,_){var langs={en:{common:['lorem','ipsum','dolor','sit','amet','consectetur','adipisicing','elit'],words:['exercitationem','perferendis','perspiciatis','laborum','eveniet','sunt','iure','nam','nobis','eum','cum','officiis','excepturi','odio','consectetur','quasi','aut','quisquam','vel','eligendi','itaque','non','odit','tempore','quaerat','dignissimos','facilis','neque','nihil','expedita','vitae','vero','ipsum','nisi','animi','cumque','pariatur','velit','modi','natus','iusto','eaque','sequi','illo','sed','ex','et','voluptatibus','tempora','veritatis','ratione','assumenda','incidunt','nostrum','placeat','aliquid','fuga','provident','praesentium','rem','necessitatibus','suscipit','adipisci','quidem','possimus','voluptas','debitis','sint','accusantium','unde','sapiente','voluptate','qui','aspernatur','laudantium','soluta','amet','quo','aliquam','saepe','culpa','libero','ipsa','dicta','reiciendis','nesciunt','doloribus','autem','impedit','minima','maiores','repudiandae','ipsam','obcaecati','ullam','enim','totam','delectus','ducimus','quis','voluptates','dolores','molestiae','harum','dolorem','quia','voluptatem','molestias','magni','distinctio','omnis','illum','dolorum','voluptatum','ea','quas','quam','corporis','quae','blanditiis','atque','deserunt','laboriosam','earum','consequuntur','hic','cupiditate','quibusdam','accusamus','ut','rerum','error','minus','eius','ab','ad','nemo','fugit','officia','at','in','id','quos','reprehenderit','numquam','iste','fugiat','sit','inventore','beatae','repellendus','magnam','recusandae','quod','explicabo','doloremque','aperiam','consequatur','asperiores','commodi','optio','dolor','labore','temporibus','repellat','veniam','architecto','est','esse','mollitia','nulla','a','similique','eos','alias','dolore','tenetur','deleniti','porro','facere','maxime','corrupti']},ru:{common:['далеко-далеко','за','словесными','горами','в стране','гласных','и согласных','живут','рыбные','тексты'],words:['вдали','от всех','они','буквенных','домах','на берегу','семантика','большого','языкового','океана','маленький','ручеек','даль','журчит','по всей','обеспечивает','ее','всеми','необходимыми','правилами','эта','парадигматическая','страна','которой','жаренные','предложения','залетают','прямо','рот','даже','всемогущая','пунктуация','не','имеет','власти','над','рыбными','текстами','ведущими','безорфографичный','образ','жизни','однажды','одна','маленькая','строчка','рыбного','текста','имени','lorem','ipsum','решила','выйти','большой','мир','грамматики','великий','оксмокс','предупреждал','о','злых','запятых','диких','знаках','вопроса','коварных','точках','запятой','но','текст','дал','сбить','себя','толку','он','собрал','семь','своих','заглавных','букв','подпоясал','инициал','за','пояс','пустился','дорогу','взобравшись','первую','вершину','курсивных','гор','бросил','последний','взгляд','назад','силуэт','своего','родного','города','буквоград','заголовок','деревни','алфавит','подзаголовок','своего','переулка','грустный','реторический','вопрос','скатился','его','щеке','продолжил','свой','путь','дороге','встретил','рукопись','она','предупредила','моей','все','переписывается','несколько','раз','единственное','что','меня','осталось','это','приставка','возвращайся','ты','лучше','свою','безопасную','страну','послушавшись','рукописи','наш','продолжил','свой','путь','вскоре','ему','повстречался','коварный','составитель','рекламных','текстов','напоивший','языком','речью','заманивший','свое','агенство','которое','использовало','снова','снова','своих','проектах','если','переписали','то','живет','там','до','сих','пор']}};var prefs=require('preferences');prefs.define('lorem.defaultLang','en');require('abbreviationParser').addPreprocessor(function(tree,options){var re=/^(?:lorem|lipsum)([a-z]{2})?(\d*)$/i,match;tree.findAll(function(node){if(node._name&&(match=node._name.match(re))){var wordCound=match[2]||30;var lang=match[1]||prefs.get('lorem.defaultLang')||'en';node._name='';node.data('forceNameResolving',node.isRepeating()||node.attributeList().length);node.data('pasteOverwrites',true);node.data('paste',function(i,content){return paragraph(lang,wordCound,!i);});}});});function randint(from,to){return Math.round(Math.random()*(to-from)+from);} -function sample(arr,count){var len=arr.length;var iterations=Math.min(len,count);var result=[];while(result.length3&&len<=6){totalCommas=randint(0,1);}else if(len>6&&len<=12){totalCommas=randint(0,2);}else{totalCommas=randint(1,4);} -_.each(_.range(totalCommas),function(ix){if(ix5) -words[4]+=',';totalWords+=words.length;result.push(sentence(words,'.'));} -while(totalWords","!!!4t":"","!!!4s":"","!!!xt":"","!!!xs":"","!!!xxs":"","c":"","cc:ie6":"","cc:ie":"","cc:noie":"\n\t${child}|\n"},"abbreviations":{"!":"html:5","a":"","a:link":"","a:mail":"","abbr":"","acronym":"","base":"","basefont":"","br":"
","frame":"","hr":"
","bdo":"","bdo:r":"","bdo:l":"","col":"","link":"","link:css":"","link:print":"","link:favicon":"","link:touch":"","link:rss":"","link:atom":"","meta":"","meta:utf":"","meta:win":"","meta:vp":"","meta:compat":"","style":" + +{% styles %} +{% placeholder head %} diff --git a/modules/cms/console/scaffold/theme/tailwind/partials/site/footer.stub b/modules/cms/console/scaffold/theme/tailwind/partials/site/footer.stub new file mode 100644 index 0000000000..4435b21666 --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/partials/site/footer.stub @@ -0,0 +1,21 @@ + + + {# jQuery AJAX Framework #} + + + {# Mix extracted assets #} + + + {% scripts %} + + {% flash %} +

+ {{ message }} +

+ {% endflash %} + + diff --git a/modules/cms/console/scaffold/theme/tailwind/partials/site/header.stub b/modules/cms/console/scaffold/theme/tailwind/partials/site/header.stub new file mode 100644 index 0000000000..cdacb16ec0 --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/partials/site/header.stub @@ -0,0 +1,20 @@ + + + + + + + {% placeholder page_title default %}{{ this.page.title }}{% endplaceholder %} + {% partial "meta/styles" %} + {% partial "meta/seo" %} + + + {% set pageId = this.page.id %} + {% set pageTitle = this.page.title %} + {% if pageId is empty %} + {% set pageId = page.id %} + {% endif %} + {% if pageTitle is empty %} + {% set pageTitle = page.title %} + {% endif %} + diff --git a/modules/cms/console/scaffold/theme/tailwind/tailwind.config.stub b/modules/cms/console/scaffold/theme/tailwind/tailwind.config.stub new file mode 100644 index 0000000000..107c690092 --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/tailwind.config.stub @@ -0,0 +1,17 @@ +module.exports = { + content: [ + './theme.yaml', + './**/*.htm', + './assets/src/js/**/*.{js,vue}' + ], + theme: { + extend: { + colors: { + primary: 'var(--primary)', + secondary: 'var(--secondary)', + }, + }, + }, + plugins: [ + ], +} diff --git a/modules/cms/console/scaffold/theme/tailwind/theme.stub b/modules/cms/console/scaffold/theme/tailwind/theme.stub new file mode 100644 index 0000000000..09244cddc9 --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/theme.stub @@ -0,0 +1,21 @@ +name: "{{code}}" +description: "No description provided yet..." +author: "Winter CMS Scaffold" +homepage: "https://example.com" +code: "{{code}}" +form: + fields: + googleanalytics_id: + label: themes.{{code}}::lang.options.googleanalytics_id + type: text + span: full + color_primary: + label: themes.{{code}}::lang.options.color_primary + type: colorpicker + span: left + default: "#103141" + color_secondary: + label: themes.{{code}}::lang.options.color_secondary + type: colorpicker + span: right + default: "#2DA7C7" diff --git a/modules/cms/console/scaffold/theme/tailwind/version.stub b/modules/cms/console/scaffold/theme/tailwind/version.stub new file mode 100644 index 0000000000..29c77a63a4 --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/version.stub @@ -0,0 +1 @@ +1.0.0: 'Initial version' diff --git a/modules/cms/console/scaffold/theme/tailwind/winter.mix.stub b/modules/cms/console/scaffold/theme/tailwind/winter.mix.stub new file mode 100644 index 0000000000..dad297ba9a --- /dev/null +++ b/modules/cms/console/scaffold/theme/tailwind/winter.mix.stub @@ -0,0 +1,15 @@ +const mix = require('laravel-mix'); + +mix + .setPublicPath(__dirname) + + // Render Tailwind style + .postCss('assets/src/css/theme.css', 'assets/dist/css/theme.css', [ + require('postcss-import'), + require('tailwindcss'), + require('tailwindcss/nesting'), + require('autoprefixer'), + ]) + + // Compile JS + .js('assets/src/js/theme.js', 'assets/dist/js/theme.js'); diff --git a/modules/cms/controllers/index/_button_commit.htm b/modules/cms/controllers/index/_button_commit.php similarity index 66% rename from modules/cms/controllers/index/_button_commit.htm rename to modules/cms/controllers/index/_button_commit.php index 81e50d8714..90a4abd99d 100644 --- a/modules/cms/controllers/index/_button_commit.htm +++ b/modules/cms/controllers/index/_button_commit.php @@ -1,9 +1,14 @@ \ No newline at end of file + diff --git a/modules/cms/controllers/index/_button_lastmodified.htm b/modules/cms/controllers/index/_button_lastmodified.php similarity index 100% rename from modules/cms/controllers/index/_button_lastmodified.htm rename to modules/cms/controllers/index/_button_lastmodified.php diff --git a/modules/cms/controllers/index/_button_reset.htm b/modules/cms/controllers/index/_button_reset.php similarity index 67% rename from modules/cms/controllers/index/_button_reset.htm rename to modules/cms/controllers/index/_button_reset.php index 5374f2f872..a5a8c87fad 100644 --- a/modules/cms/controllers/index/_button_reset.htm +++ b/modules/cms/controllers/index/_button_reset.php @@ -1,9 +1,14 @@ \ No newline at end of file + diff --git a/modules/cms/controllers/index/_common_toolbar_actions.htm b/modules/cms/controllers/index/_common_toolbar_actions.php similarity index 68% rename from modules/cms/controllers/index/_common_toolbar_actions.htm rename to modules/cms/controllers/index/_common_toolbar_actions.php index 769a4ac40a..2e923a1720 100644 --- a/modules/cms/controllers/index/_common_toolbar_actions.htm +++ b/modules/cms/controllers/index/_common_toolbar_actions.php @@ -4,11 +4,16 @@ -makePartial('button_lastmodified'); ?> \ No newline at end of file +makePartial('button_lastmodified'); ?> diff --git a/modules/cms/controllers/index/_concurrency_resolve_form.htm b/modules/cms/controllers/index/_concurrency_resolve_form.php similarity index 100% rename from modules/cms/controllers/index/_concurrency_resolve_form.htm rename to modules/cms/controllers/index/_concurrency_resolve_form.php diff --git a/modules/cms/controllers/index/_content_toolbar.htm b/modules/cms/controllers/index/_content_toolbar.php similarity index 100% rename from modules/cms/controllers/index/_content_toolbar.htm rename to modules/cms/controllers/index/_content_toolbar.php diff --git a/modules/cms/controllers/index/_form_page.htm b/modules/cms/controllers/index/_form_page.php similarity index 100% rename from modules/cms/controllers/index/_form_page.htm rename to modules/cms/controllers/index/_form_page.php diff --git a/modules/cms/controllers/index/_layout_toolbar.htm b/modules/cms/controllers/index/_layout_toolbar.php similarity index 100% rename from modules/cms/controllers/index/_layout_toolbar.htm rename to modules/cms/controllers/index/_layout_toolbar.php diff --git a/modules/cms/controllers/index/_page_toolbar.htm b/modules/cms/controllers/index/_page_toolbar.php similarity index 80% rename from modules/cms/controllers/index/_page_toolbar.htm rename to modules/cms/controllers/index/_page_toolbar.php index 8883e99f3a..e47912005e 100644 --- a/modules/cms/controllers/index/_page_toolbar.htm +++ b/modules/cms/controllers/index/_page_toolbar.php @@ -14,7 +14,12 @@
diff --git a/modules/cms/controllers/index/_partial_toolbar.htm b/modules/cms/controllers/index/_partial_toolbar.php similarity index 100% rename from modules/cms/controllers/index/_partial_toolbar.htm rename to modules/cms/controllers/index/_partial_toolbar.php diff --git a/modules/cms/controllers/index/_safemode_notice.htm b/modules/cms/controllers/index/_safemode_notice.php similarity index 100% rename from modules/cms/controllers/index/_safemode_notice.htm rename to modules/cms/controllers/index/_safemode_notice.php diff --git a/modules/cms/controllers/index/_sidepanel.htm b/modules/cms/controllers/index/_sidepanel.php similarity index 100% rename from modules/cms/controllers/index/_sidepanel.htm rename to modules/cms/controllers/index/_sidepanel.php diff --git a/modules/cms/controllers/index/index.htm b/modules/cms/controllers/index/index.php similarity index 100% rename from modules/cms/controllers/index/index.htm rename to modules/cms/controllers/index/index.php diff --git a/modules/cms/controllers/media/index.htm b/modules/cms/controllers/media/index.php similarity index 100% rename from modules/cms/controllers/media/index.htm rename to modules/cms/controllers/media/index.php diff --git a/modules/cms/controllers/themelogs/_field_content.htm b/modules/cms/controllers/themelogs/_field_content.php similarity index 100% rename from modules/cms/controllers/themelogs/_field_content.htm rename to modules/cms/controllers/themelogs/_field_content.php diff --git a/modules/cms/controllers/themelogs/_field_diff_content.htm b/modules/cms/controllers/themelogs/_field_diff_content.php similarity index 100% rename from modules/cms/controllers/themelogs/_field_diff_content.htm rename to modules/cms/controllers/themelogs/_field_diff_content.php diff --git a/modules/cms/controllers/themelogs/_field_diff_template.htm b/modules/cms/controllers/themelogs/_field_diff_template.php similarity index 100% rename from modules/cms/controllers/themelogs/_field_diff_template.htm rename to modules/cms/controllers/themelogs/_field_diff_template.php diff --git a/modules/cms/controllers/themelogs/_field_template.htm b/modules/cms/controllers/themelogs/_field_template.php similarity index 100% rename from modules/cms/controllers/themelogs/_field_template.htm rename to modules/cms/controllers/themelogs/_field_template.php diff --git a/modules/cms/controllers/themelogs/_hint.htm b/modules/cms/controllers/themelogs/_hint.php similarity index 100% rename from modules/cms/controllers/themelogs/_hint.htm rename to modules/cms/controllers/themelogs/_hint.php diff --git a/modules/cms/controllers/themelogs/_hint_preview.htm b/modules/cms/controllers/themelogs/_hint_preview.php similarity index 100% rename from modules/cms/controllers/themelogs/_hint_preview.htm rename to modules/cms/controllers/themelogs/_hint_preview.php diff --git a/modules/cms/controllers/themelogs/_list_toolbar.htm b/modules/cms/controllers/themelogs/_list_toolbar.php similarity index 100% rename from modules/cms/controllers/themelogs/_list_toolbar.htm rename to modules/cms/controllers/themelogs/_list_toolbar.php diff --git a/modules/cms/controllers/themelogs/_preview_scoreboard.htm b/modules/cms/controllers/themelogs/_preview_scoreboard.php similarity index 100% rename from modules/cms/controllers/themelogs/_preview_scoreboard.htm rename to modules/cms/controllers/themelogs/_preview_scoreboard.php diff --git a/modules/cms/controllers/themelogs/index.htm b/modules/cms/controllers/themelogs/index.php similarity index 100% rename from modules/cms/controllers/themelogs/index.htm rename to modules/cms/controllers/themelogs/index.php diff --git a/modules/cms/controllers/themelogs/preview.htm b/modules/cms/controllers/themelogs/preview.php similarity index 100% rename from modules/cms/controllers/themelogs/preview.htm rename to modules/cms/controllers/themelogs/preview.php diff --git a/modules/cms/controllers/themeoptions/update.htm b/modules/cms/controllers/themeoptions/update.php similarity index 100% rename from modules/cms/controllers/themeoptions/update.htm rename to modules/cms/controllers/themeoptions/update.php diff --git a/modules/cms/controllers/themes/_theme_create_form.htm b/modules/cms/controllers/themes/_theme_create_form.php similarity index 100% rename from modules/cms/controllers/themes/_theme_create_form.htm rename to modules/cms/controllers/themes/_theme_create_form.php diff --git a/modules/cms/controllers/themes/_theme_duplicate_form.htm b/modules/cms/controllers/themes/_theme_duplicate_form.php similarity index 100% rename from modules/cms/controllers/themes/_theme_duplicate_form.htm rename to modules/cms/controllers/themes/_theme_duplicate_form.php diff --git a/modules/cms/controllers/themes/_theme_export_form.htm b/modules/cms/controllers/themes/_theme_export_form.php similarity index 100% rename from modules/cms/controllers/themes/_theme_export_form.htm rename to modules/cms/controllers/themes/_theme_export_form.php diff --git a/modules/cms/controllers/themes/_theme_fields_form.htm b/modules/cms/controllers/themes/_theme_fields_form.php similarity index 100% rename from modules/cms/controllers/themes/_theme_fields_form.htm rename to modules/cms/controllers/themes/_theme_fields_form.php diff --git a/modules/cms/controllers/themes/_theme_import_form.htm b/modules/cms/controllers/themes/_theme_import_form.php similarity index 100% rename from modules/cms/controllers/themes/_theme_import_form.htm rename to modules/cms/controllers/themes/_theme_import_form.php diff --git a/modules/cms/controllers/themes/_theme_list.htm b/modules/cms/controllers/themes/_theme_list.php similarity index 100% rename from modules/cms/controllers/themes/_theme_list.htm rename to modules/cms/controllers/themes/_theme_list.php diff --git a/modules/cms/controllers/themes/_theme_list_item.htm b/modules/cms/controllers/themes/_theme_list_item.php similarity index 100% rename from modules/cms/controllers/themes/_theme_list_item.htm rename to modules/cms/controllers/themes/_theme_list_item.php diff --git a/modules/cms/controllers/themes/download.htm b/modules/cms/controllers/themes/download.php similarity index 100% rename from modules/cms/controllers/themes/download.htm rename to modules/cms/controllers/themes/download.php diff --git a/modules/cms/controllers/themes/index.htm b/modules/cms/controllers/themes/index.php similarity index 100% rename from modules/cms/controllers/themes/index.htm rename to modules/cms/controllers/themes/index.php diff --git a/modules/cms/formwidgets/components/partials/_component.htm b/modules/cms/formwidgets/components/partials/_component.htm deleted file mode 100644 index 451321ba31..0000000000 --- a/modules/cms/formwidgets/components/partials/_component.htm +++ /dev/null @@ -1,17 +0,0 @@ -
-
inspectorEnabled): ?>data-inspectable - data-inspector-title="getComponentName($component)) ?>" - data-inspector-description="getComponentDescription($component)) ?>" - data-inspector-config="getComponentsPropertyConfig($component)) ?>" - data-inspector-class=""> - - - alias) ?> - - - - × -
-
\ No newline at end of file diff --git a/modules/cms/formwidgets/components/partials/_component.php b/modules/cms/formwidgets/components/partials/_component.php new file mode 100644 index 0000000000..0d3b028a25 --- /dev/null +++ b/modules/cms/formwidgets/components/partials/_component.php @@ -0,0 +1,20 @@ +
+
inspectorEnabled): ?> + data-inspectable + + data-inspector-title="getComponentName($component)) ?>" + data-inspector-description="getComponentDescription($component)) ?>" + data-inspector-config="getComponentsPropertyConfig($component)) ?>" + data-inspector-class="" + > + + + alias) ?> + + + + × +
+
diff --git a/modules/cms/formwidgets/components/partials/_formcomponents.htm b/modules/cms/formwidgets/components/partials/_formcomponents.php similarity index 100% rename from modules/cms/formwidgets/components/partials/_formcomponents.htm rename to modules/cms/formwidgets/components/partials/_formcomponents.php diff --git a/modules/cms/models/ThemeData.php b/modules/cms/models/ThemeData.php index 65167b3758..ba92bad521 100644 --- a/modules/cms/models/ThemeData.php +++ b/modules/cms/models/ThemeData.php @@ -113,19 +113,22 @@ public function afterFetch() { $data = (array) $this->data + $this->getDefaultValues(); - /* - * Repeater form fields store arrays and must be jsonable. - */ foreach ($this->getFormFields() as $id => $field) { if (!isset($field['type'])) { continue; } + /* + * Repeater and nested form fields store arrays and must be jsonable. + */ if (in_array($field['type'], ['repeater', 'nestedform'])) { $this->jsonable[] = $id; - } - elseif ($field['type'] === 'fileupload') { - $this->attachOne[$id] = File::class; + } elseif ($field['type'] === 'fileupload') { + if (array_get($field, 'multiple', false)) { + $this->attachMany[$id] = File::class; + } else { + $this->attachOne[$id] = File::class; + } unset($data[$id]); } } diff --git a/modules/cms/models/ThemeLog.php b/modules/cms/models/ThemeLog.php index 5a34515ff2..fab46cf3bf 100644 --- a/modules/cms/models/ThemeLog.php +++ b/modules/cms/models/ThemeLog.php @@ -1,6 +1,7 @@ getTable()) + ) { return; } diff --git a/modules/cms/models/maintenancesetting/_hint.htm b/modules/cms/models/maintenancesetting/_hint.php similarity index 100% rename from modules/cms/models/maintenancesetting/_hint.htm rename to modules/cms/models/maintenancesetting/_hint.php diff --git a/modules/cms/models/maintenancesetting/fields.yaml b/modules/cms/models/maintenancesetting/fields.yaml index 765590e2c5..79c94d7217 100644 --- a/modules/cms/models/maintenancesetting/fields.yaml +++ b/modules/cms/models/maintenancesetting/fields.yaml @@ -6,7 +6,7 @@ fields: hint: type: hint - path: ~/modules/cms/models/maintenancesetting/_hint.htm + path: ~/modules/cms/models/maintenancesetting/_hint.php is_enabled: label: cms::lang.maintenance.is_enabled diff --git a/modules/cms/phpunit.xml b/modules/cms/phpunit.xml new file mode 100644 index 0000000000..4163561102 --- /dev/null +++ b/modules/cms/phpunit.xml @@ -0,0 +1,22 @@ + + + + + ./tests + + + + + + + + diff --git a/modules/cms/reportwidgets/activetheme/partials/_widget.htm b/modules/cms/reportwidgets/activetheme/partials/_widget.php similarity index 100% rename from modules/cms/reportwidgets/activetheme/partials/_widget.htm rename to modules/cms/reportwidgets/activetheme/partials/_widget.php diff --git a/modules/cms/routes.php b/modules/cms/routes.php index 1aaf5ec5d1..728d0befd6 100644 --- a/modules/cms/routes.php +++ b/modules/cms/routes.php @@ -1,9 +1,9 @@ where('slug', '(.*)?')->middleware('web'); @@ -36,4 +35,4 @@ * */ Event::fire('cms.route'); -}); +}, PHP_INT_MIN); diff --git a/tests/unit/cms/classes/AssetTest.php b/modules/cms/tests/classes/AssetTest.php similarity index 98% rename from tests/unit/cms/classes/AssetTest.php rename to modules/cms/tests/classes/AssetTest.php index 7325d473e5..c7be820af1 100644 --- a/tests/unit/cms/classes/AssetTest.php +++ b/modules/cms/tests/classes/AssetTest.php @@ -1,14 +1,16 @@ assertStringContainsString( 'console.log(\'script1.js\');', diff --git a/tests/unit/cms/classes/CmsCompoundObjectTest.php b/modules/cms/tests/classes/CmsCompoundObjectTest.php similarity index 90% rename from tests/unit/cms/classes/CmsCompoundObjectTest.php rename to modules/cms/tests/classes/CmsCompoundObjectTest.php index e861ef0b90..19b03df8cf 100644 --- a/tests/unit/cms/classes/CmsCompoundObjectTest.php +++ b/modules/cms/tests/classes/CmsCompoundObjectTest.php @@ -1,8 +1,11 @@ assertFileExists($srcPath); $testContent = file_get_contents($srcPath); $this->assertNotEmpty($testContent); @@ -199,7 +202,7 @@ public function testSaveMarkup() { $theme = Theme::load('apitest'); - $destFilePath = $theme->getPath().'/testobjects/compound-markup.htm'; + $destFilePath = $theme->getPath() . '/testobjects/compound-markup.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } @@ -209,11 +212,11 @@ public function testSaveMarkup() $obj = TestCmsCompoundObject::inTheme($theme); $obj->fill([ 'markup' => '

Hello, world!

', - 'fileName'=>'compound-markup' + 'fileName' => 'compound-markup' ]); $obj->save(); - $referenceFilePath = base_path().'/tests/fixtures/cms/reference/compound-markup.htm'; + $referenceFilePath = base_path() . '/modules/cms/tests/fixtures/reference/compound-markup.htm'; $this->assertFileExists($referenceFilePath); $this->assertFileExists($destFilePath); @@ -224,7 +227,7 @@ public function testSaveMarkupAndSettings() { $theme = Theme::load('apitest'); - $destFilePath = $theme->getPath().'/testobjects/compound-markup-settings.htm'; + $destFilePath = $theme->getPath() . '/testobjects/compound-markup-settings.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } @@ -233,13 +236,13 @@ public function testSaveMarkupAndSettings() $obj = TestCmsCompoundObject::inTheme($theme); $obj->fill([ - 'settings'=>['var'=>'value'], + 'settings' => ['var' => 'value'], 'markup' => '

Hello, world!

', - 'fileName'=>'compound-markup-settings' + 'fileName' => 'compound-markup-settings' ]); $obj->save(); - $referenceFilePath = base_path().'/tests/fixtures/cms/reference/compound-markup-settings.htm'; + $referenceFilePath = base_path() . '/modules/cms/tests/fixtures/reference/compound-markup-settings.htm'; $this->assertFileExists($referenceFilePath); $this->assertFileExists($destFilePath); @@ -250,7 +253,7 @@ public function testSaveFull() { $theme = Theme::load('apitest'); - $destFilePath = $theme->getPath().'/testobjects/compound.htm'; + $destFilePath = $theme->getPath() . '/testobjects/compound.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } @@ -259,14 +262,14 @@ public function testSaveFull() $obj = TestCmsCompoundObject::inTheme($theme); $obj->fill([ - 'fileName'=>'compound', - 'settings'=>['var'=>'value'], + 'fileName' => 'compound', + 'settings' => ['var' => 'value'], 'code' => 'function a() {return true;}', 'markup' => '

Hello, world!

' ]); $obj->save(); - $referenceFilePath = base_path().'/tests/fixtures/cms/reference/compound-full.htm'; + $referenceFilePath = base_path() . '/modules/cms/tests/fixtures/reference/compound-full.htm'; $this->assertFileExists($referenceFilePath); $this->assertFileExists($destFilePath); diff --git a/tests/unit/cms/classes/CmsExceptionTest.php b/modules/cms/tests/classes/CmsExceptionTest.php similarity index 80% rename from tests/unit/cms/classes/CmsExceptionTest.php rename to modules/cms/tests/classes/CmsExceptionTest.php index 6adaabcbbb..2dc127f845 100644 --- a/tests/unit/cms/classes/CmsExceptionTest.php +++ b/modules/cms/tests/classes/CmsExceptionTest.php @@ -1,12 +1,11 @@ findByUrl('/throw-php'); - $foreignException = new \Symfony\Component\Debug\Exception\FatalErrorException('This is a general error', 100, 1, 'test.php', 20); + $error = [ + 'file' => 'test.php', + 'line' => 20, + ]; + $foreignException = new \Symfony\Component\ErrorHandler\Error\FatalError('This is a general error', 100, $error); $this->setProtectedProperty($foreignException, 'file', "/modules/cms/classes/CodeParser.php(165) : eval()'d code line 7"); $exception = new CmsException($page, 300); diff --git a/tests/unit/cms/classes/CmsObjectQueryTest.php b/modules/cms/tests/classes/CmsObjectQueryTest.php similarity index 91% rename from tests/unit/cms/classes/CmsObjectQueryTest.php rename to modules/cms/tests/classes/CmsObjectQueryTest.php index 2c40f1d91c..73c06939bb 100644 --- a/tests/unit/cms/classes/CmsObjectQueryTest.php +++ b/modules/cms/tests/classes/CmsObjectQueryTest.php @@ -1,13 +1,15 @@ property('posts-per-page') == '69'; @@ -73,6 +75,7 @@ public function testLists() "component-partial-nesting", "component-partial-override", "cycle-test", + "filters-test", "index", "no-component", "no-component-class", @@ -86,6 +89,7 @@ public function testLists() "with-components", "with-content", "with-layout", + "with-macro", "with-partials", "with-placeholder", "with-soft-component-class", diff --git a/tests/unit/cms/classes/CmsObjectTest.php b/modules/cms/tests/classes/CmsObjectTest.php similarity index 93% rename from tests/unit/cms/classes/CmsObjectTest.php rename to modules/cms/tests/classes/CmsObjectTest.php index ca5418462d..9d3f3b4b99 100644 --- a/tests/unit/cms/classes/CmsObjectTest.php +++ b/modules/cms/tests/classes/CmsObjectTest.php @@ -1,5 +1,8 @@ assertEquals('

This is a test HTML content file.

', $obj->getContent()); $this->assertEquals('plain.html', $obj->getFileName()); - $path = str_replace('/', DIRECTORY_SEPARATOR, $theme->getPath().'/testobjects/plain.html'); + $path = str_replace('/', DIRECTORY_SEPARATOR, $theme->getPath() . '/testobjects/plain.html'); $this->assertEquals($path, $obj->getFilePath()); $this->assertEquals(filemtime($path), $obj->mtime); } @@ -38,7 +41,7 @@ public function testLoadFromSubdirectory() $this->assertEquals('

This is an object in a subdirectory.

', $obj->getContent()); $this->assertEquals('subdir/obj.html', $obj->getFileName()); - $path = str_replace('/', DIRECTORY_SEPARATOR, $theme->getPath().'/testobjects/subdir/obj.html'); + $path = str_replace('/', DIRECTORY_SEPARATOR, $theme->getPath() . '/testobjects/subdir/obj.html'); $this->assertEquals($path, $obj->getFilePath()); $this->assertEquals(filemtime($path), $obj->mtime); } @@ -214,7 +217,7 @@ public function testSave() { $theme = Theme::load('apitest'); - $destFilePath = $theme->getPath().'/testobjects/mytestobj.htm'; + $destFilePath = $theme->getPath() . '/testobjects/mytestobj.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } @@ -240,10 +243,10 @@ public function testRename() { $theme = Theme::load('apitest'); - $srcFilePath = $theme->getPath().'/testobjects/mytestobj.htm'; + $srcFilePath = $theme->getPath() . '/testobjects/mytestobj.htm'; $this->assertFileExists($srcFilePath); - $destFilePath = $theme->getPath().'/testobjects/anotherobj.htm'; + $destFilePath = $theme->getPath() . '/testobjects/anotherobj.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } @@ -272,10 +275,10 @@ public function testRenameToExistingFile() $theme = Theme::load('apitest'); - $srcFilePath = $theme->getPath().'/testobjects/anotherobj.htm'; + $srcFilePath = $theme->getPath() . '/testobjects/anotherobj.htm'; $this->assertFileExists($srcFilePath); - $destFilePath = $theme->getPath().'/testobjects/existingobj.htm'; + $destFilePath = $theme->getPath() . '/testobjects/existingobj.htm'; if (!file_exists($destFilePath)) { file_put_contents($destFilePath, 'str'); } @@ -293,7 +296,7 @@ public function testSaveSameName() { $theme = Theme::load('apitest'); - $filePath = $theme->getPath().'/testobjects/anotherobj.htm'; + $filePath = $theme->getPath() . '/testobjects/anotherobj.htm'; $this->assertFileExists($filePath); $testContents = 'new content'; @@ -313,7 +316,7 @@ public function testSaveNewDir() { $theme = Theme::load('apitest'); - $destFilePath = $theme->getPath().'/testobjects/testsubdir/mytestobj.htm'; + $destFilePath = $theme->getPath() . '/testobjects/testsubdir/mytestobj.htm'; if (file_exists($destFilePath)) { unlink($destFilePath); } diff --git a/tests/unit/cms/classes/CodeParserTest.php b/modules/cms/tests/classes/CodeParserTest.php similarity index 96% rename from tests/unit/cms/classes/CodeParserTest.php rename to modules/cms/tests/classes/CodeParserTest.php index 67d8f30e93..519d0dcc59 100644 --- a/tests/unit/cms/classes/CodeParserTest.php +++ b/modules/cms/tests/classes/CodeParserTest.php @@ -1,16 +1,21 @@ source($page, null, $controller); $this->assertInstanceOf(PageCode::class, $obj); - $referenceFilePath = base_path() . '/tests/fixtures/cms/reference/namespaces.php.stub'; + $referenceFilePath = base_path() . '/modules/cms/tests/fixtures/reference/namespaces.php.stub'; $this->assertFileExists($referenceFilePath); $referenceContents = $this->getContents($referenceFilePath); @@ -295,7 +300,7 @@ public function testNamespacesAliases() $obj = $parser->source($page, null, $controller); $this->assertInstanceOf(PageCode::class, $obj); - $referenceFilePath = base_path() . '/tests/fixtures/cms/reference/namespaces-aliases.php.stub'; + $referenceFilePath = base_path() . '/modules/cms/tests/fixtures/reference/namespaces-aliases.php.stub'; $this->assertFileExists($referenceFilePath); $referenceContents = $this->getContents($referenceFilePath); diff --git a/tests/unit/cms/classes/ComponentManagerTest.php b/modules/cms/tests/classes/ComponentManagerTest.php similarity index 82% rename from tests/unit/cms/classes/ComponentManagerTest.php rename to modules/cms/tests/classes/ComponentManagerTest.php index 45f3d01dbc..a28abbf646 100644 --- a/tests/unit/cms/classes/ComponentManagerTest.php +++ b/modules/cms/tests/classes/ComponentManagerTest.php @@ -1,24 +1,27 @@ spoofPageCode(); @@ -114,7 +117,7 @@ public function testMakeComponent() public function testDefineProperties() { - include_once base_path() . '/tests/fixtures/plugins/winter/tester/components/Archive.php'; + include_once base_path() . '/modules/system/tests/fixtures/plugins/winter/tester/components/Archive.php'; $manager = ComponentManager::instance(); $object = $manager->makeComponent('testArchive'); $details = $object->componentDetails(); diff --git a/tests/unit/cms/classes/ContentTest.php b/modules/cms/tests/classes/ContentTest.php similarity index 95% rename from tests/unit/cms/classes/ContentTest.php rename to modules/cms/tests/classes/ContentTest.php index 790501c6f8..7b1298ee88 100644 --- a/tests/unit/cms/classes/ContentTest.php +++ b/modules/cms/tests/classes/ContentTest.php @@ -1,7 +1,10 @@ assertEquals('/combine/860afc990164a60a8e90682d04da27ee', $url); } + public function testPageUrl() + { + $theme = Theme::load('test'); + $controller = new Controller($theme); + + $loadUrl = '/filters-test/current-slug'; + + $response = $controller->run($loadUrl); + + // Check pageUrl for current page + $url = $controller->pageUrl(''); + $this->assertEquals(url($loadUrl), $url); + + // Check pageUrl for persistent URL parameters + $url = $controller->pageUrl('blog-post'); + $this->assertEquals(url('/blog/post/current-slug'), $url); + + // Check pageUrl for providing values for URL parameters + $url = $controller->pageUrl('blog-post', ['url_title' => 'test-slug']); + $this->assertEquals(url('/blog/post/test-slug'), $url); + + // Check pageUrl for disabling persistent URL parameters + $url = $controller->pageUrl('blog-post', [], false); + $this->assertEquals(url('/blog/post/default'), $url); + + // Check pageUrl for disabling persistent URL parameters with the second argument being routePersistence + $url = $controller->pageUrl('blog-post', false); + $this->assertEquals(url('/blog/post/default'), $url); + + // Check the Twig render results + $results = $response->getContent(); + $lines = explode("\n", str_replace("\r\n", "\n", $results)); + foreach ($lines as $test) { + list($result, $expected) = explode(' -> ', $test); + $this->assertEquals($expected, $result); + } + } + public function test404() { /* @@ -56,7 +99,7 @@ public function test404() $this->assertNotEmpty($response); $this->assertInstanceOf('\Illuminate\Http\Response', $response); ob_start(); - include base_path().'/modules/cms/views/404.php'; + include base_path() . '/modules/cms/views/404.php'; $page404Content = ob_get_contents(); ob_end_clean(); $this->assertEquals($page404Content, $response->getContent()); @@ -320,7 +363,7 @@ public function testBasicComponents() public function testComponentAliases() { - include_once base_path() . '/tests/fixtures/plugins/winter/tester/components/Archive.php'; + include_once base_path() . '/modules/system/tests/fixtures/plugins/winter/tester/components/Archive.php'; $theme = Theme::load('test'); $controller = new Controller($theme); @@ -539,4 +582,16 @@ public function testComponentWithOnRender() ESC; $this->assertEquals(str_replace(PHP_EOL, "\n", $content), $response); } + + public function testMacro() + { + $theme = Theme::load('test'); + $controller = new Controller($theme); + $response = $controller->run('/with-macro')->getContent(); + + $this->assertStringContainsString( + '

with-macro.htmwith-macro.htm

', + $response + ); + } } diff --git a/modules/cms/tests/classes/PageTest.php b/modules/cms/tests/classes/PageTest.php new file mode 100644 index 0000000000..e2cbeebd4b --- /dev/null +++ b/modules/cms/tests/classes/PageTest.php @@ -0,0 +1,33 @@ + 'cms-page', + 'reference' => 'index', + ]; + + // Check to make sure that resolved menuItems for the provided URL are considered active + // with or without a trailing slash + $url = $controller->pageUrl($item->reference); + $trailingUrl = $url . '/'; + + $result = Page::resolveMenuItem($item, $url, $theme); + $this->assertTrue($result['isActive']); + + $result = Page::resolveMenuItem($item, $trailingUrl, $theme); + $this->assertTrue($result['isActive']); + } +} diff --git a/tests/unit/cms/classes/PartialStackTest.php b/modules/cms/tests/classes/PartialStackTest.php similarity index 74% rename from tests/unit/cms/classes/PartialStackTest.php rename to modules/cms/tests/classes/PartialStackTest.php index 5429f3fc9d..e13f448bff 100644 --- a/tests/unit/cms/classes/PartialStackTest.php +++ b/modules/cms/tests/classes/PartialStackTest.php @@ -1,5 +1,8 @@ stackPartial(); - $stack->addComponent('override1', 'Winter\Tester\Components\MainMenu'); - $stack->addComponent('override2', 'Winter\Tester\Components\ContentBlock'); + $stack->addComponent('override1', 'Winter\Tester\Components\MainMenu'); + $stack->addComponent('override2', 'Winter\Tester\Components\ContentBlock'); - $stack->stackPartial(); - $stack->addComponent('override3', 'Winter\Tester\Components\Post'); - $stack->addComponent('post', 'Winter\Tester\Components\Post'); + $stack->stackPartial(); + $stack->addComponent('override3', 'Winter\Tester\Components\Post'); + $stack->addComponent('post', 'Winter\Tester\Components\Post'); - $stack->stackPartial(); - $stack->addComponent('mainMenu', 'Winter\Tester\Components\MainMenu'); + $stack->stackPartial(); + $stack->addComponent('mainMenu', 'Winter\Tester\Components\MainMenu'); /* * Knock em down diff --git a/tests/unit/cms/classes/RouterTest.php b/modules/cms/tests/classes/RouterTest.php similarity index 98% rename from tests/unit/cms/classes/RouterTest.php rename to modules/cms/tests/classes/RouterTest.php index f4eeda27ac..0cb61343cb 100644 --- a/tests/unit/cms/classes/RouterTest.php +++ b/modules/cms/tests/classes/RouterTest.php @@ -1,13 +1,17 @@ setMaxDepth(1); $it->rewind(); @@ -39,7 +44,7 @@ public function testGetPath() $theme = Theme::load('test'); - $this->assertEquals(base_path('tests/fixtures/themes/test'), $theme->getPath()); + $this->assertEquals(base_path('modules/cms/tests/fixtures/themes/test'), $theme->getPath()); } public function testListPages() @@ -50,7 +55,7 @@ public function testListPages() $pages = array_values($pageCollection->all()); $this->assertIsArray($pages); - $expectedPageNum = $this->countThemePages(base_path().'/tests/fixtures/themes/test/pages'); + $expectedPageNum = $this->countThemePages(base_path() . '/modules/cms/tests/fixtures/themes/test/pages'); $this->assertCount($expectedPageNum, $pages); $this->assertInstanceOf('\Cms\Classes\Page', $pages[0]); diff --git a/tests/fixtures/cms/reference/compound-full.htm b/modules/cms/tests/fixtures/reference/compound-full.htm similarity index 100% rename from tests/fixtures/cms/reference/compound-full.htm rename to modules/cms/tests/fixtures/reference/compound-full.htm diff --git a/tests/fixtures/cms/reference/compound-markup-settings.htm b/modules/cms/tests/fixtures/reference/compound-markup-settings.htm similarity index 100% rename from tests/fixtures/cms/reference/compound-markup-settings.htm rename to modules/cms/tests/fixtures/reference/compound-markup-settings.htm diff --git a/tests/fixtures/cms/reference/compound-markup.htm b/modules/cms/tests/fixtures/reference/compound-markup.htm similarity index 100% rename from tests/fixtures/cms/reference/compound-markup.htm rename to modules/cms/tests/fixtures/reference/compound-markup.htm diff --git a/tests/fixtures/cms/reference/namespaces-aliases.php.stub b/modules/cms/tests/fixtures/reference/namespaces-aliases.php.stub similarity index 100% rename from tests/fixtures/cms/reference/namespaces-aliases.php.stub rename to modules/cms/tests/fixtures/reference/namespaces-aliases.php.stub diff --git a/tests/fixtures/cms/reference/namespaces.php.stub b/modules/cms/tests/fixtures/reference/namespaces.php.stub similarity index 100% rename from tests/fixtures/cms/reference/namespaces.php.stub rename to modules/cms/tests/fixtures/reference/namespaces.php.stub diff --git a/tests/fixtures/themes/apitest/.gitignore b/modules/cms/tests/fixtures/themes/apitest/.gitignore similarity index 100% rename from tests/fixtures/themes/apitest/.gitignore rename to modules/cms/tests/fixtures/themes/apitest/.gitignore diff --git a/tests/fixtures/themes/test/assets/css/style1.css b/modules/cms/tests/fixtures/themes/test/assets/css/style1.css similarity index 100% rename from tests/fixtures/themes/test/assets/css/style1.css rename to modules/cms/tests/fixtures/themes/test/assets/css/style1.css diff --git a/tests/fixtures/themes/test/assets/css/style2.css b/modules/cms/tests/fixtures/themes/test/assets/css/style2.css similarity index 100% rename from tests/fixtures/themes/test/assets/css/style2.css rename to modules/cms/tests/fixtures/themes/test/assets/css/style2.css diff --git a/tests/fixtures/media/winter.png b/modules/cms/tests/fixtures/themes/test/assets/images/winter.png similarity index 100% rename from tests/fixtures/media/winter.png rename to modules/cms/tests/fixtures/themes/test/assets/images/winter.png diff --git a/tests/fixtures/themes/test/assets/js/script1.js b/modules/cms/tests/fixtures/themes/test/assets/js/script1.js similarity index 100% rename from tests/fixtures/themes/test/assets/js/script1.js rename to modules/cms/tests/fixtures/themes/test/assets/js/script1.js diff --git a/tests/fixtures/themes/test/assets/js/script2.js b/modules/cms/tests/fixtures/themes/test/assets/js/script2.js similarity index 100% rename from tests/fixtures/themes/test/assets/js/script2.js rename to modules/cms/tests/fixtures/themes/test/assets/js/script2.js diff --git a/tests/fixtures/themes/test/assets/js/subdir/script1.js b/modules/cms/tests/fixtures/themes/test/assets/js/subdir/script1.js similarity index 100% rename from tests/fixtures/themes/test/assets/js/subdir/script1.js rename to modules/cms/tests/fixtures/themes/test/assets/js/subdir/script1.js diff --git a/tests/fixtures/themes/test/content/a/a-content.htm b/modules/cms/tests/fixtures/themes/test/content/a/a-content.htm similarity index 100% rename from tests/fixtures/themes/test/content/a/a-content.htm rename to modules/cms/tests/fixtures/themes/test/content/a/a-content.htm diff --git a/tests/fixtures/themes/test/content/html-content.htm b/modules/cms/tests/fixtures/themes/test/content/html-content.htm similarity index 100% rename from tests/fixtures/themes/test/content/html-content.htm rename to modules/cms/tests/fixtures/themes/test/content/html-content.htm diff --git a/tests/fixtures/themes/test/content/layout-content.txt b/modules/cms/tests/fixtures/themes/test/content/layout-content.txt similarity index 100% rename from tests/fixtures/themes/test/content/layout-content.txt rename to modules/cms/tests/fixtures/themes/test/content/layout-content.txt diff --git a/tests/fixtures/themes/test/content/markdown-content.md b/modules/cms/tests/fixtures/themes/test/content/markdown-content.md similarity index 100% rename from tests/fixtures/themes/test/content/markdown-content.md rename to modules/cms/tests/fixtures/themes/test/content/markdown-content.md diff --git a/tests/fixtures/themes/test/content/page-content.htm b/modules/cms/tests/fixtures/themes/test/content/page-content.htm similarity index 100% rename from tests/fixtures/themes/test/content/page-content.htm rename to modules/cms/tests/fixtures/themes/test/content/page-content.htm diff --git a/tests/fixtures/themes/test/content/text-content.txt b/modules/cms/tests/fixtures/themes/test/content/text-content.txt similarity index 100% rename from tests/fixtures/themes/test/content/text-content.txt rename to modules/cms/tests/fixtures/themes/test/content/text-content.txt diff --git a/tests/fixtures/themes/test/layouts/a/a-layout.htm b/modules/cms/tests/fixtures/themes/test/layouts/a/a-layout.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/a/a-layout.htm rename to modules/cms/tests/fixtures/themes/test/layouts/a/a-layout.htm diff --git a/tests/fixtures/themes/test/layouts/ajax-test.htm b/modules/cms/tests/fixtures/themes/test/layouts/ajax-test.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/ajax-test.htm rename to modules/cms/tests/fixtures/themes/test/layouts/ajax-test.htm diff --git a/tests/fixtures/themes/test/layouts/content.htm b/modules/cms/tests/fixtures/themes/test/layouts/content.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/content.htm rename to modules/cms/tests/fixtures/themes/test/layouts/content.htm diff --git a/tests/fixtures/themes/test/layouts/cycle-test.htm b/modules/cms/tests/fixtures/themes/test/layouts/cycle-test.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/cycle-test.htm rename to modules/cms/tests/fixtures/themes/test/layouts/cycle-test.htm diff --git a/tests/fixtures/themes/test/layouts/no-php.htm b/modules/cms/tests/fixtures/themes/test/layouts/no-php.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/no-php.htm rename to modules/cms/tests/fixtures/themes/test/layouts/no-php.htm diff --git a/tests/fixtures/themes/test/layouts/partials.htm b/modules/cms/tests/fixtures/themes/test/layouts/partials.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/partials.htm rename to modules/cms/tests/fixtures/themes/test/layouts/partials.htm diff --git a/tests/fixtures/themes/test/layouts/php-parser-test.htm b/modules/cms/tests/fixtures/themes/test/layouts/php-parser-test.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/php-parser-test.htm rename to modules/cms/tests/fixtures/themes/test/layouts/php-parser-test.htm diff --git a/tests/fixtures/themes/test/layouts/placeholder.htm b/modules/cms/tests/fixtures/themes/test/layouts/placeholder.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/placeholder.htm rename to modules/cms/tests/fixtures/themes/test/layouts/placeholder.htm diff --git a/tests/fixtures/themes/test/layouts/sidebar.htm b/modules/cms/tests/fixtures/themes/test/layouts/sidebar.htm similarity index 100% rename from tests/fixtures/themes/test/layouts/sidebar.htm rename to modules/cms/tests/fixtures/themes/test/layouts/sidebar.htm diff --git a/tests/fixtures/themes/test/pages/404.htm b/modules/cms/tests/fixtures/themes/test/pages/404.htm similarity index 100% rename from tests/fixtures/themes/test/pages/404.htm rename to modules/cms/tests/fixtures/themes/test/pages/404.htm diff --git a/tests/fixtures/themes/test/pages/a/a-page.htm b/modules/cms/tests/fixtures/themes/test/pages/a/a-page.htm similarity index 100% rename from tests/fixtures/themes/test/pages/a/a-page.htm rename to modules/cms/tests/fixtures/themes/test/pages/a/a-page.htm diff --git a/tests/fixtures/themes/test/pages/ajax-test.htm b/modules/cms/tests/fixtures/themes/test/pages/ajax-test.htm similarity index 100% rename from tests/fixtures/themes/test/pages/ajax-test.htm rename to modules/cms/tests/fixtures/themes/test/pages/ajax-test.htm diff --git a/tests/fixtures/themes/test/pages/authors.htm b/modules/cms/tests/fixtures/themes/test/pages/authors.htm similarity index 100% rename from tests/fixtures/themes/test/pages/authors.htm rename to modules/cms/tests/fixtures/themes/test/pages/authors.htm diff --git a/tests/fixtures/themes/test/pages/b/b-page.htm b/modules/cms/tests/fixtures/themes/test/pages/b/b-page.htm similarity index 100% rename from tests/fixtures/themes/test/pages/b/b-page.htm rename to modules/cms/tests/fixtures/themes/test/pages/b/b-page.htm diff --git a/tests/fixtures/themes/test/pages/b/c/c-page.htm b/modules/cms/tests/fixtures/themes/test/pages/b/c/c-page.htm similarity index 100% rename from tests/fixtures/themes/test/pages/b/c/c-page.htm rename to modules/cms/tests/fixtures/themes/test/pages/b/c/c-page.htm diff --git a/tests/fixtures/themes/test/pages/blog-archive.htm b/modules/cms/tests/fixtures/themes/test/pages/blog-archive.htm similarity index 100% rename from tests/fixtures/themes/test/pages/blog-archive.htm rename to modules/cms/tests/fixtures/themes/test/pages/blog-archive.htm diff --git a/tests/fixtures/themes/test/pages/blog-category.htm b/modules/cms/tests/fixtures/themes/test/pages/blog-category.htm similarity index 100% rename from tests/fixtures/themes/test/pages/blog-category.htm rename to modules/cms/tests/fixtures/themes/test/pages/blog-category.htm diff --git a/tests/fixtures/themes/test/pages/blog-post.htm b/modules/cms/tests/fixtures/themes/test/pages/blog-post.htm similarity index 100% rename from tests/fixtures/themes/test/pages/blog-post.htm rename to modules/cms/tests/fixtures/themes/test/pages/blog-post.htm diff --git a/tests/fixtures/themes/test/pages/code-namespaces-aliases.htm b/modules/cms/tests/fixtures/themes/test/pages/code-namespaces-aliases.htm similarity index 100% rename from tests/fixtures/themes/test/pages/code-namespaces-aliases.htm rename to modules/cms/tests/fixtures/themes/test/pages/code-namespaces-aliases.htm diff --git a/tests/fixtures/themes/test/pages/code-namespaces.htm b/modules/cms/tests/fixtures/themes/test/pages/code-namespaces.htm similarity index 100% rename from tests/fixtures/themes/test/pages/code-namespaces.htm rename to modules/cms/tests/fixtures/themes/test/pages/code-namespaces.htm diff --git a/tests/fixtures/themes/test/pages/component-custom-render.htm b/modules/cms/tests/fixtures/themes/test/pages/component-custom-render.htm similarity index 100% rename from tests/fixtures/themes/test/pages/component-custom-render.htm rename to modules/cms/tests/fixtures/themes/test/pages/component-custom-render.htm diff --git a/tests/fixtures/themes/test/pages/component-partial-alias-override.htm b/modules/cms/tests/fixtures/themes/test/pages/component-partial-alias-override.htm similarity index 100% rename from tests/fixtures/themes/test/pages/component-partial-alias-override.htm rename to modules/cms/tests/fixtures/themes/test/pages/component-partial-alias-override.htm diff --git a/tests/fixtures/themes/test/pages/component-partial-nesting.htm b/modules/cms/tests/fixtures/themes/test/pages/component-partial-nesting.htm similarity index 100% rename from tests/fixtures/themes/test/pages/component-partial-nesting.htm rename to modules/cms/tests/fixtures/themes/test/pages/component-partial-nesting.htm diff --git a/tests/fixtures/themes/test/pages/component-partial-override.htm b/modules/cms/tests/fixtures/themes/test/pages/component-partial-override.htm similarity index 100% rename from tests/fixtures/themes/test/pages/component-partial-override.htm rename to modules/cms/tests/fixtures/themes/test/pages/component-partial-override.htm diff --git a/tests/fixtures/themes/test/pages/component-partial.htm b/modules/cms/tests/fixtures/themes/test/pages/component-partial.htm similarity index 100% rename from tests/fixtures/themes/test/pages/component-partial.htm rename to modules/cms/tests/fixtures/themes/test/pages/component-partial.htm diff --git a/tests/fixtures/themes/test/pages/cycle-test.htm b/modules/cms/tests/fixtures/themes/test/pages/cycle-test.htm similarity index 100% rename from tests/fixtures/themes/test/pages/cycle-test.htm rename to modules/cms/tests/fixtures/themes/test/pages/cycle-test.htm diff --git a/modules/cms/tests/fixtures/themes/test/pages/filters-test.htm b/modules/cms/tests/fixtures/themes/test/pages/filters-test.htm new file mode 100644 index 0000000000..ac6b767690 --- /dev/null +++ b/modules/cms/tests/fixtures/themes/test/pages/filters-test.htm @@ -0,0 +1,13 @@ +url = "/filters-test/:url_title?" +== +{# Check pageUrl for current page #} +{{ '' | page }} -> {{ '/filters-test/current-slug' | app }} +{# Check pageUrl for persistent URL parameters #} +{{ 'blog-post' | page }} -> {{ '/blog/post/current-slug' | app }} +{# Check pageUrl for providing values for URL parameters #} +{{ 'blog-post' | page({url_title: 'test-slug'}) }} -> {{ '/blog/post/test-slug' | app }} +{# Check pageUrl for disabling persistent URL parameters #} +{{ 'blog-post' | page({}, false) }} -> {{ '/blog/post/default' | app }} +{# Check pageUrl for disabling persistent URL parameters with the second argument being routePersistence #} +{{ 'blog-post' | page(false) }} -> {{ '/blog/post/default' | app }} + diff --git a/tests/fixtures/themes/test/pages/index.htm b/modules/cms/tests/fixtures/themes/test/pages/index.htm similarity index 100% rename from tests/fixtures/themes/test/pages/index.htm rename to modules/cms/tests/fixtures/themes/test/pages/index.htm diff --git a/tests/fixtures/themes/test/pages/no-component-class.htm b/modules/cms/tests/fixtures/themes/test/pages/no-component-class.htm similarity index 100% rename from tests/fixtures/themes/test/pages/no-component-class.htm rename to modules/cms/tests/fixtures/themes/test/pages/no-component-class.htm diff --git a/tests/fixtures/themes/test/pages/no-component.htm b/modules/cms/tests/fixtures/themes/test/pages/no-component.htm similarity index 100% rename from tests/fixtures/themes/test/pages/no-component.htm rename to modules/cms/tests/fixtures/themes/test/pages/no-component.htm diff --git a/tests/fixtures/themes/test/pages/no-layout.htm b/modules/cms/tests/fixtures/themes/test/pages/no-layout.htm similarity index 100% rename from tests/fixtures/themes/test/pages/no-layout.htm rename to modules/cms/tests/fixtures/themes/test/pages/no-layout.htm diff --git a/tests/fixtures/themes/test/pages/no-partial.htm b/modules/cms/tests/fixtures/themes/test/pages/no-partial.htm similarity index 100% rename from tests/fixtures/themes/test/pages/no-partial.htm rename to modules/cms/tests/fixtures/themes/test/pages/no-partial.htm diff --git a/tests/fixtures/themes/test/pages/no-soft-component-class.htm b/modules/cms/tests/fixtures/themes/test/pages/no-soft-component-class.htm similarity index 100% rename from tests/fixtures/themes/test/pages/no-soft-component-class.htm rename to modules/cms/tests/fixtures/themes/test/pages/no-soft-component-class.htm diff --git a/tests/fixtures/themes/test/pages/optional-full-php-tags.htm b/modules/cms/tests/fixtures/themes/test/pages/optional-full-php-tags.htm similarity index 100% rename from tests/fixtures/themes/test/pages/optional-full-php-tags.htm rename to modules/cms/tests/fixtures/themes/test/pages/optional-full-php-tags.htm diff --git a/tests/fixtures/themes/test/pages/optional-short-php-tags.htm b/modules/cms/tests/fixtures/themes/test/pages/optional-short-php-tags.htm similarity index 100% rename from tests/fixtures/themes/test/pages/optional-short-php-tags.htm rename to modules/cms/tests/fixtures/themes/test/pages/optional-short-php-tags.htm diff --git a/tests/fixtures/themes/test/pages/throw-php.htm b/modules/cms/tests/fixtures/themes/test/pages/throw-php.htm similarity index 100% rename from tests/fixtures/themes/test/pages/throw-php.htm rename to modules/cms/tests/fixtures/themes/test/pages/throw-php.htm diff --git a/tests/fixtures/themes/test/pages/with-component.htm b/modules/cms/tests/fixtures/themes/test/pages/with-component.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-component.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-component.htm diff --git a/tests/fixtures/themes/test/pages/with-components.htm b/modules/cms/tests/fixtures/themes/test/pages/with-components.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-components.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-components.htm diff --git a/tests/fixtures/themes/test/pages/with-content.htm b/modules/cms/tests/fixtures/themes/test/pages/with-content.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-content.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-content.htm diff --git a/tests/fixtures/themes/test/pages/with-layout.htm b/modules/cms/tests/fixtures/themes/test/pages/with-layout.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-layout.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-layout.htm diff --git a/modules/cms/tests/fixtures/themes/test/pages/with-macro.htm b/modules/cms/tests/fixtures/themes/test/pages/with-macro.htm new file mode 100644 index 0000000000..0d45d8788a --- /dev/null +++ b/modules/cms/tests/fixtures/themes/test/pages/with-macro.htm @@ -0,0 +1,6 @@ +url = "/with-macro" +== +{% macro pageTest(_context) -%} + {{ this.page.fileName }} +{%- endmacro pageTest %} +

{{ _self.pageTest() }}{{ this.page.fileName }}

diff --git a/tests/fixtures/themes/test/pages/with-partials.htm b/modules/cms/tests/fixtures/themes/test/pages/with-partials.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-partials.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-partials.htm diff --git a/tests/fixtures/themes/test/pages/with-placeholder.htm b/modules/cms/tests/fixtures/themes/test/pages/with-placeholder.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-placeholder.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-placeholder.htm diff --git a/tests/fixtures/themes/test/pages/with-soft-component-class-alias.htm b/modules/cms/tests/fixtures/themes/test/pages/with-soft-component-class-alias.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-soft-component-class-alias.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-soft-component-class-alias.htm diff --git a/tests/fixtures/themes/test/pages/with-soft-component-class.htm b/modules/cms/tests/fixtures/themes/test/pages/with-soft-component-class.htm similarity index 100% rename from tests/fixtures/themes/test/pages/with-soft-component-class.htm rename to modules/cms/tests/fixtures/themes/test/pages/with-soft-component-class.htm diff --git a/tests/fixtures/themes/test/partials/a/a-partial.htm b/modules/cms/tests/fixtures/themes/test/partials/a/a-partial.htm similarity index 100% rename from tests/fixtures/themes/test/partials/a/a-partial.htm rename to modules/cms/tests/fixtures/themes/test/partials/a/a-partial.htm diff --git a/tests/fixtures/themes/test/partials/ajax-result.htm b/modules/cms/tests/fixtures/themes/test/partials/ajax-result.htm similarity index 100% rename from tests/fixtures/themes/test/partials/ajax-result.htm rename to modules/cms/tests/fixtures/themes/test/partials/ajax-result.htm diff --git a/tests/fixtures/themes/test/partials/ajax-second-result.htm b/modules/cms/tests/fixtures/themes/test/partials/ajax-second-result.htm similarity index 100% rename from tests/fixtures/themes/test/partials/ajax-second-result.htm rename to modules/cms/tests/fixtures/themes/test/partials/ajax-second-result.htm diff --git a/tests/fixtures/themes/test/partials/layout-partial.htm b/modules/cms/tests/fixtures/themes/test/partials/layout-partial.htm similarity index 100% rename from tests/fixtures/themes/test/partials/layout-partial.htm rename to modules/cms/tests/fixtures/themes/test/partials/layout-partial.htm diff --git a/tests/fixtures/themes/test/partials/nesting/level1.htm b/modules/cms/tests/fixtures/themes/test/partials/nesting/level1.htm similarity index 100% rename from tests/fixtures/themes/test/partials/nesting/level1.htm rename to modules/cms/tests/fixtures/themes/test/partials/nesting/level1.htm diff --git a/tests/fixtures/themes/test/partials/nesting/level2.htm b/modules/cms/tests/fixtures/themes/test/partials/nesting/level2.htm similarity index 100% rename from tests/fixtures/themes/test/partials/nesting/level2.htm rename to modules/cms/tests/fixtures/themes/test/partials/nesting/level2.htm diff --git a/tests/fixtures/themes/test/partials/nesting/level3.htm b/modules/cms/tests/fixtures/themes/test/partials/nesting/level3.htm similarity index 100% rename from tests/fixtures/themes/test/partials/nesting/level3.htm rename to modules/cms/tests/fixtures/themes/test/partials/nesting/level3.htm diff --git a/tests/fixtures/themes/test/partials/override1/default.htm b/modules/cms/tests/fixtures/themes/test/partials/override1/default.htm similarity index 100% rename from tests/fixtures/themes/test/partials/override1/default.htm rename to modules/cms/tests/fixtures/themes/test/partials/override1/default.htm diff --git a/tests/fixtures/themes/test/partials/override2/default.htm b/modules/cms/tests/fixtures/themes/test/partials/override2/default.htm similarity index 100% rename from tests/fixtures/themes/test/partials/override2/default.htm rename to modules/cms/tests/fixtures/themes/test/partials/override2/default.htm diff --git a/tests/fixtures/themes/test/partials/override2/items.htm b/modules/cms/tests/fixtures/themes/test/partials/override2/items.htm similarity index 100% rename from tests/fixtures/themes/test/partials/override2/items.htm rename to modules/cms/tests/fixtures/themes/test/partials/override2/items.htm diff --git a/tests/fixtures/themes/test/partials/override3/default.htm b/modules/cms/tests/fixtures/themes/test/partials/override3/default.htm similarity index 100% rename from tests/fixtures/themes/test/partials/override3/default.htm rename to modules/cms/tests/fixtures/themes/test/partials/override3/default.htm diff --git a/tests/fixtures/themes/test/partials/override4/default.htm b/modules/cms/tests/fixtures/themes/test/partials/override4/default.htm similarity index 100% rename from tests/fixtures/themes/test/partials/override4/default.htm rename to modules/cms/tests/fixtures/themes/test/partials/override4/default.htm diff --git a/tests/fixtures/themes/test/partials/page-partial.htm b/modules/cms/tests/fixtures/themes/test/partials/page-partial.htm similarity index 100% rename from tests/fixtures/themes/test/partials/page-partial.htm rename to modules/cms/tests/fixtures/themes/test/partials/page-partial.htm diff --git a/tests/fixtures/themes/test/partials/testpost/default.htm b/modules/cms/tests/fixtures/themes/test/partials/testpost/default.htm similarity index 100% rename from tests/fixtures/themes/test/partials/testpost/default.htm rename to modules/cms/tests/fixtures/themes/test/partials/testpost/default.htm diff --git a/tests/fixtures/themes/test/temporary/.gitignore b/modules/cms/tests/fixtures/themes/test/temporary/.gitignore similarity index 100% rename from tests/fixtures/themes/test/temporary/.gitignore rename to modules/cms/tests/fixtures/themes/test/temporary/.gitignore diff --git a/tests/fixtures/themes/test/testobjects/component.htm b/modules/cms/tests/fixtures/themes/test/testobjects/component.htm similarity index 100% rename from tests/fixtures/themes/test/testobjects/component.htm rename to modules/cms/tests/fixtures/themes/test/testobjects/component.htm diff --git a/tests/fixtures/themes/test/testobjects/components.htm b/modules/cms/tests/fixtures/themes/test/testobjects/components.htm similarity index 100% rename from tests/fixtures/themes/test/testobjects/components.htm rename to modules/cms/tests/fixtures/themes/test/testobjects/components.htm diff --git a/tests/fixtures/themes/test/testobjects/compound.htm b/modules/cms/tests/fixtures/themes/test/testobjects/compound.htm similarity index 100% rename from tests/fixtures/themes/test/testobjects/compound.htm rename to modules/cms/tests/fixtures/themes/test/testobjects/compound.htm diff --git a/tests/fixtures/themes/test/testobjects/plain.html b/modules/cms/tests/fixtures/themes/test/testobjects/plain.html similarity index 100% rename from tests/fixtures/themes/test/testobjects/plain.html rename to modules/cms/tests/fixtures/themes/test/testobjects/plain.html diff --git a/tests/fixtures/themes/test/testobjects/subdir/obj.html b/modules/cms/tests/fixtures/themes/test/testobjects/subdir/obj.html similarity index 100% rename from tests/fixtures/themes/test/testobjects/subdir/obj.html rename to modules/cms/tests/fixtures/themes/test/testobjects/subdir/obj.html diff --git a/tests/fixtures/themes/test/testobjects/viewbag.htm b/modules/cms/tests/fixtures/themes/test/testobjects/viewbag.htm similarity index 100% rename from tests/fixtures/themes/test/testobjects/viewbag.htm rename to modules/cms/tests/fixtures/themes/test/testobjects/viewbag.htm diff --git a/tests/unit/cms/helpers/FileTest.php b/modules/cms/tests/helpers/FileTest.php similarity index 90% rename from tests/unit/cms/helpers/FileTest.php rename to modules/cms/tests/helpers/FileTest.php index dde19f0c38..2e9496c352 100644 --- a/tests/unit/cms/helpers/FileTest.php +++ b/modules/cms/tests/helpers/FileTest.php @@ -1,6 +1,9 @@ controller = $controller; - } - /** * Returns a list of global functions to add to the existing list. * @return array An array of global functions diff --git a/modules/cms/twig/Extension.php b/modules/cms/twig/Extension.php index 867087888c..bbad863bcd 100644 --- a/modules/cms/twig/Extension.php +++ b/modules/cms/twig/Extension.php @@ -16,54 +16,63 @@ class Extension extends TwigExtension { /** - * @var \Cms\Classes\Controller A reference to the CMS controller. + * The instanciated CMS controller */ - protected $controller; + protected Controller $controller; /** - * Creates the extension instance. - * @param \Cms\Classes\Controller $controller The CMS controller object. + * Sets the CMS controller instance */ - public function __construct(Controller $controller = null) + public function setController(Controller $controller) { $this->controller = $controller; } /** - * Returns a list of functions to add to the existing list. - * - * @return array An array of functions + * Gets the CMS controller instance */ - public function getFunctions() + public function getController(): Controller { + return $this->controller; + } + + /** + * Returns an array of functions to add to the existing list. + */ + public function getFunctions(): array + { + $options = [ + 'is_safe' => ['html'], + ]; + return [ - new TwigSimpleFunction('page', [$this, 'pageFunction'], ['is_safe' => ['html']]), - new TwigSimpleFunction('partial', [$this, 'partialFunction'], ['is_safe' => ['html']]), - new TwigSimpleFunction('content', [$this, 'contentFunction'], ['is_safe' => ['html']]), - new TwigSimpleFunction('component', [$this, 'componentFunction'], ['is_safe' => ['html']]), + new TwigSimpleFunction('page', [$this, 'pageFunction'], $options), + new TwigSimpleFunction('partial', [$this, 'partialFunction'], $options), + new TwigSimpleFunction('content', [$this, 'contentFunction'], $options), + new TwigSimpleFunction('component', [$this, 'componentFunction'], $options), new TwigSimpleFunction('placeholder', [$this, 'placeholderFunction'], ['is_safe' => ['html']]), ]; } /** - * Returns a list of filters this extensions provides. - * - * @return array An array of filters + * Returns an array of filters this extension provides. */ - public function getFilters() + public function getFilters(): array { + $options = [ + 'is_safe' => ['html'], + ]; + return [ - new TwigSimpleFilter('page', [$this, 'pageFilter'], ['is_safe' => ['html']]), - new TwigSimpleFilter('theme', [$this, 'themeFilter'], ['is_safe' => ['html']]), + new TwigSimpleFilter('page', [$this, 'pageFilter'], $options), + new TwigSimpleFilter('theme', [$this, 'themeFilter'], $options), ]; } /** - * Returns a list of token parsers this extensions provides. - * - * @return array An array of token parsers + * Returns an array of token parsers this extension provides. */ - public function getTokenParsers() + public function getTokenParsers(): array { return [ new PageTokenParser, @@ -82,64 +91,49 @@ public function getTokenParsers() } /** - * Renders a page. - * This function should be used in the layout code to output the requested page. - * @return string Returns the page contents. + * Renders a page; used in the layout code to output the requested page. */ - public function pageFunction() + public function pageFunction(): string { return $this->controller->renderPage(); } /** - * Renders a partial. - * @param string $name Specifies the partial name. - * @param array $parameters A optional list of parameters to pass to the partial. - * @param bool $throwException Throw an exception if the partial is not found. - * @return string Returns the partial contents. + * Renders the requested partial with the provided parameters. Optionally throw an exception if the partial cannot be found */ - public function partialFunction($name, $parameters = [], $throwException = false) + public function partialFunction(string $name, array $parameters = [], bool $throwException = false): string { return $this->controller->renderPartial($name, $parameters, $throwException); } /** - * Renders a content file. - * @param string $name Specifies the content block name. - * @param array $parameters A optional list of parameters to pass to the content. - * @return string Returns the file contents. + * Renders the requested content file. */ - public function contentFunction($name, $parameters = []) + public function contentFunction(string $name, array $parameters = []): string { return $this->controller->renderContent($name, $parameters); } /** - * Renders a component's default content. - * @param string $name Specifies the component name. - * @param array $parameters A optional list of parameters to pass to the component. - * @return string Returns the component default contents. + * Renders a component's default partial. */ - public function componentFunction($name, $parameters = []) + public function componentFunction(string $name, array $parameters = []): string { return $this->controller->renderComponent($name, $parameters); } /** - * Renders registered assets of a given type - * @return string Returns the component default contents. + * Renders registered assets of a given type or all types if $type not provided */ - public function assetsFunction($type = null) + public function assetsFunction(string $type = null): ?string { return $this->controller->makeAssets($type); } /** - * Renders a placeholder content, without removing the block, - * must be called before the placeholder tag itself - * @return string Returns the placeholder contents. + * Renders placeholder content, without removing the block, must be called before the placeholder tag itself */ - public function placeholderFunction($name, $default = null) + public function placeholderFunction(string $name, string $default = null): ?string { if (($result = Block::get($name)) === null) { return null; @@ -150,14 +144,13 @@ public function placeholderFunction($name, $default = null) } /** - * Looks up the URL for a supplied page and returns it relative to the website root. + * Returns the relative URL for the provided page + * * @param mixed $name Specifies the Cms Page file name. - * @param array $parameters Route parameters to consider in the URL. - * @param bool $routePersistence By default the existing routing parameters will be included - * when creating the URL, set to false to disable this feature. - * @return string + * @param array|bool $parameters Route parameters to consider in the URL. If boolean will be used as the value for $routePersistence + * @param bool $routePersistence Set to false to exclude the existing routing parameters from the generated URL */ - public function pageFilter($name, $parameters = [], $routePersistence = true) + public function pageFilter($name, $parameters = [], $routePersistence = true): ?string { return $this->controller->pageUrl($name, $parameters, $routePersistence); } @@ -165,30 +158,26 @@ public function pageFilter($name, $parameters = [], $routePersistence = true) /** * Converts supplied URL to a theme URL relative to the website root. If the URL provided is an * array then the files will be combined. - * @param mixed $url Specifies the theme-relative URL - * @return string + * + * @param mixed $url Specifies the input to be turned into a URL (arrays will be passed to the AssetCombiner) */ - public function themeFilter($url) + public function themeFilter($url): string { return $this->controller->themeUrl($url); } /** * Opens a layout block. - * @param string $name Specifies the block name */ - public function startBlock($name) + public function startBlock(string $name): void { Block::startBlock($name); } /** - * Returns a layout block contents and removes the block. - * @param string $name Specifies the block name - * @param string $default The default placeholder contents. - * @return mixed Returns the block contents string or null of the block doesn't exist + * Returns a layout block contents (or null if it doesn't exist) and removes the block. */ - public function displayBlock($name, $default = null) + public function displayBlock(string $name, string $default = null): ?string { if (($result = Block::placeholder($name)) === null) { return $default; @@ -218,7 +207,7 @@ public function displayBlock($name, $default = null) /** * Closes a layout block. */ - public function endBlock($append = true) + public function endBlock($append = true): void { Block::endBlock($append); } diff --git a/modules/cms/twig/Loader.php b/modules/cms/twig/Loader.php index 87f13b9fc6..ca20215d26 100644 --- a/modules/cms/twig/Loader.php +++ b/modules/cms/twig/Loader.php @@ -39,11 +39,8 @@ public function setObject(CmsObject $obj) /** * Returns the Twig content string. * This step is cached internally by Twig. - * - * @param string $name The template name - * @return TwigSource */ - public function getSourceContext($name) + public function getSourceContext(string $name): TwigSource { if (!$this->validateCmsObject($name)) { return parent::getSourceContext($name); @@ -70,11 +67,8 @@ public function getSourceContext($name) /** * Returns the Twig cache key. - * - * @param string $name The template name - * @return string */ - public function getCacheKey($name) + public function getCacheKey(string $name): string { if (!$this->validateCmsObject($name)) { return parent::getCacheKey($name); @@ -90,7 +84,7 @@ public function getCacheKey($name) * @param mixed $time The time to check against the template * @return bool */ - public function isFresh($name, $time) + public function isFresh(string $name, int $time): bool { if (!$this->validateCmsObject($name)) { return parent::isFresh($name, $time); @@ -101,11 +95,8 @@ public function isFresh($name, $time) /** * Returns the file name of the loaded template. - * - * @param string $name The template name - * @return string */ - public function getFilename($name) + public function getFilename(string $name): string { if (!$this->validateCmsObject($name)) { return parent::getFilename($name); @@ -116,11 +107,8 @@ public function getFilename($name) /** * Checks that the template exists. - * - * @param string $name The template name - * @return bool */ - public function exists($name) + public function exists(string $name): bool { if (!$this->validateCmsObject($name)) { return parent::exists($name); @@ -132,11 +120,8 @@ public function exists($name) /** * Internal method that checks if the template name matches * the loaded object, with fallback support to partials. - * - * @param string $name The template name to validate - * @return bool */ - protected function validateCmsObject($name) + protected function validateCmsObject(string $name): bool { if ($this->obj && $name === $this->obj->getFilePath()) { return true; diff --git a/modules/cms/widgets/assetlist/assets/css/assetlist.css b/modules/cms/widgets/assetlist/assets/css/assetlist.css index c748bb323f..f55e6878b0 100644 --- a/modules/cms/widgets/assetlist/assets/css/assetlist.css +++ b/modules/cms/widgets/assetlist/assets/css/assetlist.css @@ -1,244 +1,63 @@ -.control-assetlist p.no-data { - padding: 22px; - margin: 0; - color: #666666; - font-size: 14px; - text-align: center; - font-weight: 400; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} +.control-assetlist p.no-data{padding:22px;margin:0;color:#666;font-size:14px;text-align:center;font-weight:400;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} .control-assetlist p.parent, -.control-assetlist ul li { - font-weight: 300; - line-height: 150%; - margin-bottom: 0; -} +.control-assetlist ul li{font-weight:300;line-height:150%;margin-bottom:0} .control-assetlist p.parent.active a, -.control-assetlist ul li.active a { - background: #dddddd; - position: relative; -} +.control-assetlist ul li.active a{background:#ddd;position:relative} .control-assetlist p.parent.active a:after, -.control-assetlist ul li.active a:after { - position: absolute; - height: 100%; - width: 4px; - left: 0; - top: 0; - background: #e67e22; - display: block; - content: ' '; -} +.control-assetlist ul li.active a:after{position:absolute;height:100%;width:4px;left:0;top:0;background:#e67e22;display:block;content:' '} .control-assetlist p.parent a.link, -.control-assetlist ul li a.link { - display: block; - position: relative; - word-wrap: break-word; - padding: 10px 50px 10px 20px; - outline: none; - font-weight: 400; - color: #405261; - font-size: 14px; -} +.control-assetlist ul li a.link{display:block;position:relative;word-wrap:break-word;padding:10px 50px 10px 20px;outline:none;font-weight:400;color:#405261;font-size:14px} .control-assetlist p.parent a.link:hover, .control-assetlist ul li a.link:hover, .control-assetlist p.parent a.link:focus, .control-assetlist ul li a.link:focus, .control-assetlist p.parent a.link:active, -.control-assetlist ul li a.link:active { - text-decoration: none; -} +.control-assetlist ul li a.link:active{text-decoration:none} .control-assetlist p.parent a.link span, -.control-assetlist ul li a.link span { - display: block; -} +.control-assetlist ul li a.link span{display:block} .control-assetlist p.parent a.link span.description, -.control-assetlist ul li a.link span.description { - color: #8f8f8f; - font-size: 12px; - font-weight: 400; - word-wrap: break-word; -} +.control-assetlist ul li a.link span.description{color:#8f8f8f;font-size:12px;font-weight:400;word-wrap:break-word} .control-assetlist p.parent a.link span.description strong, -.control-assetlist ul li a.link span.description strong { - color: #405261; - font-weight: 400; -} +.control-assetlist ul li a.link span.description strong{color:#405261;font-weight:400} .control-assetlist p.parent.directory a.link, .control-assetlist ul li.directory a.link, .control-assetlist p.parent.parent a.link, -.control-assetlist ul li.parent a.link { - padding-left: 40px; -} +.control-assetlist ul li.parent a.link{padding-left:40px} .control-assetlist p.parent.directory a.link:after, .control-assetlist ul li.directory a.link:after, .control-assetlist p.parent.parent a.link:after, -.control-assetlist ul li.parent a.link:after { - display: block; - position: absolute; - width: 10px; - height: 10px; - top: 10px; - left: 20px; - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - text-decoration: inherit; - -webkit-font-smoothing: antialiased; - content: "\f07b"; - color: #a1aab1; - font-size: 14px; -} +.control-assetlist ul li.parent a.link:after{display:block;position:absolute;width:10px;height:10px;top:10px;left:20px;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f07b";color:#a1aab1;font-size:14px} .control-assetlist p.parent.parent a.link, -.control-assetlist ul li.parent a.link { - padding-left: 41px; - background-color: #ffffff; - word-wrap: break-word; -} +.control-assetlist ul li.parent a.link{padding-left:41px;background-color:#fff;word-wrap:break-word} .control-assetlist p.parent.parent a.link:before, -.control-assetlist ul li.parent a.link:before { - content: ''; - display: block; - position: absolute; - left: 0; - top: 0; - width: 100%; - height: 1px; - background: #ecf0f1; -} +.control-assetlist ul li.parent a.link:before{content:'';display:block;position:absolute;left:0;top:0;width:100%;height:1px;background:#ecf0f1} .control-assetlist p.parent.parent a.link:after, -.control-assetlist ul li.parent a.link:after { - font-size: 13px; - color: #34495e; - width: 18px; - height: 18px; - top: 11px; - left: 22px; - opacity: 0.5; - filter: alpha(opacity=50); - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - text-decoration: inherit; - -webkit-font-smoothing: antialiased; - content: "\f053"; -} -.control-assetlist p.parent a.link:hover { - background: #dddddd !important; -} -.control-assetlist p.parent a.link:hover:after { - opacity: 1; - filter: alpha(opacity=100); -} -.control-assetlist p.parent a.link:hover:before { - display: none; -} -.control-assetlist ul { - padding: 0; - margin: 0; -} -.control-assetlist ul li { - font-weight: 300; - line-height: 150%; - position: relative; - list-style: none; -} +.control-assetlist ul li.parent a.link:after{font-size:13px;color:#34495e;width:18px;height:18px;top:11px;left:22px;opacity:0.5;filter:alpha(opacity=50);font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;content:"\f053"} +.control-assetlist p.parent a.link:hover{background:#ddd !important} +.control-assetlist p.parent a.link:hover:after{opacity:1;filter:alpha(opacity=100)} +.control-assetlist p.parent a.link:hover:before{display:none} +.control-assetlist ul{padding:0;margin:0} +.control-assetlist ul li{font-weight:300;line-height:150%;position:relative;list-style:none} .control-assetlist ul li.active a.link, -.control-assetlist ul li a.link:hover { - background: #dddddd; -} -.control-assetlist ul li.active a.link { - position: relative; -} -.control-assetlist ul li.active a.link:after { - position: absolute; - height: 100%; - width: 4px; - left: 0; - top: 0; - background: #e67e22; - display: block; - content: ' '; -} -.control-assetlist ul li div.controls { - position: absolute; - right: 45px; - top: 10px; -} -.control-assetlist ul li div.controls .dropdown { - width: 14px; - height: 21px; -} -.control-assetlist ul li div.controls .dropdown.open a.control { - display: block!important; -} -.control-assetlist ul li div.controls .dropdown.open a.control:before { - visibility: visible; - display: block; -} -.control-assetlist ul li div.controls a.control { - color: #405261; - font-size: 14px; - visibility: hidden; - overflow: hidden; - width: 14px; - height: 21px; - display: none; - text-decoration: none; - cursor: pointer; - opacity: 0.5; - filter: alpha(opacity=50); -} -.control-assetlist ul li div.controls a.control:before { - visibility: visible; - display: block; - margin-right: 0; -} -.control-assetlist ul li div.controls a.control:hover { - opacity: 1; - filter: alpha(opacity=100); -} -.control-assetlist ul li:hover { - background: #dddddd; -} +.control-assetlist ul li a.link:hover{background:#ddd} +.control-assetlist ul li.active a.link{position:relative} +.control-assetlist ul li.active a.link:after{position:absolute;height:100%;width:4px;left:0;top:0;background:#e67e22;display:block;content:' '} +.control-assetlist ul li div.controls{position:absolute;right:45px;top:10px} +.control-assetlist ul li div.controls .dropdown{width:14px;height:21px} +.control-assetlist ul li div.controls .dropdown.open a.control{display:block !important} +.control-assetlist ul li div.controls .dropdown.open a.control:before{visibility:visible;display:block} +.control-assetlist ul li div.controls a.control{color:#405261;font-size:14px;visibility:hidden;overflow:hidden;width:14px;height:21px;display:none;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)} +.control-assetlist ul li div.controls a.control:before{visibility:visible;display:block;margin-right:0} +.control-assetlist ul li div.controls a.control:hover{opacity:1;filter:alpha(opacity=100)} +.control-assetlist ul li:hover{background:#ddd} .control-assetlist ul li:hover div.controls, -.control-assetlist ul li:hover a.control { - display: block!important; -} -.control-assetlist ul li:hover div.controls > a.control, -.control-assetlist ul li:hover a.control > a.control { - display: block!important; -} -.control-assetlist ul li .checkbox { - position: absolute; - top: -5px; - right: -5px; -} -.control-assetlist ul li .checkbox label { - margin-right: 0; -} -.control-assetlist ul li .checkbox label:before { - border-color: #cccccc; -} -.control-assetlist div.list-container { - position: relative; - -webkit-transform: translate(0, 0); - -ms-transform: translate(0, 0); - transform: translate(0, 0); -} -.control-assetlist div.list-container.animate ul { - -webkit-transition: all 0.2s ease; - transition: all 0.2s ease; -} -.control-assetlist div.list-container.goForward ul { - -webkit-transform: translate(-350px, 0); - -ms-transform: translate(-350px, 0); - transform: translate(-350px, 0); -} -.control-assetlist div.list-container.goBackward ul { - -webkit-transform: translate(350px, 0); - -ms-transform: translate(350px, 0); - transform: translate(350px, 0); -} +.control-assetlist ul li:hover a.control{display:block !important} +.control-assetlist ul li:hover div.controls>a.control, +.control-assetlist ul li:hover a.control>a.control{display:block !important} +.control-assetlist ul li .checkbox{position:absolute;top:-5px;right:-5px} +.control-assetlist ul li .checkbox label{margin-right:0} +.control-assetlist ul li .checkbox label:before{border-color:#ccc} +.control-assetlist div.list-container{position:relative;-webkit-transform:translate(0,0);-ms-transform:translate(0,0);transform:translate(0,0)} +.control-assetlist div.list-container.animate ul{-webkit-transition:all 0.2s ease;transition:all 0.2s ease} +.control-assetlist div.list-container.goForward ul{-webkit-transform:translate(-350px,0);-ms-transform:translate(-350px,0);transform:translate(-350px,0)} +.control-assetlist div.list-container.goBackward ul{-webkit-transform:translate(350px,0);-ms-transform:translate(350px,0);transform:translate(350px,0)} \ No newline at end of file diff --git a/modules/cms/widgets/assetlist/partials/_body.htm b/modules/cms/widgets/assetlist/partials/_body.php similarity index 100% rename from modules/cms/widgets/assetlist/partials/_body.htm rename to modules/cms/widgets/assetlist/partials/_body.php diff --git a/modules/cms/widgets/assetlist/partials/_files.htm b/modules/cms/widgets/assetlist/partials/_files.php similarity index 100% rename from modules/cms/widgets/assetlist/partials/_files.htm rename to modules/cms/widgets/assetlist/partials/_files.php diff --git a/modules/cms/widgets/assetlist/partials/_items.htm b/modules/cms/widgets/assetlist/partials/_items.php similarity index 81% rename from modules/cms/widgets/assetlist/partials/_items.htm rename to modules/cms/widgets/assetlist/partials/_items.php index 88f272a0bc..8beb6bb49a 100644 --- a/modules/cms/widgets/assetlist/partials/_items.htm +++ b/modules/cms/widgets/assetlist/partials/_items.php @@ -1,8 +1,8 @@ isSearchMode(); +$searchMode = $this->isSearchMode(); - if (($upPath = $this->getUpPath()) !== null && !$searchMode): -?> +if (($upPath = $this->getUpPath()) !== null && !$searchMode): + ?>

getCurrentRelativePath() ?>

@@ -12,8 +12,16 @@
    theme->getDirName().'-'.ltrim($item->path, '/'); - ?> -
  • editable): ?>data-editable data-item-path="path, '/')) ?>" data-item-theme="theme->getDirName()) ?>" data-item-type="asset" data-id=""> + ?> +
  • editable): ?> + data-editable + + data-item-path="path, '/')) ?>" + data-item-theme="theme->getDirName()) ?>" + data-item-type="asset" data-id="" + > name) ?> diff --git a/modules/cms/widgets/assetlist/partials/_move_form.htm b/modules/cms/widgets/assetlist/partials/_move_form.php similarity index 95% rename from modules/cms/widgets/assetlist/partials/_move_form.htm rename to modules/cms/widgets/assetlist/partials/_move_form.php index f5c64007c3..1e42eb1df3 100644 --- a/modules/cms/widgets/assetlist/partials/_move_form.htm +++ b/modules/cms/widgets/assetlist/partials/_move_form.php @@ -16,7 +16,7 @@ name="dest" data-placeholder=""> - $directory):?> + $directory): ?> diff --git a/modules/cms/widgets/assetlist/partials/_new_dir_form.htm b/modules/cms/widgets/assetlist/partials/_new_dir_form.php similarity index 100% rename from modules/cms/widgets/assetlist/partials/_new_dir_form.htm rename to modules/cms/widgets/assetlist/partials/_new_dir_form.php diff --git a/modules/cms/widgets/assetlist/partials/_rename_form.htm b/modules/cms/widgets/assetlist/partials/_rename_form.php similarity index 100% rename from modules/cms/widgets/assetlist/partials/_rename_form.htm rename to modules/cms/widgets/assetlist/partials/_rename_form.php diff --git a/modules/cms/widgets/assetlist/partials/_toolbar.htm b/modules/cms/widgets/assetlist/partials/_toolbar.php similarity index 100% rename from modules/cms/widgets/assetlist/partials/_toolbar.htm rename to modules/cms/widgets/assetlist/partials/_toolbar.php diff --git a/modules/cms/widgets/componentlist/partials/_body.htm b/modules/cms/widgets/componentlist/partials/_body.php similarity index 100% rename from modules/cms/widgets/componentlist/partials/_body.htm rename to modules/cms/widgets/componentlist/partials/_body.php diff --git a/modules/cms/widgets/componentlist/partials/_component_list.htm b/modules/cms/widgets/componentlist/partials/_component_list.php similarity index 100% rename from modules/cms/widgets/componentlist/partials/_component_list.htm rename to modules/cms/widgets/componentlist/partials/_component_list.php diff --git a/modules/cms/widgets/componentlist/partials/_components.htm b/modules/cms/widgets/componentlist/partials/_components.php similarity index 100% rename from modules/cms/widgets/componentlist/partials/_components.htm rename to modules/cms/widgets/componentlist/partials/_components.php diff --git a/modules/cms/widgets/componentlist/partials/_items.htm b/modules/cms/widgets/componentlist/partials/_items.php similarity index 100% rename from modules/cms/widgets/componentlist/partials/_items.htm rename to modules/cms/widgets/componentlist/partials/_items.php diff --git a/modules/cms/widgets/componentlist/partials/_toolbar.htm b/modules/cms/widgets/componentlist/partials/_toolbar.php similarity index 100% rename from modules/cms/widgets/componentlist/partials/_toolbar.htm rename to modules/cms/widgets/componentlist/partials/_toolbar.php diff --git a/modules/cms/widgets/templatelist/partials/_body.htm b/modules/cms/widgets/templatelist/partials/_body.php similarity index 100% rename from modules/cms/widgets/templatelist/partials/_body.htm rename to modules/cms/widgets/templatelist/partials/_body.php diff --git a/modules/cms/widgets/templatelist/partials/_items.htm b/modules/cms/widgets/templatelist/partials/_items.php similarity index 98% rename from modules/cms/widgets/templatelist/partials/_items.htm rename to modules/cms/widgets/templatelist/partials/_items.php index 60f5d90a62..c5f2eee3df 100644 --- a/modules/cms/widgets/templatelist/partials/_items.htm +++ b/modules/cms/widgets/templatelist/partials/_items.php @@ -9,9 +9,9 @@

    title) ?>

  • - itemType.'-'.$this->theme->getDirName().'-'.$item->fileName; - ?> + ?>
  • title) ?> - \ No newline at end of file + diff --git a/modules/cms/widgets/templatelist/partials/_sorting-options.htm b/modules/cms/widgets/templatelist/partials/_sorting-options.php similarity index 55% rename from modules/cms/widgets/templatelist/partials/_sorting-options.htm rename to modules/cms/widgets/templatelist/partials/_sorting-options.php index 4aacc07375..284212a6d2 100644 --- a/modules/cms/widgets/templatelist/partials/_sorting-options.htm +++ b/modules/cms/widgets/templatelist/partials/_sorting-options.php @@ -1,5 +1,10 @@ -sortingProperties as $propertyName=>$propertyTitle): ?> -
  • getSortingProperty() == $propertyName): ?>class="active"> +sortingProperties as $propertyName => $propertyTitle): ?> +
  • getSortingProperty() == $propertyName): ?> + class="active" + + > diff --git a/modules/cms/widgets/templatelist/partials/_templates.htm b/modules/cms/widgets/templatelist/partials/_templates.php similarity index 100% rename from modules/cms/widgets/templatelist/partials/_templates.htm rename to modules/cms/widgets/templatelist/partials/_templates.php diff --git a/modules/cms/widgets/templatelist/partials/_toolbar.htm b/modules/cms/widgets/templatelist/partials/_toolbar.php similarity index 100% rename from modules/cms/widgets/templatelist/partials/_toolbar.htm rename to modules/cms/widgets/templatelist/partials/_toolbar.php diff --git a/modules/system/.eslintignore b/modules/system/.eslintignore index 74d302af37..b6b27f1dfc 100644 --- a/modules/system/.eslintignore +++ b/modules/system/.eslintignore @@ -9,3 +9,6 @@ assets/js !assets/js/snowboard assets/ui assets/vendor + +# Ignore test fixtures +tests/js diff --git a/modules/system/ServiceProvider.php b/modules/system/ServiceProvider.php index c341369c89..5eb7d52dcb 100644 --- a/modules/system/ServiceProvider.php +++ b/modules/system/ServiceProvider.php @@ -12,8 +12,6 @@ use BackendAuth; use SystemException; use Backend\Models\UserRole; -use Twig\Extension\SandboxExtension; -use Twig\Environment as TwigEnvironment; use System\Classes\MailManager; use System\Classes\ErrorHandler; use System\Classes\MarkupManager; @@ -21,9 +19,6 @@ use System\Classes\SettingsManager; use System\Classes\UpdateManager; use System\Twig\Engine as TwigEngine; -use System\Twig\Loader as TwigLoader; -use System\Twig\Extension as TwigExtension; -use System\Twig\SecurityPolicy as TwigSecurityPolicy; use System\Models\EventLog; use System\Models\MailSetting; use System\Classes\CombineAssets; @@ -43,8 +38,6 @@ class ServiceProvider extends ModuleServiceProvider */ public function register() { - parent::register('system'); - $this->registerSingletons(); $this->registerPrivilegedActions(); @@ -90,9 +83,6 @@ public function register() */ public function boot() { - // Fix UTF8MB4 support for MariaDB < 10.2 and MySQL < 5.7 - $this->applyDatabaseDefaultStringLength(); - // Fix use of Storage::url() for local disks that haven't been configured correctly foreach (Config::get('filesystems.disks') as $key => $config) { if ($config['driver'] === 'local' && ends_with($config['root'], '/storage/app') && empty($config['url'])) { @@ -252,6 +242,13 @@ protected function registerConsole() /* * Register console commands */ + $this->registerConsoleCommand('create.command', \System\Console\CreateCommand::class); + $this->registerConsoleCommand('create.job', \System\Console\CreateJob::class); + $this->registerConsoleCommand('create.migration', \System\Console\CreateMigration::class); + $this->registerConsoleCommand('create.model', \System\Console\CreateModel::class); + $this->registerConsoleCommand('create.plugin', \System\Console\CreatePlugin::class); + $this->registerConsoleCommand('create.settings', \System\Console\CreateSettings::class); + $this->registerConsoleCommand('winter.up', \System\Console\WinterUp::class); $this->registerConsoleCommand('winter.down', \System\Console\WinterDown::class); $this->registerConsoleCommand('winter.update', \System\Console\WinterUpdate::class); @@ -260,7 +257,6 @@ protected function registerConsole() $this->registerConsoleCommand('winter.fresh', \System\Console\WinterFresh::class); $this->registerConsoleCommand('winter.env', \System\Console\WinterEnv::class); $this->registerConsoleCommand('winter.install', \System\Console\WinterInstall::class); - $this->registerConsoleCommand('winter.passwd', \System\Console\WinterPasswd::class); $this->registerConsoleCommand('winter.version', \System\Console\WinterVersion::class); $this->registerConsoleCommand('winter.manifest', \System\Console\WinterManifest::class); $this->registerConsoleCommand('winter.test', \System\Console\WinterTest::class); @@ -273,12 +269,6 @@ protected function registerConsole() $this->registerConsoleCommand('plugin.rollback', \System\Console\PluginRollback::class); $this->registerConsoleCommand('plugin.list', \System\Console\PluginList::class); - $this->registerConsoleCommand('theme.install', \System\Console\ThemeInstall::class); - $this->registerConsoleCommand('theme.remove', \System\Console\ThemeRemove::class); - $this->registerConsoleCommand('theme.list', \System\Console\ThemeList::class); - $this->registerConsoleCommand('theme.use', \System\Console\ThemeUse::class); - $this->registerConsoleCommand('theme.sync', \System\Console\ThemeSync::class); - $this->registerConsoleCommand('mix.install', \System\Console\MixInstall::class); $this->registerConsoleCommand('mix.update', \System\Console\MixUpdate::class); $this->registerConsoleCommand('mix.list', \System\Console\MixList::class); @@ -310,23 +300,23 @@ protected function registerLogging() } /* - * Register text twig parser + * Register Twig Environments and other Twig modifications provided by the module */ protected function registerTwigParser() { - /* - * Register system Twig environment - */ + // Register System Twig environment App::singleton('twig.environment', function ($app) { - $twig = new TwigEnvironment(new TwigLoader, ['auto_reload' => true]); - $twig->addExtension(new TwigExtension); - $twig->addExtension(new SandboxExtension(new TwigSecurityPolicy, true)); + return MarkupManager::makeBaseTwigEnvironment(); + }); + + // Register Mailer Twig environment + App::singleton('twig.environment.mailer', function ($app) { + $twig = MarkupManager::makeBaseTwigEnvironment(); + $twig->addTokenParser(new \System\Twig\MailPartialTokenParser); return $twig; }); - /* - * Register .htm extension for Twig views - */ + // Register .htm extension for Twig views App::make('view')->addExtension('htm', 'twig', function () { return new TwigEngine(App::make('twig.environment')); }); @@ -401,7 +391,7 @@ protected function registerBackendNavigation() BackendMenu::registerContextSidenavPartial( 'Winter.System', 'system', - '~/modules/system/partials/_system_sidebar.htm' + '~/modules/system/partials/_system_sidebar.php' ); /* @@ -564,6 +554,7 @@ protected function registerAssetBundles() $combiner->registerBundle('~/modules/system/assets/less/styles.less'); $combiner->registerBundle('~/modules/system/assets/ui/storm.less'); $combiner->registerBundle('~/modules/system/assets/ui/storm.js'); + $combiner->registerBundle('~/modules/system/assets/ui/icons.less'); $combiner->registerBundle('~/modules/system/assets/js/framework.js'); $combiner->registerBundle('~/modules/system/assets/js/framework.combined.js'); $combiner->registerBundle('~/modules/system/assets/less/framework.extras.less'); @@ -617,24 +608,4 @@ protected function registerGlobalViewVars() { View::share('appName', Config::get('app.name')); } - - /** - * Fix UTF8MB4 support for old versions of MariaDB (<10.2) and MySQL (<5.7) - */ - protected function applyDatabaseDefaultStringLength() - { - if (Db::getDriverName() !== 'mysql') { - return; - } - - $defaultStrLen = Db::getConfig('varcharmax'); - - if ($defaultStrLen === null && Db::getConfig('charset') === 'utf8mb4') { - $defaultStrLen = 191; - } - - if ($defaultStrLen !== null) { - Schema::defaultStringLength((int) $defaultStrLen); - } - } } diff --git a/modules/system/aliases.php b/modules/system/aliases.php index 4499b4fe76..3a644a3339 100644 --- a/modules/system/aliases.php +++ b/modules/system/aliases.php @@ -5,36 +5,52 @@ /* * Laravel aliases */ - 'App' => Illuminate\Support\Facades\App::class, - 'Artisan' => Illuminate\Support\Facades\Artisan::class, - 'Bus' => Illuminate\Support\Facades\Bus::class, - 'Cache' => Illuminate\Support\Facades\Cache::class, - 'Cookie' => Illuminate\Support\Facades\Cookie::class, - 'Crypt' => Illuminate\Support\Facades\Crypt::class, - 'Db' => Illuminate\Support\Facades\DB::class, // Preferred - 'DB' => Illuminate\Support\Facades\DB::class, - 'Eloquent' => Illuminate\Database\Eloquent\Model::class, - 'Event' => Illuminate\Support\Facades\Event::class, - 'Hash' => Illuminate\Support\Facades\Hash::class, - 'Lang' => Illuminate\Support\Facades\Lang::class, - 'Log' => Illuminate\Support\Facades\Log::class, - 'Queue' => Illuminate\Support\Facades\Queue::class, - 'Redirect' => Illuminate\Support\Facades\Redirect::class, - 'Redis' => Illuminate\Support\Facades\Redis::class, - 'Request' => Illuminate\Support\Facades\Request::class, - 'Response' => Illuminate\Support\Facades\Response::class, - 'Route' => Illuminate\Support\Facades\Route::class, - 'Session' => Illuminate\Support\Facades\Session::class, - 'Storage' => Illuminate\Support\Facades\Storage::class, - 'Url' => Illuminate\Support\Facades\URL::class, // Preferred - 'URL' => Illuminate\Support\Facades\URL::class, - 'View' => Illuminate\Support\Facades\View::class, + 'App' => Illuminate\Support\Facades\App::class, + // 'Arr' => Illuminate\Support\Arr::class, // Replaced by Winter + 'Artisan' => Illuminate\Support\Facades\Artisan::class, + // 'Auth' => Illuminate\Support\Facades\Auth::class, // Only BackendAuth provided by default + // 'Blade' => Illuminate\Support\Facades\Blade::class, // Not encouraged + 'Broadcast' => Illuminate\Support\Facades\Broadcast::class, + 'Bus' => Illuminate\Support\Facades\Bus::class, + 'Cache' => Illuminate\Support\Facades\Cache::class, + // 'Config' => Illuminate\Support\Facades\Config::class, // Replaced by Winter + 'Cookie' => Illuminate\Support\Facades\Cookie::class, + 'Crypt' => Illuminate\Support\Facades\Crypt::class, + 'Date' => Illuminate\Support\Facades\Date::class, + 'DB' => Illuminate\Support\Facades\DB::class, + 'Eloquent' => Illuminate\Database\Eloquent\Model::class, + 'Event' => Illuminate\Support\Facades\Event::class, + // 'File' => Illuminate\Support\Facades\File::class, // Replaced by Winter + // 'Gate' => Illuminate\Support\Facades\Gate::class, // Currently unsupported in Winter + 'Hash' => Illuminate\Support\Facades\Hash::class, + 'Http' => Illuminate\Support\Facades\Http::class, + // 'Js' => Illuminate\Support\Js::class, // Currently unsupported in Winter + 'Lang' => Illuminate\Support\Facades\Lang::class, + 'Log' => Illuminate\Support\Facades\Log::class, + // 'Mail' => Illuminate\Support\Facades\Mail::class, // Replaced by Winter + 'Notification' => Illuminate\Support\Facades\Notification::class, + // 'Password' => Illuminate\Support\Facades\Password::class, // Currently unsupported in Winter + 'Queue' => Illuminate\Support\Facades\Queue::class, + 'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class, + 'Redirect' => Illuminate\Support\Facades\Redirect::class, + // 'Redis' => Illuminate\Support\Facades\Redis::class, // Conflicts with default redis driver, see https://github.com/laravel/laravel/commit/612d16600419265566d01a19c852ddb13b5e9f4b + 'Request' => Illuminate\Support\Facades\Request::class, + 'Response' => Illuminate\Support\Facades\Response::class, + 'Route' => Illuminate\Support\Facades\Route::class, + // 'Schema' => Illuminate\Support\Facades\Schema::class, // Replaced by Winter + 'Session' => Illuminate\Support\Facades\Session::class, + 'Storage' => Illuminate\Support\Facades\Storage::class, + // 'Str' => Illuminate\Support\Str::class, // Replaced by Winter + 'URL' => Illuminate\Support\Facades\URL::class, + // 'Validator' => Illuminate\Support\Facades\Validator::class, // Replaced by Winter + 'View' => Illuminate\Support\Facades\View::class, /* * Winter aliases */ 'AjaxException' => Winter\Storm\Exception\AjaxException::class, 'ApplicationException' => Winter\Storm\Exception\ApplicationException::class, + 'Arr' => Winter\Storm\Support\Arr::class, 'BackendAuth' => Backend\Facades\BackendAuth::class, 'Backend' => Backend\Facades\Backend::class, 'BackendMenu' => Backend\Facades\BackendMenu::class, @@ -54,7 +70,7 @@ 'Model' => Winter\Storm\Database\Model::class, 'Schema' => Winter\Storm\Support\Facades\Schema::class, 'Seeder' => Winter\Storm\Database\Updates\Seeder::class, - 'Str' => Winter\Storm\Support\Facades\Str::class, + 'Str' => Winter\Storm\Support\Str::class, 'SystemException' => Winter\Storm\Exception\SystemException::class, 'Twig' => Winter\Storm\Support\Facades\Twig::class, 'ValidationException' => Winter\Storm\Exception\ValidationException::class, @@ -62,11 +78,37 @@ 'Yaml' => Winter\Storm\Support\Facades\Yaml::class, /* - * Fallback aliases + * Backwards compatibility aliases */ + 'Db' => Illuminate\Support\Facades\DB::class, + 'Url' => Illuminate\Support\Facades\URL::class, + 'TestCase' => System\Tests\Bootstrap\TestCase::class, + 'PluginTestCase' => System\Tests\Bootstrap\PluginTestCase::class, + // Input facade was removed in Laravel 6 - we are keeping it in the Storm library for backwards compatibility. 'Illuminate\Support\Facades\Input' => Winter\Storm\Support\Facades\Input::class, // Illuminate's HtmlDumper was "dumped" in Laravel 6 - we'll route this to Symfony's HtmlDumper as Laravel have done. 'Illuminate\Support\Debug\HtmlDumper' => Symfony\Component\VarDumper\Dumper\HtmlDumper::class, + + // Scaffolds were moved from the Storm library into their corresponding modules. + 'Winter\Storm\Scaffold\Console\CreateCommand' => System\Console\CreateCommand::class, + 'Winter\Storm\Scaffold\Console\CreateModel' => System\Console\CreateModel::class, + 'Winter\Storm\Scaffold\Console\CreatePlugin' => System\Console\CreatePlugin::class, + 'Winter\Storm\Scaffold\Console\CreateSettings' => System\Console\CreateSettings::class, + 'Winter\Storm\Scaffold\Console\CreateController' => Backend\Console\CreateController::class, + 'Winter\Storm\Scaffold\Console\CreateFormWidget' => Backend\Console\CreateFormWidget::class, + 'Winter\Storm\Scaffold\Console\CreateReportWidget' => Backend\Console\CreateReportWidget::class, + 'Winter\Storm\Scaffold\Console\CreateTheme' => Cms\Console\CreateTheme::class, + 'Winter\Storm\Scaffold\Console\CreateComponent' => Cms\Console\CreateComponent::class, + + 'October\Rain\Scaffold\Console\CreateCommand' => System\Console\CreateCommand::class, + 'October\Rain\Scaffold\Console\CreateModel' => System\Console\CreateModel::class, + 'October\Rain\Scaffold\Console\CreatePlugin' => System\Console\CreatePlugin::class, + 'October\Rain\Scaffold\Console\CreateSettings' => System\Console\CreateSettings::class, + 'October\Rain\Scaffold\Console\CreateController' => Backend\Console\CreateController::class, + 'October\Rain\Scaffold\Console\CreateFormWidget' => Backend\Console\CreateFormWidget::class, + 'October\Rain\Scaffold\Console\CreateReportWidget' => Backend\Console\CreateReportWidget::class, + 'October\Rain\Scaffold\Console\CreateTheme' => Cms\Console\CreateTheme::class, + 'October\Rain\Scaffold\Console\CreateComponent' => Cms\Console\CreateComponent::class, ]; diff --git a/modules/system/assets/css/framework.extras.css b/modules/system/assets/css/framework.extras.css index 986c1e16f6..69ca11a87f 100644 --- a/modules/system/assets/css/framework.extras.css +++ b/modules/system/assets/css/framework.extras.css @@ -1,52 +1,52 @@ body.wn-loading, body.wn-loading *, body.oc-loading, -body.oc-loading * {cursor:wait !important} -.stripe-loading-indicator {height:5px;background:transparent;position:fixed;top:0;left:0;width:100%;overflow:hidden;z-index:2000} +body.oc-loading *{cursor:wait !important} +.stripe-loading-indicator{height:5px;background:transparent;position:fixed;top:0;left:0;width:100%;overflow:hidden;z-index:2000} .stripe-loading-indicator .stripe, -.stripe-loading-indicator .stripe-loaded {height:5px;display:block;background:#0090c0;position:absolute;-webkit-box-shadow:inset 0 1px 1px -1px #FFF,inset 0 -1px 1px -1px #FFF;box-shadow:inset 0 1px 1px -1px #FFF,inset 0 -1px 1px -1px #FFF} -.stripe-loading-indicator .stripe {width:100%;-webkit-animation:wn-infinite-loader 60s linear;animation:wn-infinite-loader 60s linear} -.stripe-loading-indicator .stripe-loaded {width:100%;transform:translate3d(-100%,0,0);opacity:0;filter:alpha(opacity=0)} -.stripe-loading-indicator.loaded {opacity:0;filter:alpha(opacity=0);-webkit-transition:opacity 0.4s linear;transition:opacity 0.4s linear;-webkit-transition-delay:0.3s;transition-delay:0.3s} -.stripe-loading-indicator.loaded .stripe {animation-play-state:paused} -.stripe-loading-indicator.loaded .stripe-loaded {opacity:1;filter:alpha(opacity=100);transform:translate3d(0,0,0);-webkit-transition:transform 0.3s linear;transition:transform 0.3s linear} -.stripe-loading-indicator.hide {display:none} -body >p.flash-message {position:fixed;width:500px;left:50%;top:13px;margin-left:-250px;color:#fff;font-size:14px;padding:10px 30px 10px 15px;z-index:10300;word-wrap:break-word;text-shadow:0 -1px 0 rgba(0,0,0,0.15);text-align:center;-webkit-box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} -body >p.flash-message.fade {opacity:0;filter:alpha(opacity=0);-webkit-transition:all 0.5s,width 0s;transition:all 0.5s,width 0s;-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)} -body >p.flash-message.fade.in {opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)} -body >p.flash-message.success {background:#8da85e} -body >p.flash-message.error {background:#c30} -body >p.flash-message.warning {background:#f0ad4e} -body >p.flash-message.info {background:#5fb6f5} -body >p.flash-message button.close {float:none;position:absolute;right:10px;top:8px;color:white;font-size:21px;line-height:1;font-weight:bold;opacity:0.2;filter:alpha(opacity=20);padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;outline:none} -body >p.flash-message button.close:hover, -body >p.flash-message button.close:focus {color:white;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)} -@media (max-width:768px) {body >p.flash-message {left:10px;right:10px;top:10px;margin-left:0;width:auto }} +.stripe-loading-indicator .stripe-loaded{height:5px;display:block;background:#0090c0;position:absolute;-webkit-box-shadow:inset 0 1px 1px -1px #FFF,inset 0 -1px 1px -1px #FFF;box-shadow:inset 0 1px 1px -1px #FFF,inset 0 -1px 1px -1px #FFF} +.stripe-loading-indicator .stripe{width:100%;-webkit-animation:wn-infinite-loader 60s linear;animation:wn-infinite-loader 60s linear} +.stripe-loading-indicator .stripe-loaded{width:100%;transform:translate3d(-100%,0,0);opacity:0;filter:alpha(opacity=0)} +.stripe-loading-indicator.loaded{opacity:0;filter:alpha(opacity=0);-webkit-transition:opacity 0.4s linear;transition:opacity 0.4s linear;-webkit-transition-delay:0.3s;transition-delay:0.3s} +.stripe-loading-indicator.loaded .stripe{animation-play-state:paused} +.stripe-loading-indicator.loaded .stripe-loaded{opacity:1;filter:alpha(opacity=100);transform:translate3d(0,0,0);-webkit-transition:transform 0.3s linear;transition:transform 0.3s linear} +.stripe-loading-indicator.hide{display:none} +body>p.flash-message{position:fixed;width:500px;left:50%;top:13px;margin-left:-250px;color:#fff;font-size:14px;padding:10px 30px 10px 15px;z-index:10300;word-wrap:break-word;text-shadow:0 -1px 0 rgba(0,0,0,0.15);text-align:center;-webkit-box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);box-shadow:0 1px 6px rgba(0,0,0,0.12),0 1px 4px rgba(0,0,0,0.24);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px} +body>p.flash-message.fade{opacity:0;filter:alpha(opacity=0);-webkit-transition:all 0.5s,width 0s;transition:all 0.5s,width 0s;-webkit-transform:scale(0.9);-ms-transform:scale(0.9);transform:scale(0.9)} +body>p.flash-message.fade.in{opacity:1;filter:alpha(opacity=100);-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)} +body>p.flash-message.success{background:#8da85e} +body>p.flash-message.error{background:#c30} +body>p.flash-message.warning{background:#f0ad4e} +body>p.flash-message.info{background:#5fb6f5} +body>p.flash-message button.close{float:none;position:absolute;right:10px;top:8px;color:white;font-size:21px;line-height:1;font-weight:bold;opacity:0.2;filter:alpha(opacity=20);padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;outline:none} +body>p.flash-message button.close:hover, +body>p.flash-message button.close:focus{color:white;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)} +@media (max-width:768px){body>p.flash-message{left:10px;right:10px;top:10px;margin-left:0;width:auto}} [data-request][data-request-validate] [data-validate-for]:not(.visible), -[data-request][data-request-validate] [data-validate-error]:not(.visible) {display:none} +[data-request][data-request-validate] [data-validate-error]:not(.visible){display:none} a.wn-loading:after, button.wn-loading:after, span.wn-loading:after, a.oc-loading:after, button.oc-loading:after, -span.oc-loading:after {content:'';display:inline-block;vertical-align:middle;margin-left:.4em;height:1em;width:1em;animation:wn-rotate-loader 0.8s infinite linear;border:.2em solid currentColor;border-right-color:transparent;border-radius:50%;opacity:0.5;filter:alpha(opacity=50)} -@-moz-keyframes wn-rotate-loader {0% {-moz-transform:rotate(0deg) }100% {-moz-transform:rotate(360deg) }} -@-webkit-keyframes wn-rotate-loader {0% {-webkit-transform:rotate(0deg) }100% {-webkit-transform:rotate(360deg) }} -@-o-keyframes wn-rotate-loader {0% {-o-transform:rotate(0deg) }100% {-o-transform:rotate(360deg) }} -@-ms-keyframes wn-rotate-loader {0% {-ms-transform:rotate(0deg) }100% {-ms-transform:rotate(360deg) }} -@keyframes wn-rotate-loader {0% {transform:rotate(0deg) }100% {transform:rotate(360deg) }} -@-moz-keyframes oc-rotate-loader {0% {-moz-transform:rotate(0deg) }100% {-moz-transform:rotate(360deg) }} -@-webkit-keyframes oc-rotate-loader {0% {-webkit-transform:rotate(0deg) }100% {-webkit-transform:rotate(360deg) }} -@-o-keyframes oc-rotate-loader {0% {-o-transform:rotate(0deg) }100% {-o-transform:rotate(360deg) }} -@-ms-keyframes oc-rotate-loader {0% {-ms-transform:rotate(0deg) }100% {-ms-transform:rotate(360deg) }} -@keyframes oc-rotate-loader {0% {transform:rotate(0deg) }100% {transform:rotate(360deg) }} -@-moz-keyframes wn-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-webkit-keyframes wn-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-o-keyframes wn-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-ms-keyframes wn-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@keyframes wn-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-moz-keyframes oc-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-webkit-keyframes oc-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-o-keyframes oc-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@-ms-keyframes oc-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} -@keyframes oc-infinite-loader {0% {transform:translateX(-100%) }10% {transform:translateX(-50%) }20% {transform:translateX(-25%) }30% {transform:translateX(-12.5%) }40% {transform:translateX(-6.25%) }50% {transform:translateX(-3.125%) }60% {transform:translateX(-1.5625%) }70% {transform:translateX(-0.78125%) }80% {transform:translateX(-0.390625%) }90% {transform:translateX(-0.1953125%) }100% {transform:translateX(-0.09765625%) }} \ No newline at end of file +span.oc-loading:after{content:'';display:inline-block;vertical-align:middle;margin-left:.4em;height:1em;width:1em;animation:wn-rotate-loader 0.8s infinite linear;border:.2em solid currentColor;border-right-color:transparent;border-radius:50%;opacity:0.5;filter:alpha(opacity=50)} +@-moz-keyframes wn-rotate-loader{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(360deg)}} +@-webkit-keyframes wn-rotate-loader{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}} +@-o-keyframes wn-rotate-loader{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(360deg)}} +@-ms-keyframes wn-rotate-loader{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(360deg)}} +@keyframes wn-rotate-loader{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}} +@-moz-keyframes oc-rotate-loader{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(360deg)}} +@-webkit-keyframes oc-rotate-loader{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}} +@-o-keyframes oc-rotate-loader{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(360deg)}} +@-ms-keyframes oc-rotate-loader{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(360deg)}} +@keyframes oc-rotate-loader{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}} +@-moz-keyframes wn-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-webkit-keyframes wn-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-o-keyframes wn-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-ms-keyframes wn-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@keyframes wn-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-moz-keyframes oc-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-webkit-keyframes oc-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-o-keyframes oc-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@-ms-keyframes oc-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} +@keyframes oc-infinite-loader{0%{transform:translateX(-100%)}10%{transform:translateX(-50%)}20%{transform:translateX(-25%)}30%{transform:translateX(-12.5%)}40%{transform:translateX(-6.25%)}50%{transform:translateX(-3.125%)}60%{transform:translateX(-1.5625%)}70%{transform:translateX(-0.78125%)}80%{transform:translateX(-0.390625%)}90%{transform:translateX(-0.1953125%)}100%{transform:translateX(-0.09765625%)}} \ No newline at end of file diff --git a/modules/system/assets/css/styles.css b/modules/system/assets/css/styles.css index 564b9a9131..7f492f19c0 100644 --- a/modules/system/assets/css/styles.css +++ b/modules/system/assets/css/styles.css @@ -1,5 +1,6 @@ -html {font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} -body {margin:0} +/*! normalize.css v3.0.0 | MIT License | git.io/normalize */ +html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} +body{margin:0} article, aside, details, @@ -11,164 +12,164 @@ hgroup, main, nav, section, -summary {display:block} +summary{display:block} audio, canvas, progress, -video {display:inline-block;vertical-align:baseline} -audio:not([controls]) {display:none;height:0} +video{display:inline-block;vertical-align:baseline} +audio:not([controls]){display:none;height:0} [hidden], -template {display:none} -a {background:transparent} +template{display:none} +a{background:transparent} a:active, -a:hover {outline:0} -abbr[title] {border-bottom:1px dotted} +a:hover{outline:0} +abbr[title]{border-bottom:1px dotted} b, -strong {font-weight:bold} -dfn {font-style:italic} -h1 {font-size:2em;margin:0.67em 0} -mark {background:#ff0;color:#000} -small {font-size:80%} +strong{font-weight:bold} +dfn{font-style:italic} +h1{font-size:2em;margin:0.67em 0} +mark{background:#ff0;color:#000} +small{font-size:80%} sub, -sup {font-size:75%;line-height:0;position:relative;vertical-align:baseline} -sup {top:-0.5em} -sub {bottom:-0.25em} -img {border:0} -svg:not(:root) {overflow:hidden} -figure {margin:1em 40px} -hr {-moz-box-sizing:content-box;box-sizing:content-box;height:0} -pre {overflow:auto} +sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline} +sup{top:-0.5em} +sub{bottom:-0.25em} +img{border:0} +svg:not(:root){overflow:hidden} +figure{margin:1em 40px} +hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0} +pre{overflow:auto} code, kbd, pre, -samp {font-family:monospace,monospace;font-size:1em} +samp{font-family:monospace,monospace;font-size:1em} button, input, optgroup, select, -textarea {color:inherit;font:inherit;margin:0} -button {overflow:visible} +textarea{color:inherit;font:inherit;margin:0} +button{overflow:visible} button, -select {text-transform:none} +select{text-transform:none} button, html input[type="button"], input[type="reset"], -input[type="submit"] {-webkit-appearance:button;cursor:pointer} +input[type="submit"]{-webkit-appearance:button;cursor:pointer} button[disabled], -html input[disabled] {cursor:default} +html input[disabled]{cursor:default} button::-moz-focus-inner, -input::-moz-focus-inner {border:0;padding:0} -input {line-height:normal} +input::-moz-focus-inner{border:0;padding:0} +input{line-height:normal} input[type="checkbox"], -input[type="radio"] {box-sizing:border-box;padding:0} +input[type="radio"]{box-sizing:border-box;padding:0} input[type="number"]::-webkit-inner-spin-button, -input[type="number"]::-webkit-outer-spin-button {height:auto} -input[type="number"]:focus::-webkit-input-placeholder {margin-right:20px} -input[type="number"]:focus::-moz-placeholder {margin-right:20px} -input[type="number"]:focus:-ms-input-placeholder {margin-right:20px} -input[type="number"]:focus::placeholder {margin-right:20px} -input[type="number"]:hover::-webkit-input-placeholder {margin-right:20px} -input[type="number"]:hover::-moz-placeholder {margin-right:20px} -input[type="number"]:hover:-ms-input-placeholder {margin-right:20px} -input[type="number"]:hover::placeholder {margin-right:20px} -input[type="search"] {-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} +input[type="number"]::-webkit-outer-spin-button{height:auto} +input[type="number"]:focus::-webkit-input-placeholder{margin-right:20px} +input[type="number"]:focus::-moz-placeholder{margin-right:20px} +input[type="number"]:focus:-ms-input-placeholder{margin-right:20px} +input[type="number"]:focus::placeholder{margin-right:20px} +input[type="number"]:hover::-webkit-input-placeholder{margin-right:20px} +input[type="number"]:hover::-moz-placeholder{margin-right:20px} +input[type="number"]:hover:-ms-input-placeholder{margin-right:20px} +input[type="number"]:hover::placeholder{margin-right:20px} +input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box} input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration {-webkit-appearance:none} -fieldset {border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em} -legend {border:0;padding:0} -textarea {overflow:auto} -optgroup {font-weight:bold} -table {border-collapse:collapse;border-spacing:0;table-layout:auto} +input[type="search"]::-webkit-search-decoration{-webkit-appearance:none} +fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em} +legend{border:0;padding:0} +textarea{overflow:auto} +optgroup{font-weight:bold} +table{border-collapse:collapse;border-spacing:0;table-layout:auto} td, -th {padding:0} +th{padding:0} *, *:before, -*:after {-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} -html {font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)} -body {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;line-height:1.42857143;color:#333;background-color:#f9f9f9} +*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box} +html{font-size:62.5%;-webkit-tap-highlight-color:rgba(0,0,0,0)} +body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:14px;line-height:1.42857143;color:#333;background-color:#f9f9f9} input, button, select, -textarea {font-family:inherit;font-size:inherit;line-height:inherit} +textarea{font-family:inherit;font-size:inherit;line-height:inherit} button, input, select[multiple], -textarea {background-image:none} -a {color:#0181b9;text-decoration:none} +textarea{background-image:none} +a{color:#0181b9;text-decoration:none} a:hover, -a:focus {color:#001721;text-decoration:underline} -a:focus {outline:thin dotted;outline-offset:0;outline:4px auto Highlight;outline:4px auto -webkit-focus-ring-color} -img {vertical-align:middle} -.img-responsive {display:block;max-width:100%;height:auto} -.img-rounded {-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px} -.img-circle {border-radius:50%} -hr {margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} -.sr-only {position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0} -@media print {* {text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important }a,a:visited {text-decoration:underline }a[href]:after {content:" (" attr(href) ")" }abbr[title]:after {content:" (" attr(title) ")" }a[href^="javascript:"]:after,a[href^="#"]:after {content:"" }pre,blockquote {border:1px solid #999;page-break-inside:avoid }thead {display:table-header-group }tr,img {page-break-inside:avoid }img {max-width:100% !important }p,h2,h3 {orphans:3;widows:3 }h2,h3 {page-break-after:avoid }select {background:#fff !important }.navbar {display:none }.table td,.table th {background-color:#fff !important }.btn >.caret,.dropup >.btn >.caret {border-top-color:#000 !important }.label {border:1px solid #000 }.table {border-collapse:collapse !important }.table-bordered th,.table-bordered td {border:1px solid #ddd !important }} -.container {margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px} -@media (min-width:768px) {.container {width:750px }} -@media (min-width:992px) {.container {width:970px }} -@media (min-width:1200px) {.container {width:1170px }} -.container-fluid {margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px} -.row {margin-left:-15px;margin-right:-15px} -.row-flush {margin-left:0;margin-right:0} -.row-flush [class*="col-"] {padding-left:0 !important;padding-right:0 !important} -.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12 {position:relative;min-height:1px;padding-left:15px;padding-right:15px} -.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12 {float:left} -.col-xs-12 {width:100%} -.col-xs-11 {width:91.66666667%} -.col-xs-10 {width:83.33333333%} -.col-xs-9 {width:75%} -.col-xs-8 {width:66.66666667%} -.col-xs-7 {width:58.33333333%} -.col-xs-6 {width:50%} -.col-xs-5 {width:41.66666667%} -.col-xs-4 {width:33.33333333%} -.col-xs-3 {width:25%} -.col-xs-2 {width:16.66666667%} -.col-xs-1 {width:8.33333333%} -.col-xs-pull-12 {right:100%} -.col-xs-pull-11 {right:91.66666667%} -.col-xs-pull-10 {right:83.33333333%} -.col-xs-pull-9 {right:75%} -.col-xs-pull-8 {right:66.66666667%} -.col-xs-pull-7 {right:58.33333333%} -.col-xs-pull-6 {right:50%} -.col-xs-pull-5 {right:41.66666667%} -.col-xs-pull-4 {right:33.33333333%} -.col-xs-pull-3 {right:25%} -.col-xs-pull-2 {right:16.66666667%} -.col-xs-pull-1 {right:8.33333333%} -.col-xs-pull-0 {right:0%} -.col-xs-push-12 {left:100%} -.col-xs-push-11 {left:91.66666667%} -.col-xs-push-10 {left:83.33333333%} -.col-xs-push-9 {left:75%} -.col-xs-push-8 {left:66.66666667%} -.col-xs-push-7 {left:58.33333333%} -.col-xs-push-6 {left:50%} -.col-xs-push-5 {left:41.66666667%} -.col-xs-push-4 {left:33.33333333%} -.col-xs-push-3 {left:25%} -.col-xs-push-2 {left:16.66666667%} -.col-xs-push-1 {left:8.33333333%} -.col-xs-push-0 {left:0%} -.col-xs-offset-12 {margin-left:100%} -.col-xs-offset-11 {margin-left:91.66666667%} -.col-xs-offset-10 {margin-left:83.33333333%} -.col-xs-offset-9 {margin-left:75%} -.col-xs-offset-8 {margin-left:66.66666667%} -.col-xs-offset-7 {margin-left:58.33333333%} -.col-xs-offset-6 {margin-left:50%} -.col-xs-offset-5 {margin-left:41.66666667%} -.col-xs-offset-4 {margin-left:33.33333333%} -.col-xs-offset-3 {margin-left:25%} -.col-xs-offset-2 {margin-left:16.66666667%} -.col-xs-offset-1 {margin-left:8.33333333%} -.col-xs-offset-0 {margin-left:0%} -@media (min-width:768px) {.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12 {float:left }.col-sm-12 {width:100% }.col-sm-11 {width:91.66666667% }.col-sm-10 {width:83.33333333% }.col-sm-9 {width:75% }.col-sm-8 {width:66.66666667% }.col-sm-7 {width:58.33333333% }.col-sm-6 {width:50% }.col-sm-5 {width:41.66666667% }.col-sm-4 {width:33.33333333% }.col-sm-3 {width:25% }.col-sm-2 {width:16.66666667% }.col-sm-1 {width:8.33333333% }.col-sm-pull-12 {right:100% }.col-sm-pull-11 {right:91.66666667% }.col-sm-pull-10 {right:83.33333333% }.col-sm-pull-9 {right:75% }.col-sm-pull-8 {right:66.66666667% }.col-sm-pull-7 {right:58.33333333% }.col-sm-pull-6 {right:50% }.col-sm-pull-5 {right:41.66666667% }.col-sm-pull-4 {right:33.33333333% }.col-sm-pull-3 {right:25% }.col-sm-pull-2 {right:16.66666667% }.col-sm-pull-1 {right:8.33333333% }.col-sm-pull-0 {right:0% }.col-sm-push-12 {left:100% }.col-sm-push-11 {left:91.66666667% }.col-sm-push-10 {left:83.33333333% }.col-sm-push-9 {left:75% }.col-sm-push-8 {left:66.66666667% }.col-sm-push-7 {left:58.33333333% }.col-sm-push-6 {left:50% }.col-sm-push-5 {left:41.66666667% }.col-sm-push-4 {left:33.33333333% }.col-sm-push-3 {left:25% }.col-sm-push-2 {left:16.66666667% }.col-sm-push-1 {left:8.33333333% }.col-sm-push-0 {left:0% }.col-sm-offset-12 {margin-left:100% }.col-sm-offset-11 {margin-left:91.66666667% }.col-sm-offset-10 {margin-left:83.33333333% }.col-sm-offset-9 {margin-left:75% }.col-sm-offset-8 {margin-left:66.66666667% }.col-sm-offset-7 {margin-left:58.33333333% }.col-sm-offset-6 {margin-left:50% }.col-sm-offset-5 {margin-left:41.66666667% }.col-sm-offset-4 {margin-left:33.33333333% }.col-sm-offset-3 {margin-left:25% }.col-sm-offset-2 {margin-left:16.66666667% }.col-sm-offset-1 {margin-left:8.33333333% }.col-sm-offset-0 {margin-left:0% }} -@media (min-width:992px) {.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12 {float:left }.col-md-12 {width:100% }.col-md-11 {width:91.66666667% }.col-md-10 {width:83.33333333% }.col-md-9 {width:75% }.col-md-8 {width:66.66666667% }.col-md-7 {width:58.33333333% }.col-md-6 {width:50% }.col-md-5 {width:41.66666667% }.col-md-4 {width:33.33333333% }.col-md-3 {width:25% }.col-md-2 {width:16.66666667% }.col-md-1 {width:8.33333333% }.col-md-pull-12 {right:100% }.col-md-pull-11 {right:91.66666667% }.col-md-pull-10 {right:83.33333333% }.col-md-pull-9 {right:75% }.col-md-pull-8 {right:66.66666667% }.col-md-pull-7 {right:58.33333333% }.col-md-pull-6 {right:50% }.col-md-pull-5 {right:41.66666667% }.col-md-pull-4 {right:33.33333333% }.col-md-pull-3 {right:25% }.col-md-pull-2 {right:16.66666667% }.col-md-pull-1 {right:8.33333333% }.col-md-pull-0 {right:0% }.col-md-push-12 {left:100% }.col-md-push-11 {left:91.66666667% }.col-md-push-10 {left:83.33333333% }.col-md-push-9 {left:75% }.col-md-push-8 {left:66.66666667% }.col-md-push-7 {left:58.33333333% }.col-md-push-6 {left:50% }.col-md-push-5 {left:41.66666667% }.col-md-push-4 {left:33.33333333% }.col-md-push-3 {left:25% }.col-md-push-2 {left:16.66666667% }.col-md-push-1 {left:8.33333333% }.col-md-push-0 {left:0% }.col-md-offset-12 {margin-left:100% }.col-md-offset-11 {margin-left:91.66666667% }.col-md-offset-10 {margin-left:83.33333333% }.col-md-offset-9 {margin-left:75% }.col-md-offset-8 {margin-left:66.66666667% }.col-md-offset-7 {margin-left:58.33333333% }.col-md-offset-6 {margin-left:50% }.col-md-offset-5 {margin-left:41.66666667% }.col-md-offset-4 {margin-left:33.33333333% }.col-md-offset-3 {margin-left:25% }.col-md-offset-2 {margin-left:16.66666667% }.col-md-offset-1 {margin-left:8.33333333% }.col-md-offset-0 {margin-left:0% }} -@media (min-width:1200px) {.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12 {float:left }.col-lg-12 {width:100% }.col-lg-11 {width:91.66666667% }.col-lg-10 {width:83.33333333% }.col-lg-9 {width:75% }.col-lg-8 {width:66.66666667% }.col-lg-7 {width:58.33333333% }.col-lg-6 {width:50% }.col-lg-5 {width:41.66666667% }.col-lg-4 {width:33.33333333% }.col-lg-3 {width:25% }.col-lg-2 {width:16.66666667% }.col-lg-1 {width:8.33333333% }.col-lg-pull-12 {right:100% }.col-lg-pull-11 {right:91.66666667% }.col-lg-pull-10 {right:83.33333333% }.col-lg-pull-9 {right:75% }.col-lg-pull-8 {right:66.66666667% }.col-lg-pull-7 {right:58.33333333% }.col-lg-pull-6 {right:50% }.col-lg-pull-5 {right:41.66666667% }.col-lg-pull-4 {right:33.33333333% }.col-lg-pull-3 {right:25% }.col-lg-pull-2 {right:16.66666667% }.col-lg-pull-1 {right:8.33333333% }.col-lg-pull-0 {right:0% }.col-lg-push-12 {left:100% }.col-lg-push-11 {left:91.66666667% }.col-lg-push-10 {left:83.33333333% }.col-lg-push-9 {left:75% }.col-lg-push-8 {left:66.66666667% }.col-lg-push-7 {left:58.33333333% }.col-lg-push-6 {left:50% }.col-lg-push-5 {left:41.66666667% }.col-lg-push-4 {left:33.33333333% }.col-lg-push-3 {left:25% }.col-lg-push-2 {left:16.66666667% }.col-lg-push-1 {left:8.33333333% }.col-lg-push-0 {left:0% }.col-lg-offset-12 {margin-left:100% }.col-lg-offset-11 {margin-left:91.66666667% }.col-lg-offset-10 {margin-left:83.33333333% }.col-lg-offset-9 {margin-left:75% }.col-lg-offset-8 {margin-left:66.66666667% }.col-lg-offset-7 {margin-left:58.33333333% }.col-lg-offset-6 {margin-left:50% }.col-lg-offset-5 {margin-left:41.66666667% }.col-lg-offset-4 {margin-left:33.33333333% }.col-lg-offset-3 {margin-left:25% }.col-lg-offset-2 {margin-left:16.66666667% }.col-lg-offset-1 {margin-left:8.33333333% }.col-lg-offset-0 {margin-left:0% }} +a:focus{color:#001721;text-decoration:underline} +a:focus{outline:thin dotted;outline-offset:0;outline:4px auto Highlight;outline:4px auto -webkit-focus-ring-color} +img{vertical-align:middle} +.img-responsive{display:block;max-width:100%;height:auto} +.img-rounded{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px} +.img-circle{border-radius:50%} +hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} +.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);border:0} +@media print{*{text-shadow:none !important;color:#000 !important;background:transparent !important;box-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff !important}.navbar{display:none}.table td,.table th{background-color:#fff !important}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}} +.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px} +@media (min-width:768px){.container{width:750px}} +@media (min-width:992px){.container{width:970px}} +@media (min-width:1200px){.container{width:1170px}} +.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px} +.row{margin-left:-15px;margin-right:-15px} +.row-flush{margin-left:0;margin-right:0} +.row-flush [class*="col-"]{padding-left:0 !important;padding-right:0 !important} +.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px} +.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left} +.col-xs-12{width:100%} +.col-xs-11{width:91.66666667%} +.col-xs-10{width:83.33333333%} +.col-xs-9{width:75%} +.col-xs-8{width:66.66666667%} +.col-xs-7{width:58.33333333%} +.col-xs-6{width:50%} +.col-xs-5{width:41.66666667%} +.col-xs-4{width:33.33333333%} +.col-xs-3{width:25%} +.col-xs-2{width:16.66666667%} +.col-xs-1{width:8.33333333%} +.col-xs-pull-12{right:100%} +.col-xs-pull-11{right:91.66666667%} +.col-xs-pull-10{right:83.33333333%} +.col-xs-pull-9{right:75%} +.col-xs-pull-8{right:66.66666667%} +.col-xs-pull-7{right:58.33333333%} +.col-xs-pull-6{right:50%} +.col-xs-pull-5{right:41.66666667%} +.col-xs-pull-4{right:33.33333333%} +.col-xs-pull-3{right:25%} +.col-xs-pull-2{right:16.66666667%} +.col-xs-pull-1{right:8.33333333%} +.col-xs-pull-0{right:0%} +.col-xs-push-12{left:100%} +.col-xs-push-11{left:91.66666667%} +.col-xs-push-10{left:83.33333333%} +.col-xs-push-9{left:75%} +.col-xs-push-8{left:66.66666667%} +.col-xs-push-7{left:58.33333333%} +.col-xs-push-6{left:50%} +.col-xs-push-5{left:41.66666667%} +.col-xs-push-4{left:33.33333333%} +.col-xs-push-3{left:25%} +.col-xs-push-2{left:16.66666667%} +.col-xs-push-1{left:8.33333333%} +.col-xs-push-0{left:0%} +.col-xs-offset-12{margin-left:100%} +.col-xs-offset-11{margin-left:91.66666667%} +.col-xs-offset-10{margin-left:83.33333333%} +.col-xs-offset-9{margin-left:75%} +.col-xs-offset-8{margin-left:66.66666667%} +.col-xs-offset-7{margin-left:58.33333333%} +.col-xs-offset-6{margin-left:50%} +.col-xs-offset-5{margin-left:41.66666667%} +.col-xs-offset-4{margin-left:33.33333333%} +.col-xs-offset-3{margin-left:25%} +.col-xs-offset-2{margin-left:16.66666667%} +.col-xs-offset-1{margin-left:8.33333333%} +.col-xs-offset-0{margin-left:0%} +@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:0%}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:0%}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}} +@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:0%}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:0%}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}} +@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:0%}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:0%}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}} .clearfix:before, .clearfix:after, .container:before, @@ -176,36 +177,36 @@ hr {margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee} .container-fluid:before, .container-fluid:after, .row:before, -.row:after {content:" ";display:table} +.row:after{content:" ";display:table} .clearfix:after, .container:after, .container-fluid:after, -.row:after {clear:both} -.center-block {display:block;margin-left:auto;margin-right:auto} -.pull-right {float:right !important} -.pull-left {float:left !important} -.hide {display:none !important} -.show {display:block !important} -.invisible {visibility:hidden} -.text-hide {font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} -.hidden {display:none !important;visibility:hidden !important} -.affix {position:fixed} -@-ms-viewport {width:device-width} +.row:after{clear:both} +.center-block{display:block;margin-left:auto;margin-right:auto} +.pull-right{float:right !important} +.pull-left{float:left !important} +.hide{display:none !important} +.show{display:block !important} +.invisible{visibility:hidden} +.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0} +.hidden{display:none !important;visibility:hidden !important} +.affix{position:fixed} +@-ms-viewport{width:device-width} .visible-xs, .visible-sm, .visible-md, -.visible-lg {display:none !important} -@media (max-width:767px) {.visible-xs {display:block !important }table.visible-xs {display:table }tr.visible-xs {display:table-row !important }th.visible-xs,td.visible-xs {display:table-cell !important }} -@media (min-width:768px) and (max-width:991px) {.visible-sm {display:block !important }table.visible-sm {display:table }tr.visible-sm {display:table-row !important }th.visible-sm,td.visible-sm {display:table-cell !important }} -@media (min-width:992px) and (max-width:1199px) {.visible-md {display:block !important }table.visible-md {display:table }tr.visible-md {display:table-row !important }th.visible-md,td.visible-md {display:table-cell !important }} -@media (min-width:1200px) {.visible-lg {display:block !important }table.visible-lg {display:table }tr.visible-lg {display:table-row !important }th.visible-lg,td.visible-lg {display:table-cell !important }} -@media (max-width:767px) {.hidden-xs {display:none !important }} -@media (min-width:768px) and (max-width:991px) {.hidden-sm {display:none !important }} -@media (min-width:992px) and (max-width:1199px) {.hidden-md {display:none !important }} -@media (min-width:1200px) {.hidden-lg {display:none !important }} -.visible-print {display:none !important} -@media print {.visible-print {display:block !important }table.visible-print {display:table }tr.visible-print {display:table-row !important }th.visible-print,td.visible-print {display:table-cell !important }} -@media print {.hidden-print {display:none !important }} +.visible-lg{display:none !important} +@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}} +@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}} +@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}} +@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}} +@media (max-width:767px){.hidden-xs{display:none !important}} +@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}} +@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}} +@media (min-width:1200px){.hidden-lg{display:none !important}} +.visible-print{display:none !important} +@media print{.visible-print{display:block !important}table.visible-print{display:table}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}} +@media print{.hidden-print{display:none !important}} h1, h2, h3, @@ -217,7 +218,7 @@ h6, .h3, .h4, .h5, -.h6 {font-family:inherit;font-weight:400;line-height:1.1;color:inherit} +.h6{font-family:inherit;font-weight:400;line-height:1.1;color:inherit} h1 small, h2 small, h3 small, @@ -241,13 +242,13 @@ h6 .small, .h3 .small, .h4 .small, .h5 .small, -.h6 .small {font-weight:normal;line-height:1;color:#999} +.h6 .small{font-weight:normal;line-height:1;color:#999} h1, .h1, h2, .h2, h3, -.h3 {margin-top:20px;margin-bottom:10px} +.h3{margin-top:20px;margin-bottom:10px} h1 small, .h1 small, h2 small, @@ -259,13 +260,13 @@ h1 .small, h2 .small, .h2 .small, h3 .small, -.h3 .small {font-size:65%} +.h3 .small{font-size:65%} h4, .h4, h5, .h5, h6, -.h6 {margin-top:10px;margin-bottom:10px} +.h6{margin-top:10px;margin-bottom:10px} h4 small, .h4 small, h5 small, @@ -277,3316 +278,236 @@ h4 .small, h5 .small, .h5 .small, h6 .small, -.h6 .small {font-size:75%} +.h6 .small{font-size:75%} h1, -.h1 {font-size:36px} +.h1{font-size:36px} h2, -.h2 {font-size:30px} +.h2{font-size:30px} h3, -.h3 {font-size:24px} +.h3{font-size:24px} h4, -.h4 {font-size:18px} +.h4{font-size:18px} h5, -.h5 {font-size:14px} +.h5{font-size:14px} h6, -.h6 {font-size:12px} -p {margin:0 0 10px} -.lead {margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4} -@media (min-width:768px) {.lead {font-size:21px }} +.h6{font-size:12px} +p{margin:0 0 10px} +.lead{margin-bottom:20px;font-size:16px;font-weight:200;line-height:1.4} +@media (min-width:768px){.lead{font-size:21px}} small, -.small {font-size:85%} -cite {font-style:normal} -.text-left {text-align:left} -.text-right {text-align:right} -.text-center {text-align:center} -.text-justify {text-align:justify} -.text-muted {color:#999} -.text-primary {color:#34495e} -a.text-primary:hover {color:#222f3d} -.text-success {color:#3c763d} -a.text-success:hover {color:#2b542c} -.text-info {color:#31708f} -a.text-info:hover {color:#245269} -.text-warning {color:#8a6d3b} -a.text-warning:hover {color:#66512c} -.text-danger {color:#a94442} -a.text-danger:hover {color:#843534} -.bg-primary {color:#fff;background-color:#34495e} -a.bg-primary:hover {background-color:#222f3d} -.bg-success {background-color:#dff0d8} -a.bg-success:hover {background-color:#c1e2b3} -.bg-info {background-color:#d9edf7} -a.bg-info:hover {background-color:#afd9ee} -.bg-warning {background-color:#fcf8e3} -a.bg-warning:hover {background-color:#f7ecb5} -.bg-danger {background-color:#f2dede} -a.bg-danger:hover {background-color:#e4b9b9} -.page-header {padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee} +.small{font-size:85%} +cite{font-style:normal} +.text-left{text-align:left} +.text-right{text-align:right} +.text-center{text-align:center} +.text-justify{text-align:justify} +.text-muted{color:#999} +.text-primary{color:#34495e} +a.text-primary:hover{color:#222f3d} +.text-success{color:#3c763d} +a.text-success:hover{color:#2b542c} +.text-info{color:#31708f} +a.text-info:hover{color:#245269} +.text-warning{color:#8a6d3b} +a.text-warning:hover{color:#66512c} +.text-danger{color:#a94442} +a.text-danger:hover{color:#843534} +.bg-primary{color:#fff;background-color:#34495e} +a.bg-primary:hover{background-color:#222f3d} +.bg-success{background-color:#dff0d8} +a.bg-success:hover{background-color:#c1e2b3} +.bg-info{background-color:#d9edf7} +a.bg-info:hover{background-color:#afd9ee} +.bg-warning{background-color:#fcf8e3} +a.bg-warning:hover{background-color:#f7ecb5} +.bg-danger{background-color:#f2dede} +a.bg-danger:hover{background-color:#e4b9b9} +.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee} ul, -ol {margin-top:0;margin-bottom:10px} +ol{margin-top:0;margin-bottom:10px} ul ul, ol ul, ul ol, -ol ol {margin-bottom:0} -.list-unstyled {padding-left:0;list-style:none} -.list-inline {padding-left:0;list-style:none;margin-left:-5px} -.list-inline >li {display:inline-block;padding-left:5px;padding-right:5px} -dl {margin-top:0;margin-bottom:20px} +ol ol{margin-bottom:0} +.list-unstyled{padding-left:0;list-style:none} +.list-inline{padding-left:0;list-style:none;margin-left:-5px} +.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px} +dl{margin-top:0;margin-bottom:20px} dt, -dd {line-height:1.42857143} -dt {font-weight:bold} -dd {margin-left:0} -@media (min-width:768px) {.dl-horizontal dt {float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap }.dl-horizontal dd {margin-left:180px }} +dd{line-height:1.42857143} +dt{font-weight:bold} +dd{margin-left:0} +@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}} abbr[title], -abbr[data-original-title] {cursor:help;border-bottom:1px dotted #999} -.initialism {font-size:90%;text-transform:uppercase} -blockquote {padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee} +abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999} +.initialism{font-size:90%;text-transform:uppercase} +blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee} blockquote p:last-child, blockquote ul:last-child, -blockquote ol:last-child {margin-bottom:0} +blockquote ol:last-child{margin-bottom:0} blockquote footer, blockquote small, -blockquote .small {display:block;font-size:80%;line-height:1.42857143;color:#999} +blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999} blockquote footer:before, blockquote small:before, -blockquote .small:before {content:'\2014 \00A0'} +blockquote .small:before{content:'\2014 \00A0'} .blockquote-reverse, -blockquote.pull-right {padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right} +blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right} .blockquote-reverse footer:before, blockquote.pull-right footer:before, .blockquote-reverse small:before, blockquote.pull-right small:before, .blockquote-reverse .small:before, -blockquote.pull-right .small:before {content:''} +blockquote.pull-right .small:before{content:''} .blockquote-reverse footer:after, blockquote.pull-right footer:after, .blockquote-reverse small:after, blockquote.pull-right small:after, .blockquote-reverse .small:after, -blockquote.pull-right .small:after {content:'\00A0 \2014'} +blockquote.pull-right .small:after{content:'\00A0 \2014'} blockquote:before, -blockquote:after {content:""} -address {margin-bottom:20px;font-style:normal;line-height:1.42857143} -.wn-icon-glass:before, -.icon-glass:before {content:"\f000"} -.wn-icon-music:before, -.icon-music:before {content:"\f001"} -.wn-icon-search:before, -.icon-search:before {content:"\f002"} -.wn-icon-envelope-o:before, -.icon-envelope-o:before {content:"\f003"} -.wn-icon-heart:before, -.icon-heart:before {content:"\f004"} -.wn-icon-star:before, -.icon-star:before {content:"\f005"} -.wn-icon-star-o:before, -.icon-star-o:before {content:"\f006"} -.wn-icon-user:before, -.icon-user:before {content:"\f007"} -.wn-icon-film:before, -.icon-film:before {content:"\f008"} -.wn-icon-th-large:before, -.icon-th-large:before {content:"\f009"} -.wn-icon-th:before, -.icon-th:before {content:"\f00a"} -.wn-icon-th-list:before, -.icon-th-list:before {content:"\f00b"} -.wn-icon-check:before, -.icon-check:before {content:"\f00c"} -.wn-icon-remove:before, -.icon-remove:before, -.wn-icon-close:before, -.icon-close:before, -.wn-icon-times:before, -.icon-times:before {content:"\f00d"} -.wn-icon-search-plus:before, -.icon-search-plus:before {content:"\f00e"} -.wn-icon-search-minus:before, -.icon-search-minus:before {content:"\f010"} -.wn-icon-power-off:before, -.icon-power-off:before {content:"\f011"} -.wn-icon-signal:before, -.icon-signal:before {content:"\f012"} -.wn-icon-gear:before, -.icon-gear:before, -.wn-icon-cog:before, -.icon-cog:before {content:"\f013"} -.wn-icon-trash-o:before, -.icon-trash-o:before {content:"\f014"} -.wn-icon-home:before, -.icon-home:before {content:"\f015"} -.wn-icon-file-o:before, -.icon-file-o:before {content:"\f016"} -.wn-icon-clock-o:before, -.icon-clock-o:before {content:"\f017"} -.wn-icon-road:before, -.icon-road:before {content:"\f018"} -.wn-icon-download:before, -.icon-download:before {content:"\f019"} -.wn-icon-arrow-circle-o-down:before, -.icon-arrow-circle-o-down:before {content:"\f01a"} -.wn-icon-arrow-circle-o-up:before, -.icon-arrow-circle-o-up:before {content:"\f01b"} -.wn-icon-inbox:before, -.icon-inbox:before {content:"\f01c"} -.wn-icon-play-circle-o:before, -.icon-play-circle-o:before {content:"\f01d"} -.wn-icon-rotate-right:before, -.icon-rotate-right:before, -.wn-icon-repeat:before, -.icon-repeat:before {content:"\f01e"} -.wn-icon-refresh:before, -.icon-refresh:before {content:"\f021"} -.wn-icon-list-alt:before, -.icon-list-alt:before {content:"\f022"} -.wn-icon-lock:before, -.icon-lock:before {content:"\f023"} -.wn-icon-flag:before, -.icon-flag:before {content:"\f024"} -.wn-icon-headphones:before, -.icon-headphones:before {content:"\f025"} -.wn-icon-volume-off:before, -.icon-volume-off:before {content:"\f026"} -.wn-icon-volume-down:before, -.icon-volume-down:before {content:"\f027"} -.wn-icon-volume-up:before, -.icon-volume-up:before {content:"\f028"} -.wn-icon-qrcode:before, -.icon-qrcode:before {content:"\f029"} -.wn-icon-barcode:before, -.icon-barcode:before {content:"\f02a"} -.wn-icon-tag:before, -.icon-tag:before {content:"\f02b"} -.wn-icon-tags:before, -.icon-tags:before {content:"\f02c"} -.wn-icon-book:before, -.icon-book:before {content:"\f02d"} -.wn-icon-bookmark:before, -.icon-bookmark:before {content:"\f02e"} -.wn-icon-print:before, -.icon-print:before {content:"\f02f"} -.wn-icon-camera:before, -.icon-camera:before {content:"\f030"} -.wn-icon-font:before, -.icon-font:before {content:"\f031"} -.wn-icon-bold:before, -.icon-bold:before {content:"\f032"} -.wn-icon-italic:before, -.icon-italic:before {content:"\f033"} -.wn-icon-text-height:before, -.icon-text-height:before {content:"\f034"} -.wn-icon-text-width:before, -.icon-text-width:before {content:"\f035"} -.wn-icon-align-left:before, -.icon-align-left:before {content:"\f036"} -.wn-icon-align-center:before, -.icon-align-center:before {content:"\f037"} -.wn-icon-align-right:before, -.icon-align-right:before {content:"\f038"} -.wn-icon-align-justify:before, -.icon-align-justify:before {content:"\f039"} -.wn-icon-list:before, -.icon-list:before {content:"\f03a"} -.wn-icon-dedent:before, -.icon-dedent:before, -.wn-icon-outdent:before, -.icon-outdent:before {content:"\f03b"} -.wn-icon-indent:before, -.icon-indent:before {content:"\f03c"} -.wn-icon-video-camera:before, -.icon-video-camera:before {content:"\f03d"} -.wn-icon-photo:before, -.icon-photo:before, -.wn-icon-image:before, -.icon-image:before, -.wn-icon-picture-o:before, -.icon-picture-o:before {content:"\f03e"} -.wn-icon-pencil:before, -.icon-pencil:before {content:"\f040"} -.wn-icon-map-marker:before, -.icon-map-marker:before {content:"\f041"} -.wn-icon-adjust:before, -.icon-adjust:before {content:"\f042"} -.wn-icon-tint:before, -.icon-tint:before {content:"\f043"} -.wn-icon-edit:before, -.icon-edit:before, -.wn-icon-pencil-square-o:before, -.icon-pencil-square-o:before {content:"\f044"} -.wn-icon-share-square-o:before, -.icon-share-square-o:before {content:"\f045"} -.wn-icon-check-square-o:before, -.icon-check-square-o:before {content:"\f046"} -.wn-icon-arrows:before, -.icon-arrows:before {content:"\f047"} -.wn-icon-step-backward:before, -.icon-step-backward:before {content:"\f048"} -.wn-icon-fast-backward:before, -.icon-fast-backward:before {content:"\f049"} -.wn-icon-backward:before, -.icon-backward:before {content:"\f04a"} -.wn-icon-play:before, -.icon-play:before {content:"\f04b"} -.wn-icon-pause:before, -.icon-pause:before {content:"\f04c"} -.wn-icon-stop:before, -.icon-stop:before {content:"\f04d"} -.wn-icon-forward:before, -.icon-forward:before {content:"\f04e"} -.wn-icon-fast-forward:before, -.icon-fast-forward:before {content:"\f050"} -.wn-icon-step-forward:before, -.icon-step-forward:before {content:"\f051"} -.wn-icon-eject:before, -.icon-eject:before {content:"\f052"} -.wn-icon-chevron-left:before, -.icon-chevron-left:before {content:"\f053"} -.wn-icon-chevron-right:before, -.icon-chevron-right:before {content:"\f054"} -.wn-icon-plus-circle:before, -.icon-plus-circle:before {content:"\f055"} -.wn-icon-minus-circle:before, -.icon-minus-circle:before {content:"\f056"} -.wn-icon-times-circle:before, -.icon-times-circle:before {content:"\f057"} -.wn-icon-check-circle:before, -.icon-check-circle:before {content:"\f058"} -.wn-icon-question-circle:before, -.icon-question-circle:before {content:"\f059"} -.wn-icon-info-circle:before, -.icon-info-circle:before {content:"\f05a"} -.wn-icon-crosshairs:before, -.icon-crosshairs:before {content:"\f05b"} -.wn-icon-times-circle-o:before, -.icon-times-circle-o:before {content:"\f05c"} -.wn-icon-check-circle-o:before, -.icon-check-circle-o:before {content:"\f05d"} -.wn-icon-ban:before, -.icon-ban:before {content:"\f05e"} -.wn-icon-arrow-left:before, -.icon-arrow-left:before {content:"\f060"} -.wn-icon-arrow-right:before, -.icon-arrow-right:before {content:"\f061"} -.wn-icon-arrow-up:before, -.icon-arrow-up:before {content:"\f062"} -.wn-icon-arrow-down:before, -.icon-arrow-down:before {content:"\f063"} -.wn-icon-mail-forward:before, -.icon-mail-forward:before, -.wn-icon-share:before, -.icon-share:before {content:"\f064"} -.wn-icon-expand:before, -.icon-expand:before {content:"\f065"} -.wn-icon-compress:before, -.icon-compress:before {content:"\f066"} -.wn-icon-plus:before, -.icon-plus:before {content:"\f067"} -.wn-icon-minus:before, -.icon-minus:before {content:"\f068"} -.wn-icon-asterisk:before, -.icon-asterisk:before {content:"\f069"} -.wn-icon-exclamation-circle:before, -.icon-exclamation-circle:before {content:"\f06a"} -.wn-icon-gift:before, -.icon-gift:before {content:"\f06b"} -.wn-icon-leaf:before, -.icon-leaf:before {content:"\f06c"} -.wn-icon-fire:before, -.icon-fire:before {content:"\f06d"} -.wn-icon-eye:before, -.icon-eye:before {content:"\f06e"} -.wn-icon-eye-slash:before, -.icon-eye-slash:before {content:"\f070"} -.wn-icon-warning:before, -.icon-warning:before, -.wn-icon-exclamation-triangle:before, -.icon-exclamation-triangle:before {content:"\f071"} -.wn-icon-plane:before, -.icon-plane:before {content:"\f072"} -.wn-icon-calendar:before, -.icon-calendar:before {content:"\f073"} -.wn-icon-random:before, -.icon-random:before {content:"\f074"} -.wn-icon-comment:before, -.icon-comment:before {content:"\f075"} -.wn-icon-magnet:before, -.icon-magnet:before {content:"\f076"} -.wn-icon-chevron-up:before, -.icon-chevron-up:before {content:"\f077"} -.wn-icon-chevron-down:before, -.icon-chevron-down:before {content:"\f078"} -.wn-icon-retweet:before, -.icon-retweet:before {content:"\f079"} -.wn-icon-shopping-cart:before, -.icon-shopping-cart:before {content:"\f07a"} -.wn-icon-folder:before, -.icon-folder:before {content:"\f07b"} -.wn-icon-folder-open:before, -.icon-folder-open:before {content:"\f07c"} -.wn-icon-arrows-v:before, -.icon-arrows-v:before {content:"\f07d"} -.wn-icon-arrows-h:before, -.icon-arrows-h:before {content:"\f07e"} -.wn-icon-bar-chart-o:before, -.icon-bar-chart-o:before, -.wn-icon-bar-chart:before, -.icon-bar-chart:before {content:"\f080"} -.wn-icon-twitter-square:before, -.icon-twitter-square:before {content:"\f081"} -.wn-icon-facebook-square:before, -.icon-facebook-square:before {content:"\f082"} -.wn-icon-camera-retro:before, -.icon-camera-retro:before {content:"\f083"} -.wn-icon-key:before, -.icon-key:before {content:"\f084"} -.wn-icon-gears:before, -.icon-gears:before, -.wn-icon-cogs:before, -.icon-cogs:before {content:"\f085"} -.wn-icon-comments:before, -.icon-comments:before {content:"\f086"} -.wn-icon-thumbs-o-up:before, -.icon-thumbs-o-up:before {content:"\f087"} -.wn-icon-thumbs-o-down:before, -.icon-thumbs-o-down:before {content:"\f088"} -.wn-icon-star-half:before, -.icon-star-half:before {content:"\f089"} -.wn-icon-heart-o:before, -.icon-heart-o:before {content:"\f08a"} -.wn-icon-sign-out:before, -.icon-sign-out:before {content:"\f08b"} -.wn-icon-linkedin-square:before, -.icon-linkedin-square:before {content:"\f08c"} -.wn-icon-thumb-tack:before, -.icon-thumb-tack:before {content:"\f08d"} -.wn-icon-external-link:before, -.icon-external-link:before {content:"\f08e"} -.wn-icon-sign-in:before, -.icon-sign-in:before {content:"\f090"} -.wn-icon-trophy:before, -.icon-trophy:before {content:"\f091"} -.wn-icon-github-square:before, -.icon-github-square:before {content:"\f092"} -.wn-icon-upload:before, -.icon-upload:before {content:"\f093"} -.wn-icon-lemon-o:before, -.icon-lemon-o:before {content:"\f094"} -.wn-icon-phone:before, -.icon-phone:before {content:"\f095"} -.wn-icon-square-o:before, -.icon-square-o:before {content:"\f096"} -.wn-icon-bookmark-o:before, -.icon-bookmark-o:before {content:"\f097"} -.wn-icon-phone-square:before, -.icon-phone-square:before {content:"\f098"} -.wn-icon-twitter:before, -.icon-twitter:before {content:"\f099"} -.wn-icon-facebook-f:before, -.icon-facebook-f:before, -.wn-icon-facebook:before, -.icon-facebook:before {content:"\f09a"} -.wn-icon-github:before, -.icon-github:before {content:"\f09b"} -.wn-icon-unlock:before, -.icon-unlock:before {content:"\f09c"} -.wn-icon-credit-card:before, -.icon-credit-card:before {content:"\f09d"} -.wn-icon-feed:before, -.icon-feed:before, -.wn-icon-rss:before, -.icon-rss:before {content:"\f09e"} -.wn-icon-hdd-o:before, -.icon-hdd-o:before {content:"\f0a0"} -.wn-icon-bullhorn:before, -.icon-bullhorn:before {content:"\f0a1"} -.wn-icon-bell:before, -.icon-bell:before {content:"\f0f3"} -.wn-icon-certificate:before, -.icon-certificate:before {content:"\f0a3"} -.wn-icon-hand-o-right:before, -.icon-hand-o-right:before {content:"\f0a4"} -.wn-icon-hand-o-left:before, -.icon-hand-o-left:before {content:"\f0a5"} -.wn-icon-hand-o-up:before, -.icon-hand-o-up:before {content:"\f0a6"} -.wn-icon-hand-o-down:before, -.icon-hand-o-down:before {content:"\f0a7"} -.wn-icon-arrow-circle-left:before, -.icon-arrow-circle-left:before {content:"\f0a8"} -.wn-icon-arrow-circle-right:before, -.icon-arrow-circle-right:before {content:"\f0a9"} -.wn-icon-arrow-circle-up:before, -.icon-arrow-circle-up:before {content:"\f0aa"} -.wn-icon-arrow-circle-down:before, -.icon-arrow-circle-down:before {content:"\f0ab"} -.wn-icon-globe:before, -.icon-globe:before {content:"\f0ac"} -.wn-icon-wrench:before, -.icon-wrench:before {content:"\f0ad"} -.wn-icon-tasks:before, -.icon-tasks:before {content:"\f0ae"} -.wn-icon-filter:before, -.icon-filter:before {content:"\f0b0"} -.wn-icon-briefcase:before, -.icon-briefcase:before {content:"\f0b1"} -.wn-icon-arrows-alt:before, -.icon-arrows-alt:before {content:"\f0b2"} -.wn-icon-group:before, -.icon-group:before, -.wn-icon-users:before, -.icon-users:before {content:"\f0c0"} -.wn-icon-chain:before, -.icon-chain:before, -.wn-icon-link:before, -.icon-link:before {content:"\f0c1"} -.wn-icon-cloud:before, -.icon-cloud:before {content:"\f0c2"} -.wn-icon-flask:before, -.icon-flask:before {content:"\f0c3"} -.wn-icon-cut:before, -.icon-cut:before, -.wn-icon-scissors:before, -.icon-scissors:before {content:"\f0c4"} -.wn-icon-copy:before, -.icon-copy:before, -.wn-icon-files-o:before, -.icon-files-o:before {content:"\f0c5"} -.wn-icon-paperclip:before, -.icon-paperclip:before {content:"\f0c6"} -.wn-icon-save:before, -.icon-save:before, -.wn-icon-floppy-o:before, -.icon-floppy-o:before {content:"\f0c7"} -.wn-icon-square:before, -.icon-square:before {content:"\f0c8"} -.wn-icon-navicon:before, -.icon-navicon:before, -.wn-icon-reorder:before, -.icon-reorder:before, -.wn-icon-bars:before, -.icon-bars:before {content:"\f0c9"} -.wn-icon-list-ul:before, -.icon-list-ul:before {content:"\f0ca"} -.wn-icon-list-ol:before, -.icon-list-ol:before {content:"\f0cb"} -.wn-icon-strikethrough:before, -.icon-strikethrough:before {content:"\f0cc"} -.wn-icon-underline:before, -.icon-underline:before {content:"\f0cd"} -.wn-icon-table:before, -.icon-table:before {content:"\f0ce"} -.wn-icon-magic:before, -.icon-magic:before {content:"\f0d0"} -.wn-icon-truck:before, -.icon-truck:before {content:"\f0d1"} -.wn-icon-pinterest:before, -.icon-pinterest:before {content:"\f0d2"} -.wn-icon-pinterest-square:before, -.icon-pinterest-square:before {content:"\f0d3"} -.wn-icon-google-plus-square:before, -.icon-google-plus-square:before {content:"\f0d4"} -.wn-icon-google-plus:before, -.icon-google-plus:before {content:"\f0d5"} -.wn-icon-money:before, -.icon-money:before {content:"\f0d6"} -.wn-icon-caret-down:before, -.icon-caret-down:before {content:"\f0d7"} -.wn-icon-caret-up:before, -.icon-caret-up:before {content:"\f0d8"} -.wn-icon-caret-left:before, -.icon-caret-left:before {content:"\f0d9"} -.wn-icon-caret-right:before, -.icon-caret-right:before {content:"\f0da"} -.wn-icon-columns:before, -.icon-columns:before {content:"\f0db"} -.wn-icon-unsorted:before, -.icon-unsorted:before, -.wn-icon-sort:before, -.icon-sort:before {content:"\f0dc"} -.wn-icon-sort-down:before, -.icon-sort-down:before, -.wn-icon-sort-desc:before, -.icon-sort-desc:before {content:"\f0dd"} -.wn-icon-sort-up:before, -.icon-sort-up:before, -.wn-icon-sort-asc:before, -.icon-sort-asc:before {content:"\f0de"} -.wn-icon-envelope:before, -.icon-envelope:before {content:"\f0e0"} -.wn-icon-linkedin:before, -.icon-linkedin:before {content:"\f0e1"} -.wn-icon-rotate-left:before, -.icon-rotate-left:before, -.wn-icon-undo:before, -.icon-undo:before {content:"\f0e2"} -.wn-icon-legal:before, -.icon-legal:before, -.wn-icon-gavel:before, -.icon-gavel:before {content:"\f0e3"} -.wn-icon-dashboard:before, -.icon-dashboard:before, -.wn-icon-tachometer:before, -.icon-tachometer:before {content:"\f0e4"} -.wn-icon-comment-o:before, -.icon-comment-o:before {content:"\f0e5"} -.wn-icon-comments-o:before, -.icon-comments-o:before {content:"\f0e6"} -.wn-icon-flash:before, -.icon-flash:before, -.wn-icon-bolt:before, -.icon-bolt:before {content:"\f0e7"} -.wn-icon-sitemap:before, -.icon-sitemap:before {content:"\f0e8"} -.wn-icon-umbrella:before, -.icon-umbrella:before {content:"\f0e9"} -.wn-icon-paste:before, -.icon-paste:before, -.wn-icon-clipboard:before, -.icon-clipboard:before {content:"\f0ea"} -.wn-icon-lightbulb-o:before, -.icon-lightbulb-o:before {content:"\f0eb"} -.wn-icon-exchange:before, -.icon-exchange:before {content:"\f0ec"} -.wn-icon-cloud-download:before, -.icon-cloud-download:before {content:"\f0ed"} -.wn-icon-cloud-upload:before, -.icon-cloud-upload:before {content:"\f0ee"} -.wn-icon-user-md:before, -.icon-user-md:before {content:"\f0f0"} -.wn-icon-stethoscope:before, -.icon-stethoscope:before {content:"\f0f1"} -.wn-icon-suitcase:before, -.icon-suitcase:before {content:"\f0f2"} -.wn-icon-bell-o:before, -.icon-bell-o:before {content:"\f0a2"} -.wn-icon-coffee:before, -.icon-coffee:before {content:"\f0f4"} -.wn-icon-cutlery:before, -.icon-cutlery:before {content:"\f0f5"} -.wn-icon-file-text-o:before, -.icon-file-text-o:before {content:"\f0f6"} -.wn-icon-building-o:before, -.icon-building-o:before {content:"\f0f7"} -.wn-icon-hospital-o:before, -.icon-hospital-o:before {content:"\f0f8"} -.wn-icon-ambulance:before, -.icon-ambulance:before {content:"\f0f9"} -.wn-icon-medkit:before, -.icon-medkit:before {content:"\f0fa"} -.wn-icon-fighter-jet:before, -.icon-fighter-jet:before {content:"\f0fb"} -.wn-icon-beer:before, -.icon-beer:before {content:"\f0fc"} -.wn-icon-h-square:before, -.icon-h-square:before {content:"\f0fd"} -.wn-icon-plus-square:before, -.icon-plus-square:before {content:"\f0fe"} -.wn-icon-angle-double-left:before, -.icon-angle-double-left:before {content:"\f100"} -.wn-icon-angle-double-right:before, -.icon-angle-double-right:before {content:"\f101"} -.wn-icon-angle-double-up:before, -.icon-angle-double-up:before {content:"\f102"} -.wn-icon-angle-double-down:before, -.icon-angle-double-down:before {content:"\f103"} -.wn-icon-angle-left:before, -.icon-angle-left:before {content:"\f104"} -.wn-icon-angle-right:before, -.icon-angle-right:before {content:"\f105"} -.wn-icon-angle-up:before, -.icon-angle-up:before {content:"\f106"} -.wn-icon-angle-down:before, -.icon-angle-down:before {content:"\f107"} -.wn-icon-desktop:before, -.icon-desktop:before {content:"\f108"} -.wn-icon-laptop:before, -.icon-laptop:before {content:"\f109"} -.wn-icon-tablet:before, -.icon-tablet:before {content:"\f10a"} -.wn-icon-mobile-phone:before, -.icon-mobile-phone:before, -.wn-icon-mobile:before, -.icon-mobile:before {content:"\f10b"} -.wn-icon-circle-o:before, -.icon-circle-o:before {content:"\f10c"} -.wn-icon-quote-left:before, -.icon-quote-left:before {content:"\f10d"} -.wn-icon-quote-right:before, -.icon-quote-right:before {content:"\f10e"} -.wn-icon-spinner:before, -.icon-spinner:before {content:"\f110"} -.wn-icon-circle:before, -.icon-circle:before {content:"\f111"} -.wn-icon-mail-reply:before, -.icon-mail-reply:before, -.wn-icon-reply:before, -.icon-reply:before {content:"\f112"} -.wn-icon-github-alt:before, -.icon-github-alt:before {content:"\f113"} -.wn-icon-folder-o:before, -.icon-folder-o:before {content:"\f114"} -.wn-icon-folder-open-o:before, -.icon-folder-open-o:before {content:"\f115"} -.wn-icon-smile-o:before, -.icon-smile-o:before {content:"\f118"} -.wn-icon-frown-o:before, -.icon-frown-o:before {content:"\f119"} -.wn-icon-meh-o:before, -.icon-meh-o:before {content:"\f11a"} -.wn-icon-gamepad:before, -.icon-gamepad:before {content:"\f11b"} -.wn-icon-keyboard-o:before, -.icon-keyboard-o:before {content:"\f11c"} -.wn-icon-flag-o:before, -.icon-flag-o:before {content:"\f11d"} -.wn-icon-flag-checkered:before, -.icon-flag-checkered:before {content:"\f11e"} -.wn-icon-terminal:before, -.icon-terminal:before {content:"\f120"} -.wn-icon-code:before, -.icon-code:before {content:"\f121"} -.wn-icon-mail-reply-all:before, -.icon-mail-reply-all:before, -.wn-icon-reply-all:before, -.icon-reply-all:before {content:"\f122"} -.wn-icon-star-half-empty:before, -.icon-star-half-empty:before, -.wn-icon-star-half-full:before, -.icon-star-half-full:before, -.wn-icon-star-half-o:before, -.icon-star-half-o:before {content:"\f123"} -.wn-icon-location-arrow:before, -.icon-location-arrow:before {content:"\f124"} -.wn-icon-crop:before, -.icon-crop:before {content:"\f125"} -.wn-icon-code-fork:before, -.icon-code-fork:before {content:"\f126"} -.wn-icon-unlink:before, -.icon-unlink:before, -.wn-icon-chain-broken:before, -.icon-chain-broken:before {content:"\f127"} -.wn-icon-question:before, -.icon-question:before {content:"\f128"} -.wn-icon-info:before, -.icon-info:before {content:"\f129"} -.wn-icon-exclamation:before, -.icon-exclamation:before {content:"\f12a"} -.wn-icon-superscript:before, -.icon-superscript:before {content:"\f12b"} -.wn-icon-subscript:before, -.icon-subscript:before {content:"\f12c"} -.wn-icon-eraser:before, -.icon-eraser:before {content:"\f12d"} -.wn-icon-puzzle-piece:before, -.icon-puzzle-piece:before {content:"\f12e"} -.wn-icon-microphone:before, -.icon-microphone:before {content:"\f130"} -.wn-icon-microphone-slash:before, -.icon-microphone-slash:before {content:"\f131"} -.wn-icon-shield:before, -.icon-shield:before {content:"\f132"} -.wn-icon-calendar-o:before, -.icon-calendar-o:before {content:"\f133"} -.wn-icon-fire-extinguisher:before, -.icon-fire-extinguisher:before {content:"\f134"} -.wn-icon-rocket:before, -.icon-rocket:before {content:"\f135"} -.wn-icon-maxcdn:before, -.icon-maxcdn:before {content:"\f136"} -.wn-icon-chevron-circle-left:before, -.icon-chevron-circle-left:before {content:"\f137"} -.wn-icon-chevron-circle-right:before, -.icon-chevron-circle-right:before {content:"\f138"} -.wn-icon-chevron-circle-up:before, -.icon-chevron-circle-up:before {content:"\f139"} -.wn-icon-chevron-circle-down:before, -.icon-chevron-circle-down:before {content:"\f13a"} -.wn-icon-html5:before, -.icon-html5:before {content:"\f13b"} -.wn-icon-css3:before, -.icon-css3:before {content:"\f13c"} -.wn-icon-anchor:before, -.icon-anchor:before {content:"\f13d"} -.wn-icon-unlock-alt:before, -.icon-unlock-alt:before {content:"\f13e"} -.wn-icon-bullseye:before, -.icon-bullseye:before {content:"\f140"} -.wn-icon-ellipsis-h:before, -.icon-ellipsis-h:before {content:"\f141"} -.wn-icon-ellipsis-v:before, -.icon-ellipsis-v:before {content:"\f142"} -.wn-icon-rss-square:before, -.icon-rss-square:before {content:"\f143"} -.wn-icon-play-circle:before, -.icon-play-circle:before {content:"\f144"} -.wn-icon-ticket:before, -.icon-ticket:before {content:"\f145"} -.wn-icon-minus-square:before, -.icon-minus-square:before {content:"\f146"} -.wn-icon-minus-square-o:before, -.icon-minus-square-o:before {content:"\f147"} -.wn-icon-level-up:before, -.icon-level-up:before {content:"\f148"} -.wn-icon-level-down:before, -.icon-level-down:before {content:"\f149"} -.wn-icon-check-square:before, -.icon-check-square:before {content:"\f14a"} -.wn-icon-pencil-square:before, -.icon-pencil-square:before {content:"\f14b"} -.wn-icon-external-link-square:before, -.icon-external-link-square:before {content:"\f14c"} -.wn-icon-share-square:before, -.icon-share-square:before {content:"\f14d"} -.wn-icon-compass:before, -.icon-compass:before {content:"\f14e"} -.wn-icon-toggle-down:before, -.icon-toggle-down:before, -.wn-icon-caret-square-o-down:before, -.icon-caret-square-o-down:before {content:"\f150"} -.wn-icon-toggle-up:before, -.icon-toggle-up:before, -.wn-icon-caret-square-o-up:before, -.icon-caret-square-o-up:before {content:"\f151"} -.wn-icon-toggle-right:before, -.icon-toggle-right:before, -.wn-icon-caret-square-o-right:before, -.icon-caret-square-o-right:before {content:"\f152"} -.wn-icon-euro:before, -.icon-euro:before, -.wn-icon-eur:before, -.icon-eur:before {content:"\f153"} -.wn-icon-gbp:before, -.icon-gbp:before {content:"\f154"} -.wn-icon-dollar:before, -.icon-dollar:before, -.wn-icon-usd:before, -.icon-usd:before {content:"\f155"} -.wn-icon-rupee:before, -.icon-rupee:before, -.wn-icon-inr:before, -.icon-inr:before {content:"\f156"} -.wn-icon-cny:before, -.icon-cny:before, -.wn-icon-rmb:before, -.icon-rmb:before, -.wn-icon-yen:before, -.icon-yen:before, -.wn-icon-jpy:before, -.icon-jpy:before {content:"\f157"} -.wn-icon-ruble:before, -.icon-ruble:before, -.wn-icon-rouble:before, -.icon-rouble:before, -.wn-icon-rub:before, -.icon-rub:before {content:"\f158"} -.wn-icon-won:before, -.icon-won:before, -.wn-icon-krw:before, -.icon-krw:before {content:"\f159"} -.wn-icon-bitcoin:before, -.icon-bitcoin:before, -.wn-icon-btc:before, -.icon-btc:before {content:"\f15a"} -.wn-icon-file:before, -.icon-file:before {content:"\f15b"} -.wn-icon-file-text:before, -.icon-file-text:before {content:"\f15c"} -.wn-icon-sort-alpha-asc:before, -.icon-sort-alpha-asc:before {content:"\f15d"} -.wn-icon-sort-alpha-desc:before, -.icon-sort-alpha-desc:before {content:"\f15e"} -.wn-icon-sort-amount-asc:before, -.icon-sort-amount-asc:before {content:"\f160"} -.wn-icon-sort-amount-desc:before, -.icon-sort-amount-desc:before {content:"\f161"} -.wn-icon-sort-numeric-asc:before, -.icon-sort-numeric-asc:before {content:"\f162"} -.wn-icon-sort-numeric-desc:before, -.icon-sort-numeric-desc:before {content:"\f163"} -.wn-icon-thumbs-up:before, -.icon-thumbs-up:before {content:"\f164"} -.wn-icon-thumbs-down:before, -.icon-thumbs-down:before {content:"\f165"} -.wn-icon-youtube-square:before, -.icon-youtube-square:before {content:"\f166"} -.wn-icon-youtube:before, -.icon-youtube:before {content:"\f167"} -.wn-icon-xing:before, -.icon-xing:before {content:"\f168"} -.wn-icon-xing-square:before, -.icon-xing-square:before {content:"\f169"} -.wn-icon-youtube-play:before, -.icon-youtube-play:before {content:"\f16a"} -.wn-icon-dropbox:before, -.icon-dropbox:before {content:"\f16b"} -.wn-icon-stack-overflow:before, -.icon-stack-overflow:before {content:"\f16c"} -.wn-icon-instagram:before, -.icon-instagram:before {content:"\f16d"} -.wn-icon-flickr:before, -.icon-flickr:before {content:"\f16e"} -.wn-icon-adn:before, -.icon-adn:before {content:"\f170"} -.wn-icon-bitbucket:before, -.icon-bitbucket:before {content:"\f171"} -.wn-icon-bitbucket-square:before, -.icon-bitbucket-square:before {content:"\f172"} -.wn-icon-tumblr:before, -.icon-tumblr:before {content:"\f173"} -.wn-icon-tumblr-square:before, -.icon-tumblr-square:before {content:"\f174"} -.wn-icon-long-arrow-down:before, -.icon-long-arrow-down:before {content:"\f175"} -.wn-icon-long-arrow-up:before, -.icon-long-arrow-up:before {content:"\f176"} -.wn-icon-long-arrow-left:before, -.icon-long-arrow-left:before {content:"\f177"} -.wn-icon-long-arrow-right:before, -.icon-long-arrow-right:before {content:"\f178"} -.wn-icon-apple:before, -.icon-apple:before {content:"\f179"} -.wn-icon-windows:before, -.icon-windows:before {content:"\f17a"} -.wn-icon-android:before, -.icon-android:before {content:"\f17b"} -.wn-icon-linux:before, -.icon-linux:before {content:"\f17c"} -.wn-icon-dribbble:before, -.icon-dribbble:before {content:"\f17d"} -.wn-icon-skype:before, -.icon-skype:before {content:"\f17e"} -.wn-icon-foursquare:before, -.icon-foursquare:before {content:"\f180"} -.wn-icon-trello:before, -.icon-trello:before {content:"\f181"} -.wn-icon-female:before, -.icon-female:before {content:"\f182"} -.wn-icon-male:before, -.icon-male:before {content:"\f183"} -.wn-icon-gittip:before, -.icon-gittip:before, -.wn-icon-gratipay:before, -.icon-gratipay:before {content:"\f184"} -.wn-icon-sun-o:before, -.icon-sun-o:before {content:"\f185"} -.wn-icon-moon-o:before, -.icon-moon-o:before {content:"\f186"} -.wn-icon-archive:before, -.icon-archive:before {content:"\f187"} -.wn-icon-bug:before, -.icon-bug:before {content:"\f188"} -.wn-icon-vk:before, -.icon-vk:before {content:"\f189"} -.wn-icon-weibo:before, -.icon-weibo:before {content:"\f18a"} -.wn-icon-renren:before, -.icon-renren:before {content:"\f18b"} -.wn-icon-pagelines:before, -.icon-pagelines:before {content:"\f18c"} -.wn-icon-stack-exchange:before, -.icon-stack-exchange:before {content:"\f18d"} -.wn-icon-arrow-circle-o-right:before, -.icon-arrow-circle-o-right:before {content:"\f18e"} -.wn-icon-arrow-circle-o-left:before, -.icon-arrow-circle-o-left:before {content:"\f190"} -.wn-icon-toggle-left:before, -.icon-toggle-left:before, -.wn-icon-caret-square-o-left:before, -.icon-caret-square-o-left:before {content:"\f191"} -.wn-icon-dot-circle-o:before, -.icon-dot-circle-o:before {content:"\f192"} -.wn-icon-wheelchair:before, -.icon-wheelchair:before {content:"\f193"} -.wn-icon-vimeo-square:before, -.icon-vimeo-square:before {content:"\f194"} -.wn-icon-turkish-lira:before, -.icon-turkish-lira:before, -.wn-icon-try:before, -.icon-try:before {content:"\f195"} -.wn-icon-plus-square-o:before, -.icon-plus-square-o:before {content:"\f196"} -.wn-icon-space-shuttle:before, -.icon-space-shuttle:before {content:"\f197"} -.wn-icon-slack:before, -.icon-slack:before {content:"\f198"} -.wn-icon-envelope-square:before, -.icon-envelope-square:before {content:"\f199"} -.wn-icon-wordpress:before, -.icon-wordpress:before {content:"\f19a"} -.wn-icon-openid:before, -.icon-openid:before {content:"\f19b"} -.wn-icon-institution:before, -.icon-institution:before, -.wn-icon-bank:before, -.icon-bank:before, -.wn-icon-university:before, -.icon-university:before {content:"\f19c"} -.wn-icon-mortar-board:before, -.icon-mortar-board:before, -.wn-icon-graduation-cap:before, -.icon-graduation-cap:before {content:"\f19d"} -.wn-icon-yahoo:before, -.icon-yahoo:before {content:"\f19e"} -.wn-icon-google:before, -.icon-google:before {content:"\f1a0"} -.wn-icon-reddit:before, -.icon-reddit:before {content:"\f1a1"} -.wn-icon-reddit-square:before, -.icon-reddit-square:before {content:"\f1a2"} -.wn-icon-stumbleupon-circle:before, -.icon-stumbleupon-circle:before {content:"\f1a3"} -.wn-icon-stumbleupon:before, -.icon-stumbleupon:before {content:"\f1a4"} -.wn-icon-delicious:before, -.icon-delicious:before {content:"\f1a5"} -.wn-icon-digg:before, -.icon-digg:before {content:"\f1a6"} -.wn-icon-pied-piper-pp:before, -.icon-pied-piper-pp:before {content:"\f1a7"} -.wn-icon-pied-piper-alt:before, -.icon-pied-piper-alt:before {content:"\f1a8"} -.wn-icon-drupal:before, -.icon-drupal:before {content:"\f1a9"} -.wn-icon-joomla:before, -.icon-joomla:before {content:"\f1aa"} -.wn-icon-language:before, -.icon-language:before {content:"\f1ab"} -.wn-icon-fax:before, -.icon-fax:before {content:"\f1ac"} -.wn-icon-building:before, -.icon-building:before {content:"\f1ad"} -.wn-icon-child:before, -.icon-child:before {content:"\f1ae"} -.wn-icon-paw:before, -.icon-paw:before {content:"\f1b0"} -.wn-icon-spoon:before, -.icon-spoon:before {content:"\f1b1"} -.wn-icon-cube:before, -.icon-cube:before {content:"\f1b2"} -.wn-icon-cubes:before, -.icon-cubes:before {content:"\f1b3"} -.wn-icon-behance:before, -.icon-behance:before {content:"\f1b4"} -.wn-icon-behance-square:before, -.icon-behance-square:before {content:"\f1b5"} -.wn-icon-steam:before, -.icon-steam:before {content:"\f1b6"} -.wn-icon-steam-square:before, -.icon-steam-square:before {content:"\f1b7"} -.wn-icon-recycle:before, -.icon-recycle:before {content:"\f1b8"} -.wn-icon-automobile:before, -.icon-automobile:before, -.wn-icon-car:before, -.icon-car:before {content:"\f1b9"} -.wn-icon-cab:before, -.icon-cab:before, -.wn-icon-taxi:before, -.icon-taxi:before {content:"\f1ba"} -.wn-icon-tree:before, -.icon-tree:before {content:"\f1bb"} -.wn-icon-spotify:before, -.icon-spotify:before {content:"\f1bc"} -.wn-icon-deviantart:before, -.icon-deviantart:before {content:"\f1bd"} -.wn-icon-soundcloud:before, -.icon-soundcloud:before {content:"\f1be"} -.wn-icon-database:before, -.icon-database:before {content:"\f1c0"} -.wn-icon-file-pdf-o:before, -.icon-file-pdf-o:before {content:"\f1c1"} -.wn-icon-file-word-o:before, -.icon-file-word-o:before {content:"\f1c2"} -.wn-icon-file-excel-o:before, -.icon-file-excel-o:before {content:"\f1c3"} -.wn-icon-file-powerpoint-o:before, -.icon-file-powerpoint-o:before {content:"\f1c4"} -.wn-icon-file-photo-o:before, -.icon-file-photo-o:before, -.wn-icon-file-picture-o:before, -.icon-file-picture-o:before, -.wn-icon-file-image-o:before, -.icon-file-image-o:before {content:"\f1c5"} -.wn-icon-file-zip-o:before, -.icon-file-zip-o:before, -.wn-icon-file-archive-o:before, -.icon-file-archive-o:before {content:"\f1c6"} -.wn-icon-file-sound-o:before, -.icon-file-sound-o:before, -.wn-icon-file-audio-o:before, -.icon-file-audio-o:before {content:"\f1c7"} -.wn-icon-file-movie-o:before, -.icon-file-movie-o:before, -.wn-icon-file-video-o:before, -.icon-file-video-o:before {content:"\f1c8"} -.wn-icon-file-code-o:before, -.icon-file-code-o:before {content:"\f1c9"} -.wn-icon-vine:before, -.icon-vine:before {content:"\f1ca"} -.wn-icon-codepen:before, -.icon-codepen:before {content:"\f1cb"} -.wn-icon-jsfiddle:before, -.icon-jsfiddle:before {content:"\f1cc"} -.wn-icon-life-bouy:before, -.icon-life-bouy:before, -.wn-icon-life-buoy:before, -.icon-life-buoy:before, -.wn-icon-life-saver:before, -.icon-life-saver:before, -.wn-icon-support:before, -.icon-support:before, -.wn-icon-life-ring:before, -.icon-life-ring:before {content:"\f1cd"} -.wn-icon-circle-o-notch:before, -.icon-circle-o-notch:before {content:"\f1ce"} -.wn-icon-ra:before, -.icon-ra:before, -.wn-icon-resistance:before, -.icon-resistance:before, -.wn-icon-rebel:before, -.icon-rebel:before {content:"\f1d0"} -.wn-icon-ge:before, -.icon-ge:before, -.wn-icon-empire:before, -.icon-empire:before {content:"\f1d1"} -.wn-icon-git-square:before, -.icon-git-square:before {content:"\f1d2"} -.wn-icon-git:before, -.icon-git:before {content:"\f1d3"} -.wn-icon-y-combinator-square:before, -.icon-y-combinator-square:before, -.wn-icon-yc-square:before, -.icon-yc-square:before, -.wn-icon-hacker-news:before, -.icon-hacker-news:before {content:"\f1d4"} -.wn-icon-tencent-weibo:before, -.icon-tencent-weibo:before {content:"\f1d5"} -.wn-icon-qq:before, -.icon-qq:before {content:"\f1d6"} -.wn-icon-wechat:before, -.icon-wechat:before, -.wn-icon-weixin:before, -.icon-weixin:before {content:"\f1d7"} -.wn-icon-send:before, -.icon-send:before, -.wn-icon-paper-plane:before, -.icon-paper-plane:before {content:"\f1d8"} -.wn-icon-send-o:before, -.icon-send-o:before, -.wn-icon-paper-plane-o:before, -.icon-paper-plane-o:before {content:"\f1d9"} -.wn-icon-history:before, -.icon-history:before {content:"\f1da"} -.wn-icon-circle-thin:before, -.icon-circle-thin:before {content:"\f1db"} -.wn-icon-header:before, -.icon-header:before {content:"\f1dc"} -.wn-icon-paragraph:before, -.icon-paragraph:before {content:"\f1dd"} -.wn-icon-sliders:before, -.icon-sliders:before {content:"\f1de"} -.wn-icon-share-alt:before, -.icon-share-alt:before {content:"\f1e0"} -.wn-icon-share-alt-square:before, -.icon-share-alt-square:before {content:"\f1e1"} -.wn-icon-bomb:before, -.icon-bomb:before {content:"\f1e2"} -.wn-icon-soccer-ball-o:before, -.icon-soccer-ball-o:before, -.wn-icon-futbol-o:before, -.icon-futbol-o:before {content:"\f1e3"} -.wn-icon-tty:before, -.icon-tty:before {content:"\f1e4"} -.wn-icon-binoculars:before, -.icon-binoculars:before {content:"\f1e5"} -.wn-icon-plug:before, -.icon-plug:before {content:"\f1e6"} -.wn-icon-slideshare:before, -.icon-slideshare:before {content:"\f1e7"} -.wn-icon-twitch:before, -.icon-twitch:before {content:"\f1e8"} -.wn-icon-yelp:before, -.icon-yelp:before {content:"\f1e9"} -.wn-icon-newspaper-o:before, -.icon-newspaper-o:before {content:"\f1ea"} -.wn-icon-wifi:before, -.icon-wifi:before {content:"\f1eb"} -.wn-icon-calculator:before, -.icon-calculator:before {content:"\f1ec"} -.wn-icon-paypal:before, -.icon-paypal:before {content:"\f1ed"} -.wn-icon-google-wallet:before, -.icon-google-wallet:before {content:"\f1ee"} -.wn-icon-cc-visa:before, -.icon-cc-visa:before {content:"\f1f0"} -.wn-icon-cc-mastercard:before, -.icon-cc-mastercard:before {content:"\f1f1"} -.wn-icon-cc-discover:before, -.icon-cc-discover:before {content:"\f1f2"} -.wn-icon-cc-amex:before, -.icon-cc-amex:before {content:"\f1f3"} -.wn-icon-cc-paypal:before, -.icon-cc-paypal:before {content:"\f1f4"} -.wn-icon-cc-stripe:before, -.icon-cc-stripe:before {content:"\f1f5"} -.wn-icon-bell-slash:before, -.icon-bell-slash:before {content:"\f1f6"} -.wn-icon-bell-slash-o:before, -.icon-bell-slash-o:before {content:"\f1f7"} -.wn-icon-trash:before, -.icon-trash:before {content:"\f1f8"} -.wn-icon-copyright:before, -.icon-copyright:before {content:"\f1f9"} -.wn-icon-at:before, -.icon-at:before {content:"\f1fa"} -.wn-icon-eyedropper:before, -.icon-eyedropper:before {content:"\f1fb"} -.wn-icon-paint-brush:before, -.icon-paint-brush:before {content:"\f1fc"} -.wn-icon-birthday-cake:before, -.icon-birthday-cake:before {content:"\f1fd"} -.wn-icon-area-chart:before, -.icon-area-chart:before {content:"\f1fe"} -.wn-icon-pie-chart:before, -.icon-pie-chart:before {content:"\f200"} -.wn-icon-line-chart:before, -.icon-line-chart:before {content:"\f201"} -.wn-icon-lastfm:before, -.icon-lastfm:before {content:"\f202"} -.wn-icon-lastfm-square:before, -.icon-lastfm-square:before {content:"\f203"} -.wn-icon-toggle-off:before, -.icon-toggle-off:before {content:"\f204"} -.wn-icon-toggle-on:before, -.icon-toggle-on:before {content:"\f205"} -.wn-icon-bicycle:before, -.icon-bicycle:before {content:"\f206"} -.wn-icon-bus:before, -.icon-bus:before {content:"\f207"} -.wn-icon-ioxhost:before, -.icon-ioxhost:before {content:"\f208"} -.wn-icon-angellist:before, -.icon-angellist:before {content:"\f209"} -.wn-icon-cc:before, -.icon-cc:before {content:"\f20a"} -.wn-icon-shekel:before, -.icon-shekel:before, -.wn-icon-sheqel:before, -.icon-sheqel:before, -.wn-icon-ils:before, -.icon-ils:before {content:"\f20b"} -.wn-icon-meanpath:before, -.icon-meanpath:before {content:"\f20c"} -.wn-icon-buysellads:before, -.icon-buysellads:before {content:"\f20d"} -.wn-icon-connectdevelop:before, -.icon-connectdevelop:before {content:"\f20e"} -.wn-icon-dashcube:before, -.icon-dashcube:before {content:"\f210"} -.wn-icon-forumbee:before, -.icon-forumbee:before {content:"\f211"} -.wn-icon-leanpub:before, -.icon-leanpub:before {content:"\f212"} -.wn-icon-sellsy:before, -.icon-sellsy:before {content:"\f213"} -.wn-icon-shirtsinbulk:before, -.icon-shirtsinbulk:before {content:"\f214"} -.wn-icon-simplybuilt:before, -.icon-simplybuilt:before {content:"\f215"} -.wn-icon-skyatlas:before, -.icon-skyatlas:before {content:"\f216"} -.wn-icon-cart-plus:before, -.icon-cart-plus:before {content:"\f217"} -.wn-icon-cart-arrow-down:before, -.icon-cart-arrow-down:before {content:"\f218"} -.wn-icon-diamond:before, -.icon-diamond:before {content:"\f219"} -.wn-icon-ship:before, -.icon-ship:before {content:"\f21a"} -.wn-icon-user-secret:before, -.icon-user-secret:before {content:"\f21b"} -.wn-icon-motorcycle:before, -.icon-motorcycle:before {content:"\f21c"} -.wn-icon-street-view:before, -.icon-street-view:before {content:"\f21d"} -.wn-icon-heartbeat:before, -.icon-heartbeat:before {content:"\f21e"} -.wn-icon-venus:before, -.icon-venus:before {content:"\f221"} -.wn-icon-mars:before, -.icon-mars:before {content:"\f222"} -.wn-icon-mercury:before, -.icon-mercury:before {content:"\f223"} -.wn-icon-intersex:before, -.icon-intersex:before, -.wn-icon-transgender:before, -.icon-transgender:before {content:"\f224"} -.wn-icon-transgender-alt:before, -.icon-transgender-alt:before {content:"\f225"} -.wn-icon-venus-double:before, -.icon-venus-double:before {content:"\f226"} -.wn-icon-mars-double:before, -.icon-mars-double:before {content:"\f227"} -.wn-icon-venus-mars:before, -.icon-venus-mars:before {content:"\f228"} -.wn-icon-mars-stroke:before, -.icon-mars-stroke:before {content:"\f229"} -.wn-icon-mars-stroke-v:before, -.icon-mars-stroke-v:before {content:"\f22a"} -.wn-icon-mars-stroke-h:before, -.icon-mars-stroke-h:before {content:"\f22b"} -.wn-icon-neuter:before, -.icon-neuter:before {content:"\f22c"} -.wn-icon-genderless:before, -.icon-genderless:before {content:"\f22d"} -.wn-icon-facebook-official:before, -.icon-facebook-official:before {content:"\f230"} -.wn-icon-pinterest-p:before, -.icon-pinterest-p:before {content:"\f231"} -.wn-icon-whatsapp:before, -.icon-whatsapp:before {content:"\f232"} -.wn-icon-server:before, -.icon-server:before {content:"\f233"} -.wn-icon-user-plus:before, -.icon-user-plus:before {content:"\f234"} -.wn-icon-user-times:before, -.icon-user-times:before {content:"\f235"} -.wn-icon-hotel:before, -.icon-hotel:before, -.wn-icon-bed:before, -.icon-bed:before {content:"\f236"} -.wn-icon-viacoin:before, -.icon-viacoin:before {content:"\f237"} -.wn-icon-train:before, -.icon-train:before {content:"\f238"} -.wn-icon-subway:before, -.icon-subway:before {content:"\f239"} -.wn-icon-medium:before, -.icon-medium:before {content:"\f23a"} -.wn-icon-yc:before, -.icon-yc:before, -.wn-icon-y-combinator:before, -.icon-y-combinator:before {content:"\f23b"} -.wn-icon-optin-monster:before, -.icon-optin-monster:before {content:"\f23c"} -.wn-icon-opencart:before, -.icon-opencart:before {content:"\f23d"} -.wn-icon-expeditedssl:before, -.icon-expeditedssl:before {content:"\f23e"} -.wn-icon-battery-4:before, -.icon-battery-4:before, -.wn-icon-battery:before, -.icon-battery:before, -.wn-icon-battery-full:before, -.icon-battery-full:before {content:"\f240"} -.wn-icon-battery-3:before, -.icon-battery-3:before, -.wn-icon-battery-three-quarters:before, -.icon-battery-three-quarters:before {content:"\f241"} -.wn-icon-battery-2:before, -.icon-battery-2:before, -.wn-icon-battery-half:before, -.icon-battery-half:before {content:"\f242"} -.wn-icon-battery-1:before, -.icon-battery-1:before, -.wn-icon-battery-quarter:before, -.icon-battery-quarter:before {content:"\f243"} -.wn-icon-battery-0:before, -.icon-battery-0:before, -.wn-icon-battery-empty:before, -.icon-battery-empty:before {content:"\f244"} -.wn-icon-mouse-pointer:before, -.icon-mouse-pointer:before {content:"\f245"} -.wn-icon-i-cursor:before, -.icon-i-cursor:before {content:"\f246"} -.wn-icon-object-group:before, -.icon-object-group:before {content:"\f247"} -.wn-icon-object-ungroup:before, -.icon-object-ungroup:before {content:"\f248"} -.wn-icon-sticky-note:before, -.icon-sticky-note:before {content:"\f249"} -.wn-icon-sticky-note-o:before, -.icon-sticky-note-o:before {content:"\f24a"} -.wn-icon-cc-jcb:before, -.icon-cc-jcb:before {content:"\f24b"} -.wn-icon-cc-diners-club:before, -.icon-cc-diners-club:before {content:"\f24c"} -.wn-icon-clone:before, -.icon-clone:before {content:"\f24d"} -.wn-icon-balance-scale:before, -.icon-balance-scale:before {content:"\f24e"} -.wn-icon-hourglass-o:before, -.icon-hourglass-o:before {content:"\f250"} -.wn-icon-hourglass-1:before, -.icon-hourglass-1:before, -.wn-icon-hourglass-start:before, -.icon-hourglass-start:before {content:"\f251"} -.wn-icon-hourglass-2:before, -.icon-hourglass-2:before, -.wn-icon-hourglass-half:before, -.icon-hourglass-half:before {content:"\f252"} -.wn-icon-hourglass-3:before, -.icon-hourglass-3:before, -.wn-icon-hourglass-end:before, -.icon-hourglass-end:before {content:"\f253"} -.wn-icon-hourglass:before, -.icon-hourglass:before {content:"\f254"} -.wn-icon-hand-grab-o:before, -.icon-hand-grab-o:before, -.wn-icon-hand-rock-o:before, -.icon-hand-rock-o:before {content:"\f255"} -.wn-icon-hand-stop-o:before, -.icon-hand-stop-o:before, -.wn-icon-hand-paper-o:before, -.icon-hand-paper-o:before {content:"\f256"} -.wn-icon-hand-scissors-o:before, -.icon-hand-scissors-o:before {content:"\f257"} -.wn-icon-hand-lizard-o:before, -.icon-hand-lizard-o:before {content:"\f258"} -.wn-icon-hand-spock-o:before, -.icon-hand-spock-o:before {content:"\f259"} -.wn-icon-hand-pointer-o:before, -.icon-hand-pointer-o:before {content:"\f25a"} -.wn-icon-hand-peace-o:before, -.icon-hand-peace-o:before {content:"\f25b"} -.wn-icon-trademark:before, -.icon-trademark:before {content:"\f25c"} -.wn-icon-registered:before, -.icon-registered:before {content:"\f25d"} -.wn-icon-creative-commons:before, -.icon-creative-commons:before {content:"\f25e"} -.wn-icon-gg:before, -.icon-gg:before {content:"\f260"} -.wn-icon-gg-circle:before, -.icon-gg-circle:before {content:"\f261"} -.wn-icon-tripadvisor:before, -.icon-tripadvisor:before {content:"\f262"} -.wn-icon-odnoklassniki:before, -.icon-odnoklassniki:before {content:"\f263"} -.wn-icon-odnoklassniki-square:before, -.icon-odnoklassniki-square:before {content:"\f264"} -.wn-icon-get-pocket:before, -.icon-get-pocket:before {content:"\f265"} -.wn-icon-wikipedia-w:before, -.icon-wikipedia-w:before {content:"\f266"} -.wn-icon-safari:before, -.icon-safari:before {content:"\f267"} -.wn-icon-chrome:before, -.icon-chrome:before {content:"\f268"} -.wn-icon-firefox:before, -.icon-firefox:before {content:"\f269"} -.wn-icon-opera:before, -.icon-opera:before {content:"\f26a"} -.wn-icon-internet-explorer:before, -.icon-internet-explorer:before {content:"\f26b"} -.wn-icon-tv:before, -.icon-tv:before, -.wn-icon-television:before, -.icon-television:before {content:"\f26c"} -.wn-icon-contao:before, -.icon-contao:before {content:"\f26d"} -.wn-icon-500px:before, -.icon-500px:before {content:"\f26e"} -.wn-icon-amazon:before, -.icon-amazon:before {content:"\f270"} -.wn-icon-calendar-plus-o:before, -.icon-calendar-plus-o:before {content:"\f271"} -.wn-icon-calendar-minus-o:before, -.icon-calendar-minus-o:before {content:"\f272"} -.wn-icon-calendar-times-o:before, -.icon-calendar-times-o:before {content:"\f273"} -.wn-icon-calendar-check-o:before, -.icon-calendar-check-o:before {content:"\f274"} -.wn-icon-industry:before, -.icon-industry:before {content:"\f275"} -.wn-icon-map-pin:before, -.icon-map-pin:before {content:"\f276"} -.wn-icon-map-signs:before, -.icon-map-signs:before {content:"\f277"} -.wn-icon-map-o:before, -.icon-map-o:before {content:"\f278"} -.wn-icon-map:before, -.icon-map:before {content:"\f279"} -.wn-icon-commenting:before, -.icon-commenting:before {content:"\f27a"} -.wn-icon-commenting-o:before, -.icon-commenting-o:before {content:"\f27b"} -.wn-icon-houzz:before, -.icon-houzz:before {content:"\f27c"} -.wn-icon-vimeo:before, -.icon-vimeo:before {content:"\f27d"} -.wn-icon-black-tie:before, -.icon-black-tie:before {content:"\f27e"} -.wn-icon-fonticons:before, -.icon-fonticons:before {content:"\f280"} -.wn-icon-reddit-alien:before, -.icon-reddit-alien:before {content:"\f281"} -.wn-icon-edge:before, -.icon-edge:before {content:"\f282"} -.wn-icon-credit-card-alt:before, -.icon-credit-card-alt:before {content:"\f283"} -.wn-icon-codiepie:before, -.icon-codiepie:before {content:"\f284"} -.wn-icon-modx:before, -.icon-modx:before {content:"\f285"} -.wn-icon-fort-awesome:before, -.icon-fort-awesome:before {content:"\f286"} -.wn-icon-usb:before, -.icon-usb:before {content:"\f287"} -.wn-icon-product-hunt:before, -.icon-product-hunt:before {content:"\f288"} -.wn-icon-mixcloud:before, -.icon-mixcloud:before {content:"\f289"} -.wn-icon-scribd:before, -.icon-scribd:before {content:"\f28a"} -.wn-icon-pause-circle:before, -.icon-pause-circle:before {content:"\f28b"} -.wn-icon-pause-circle-o:before, -.icon-pause-circle-o:before {content:"\f28c"} -.wn-icon-stop-circle:before, -.icon-stop-circle:before {content:"\f28d"} -.wn-icon-stop-circle-o:before, -.icon-stop-circle-o:before {content:"\f28e"} -.wn-icon-shopping-bag:before, -.icon-shopping-bag:before {content:"\f290"} -.wn-icon-shopping-basket:before, -.icon-shopping-basket:before {content:"\f291"} -.wn-icon-hashtag:before, -.icon-hashtag:before {content:"\f292"} -.wn-icon-bluetooth:before, -.icon-bluetooth:before {content:"\f293"} -.wn-icon-bluetooth-b:before, -.icon-bluetooth-b:before {content:"\f294"} -.wn-icon-percent:before, -.icon-percent:before {content:"\f295"} -.wn-icon-gitlab:before, -.icon-gitlab:before {content:"\f296"} -.wn-icon-wpbeginner:before, -.icon-wpbeginner:before {content:"\f297"} -.wn-icon-wpforms:before, -.icon-wpforms:before {content:"\f298"} -.wn-icon-envira:before, -.icon-envira:before {content:"\f299"} -.wn-icon-universal-access:before, -.icon-universal-access:before {content:"\f29a"} -.wn-icon-wheelchair-alt:before, -.icon-wheelchair-alt:before {content:"\f29b"} -.wn-icon-question-circle-o:before, -.icon-question-circle-o:before {content:"\f29c"} -.wn-icon-blind:before, -.icon-blind:before {content:"\f29d"} -.wn-icon-audio-description:before, -.icon-audio-description:before {content:"\f29e"} -.wn-icon-volume-control-phone:before, -.icon-volume-control-phone:before {content:"\f2a0"} -.wn-icon-braille:before, -.icon-braille:before {content:"\f2a1"} -.wn-icon-assistive-listening-systems:before, -.icon-assistive-listening-systems:before {content:"\f2a2"} -.wn-icon-asl-interpreting:before, -.icon-asl-interpreting:before, -.wn-icon-american-sign-language-interpreting:before, -.icon-american-sign-language-interpreting:before {content:"\f2a3"} -.wn-icon-deafness:before, -.icon-deafness:before, -.wn-icon-hard-of-hearing:before, -.icon-hard-of-hearing:before, -.wn-icon-deaf:before, -.icon-deaf:before {content:"\f2a4"} -.wn-icon-glide:before, -.icon-glide:before {content:"\f2a5"} -.wn-icon-glide-g:before, -.icon-glide-g:before {content:"\f2a6"} -.wn-icon-signing:before, -.icon-signing:before, -.wn-icon-sign-language:before, -.icon-sign-language:before {content:"\f2a7"} -.wn-icon-low-vision:before, -.icon-low-vision:before {content:"\f2a8"} -.wn-icon-viadeo:before, -.icon-viadeo:before {content:"\f2a9"} -.wn-icon-viadeo-square:before, -.icon-viadeo-square:before {content:"\f2aa"} -.wn-icon-snapchat:before, -.icon-snapchat:before {content:"\f2ab"} -.wn-icon-snapchat-ghost:before, -.icon-snapchat-ghost:before {content:"\f2ac"} -.wn-icon-snapchat-square:before, -.icon-snapchat-square:before {content:"\f2ad"} -.wn-icon-pied-piper:before, -.icon-pied-piper:before {content:"\f2ae"} -.wn-icon-first-order:before, -.icon-first-order:before {content:"\f2b0"} -.wn-icon-yoast:before, -.icon-yoast:before {content:"\f2b1"} -.wn-icon-themeisle:before, -.icon-themeisle:before {content:"\f2b2"} -.wn-icon-google-plus-circle:before, -.icon-google-plus-circle:before, -.wn-icon-google-plus-official:before, -.icon-google-plus-official:before {content:"\f2b3"} -.wn-icon-fa:before, -.icon-fa:before, -.wn-icon-font-awesome:before, -.icon-font-awesome:before {content:"\f2b4"} -.wn-icon-handshake-o:before, -.icon-handshake-o:before {content:"\f2b5"} -.wn-icon-envelope-open:before, -.icon-envelope-open:before {content:"\f2b6"} -.wn-icon-envelope-open-o:before, -.icon-envelope-open-o:before {content:"\f2b7"} -.wn-icon-linode:before, -.icon-linode:before {content:"\f2b8"} -.wn-icon-address-book:before, -.icon-address-book:before {content:"\f2b9"} -.wn-icon-address-book-o:before, -.icon-address-book-o:before {content:"\f2ba"} -.wn-icon-vcard:before, -.icon-vcard:before, -.wn-icon-address-card:before, -.icon-address-card:before {content:"\f2bb"} -.wn-icon-vcard-o:before, -.icon-vcard-o:before, -.wn-icon-address-card-o:before, -.icon-address-card-o:before {content:"\f2bc"} -.wn-icon-user-circle:before, -.icon-user-circle:before {content:"\f2bd"} -.wn-icon-user-circle-o:before, -.icon-user-circle-o:before {content:"\f2be"} -.wn-icon-user-o:before, -.icon-user-o:before {content:"\f2c0"} -.wn-icon-id-badge:before, -.icon-id-badge:before {content:"\f2c1"} -.wn-icon-drivers-license:before, -.icon-drivers-license:before, -.wn-icon-id-card:before, -.icon-id-card:before {content:"\f2c2"} -.wn-icon-drivers-license-o:before, -.icon-drivers-license-o:before, -.wn-icon-id-card-o:before, -.icon-id-card-o:before {content:"\f2c3"} -.wn-icon-quora:before, -.icon-quora:before {content:"\f2c4"} -.wn-icon-free-code-camp:before, -.icon-free-code-camp:before {content:"\f2c5"} -.wn-icon-telegram:before, -.icon-telegram:before {content:"\f2c6"} -.wn-icon-thermometer-4:before, -.icon-thermometer-4:before, -.wn-icon-thermometer:before, -.icon-thermometer:before, -.wn-icon-thermometer-full:before, -.icon-thermometer-full:before {content:"\f2c7"} -.wn-icon-thermometer-3:before, -.icon-thermometer-3:before, -.wn-icon-thermometer-three-quarters:before, -.icon-thermometer-three-quarters:before {content:"\f2c8"} -.wn-icon-thermometer-2:before, -.icon-thermometer-2:before, -.wn-icon-thermometer-half:before, -.icon-thermometer-half:before {content:"\f2c9"} -.wn-icon-thermometer-1:before, -.icon-thermometer-1:before, -.wn-icon-thermometer-quarter:before, -.icon-thermometer-quarter:before {content:"\f2ca"} -.wn-icon-thermometer-0:before, -.icon-thermometer-0:before, -.wn-icon-thermometer-empty:before, -.icon-thermometer-empty:before {content:"\f2cb"} -.wn-icon-shower:before, -.icon-shower:before {content:"\f2cc"} -.wn-icon-bathtub:before, -.icon-bathtub:before, -.wn-icon-s15:before, -.icon-s15:before, -.wn-icon-bath:before, -.icon-bath:before {content:"\f2cd"} -.wn-icon-podcast:before, -.icon-podcast:before {content:"\f2ce"} -.wn-icon-window-maximize:before, -.icon-window-maximize:before {content:"\f2d0"} -.wn-icon-window-minimize:before, -.icon-window-minimize:before {content:"\f2d1"} -.wn-icon-window-restore:before, -.icon-window-restore:before {content:"\f2d2"} -.wn-icon-times-rectangle:before, -.icon-times-rectangle:before, -.wn-icon-window-close:before, -.icon-window-close:before {content:"\f2d3"} -.wn-icon-times-rectangle-o:before, -.icon-times-rectangle-o:before, -.wn-icon-window-close-o:before, -.icon-window-close-o:before {content:"\f2d4"} -.wn-icon-bandcamp:before, -.icon-bandcamp:before {content:"\f2d5"} -.wn-icon-grav:before, -.icon-grav:before {content:"\f2d6"} -.wn-icon-etsy:before, -.icon-etsy:before {content:"\f2d7"} -.wn-icon-imdb:before, -.icon-imdb:before {content:"\f2d8"} -.wn-icon-ravelry:before, -.icon-ravelry:before {content:"\f2d9"} -.wn-icon-eercast:before, -.icon-eercast:before {content:"\f2da"} -.wn-icon-microchip:before, -.icon-microchip:before {content:"\f2db"} -.wn-icon-snowflake-o:before, -.icon-snowflake-o:before {content:"\f2dc"} -.wn-icon-superpowers:before, -.icon-superpowers:before {content:"\f2dd"} -.wn-icon-wpexplorer:before, -.icon-wpexplorer:before {content:"\f2de"} -.wn-icon-meetup:before, -.icon-meetup:before {content:"\f2e0"} -.oc-icon-glass:before, -.icon-glass:before {content:"\f000"} -.oc-icon-music:before, -.icon-music:before {content:"\f001"} -.oc-icon-search:before, -.icon-search:before {content:"\f002"} -.oc-icon-envelope-o:before, -.icon-envelope-o:before {content:"\f003"} -.oc-icon-heart:before, -.icon-heart:before {content:"\f004"} -.oc-icon-star:before, -.icon-star:before {content:"\f005"} -.oc-icon-star-o:before, -.icon-star-o:before {content:"\f006"} -.oc-icon-user:before, -.icon-user:before {content:"\f007"} -.oc-icon-film:before, -.icon-film:before {content:"\f008"} -.oc-icon-th-large:before, -.icon-th-large:before {content:"\f009"} -.oc-icon-th:before, -.icon-th:before {content:"\f00a"} -.oc-icon-th-list:before, -.icon-th-list:before {content:"\f00b"} -.oc-icon-check:before, -.icon-check:before {content:"\f00c"} -.oc-icon-remove:before, -.icon-remove:before, -.oc-icon-close:before, -.icon-close:before, -.oc-icon-times:before, -.icon-times:before {content:"\f00d"} -.oc-icon-search-plus:before, -.icon-search-plus:before {content:"\f00e"} -.oc-icon-search-minus:before, -.icon-search-minus:before {content:"\f010"} -.oc-icon-power-off:before, -.icon-power-off:before {content:"\f011"} -.oc-icon-signal:before, -.icon-signal:before {content:"\f012"} -.oc-icon-gear:before, -.icon-gear:before, -.oc-icon-cog:before, -.icon-cog:before {content:"\f013"} -.oc-icon-trash-o:before, -.icon-trash-o:before {content:"\f014"} -.oc-icon-home:before, -.icon-home:before {content:"\f015"} -.oc-icon-file-o:before, -.icon-file-o:before {content:"\f016"} -.oc-icon-clock-o:before, -.icon-clock-o:before {content:"\f017"} -.oc-icon-road:before, -.icon-road:before {content:"\f018"} -.oc-icon-download:before, -.icon-download:before {content:"\f019"} -.oc-icon-arrow-circle-o-down:before, -.icon-arrow-circle-o-down:before {content:"\f01a"} -.oc-icon-arrow-circle-o-up:before, -.icon-arrow-circle-o-up:before {content:"\f01b"} -.oc-icon-inbox:before, -.icon-inbox:before {content:"\f01c"} -.oc-icon-play-circle-o:before, -.icon-play-circle-o:before {content:"\f01d"} -.oc-icon-rotate-right:before, -.icon-rotate-right:before, -.oc-icon-repeat:before, -.icon-repeat:before {content:"\f01e"} -.oc-icon-refresh:before, -.icon-refresh:before {content:"\f021"} -.oc-icon-list-alt:before, -.icon-list-alt:before {content:"\f022"} -.oc-icon-lock:before, -.icon-lock:before {content:"\f023"} -.oc-icon-flag:before, -.icon-flag:before {content:"\f024"} -.oc-icon-headphones:before, -.icon-headphones:before {content:"\f025"} -.oc-icon-volume-off:before, -.icon-volume-off:before {content:"\f026"} -.oc-icon-volume-down:before, -.icon-volume-down:before {content:"\f027"} -.oc-icon-volume-up:before, -.icon-volume-up:before {content:"\f028"} -.oc-icon-qrcode:before, -.icon-qrcode:before {content:"\f029"} -.oc-icon-barcode:before, -.icon-barcode:before {content:"\f02a"} -.oc-icon-tag:before, -.icon-tag:before {content:"\f02b"} -.oc-icon-tags:before, -.icon-tags:before {content:"\f02c"} -.oc-icon-book:before, -.icon-book:before {content:"\f02d"} -.oc-icon-bookmark:before, -.icon-bookmark:before {content:"\f02e"} -.oc-icon-print:before, -.icon-print:before {content:"\f02f"} -.oc-icon-camera:before, -.icon-camera:before {content:"\f030"} -.oc-icon-font:before, -.icon-font:before {content:"\f031"} -.oc-icon-bold:before, -.icon-bold:before {content:"\f032"} -.oc-icon-italic:before, -.icon-italic:before {content:"\f033"} -.oc-icon-text-height:before, -.icon-text-height:before {content:"\f034"} -.oc-icon-text-width:before, -.icon-text-width:before {content:"\f035"} -.oc-icon-align-left:before, -.icon-align-left:before {content:"\f036"} -.oc-icon-align-center:before, -.icon-align-center:before {content:"\f037"} -.oc-icon-align-right:before, -.icon-align-right:before {content:"\f038"} -.oc-icon-align-justify:before, -.icon-align-justify:before {content:"\f039"} -.oc-icon-list:before, -.icon-list:before {content:"\f03a"} -.oc-icon-dedent:before, -.icon-dedent:before, -.oc-icon-outdent:before, -.icon-outdent:before {content:"\f03b"} -.oc-icon-indent:before, -.icon-indent:before {content:"\f03c"} -.oc-icon-video-camera:before, -.icon-video-camera:before {content:"\f03d"} -.oc-icon-photo:before, -.icon-photo:before, -.oc-icon-image:before, -.icon-image:before, -.oc-icon-picture-o:before, -.icon-picture-o:before {content:"\f03e"} -.oc-icon-pencil:before, -.icon-pencil:before {content:"\f040"} -.oc-icon-map-marker:before, -.icon-map-marker:before {content:"\f041"} -.oc-icon-adjust:before, -.icon-adjust:before {content:"\f042"} -.oc-icon-tint:before, -.icon-tint:before {content:"\f043"} -.oc-icon-edit:before, -.icon-edit:before, -.oc-icon-pencil-square-o:before, -.icon-pencil-square-o:before {content:"\f044"} -.oc-icon-share-square-o:before, -.icon-share-square-o:before {content:"\f045"} -.oc-icon-check-square-o:before, -.icon-check-square-o:before {content:"\f046"} -.oc-icon-arrows:before, -.icon-arrows:before {content:"\f047"} -.oc-icon-step-backward:before, -.icon-step-backward:before {content:"\f048"} -.oc-icon-fast-backward:before, -.icon-fast-backward:before {content:"\f049"} -.oc-icon-backward:before, -.icon-backward:before {content:"\f04a"} -.oc-icon-play:before, -.icon-play:before {content:"\f04b"} -.oc-icon-pause:before, -.icon-pause:before {content:"\f04c"} -.oc-icon-stop:before, -.icon-stop:before {content:"\f04d"} -.oc-icon-forward:before, -.icon-forward:before {content:"\f04e"} -.oc-icon-fast-forward:before, -.icon-fast-forward:before {content:"\f050"} -.oc-icon-step-forward:before, -.icon-step-forward:before {content:"\f051"} -.oc-icon-eject:before, -.icon-eject:before {content:"\f052"} -.oc-icon-chevron-left:before, -.icon-chevron-left:before {content:"\f053"} -.oc-icon-chevron-right:before, -.icon-chevron-right:before {content:"\f054"} -.oc-icon-plus-circle:before, -.icon-plus-circle:before {content:"\f055"} -.oc-icon-minus-circle:before, -.icon-minus-circle:before {content:"\f056"} -.oc-icon-times-circle:before, -.icon-times-circle:before {content:"\f057"} -.oc-icon-check-circle:before, -.icon-check-circle:before {content:"\f058"} -.oc-icon-question-circle:before, -.icon-question-circle:before {content:"\f059"} -.oc-icon-info-circle:before, -.icon-info-circle:before {content:"\f05a"} -.oc-icon-crosshairs:before, -.icon-crosshairs:before {content:"\f05b"} -.oc-icon-times-circle-o:before, -.icon-times-circle-o:before {content:"\f05c"} -.oc-icon-check-circle-o:before, -.icon-check-circle-o:before {content:"\f05d"} -.oc-icon-ban:before, -.icon-ban:before {content:"\f05e"} -.oc-icon-arrow-left:before, -.icon-arrow-left:before {content:"\f060"} -.oc-icon-arrow-right:before, -.icon-arrow-right:before {content:"\f061"} -.oc-icon-arrow-up:before, -.icon-arrow-up:before {content:"\f062"} -.oc-icon-arrow-down:before, -.icon-arrow-down:before {content:"\f063"} -.oc-icon-mail-forward:before, -.icon-mail-forward:before, -.oc-icon-share:before, -.icon-share:before {content:"\f064"} -.oc-icon-expand:before, -.icon-expand:before {content:"\f065"} -.oc-icon-compress:before, -.icon-compress:before {content:"\f066"} -.oc-icon-plus:before, -.icon-plus:before {content:"\f067"} -.oc-icon-minus:before, -.icon-minus:before {content:"\f068"} -.oc-icon-asterisk:before, -.icon-asterisk:before {content:"\f069"} -.oc-icon-exclamation-circle:before, -.icon-exclamation-circle:before {content:"\f06a"} -.oc-icon-gift:before, -.icon-gift:before {content:"\f06b"} -.oc-icon-leaf:before, -.icon-leaf:before {content:"\f06c"} -.oc-icon-fire:before, -.icon-fire:before {content:"\f06d"} -.oc-icon-eye:before, -.icon-eye:before {content:"\f06e"} -.oc-icon-eye-slash:before, -.icon-eye-slash:before {content:"\f070"} -.oc-icon-warning:before, -.icon-warning:before, -.oc-icon-exclamation-triangle:before, -.icon-exclamation-triangle:before {content:"\f071"} -.oc-icon-plane:before, -.icon-plane:before {content:"\f072"} -.oc-icon-calendar:before, -.icon-calendar:before {content:"\f073"} -.oc-icon-random:before, -.icon-random:before {content:"\f074"} -.oc-icon-comment:before, -.icon-comment:before {content:"\f075"} -.oc-icon-magnet:before, -.icon-magnet:before {content:"\f076"} -.oc-icon-chevron-up:before, -.icon-chevron-up:before {content:"\f077"} -.oc-icon-chevron-down:before, -.icon-chevron-down:before {content:"\f078"} -.oc-icon-retweet:before, -.icon-retweet:before {content:"\f079"} -.oc-icon-shopping-cart:before, -.icon-shopping-cart:before {content:"\f07a"} -.oc-icon-folder:before, -.icon-folder:before {content:"\f07b"} -.oc-icon-folder-open:before, -.icon-folder-open:before {content:"\f07c"} -.oc-icon-arrows-v:before, -.icon-arrows-v:before {content:"\f07d"} -.oc-icon-arrows-h:before, -.icon-arrows-h:before {content:"\f07e"} -.oc-icon-bar-chart-o:before, -.icon-bar-chart-o:before, -.oc-icon-bar-chart:before, -.icon-bar-chart:before {content:"\f080"} -.oc-icon-twitter-square:before, -.icon-twitter-square:before {content:"\f081"} -.oc-icon-facebook-square:before, -.icon-facebook-square:before {content:"\f082"} -.oc-icon-camera-retro:before, -.icon-camera-retro:before {content:"\f083"} -.oc-icon-key:before, -.icon-key:before {content:"\f084"} -.oc-icon-gears:before, -.icon-gears:before, -.oc-icon-cogs:before, -.icon-cogs:before {content:"\f085"} -.oc-icon-comments:before, -.icon-comments:before {content:"\f086"} -.oc-icon-thumbs-o-up:before, -.icon-thumbs-o-up:before {content:"\f087"} -.oc-icon-thumbs-o-down:before, -.icon-thumbs-o-down:before {content:"\f088"} -.oc-icon-star-half:before, -.icon-star-half:before {content:"\f089"} -.oc-icon-heart-o:before, -.icon-heart-o:before {content:"\f08a"} -.oc-icon-sign-out:before, -.icon-sign-out:before {content:"\f08b"} -.oc-icon-linkedin-square:before, -.icon-linkedin-square:before {content:"\f08c"} -.oc-icon-thumb-tack:before, -.icon-thumb-tack:before {content:"\f08d"} -.oc-icon-external-link:before, -.icon-external-link:before {content:"\f08e"} -.oc-icon-sign-in:before, -.icon-sign-in:before {content:"\f090"} -.oc-icon-trophy:before, -.icon-trophy:before {content:"\f091"} -.oc-icon-github-square:before, -.icon-github-square:before {content:"\f092"} -.oc-icon-upload:before, -.icon-upload:before {content:"\f093"} -.oc-icon-lemon-o:before, -.icon-lemon-o:before {content:"\f094"} -.oc-icon-phone:before, -.icon-phone:before {content:"\f095"} -.oc-icon-square-o:before, -.icon-square-o:before {content:"\f096"} -.oc-icon-bookmark-o:before, -.icon-bookmark-o:before {content:"\f097"} -.oc-icon-phone-square:before, -.icon-phone-square:before {content:"\f098"} -.oc-icon-twitter:before, -.icon-twitter:before {content:"\f099"} -.oc-icon-facebook-f:before, -.icon-facebook-f:before, -.oc-icon-facebook:before, -.icon-facebook:before {content:"\f09a"} -.oc-icon-github:before, -.icon-github:before {content:"\f09b"} -.oc-icon-unlock:before, -.icon-unlock:before {content:"\f09c"} -.oc-icon-credit-card:before, -.icon-credit-card:before {content:"\f09d"} -.oc-icon-feed:before, -.icon-feed:before, -.oc-icon-rss:before, -.icon-rss:before {content:"\f09e"} -.oc-icon-hdd-o:before, -.icon-hdd-o:before {content:"\f0a0"} -.oc-icon-bullhorn:before, -.icon-bullhorn:before {content:"\f0a1"} -.oc-icon-bell:before, -.icon-bell:before {content:"\f0f3"} -.oc-icon-certificate:before, -.icon-certificate:before {content:"\f0a3"} -.oc-icon-hand-o-right:before, -.icon-hand-o-right:before {content:"\f0a4"} -.oc-icon-hand-o-left:before, -.icon-hand-o-left:before {content:"\f0a5"} -.oc-icon-hand-o-up:before, -.icon-hand-o-up:before {content:"\f0a6"} -.oc-icon-hand-o-down:before, -.icon-hand-o-down:before {content:"\f0a7"} -.oc-icon-arrow-circle-left:before, -.icon-arrow-circle-left:before {content:"\f0a8"} -.oc-icon-arrow-circle-right:before, -.icon-arrow-circle-right:before {content:"\f0a9"} -.oc-icon-arrow-circle-up:before, -.icon-arrow-circle-up:before {content:"\f0aa"} -.oc-icon-arrow-circle-down:before, -.icon-arrow-circle-down:before {content:"\f0ab"} -.oc-icon-globe:before, -.icon-globe:before {content:"\f0ac"} -.oc-icon-wrench:before, -.icon-wrench:before {content:"\f0ad"} -.oc-icon-tasks:before, -.icon-tasks:before {content:"\f0ae"} -.oc-icon-filter:before, -.icon-filter:before {content:"\f0b0"} -.oc-icon-briefcase:before, -.icon-briefcase:before {content:"\f0b1"} -.oc-icon-arrows-alt:before, -.icon-arrows-alt:before {content:"\f0b2"} -.oc-icon-group:before, -.icon-group:before, -.oc-icon-users:before, -.icon-users:before {content:"\f0c0"} -.oc-icon-chain:before, -.icon-chain:before, -.oc-icon-link:before, -.icon-link:before {content:"\f0c1"} -.oc-icon-cloud:before, -.icon-cloud:before {content:"\f0c2"} -.oc-icon-flask:before, -.icon-flask:before {content:"\f0c3"} -.oc-icon-cut:before, -.icon-cut:before, -.oc-icon-scissors:before, -.icon-scissors:before {content:"\f0c4"} -.oc-icon-copy:before, -.icon-copy:before, -.oc-icon-files-o:before, -.icon-files-o:before {content:"\f0c5"} -.oc-icon-paperclip:before, -.icon-paperclip:before {content:"\f0c6"} -.oc-icon-save:before, -.icon-save:before, -.oc-icon-floppy-o:before, -.icon-floppy-o:before {content:"\f0c7"} -.oc-icon-square:before, -.icon-square:before {content:"\f0c8"} -.oc-icon-navicon:before, -.icon-navicon:before, -.oc-icon-reorder:before, -.icon-reorder:before, -.oc-icon-bars:before, -.icon-bars:before {content:"\f0c9"} -.oc-icon-list-ul:before, -.icon-list-ul:before {content:"\f0ca"} -.oc-icon-list-ol:before, -.icon-list-ol:before {content:"\f0cb"} -.oc-icon-strikethrough:before, -.icon-strikethrough:before {content:"\f0cc"} -.oc-icon-underline:before, -.icon-underline:before {content:"\f0cd"} -.oc-icon-table:before, -.icon-table:before {content:"\f0ce"} -.oc-icon-magic:before, -.icon-magic:before {content:"\f0d0"} -.oc-icon-truck:before, -.icon-truck:before {content:"\f0d1"} -.oc-icon-pinterest:before, -.icon-pinterest:before {content:"\f0d2"} -.oc-icon-pinterest-square:before, -.icon-pinterest-square:before {content:"\f0d3"} -.oc-icon-google-plus-square:before, -.icon-google-plus-square:before {content:"\f0d4"} -.oc-icon-google-plus:before, -.icon-google-plus:before {content:"\f0d5"} -.oc-icon-money:before, -.icon-money:before {content:"\f0d6"} -.oc-icon-caret-down:before, -.icon-caret-down:before {content:"\f0d7"} -.oc-icon-caret-up:before, -.icon-caret-up:before {content:"\f0d8"} -.oc-icon-caret-left:before, -.icon-caret-left:before {content:"\f0d9"} -.oc-icon-caret-right:before, -.icon-caret-right:before {content:"\f0da"} -.oc-icon-columns:before, -.icon-columns:before {content:"\f0db"} -.oc-icon-unsorted:before, -.icon-unsorted:before, -.oc-icon-sort:before, -.icon-sort:before {content:"\f0dc"} -.oc-icon-sort-down:before, -.icon-sort-down:before, -.oc-icon-sort-desc:before, -.icon-sort-desc:before {content:"\f0dd"} -.oc-icon-sort-up:before, -.icon-sort-up:before, -.oc-icon-sort-asc:before, -.icon-sort-asc:before {content:"\f0de"} -.oc-icon-envelope:before, -.icon-envelope:before {content:"\f0e0"} -.oc-icon-linkedin:before, -.icon-linkedin:before {content:"\f0e1"} -.oc-icon-rotate-left:before, -.icon-rotate-left:before, -.oc-icon-undo:before, -.icon-undo:before {content:"\f0e2"} -.oc-icon-legal:before, -.icon-legal:before, -.oc-icon-gavel:before, -.icon-gavel:before {content:"\f0e3"} -.oc-icon-dashboard:before, -.icon-dashboard:before, -.oc-icon-tachometer:before, -.icon-tachometer:before {content:"\f0e4"} -.oc-icon-comment-o:before, -.icon-comment-o:before {content:"\f0e5"} -.oc-icon-comments-o:before, -.icon-comments-o:before {content:"\f0e6"} -.oc-icon-flash:before, -.icon-flash:before, -.oc-icon-bolt:before, -.icon-bolt:before {content:"\f0e7"} -.oc-icon-sitemap:before, -.icon-sitemap:before {content:"\f0e8"} -.oc-icon-umbrella:before, -.icon-umbrella:before {content:"\f0e9"} -.oc-icon-paste:before, -.icon-paste:before, -.oc-icon-clipboard:before, -.icon-clipboard:before {content:"\f0ea"} -.oc-icon-lightbulb-o:before, -.icon-lightbulb-o:before {content:"\f0eb"} -.oc-icon-exchange:before, -.icon-exchange:before {content:"\f0ec"} -.oc-icon-cloud-download:before, -.icon-cloud-download:before {content:"\f0ed"} -.oc-icon-cloud-upload:before, -.icon-cloud-upload:before {content:"\f0ee"} -.oc-icon-user-md:before, -.icon-user-md:before {content:"\f0f0"} -.oc-icon-stethoscope:before, -.icon-stethoscope:before {content:"\f0f1"} -.oc-icon-suitcase:before, -.icon-suitcase:before {content:"\f0f2"} -.oc-icon-bell-o:before, -.icon-bell-o:before {content:"\f0a2"} -.oc-icon-coffee:before, -.icon-coffee:before {content:"\f0f4"} -.oc-icon-cutlery:before, -.icon-cutlery:before {content:"\f0f5"} -.oc-icon-file-text-o:before, -.icon-file-text-o:before {content:"\f0f6"} -.oc-icon-building-o:before, -.icon-building-o:before {content:"\f0f7"} -.oc-icon-hospital-o:before, -.icon-hospital-o:before {content:"\f0f8"} -.oc-icon-ambulance:before, -.icon-ambulance:before {content:"\f0f9"} -.oc-icon-medkit:before, -.icon-medkit:before {content:"\f0fa"} -.oc-icon-fighter-jet:before, -.icon-fighter-jet:before {content:"\f0fb"} -.oc-icon-beer:before, -.icon-beer:before {content:"\f0fc"} -.oc-icon-h-square:before, -.icon-h-square:before {content:"\f0fd"} -.oc-icon-plus-square:before, -.icon-plus-square:before {content:"\f0fe"} -.oc-icon-angle-double-left:before, -.icon-angle-double-left:before {content:"\f100"} -.oc-icon-angle-double-right:before, -.icon-angle-double-right:before {content:"\f101"} -.oc-icon-angle-double-up:before, -.icon-angle-double-up:before {content:"\f102"} -.oc-icon-angle-double-down:before, -.icon-angle-double-down:before {content:"\f103"} -.oc-icon-angle-left:before, -.icon-angle-left:before {content:"\f104"} -.oc-icon-angle-right:before, -.icon-angle-right:before {content:"\f105"} -.oc-icon-angle-up:before, -.icon-angle-up:before {content:"\f106"} -.oc-icon-angle-down:before, -.icon-angle-down:before {content:"\f107"} -.oc-icon-desktop:before, -.icon-desktop:before {content:"\f108"} -.oc-icon-laptop:before, -.icon-laptop:before {content:"\f109"} -.oc-icon-tablet:before, -.icon-tablet:before {content:"\f10a"} -.oc-icon-mobile-phone:before, -.icon-mobile-phone:before, -.oc-icon-mobile:before, -.icon-mobile:before {content:"\f10b"} -.oc-icon-circle-o:before, -.icon-circle-o:before {content:"\f10c"} -.oc-icon-quote-left:before, -.icon-quote-left:before {content:"\f10d"} -.oc-icon-quote-right:before, -.icon-quote-right:before {content:"\f10e"} -.oc-icon-spinner:before, -.icon-spinner:before {content:"\f110"} -.oc-icon-circle:before, -.icon-circle:before {content:"\f111"} -.oc-icon-mail-reply:before, -.icon-mail-reply:before, -.oc-icon-reply:before, -.icon-reply:before {content:"\f112"} -.oc-icon-github-alt:before, -.icon-github-alt:before {content:"\f113"} -.oc-icon-folder-o:before, -.icon-folder-o:before {content:"\f114"} -.oc-icon-folder-open-o:before, -.icon-folder-open-o:before {content:"\f115"} -.oc-icon-smile-o:before, -.icon-smile-o:before {content:"\f118"} -.oc-icon-frown-o:before, -.icon-frown-o:before {content:"\f119"} -.oc-icon-meh-o:before, -.icon-meh-o:before {content:"\f11a"} -.oc-icon-gamepad:before, -.icon-gamepad:before {content:"\f11b"} -.oc-icon-keyboard-o:before, -.icon-keyboard-o:before {content:"\f11c"} -.oc-icon-flag-o:before, -.icon-flag-o:before {content:"\f11d"} -.oc-icon-flag-checkered:before, -.icon-flag-checkered:before {content:"\f11e"} -.oc-icon-terminal:before, -.icon-terminal:before {content:"\f120"} -.oc-icon-code:before, -.icon-code:before {content:"\f121"} -.oc-icon-mail-reply-all:before, -.icon-mail-reply-all:before, -.oc-icon-reply-all:before, -.icon-reply-all:before {content:"\f122"} -.oc-icon-star-half-empty:before, -.icon-star-half-empty:before, -.oc-icon-star-half-full:before, -.icon-star-half-full:before, -.oc-icon-star-half-o:before, -.icon-star-half-o:before {content:"\f123"} -.oc-icon-location-arrow:before, -.icon-location-arrow:before {content:"\f124"} -.oc-icon-crop:before, -.icon-crop:before {content:"\f125"} -.oc-icon-code-fork:before, -.icon-code-fork:before {content:"\f126"} -.oc-icon-unlink:before, -.icon-unlink:before, -.oc-icon-chain-broken:before, -.icon-chain-broken:before {content:"\f127"} -.oc-icon-question:before, -.icon-question:before {content:"\f128"} -.oc-icon-info:before, -.icon-info:before {content:"\f129"} -.oc-icon-exclamation:before, -.icon-exclamation:before {content:"\f12a"} -.oc-icon-superscript:before, -.icon-superscript:before {content:"\f12b"} -.oc-icon-subscript:before, -.icon-subscript:before {content:"\f12c"} -.oc-icon-eraser:before, -.icon-eraser:before {content:"\f12d"} -.oc-icon-puzzle-piece:before, -.icon-puzzle-piece:before {content:"\f12e"} -.oc-icon-microphone:before, -.icon-microphone:before {content:"\f130"} -.oc-icon-microphone-slash:before, -.icon-microphone-slash:before {content:"\f131"} -.oc-icon-shield:before, -.icon-shield:before {content:"\f132"} -.oc-icon-calendar-o:before, -.icon-calendar-o:before {content:"\f133"} -.oc-icon-fire-extinguisher:before, -.icon-fire-extinguisher:before {content:"\f134"} -.oc-icon-rocket:before, -.icon-rocket:before {content:"\f135"} -.oc-icon-maxcdn:before, -.icon-maxcdn:before {content:"\f136"} -.oc-icon-chevron-circle-left:before, -.icon-chevron-circle-left:before {content:"\f137"} -.oc-icon-chevron-circle-right:before, -.icon-chevron-circle-right:before {content:"\f138"} -.oc-icon-chevron-circle-up:before, -.icon-chevron-circle-up:before {content:"\f139"} -.oc-icon-chevron-circle-down:before, -.icon-chevron-circle-down:before {content:"\f13a"} -.oc-icon-html5:before, -.icon-html5:before {content:"\f13b"} -.oc-icon-css3:before, -.icon-css3:before {content:"\f13c"} -.oc-icon-anchor:before, -.icon-anchor:before {content:"\f13d"} -.oc-icon-unlock-alt:before, -.icon-unlock-alt:before {content:"\f13e"} -.oc-icon-bullseye:before, -.icon-bullseye:before {content:"\f140"} -.oc-icon-ellipsis-h:before, -.icon-ellipsis-h:before {content:"\f141"} -.oc-icon-ellipsis-v:before, -.icon-ellipsis-v:before {content:"\f142"} -.oc-icon-rss-square:before, -.icon-rss-square:before {content:"\f143"} -.oc-icon-play-circle:before, -.icon-play-circle:before {content:"\f144"} -.oc-icon-ticket:before, -.icon-ticket:before {content:"\f145"} -.oc-icon-minus-square:before, -.icon-minus-square:before {content:"\f146"} -.oc-icon-minus-square-o:before, -.icon-minus-square-o:before {content:"\f147"} -.oc-icon-level-up:before, -.icon-level-up:before {content:"\f148"} -.oc-icon-level-down:before, -.icon-level-down:before {content:"\f149"} -.oc-icon-check-square:before, -.icon-check-square:before {content:"\f14a"} -.oc-icon-pencil-square:before, -.icon-pencil-square:before {content:"\f14b"} -.oc-icon-external-link-square:before, -.icon-external-link-square:before {content:"\f14c"} -.oc-icon-share-square:before, -.icon-share-square:before {content:"\f14d"} -.oc-icon-compass:before, -.icon-compass:before {content:"\f14e"} -.oc-icon-toggle-down:before, -.icon-toggle-down:before, -.oc-icon-caret-square-o-down:before, -.icon-caret-square-o-down:before {content:"\f150"} -.oc-icon-toggle-up:before, -.icon-toggle-up:before, -.oc-icon-caret-square-o-up:before, -.icon-caret-square-o-up:before {content:"\f151"} -.oc-icon-toggle-right:before, -.icon-toggle-right:before, -.oc-icon-caret-square-o-right:before, -.icon-caret-square-o-right:before {content:"\f152"} -.oc-icon-euro:before, -.icon-euro:before, -.oc-icon-eur:before, -.icon-eur:before {content:"\f153"} -.oc-icon-gbp:before, -.icon-gbp:before {content:"\f154"} -.oc-icon-dollar:before, -.icon-dollar:before, -.oc-icon-usd:before, -.icon-usd:before {content:"\f155"} -.oc-icon-rupee:before, -.icon-rupee:before, -.oc-icon-inr:before, -.icon-inr:before {content:"\f156"} -.oc-icon-cny:before, -.icon-cny:before, -.oc-icon-rmb:before, -.icon-rmb:before, -.oc-icon-yen:before, -.icon-yen:before, -.oc-icon-jpy:before, -.icon-jpy:before {content:"\f157"} -.oc-icon-ruble:before, -.icon-ruble:before, -.oc-icon-rouble:before, -.icon-rouble:before, -.oc-icon-rub:before, -.icon-rub:before {content:"\f158"} -.oc-icon-won:before, -.icon-won:before, -.oc-icon-krw:before, -.icon-krw:before {content:"\f159"} -.oc-icon-bitcoin:before, -.icon-bitcoin:before, -.oc-icon-btc:before, -.icon-btc:before {content:"\f15a"} -.oc-icon-file:before, -.icon-file:before {content:"\f15b"} -.oc-icon-file-text:before, -.icon-file-text:before {content:"\f15c"} -.oc-icon-sort-alpha-asc:before, -.icon-sort-alpha-asc:before {content:"\f15d"} -.oc-icon-sort-alpha-desc:before, -.icon-sort-alpha-desc:before {content:"\f15e"} -.oc-icon-sort-amount-asc:before, -.icon-sort-amount-asc:before {content:"\f160"} -.oc-icon-sort-amount-desc:before, -.icon-sort-amount-desc:before {content:"\f161"} -.oc-icon-sort-numeric-asc:before, -.icon-sort-numeric-asc:before {content:"\f162"} -.oc-icon-sort-numeric-desc:before, -.icon-sort-numeric-desc:before {content:"\f163"} -.oc-icon-thumbs-up:before, -.icon-thumbs-up:before {content:"\f164"} -.oc-icon-thumbs-down:before, -.icon-thumbs-down:before {content:"\f165"} -.oc-icon-youtube-square:before, -.icon-youtube-square:before {content:"\f166"} -.oc-icon-youtube:before, -.icon-youtube:before {content:"\f167"} -.oc-icon-xing:before, -.icon-xing:before {content:"\f168"} -.oc-icon-xing-square:before, -.icon-xing-square:before {content:"\f169"} -.oc-icon-youtube-play:before, -.icon-youtube-play:before {content:"\f16a"} -.oc-icon-dropbox:before, -.icon-dropbox:before {content:"\f16b"} -.oc-icon-stack-overflow:before, -.icon-stack-overflow:before {content:"\f16c"} -.oc-icon-instagram:before, -.icon-instagram:before {content:"\f16d"} -.oc-icon-flickr:before, -.icon-flickr:before {content:"\f16e"} -.oc-icon-adn:before, -.icon-adn:before {content:"\f170"} -.oc-icon-bitbucket:before, -.icon-bitbucket:before {content:"\f171"} -.oc-icon-bitbucket-square:before, -.icon-bitbucket-square:before {content:"\f172"} -.oc-icon-tumblr:before, -.icon-tumblr:before {content:"\f173"} -.oc-icon-tumblr-square:before, -.icon-tumblr-square:before {content:"\f174"} -.oc-icon-long-arrow-down:before, -.icon-long-arrow-down:before {content:"\f175"} -.oc-icon-long-arrow-up:before, -.icon-long-arrow-up:before {content:"\f176"} -.oc-icon-long-arrow-left:before, -.icon-long-arrow-left:before {content:"\f177"} -.oc-icon-long-arrow-right:before, -.icon-long-arrow-right:before {content:"\f178"} -.oc-icon-apple:before, -.icon-apple:before {content:"\f179"} -.oc-icon-windows:before, -.icon-windows:before {content:"\f17a"} -.oc-icon-android:before, -.icon-android:before {content:"\f17b"} -.oc-icon-linux:before, -.icon-linux:before {content:"\f17c"} -.oc-icon-dribbble:before, -.icon-dribbble:before {content:"\f17d"} -.oc-icon-skype:before, -.icon-skype:before {content:"\f17e"} -.oc-icon-foursquare:before, -.icon-foursquare:before {content:"\f180"} -.oc-icon-trello:before, -.icon-trello:before {content:"\f181"} -.oc-icon-female:before, -.icon-female:before {content:"\f182"} -.oc-icon-male:before, -.icon-male:before {content:"\f183"} -.oc-icon-gittip:before, -.icon-gittip:before, -.oc-icon-gratipay:before, -.icon-gratipay:before {content:"\f184"} -.oc-icon-sun-o:before, -.icon-sun-o:before {content:"\f185"} -.oc-icon-moon-o:before, -.icon-moon-o:before {content:"\f186"} -.oc-icon-archive:before, -.icon-archive:before {content:"\f187"} -.oc-icon-bug:before, -.icon-bug:before {content:"\f188"} -.oc-icon-vk:before, -.icon-vk:before {content:"\f189"} -.oc-icon-weibo:before, -.icon-weibo:before {content:"\f18a"} -.oc-icon-renren:before, -.icon-renren:before {content:"\f18b"} -.oc-icon-pagelines:before, -.icon-pagelines:before {content:"\f18c"} -.oc-icon-stack-exchange:before, -.icon-stack-exchange:before {content:"\f18d"} -.oc-icon-arrow-circle-o-right:before, -.icon-arrow-circle-o-right:before {content:"\f18e"} -.oc-icon-arrow-circle-o-left:before, -.icon-arrow-circle-o-left:before {content:"\f190"} -.oc-icon-toggle-left:before, -.icon-toggle-left:before, -.oc-icon-caret-square-o-left:before, -.icon-caret-square-o-left:before {content:"\f191"} -.oc-icon-dot-circle-o:before, -.icon-dot-circle-o:before {content:"\f192"} -.oc-icon-wheelchair:before, -.icon-wheelchair:before {content:"\f193"} -.oc-icon-vimeo-square:before, -.icon-vimeo-square:before {content:"\f194"} -.oc-icon-turkish-lira:before, -.icon-turkish-lira:before, -.oc-icon-try:before, -.icon-try:before {content:"\f195"} -.oc-icon-plus-square-o:before, -.icon-plus-square-o:before {content:"\f196"} -.oc-icon-space-shuttle:before, -.icon-space-shuttle:before {content:"\f197"} -.oc-icon-slack:before, -.icon-slack:before {content:"\f198"} -.oc-icon-envelope-square:before, -.icon-envelope-square:before {content:"\f199"} -.oc-icon-wordpress:before, -.icon-wordpress:before {content:"\f19a"} -.oc-icon-openid:before, -.icon-openid:before {content:"\f19b"} -.oc-icon-institution:before, -.icon-institution:before, -.oc-icon-bank:before, -.icon-bank:before, -.oc-icon-university:before, -.icon-university:before {content:"\f19c"} -.oc-icon-mortar-board:before, -.icon-mortar-board:before, -.oc-icon-graduation-cap:before, -.icon-graduation-cap:before {content:"\f19d"} -.oc-icon-yahoo:before, -.icon-yahoo:before {content:"\f19e"} -.oc-icon-google:before, -.icon-google:before {content:"\f1a0"} -.oc-icon-reddit:before, -.icon-reddit:before {content:"\f1a1"} -.oc-icon-reddit-square:before, -.icon-reddit-square:before {content:"\f1a2"} -.oc-icon-stumbleupon-circle:before, -.icon-stumbleupon-circle:before {content:"\f1a3"} -.oc-icon-stumbleupon:before, -.icon-stumbleupon:before {content:"\f1a4"} -.oc-icon-delicious:before, -.icon-delicious:before {content:"\f1a5"} -.oc-icon-digg:before, -.icon-digg:before {content:"\f1a6"} -.oc-icon-pied-piper-pp:before, -.icon-pied-piper-pp:before {content:"\f1a7"} -.oc-icon-pied-piper-alt:before, -.icon-pied-piper-alt:before {content:"\f1a8"} -.oc-icon-drupal:before, -.icon-drupal:before {content:"\f1a9"} -.oc-icon-joomla:before, -.icon-joomla:before {content:"\f1aa"} -.oc-icon-language:before, -.icon-language:before {content:"\f1ab"} -.oc-icon-fax:before, -.icon-fax:before {content:"\f1ac"} -.oc-icon-building:before, -.icon-building:before {content:"\f1ad"} -.oc-icon-child:before, -.icon-child:before {content:"\f1ae"} -.oc-icon-paw:before, -.icon-paw:before {content:"\f1b0"} -.oc-icon-spoon:before, -.icon-spoon:before {content:"\f1b1"} -.oc-icon-cube:before, -.icon-cube:before {content:"\f1b2"} -.oc-icon-cubes:before, -.icon-cubes:before {content:"\f1b3"} -.oc-icon-behance:before, -.icon-behance:before {content:"\f1b4"} -.oc-icon-behance-square:before, -.icon-behance-square:before {content:"\f1b5"} -.oc-icon-steam:before, -.icon-steam:before {content:"\f1b6"} -.oc-icon-steam-square:before, -.icon-steam-square:before {content:"\f1b7"} -.oc-icon-recycle:before, -.icon-recycle:before {content:"\f1b8"} -.oc-icon-automobile:before, -.icon-automobile:before, -.oc-icon-car:before, -.icon-car:before {content:"\f1b9"} -.oc-icon-cab:before, -.icon-cab:before, -.oc-icon-taxi:before, -.icon-taxi:before {content:"\f1ba"} -.oc-icon-tree:before, -.icon-tree:before {content:"\f1bb"} -.oc-icon-spotify:before, -.icon-spotify:before {content:"\f1bc"} -.oc-icon-deviantart:before, -.icon-deviantart:before {content:"\f1bd"} -.oc-icon-soundcloud:before, -.icon-soundcloud:before {content:"\f1be"} -.oc-icon-database:before, -.icon-database:before {content:"\f1c0"} -.oc-icon-file-pdf-o:before, -.icon-file-pdf-o:before {content:"\f1c1"} -.oc-icon-file-word-o:before, -.icon-file-word-o:before {content:"\f1c2"} -.oc-icon-file-excel-o:before, -.icon-file-excel-o:before {content:"\f1c3"} -.oc-icon-file-powerpoint-o:before, -.icon-file-powerpoint-o:before {content:"\f1c4"} -.oc-icon-file-photo-o:before, -.icon-file-photo-o:before, -.oc-icon-file-picture-o:before, -.icon-file-picture-o:before, -.oc-icon-file-image-o:before, -.icon-file-image-o:before {content:"\f1c5"} -.oc-icon-file-zip-o:before, -.icon-file-zip-o:before, -.oc-icon-file-archive-o:before, -.icon-file-archive-o:before {content:"\f1c6"} -.oc-icon-file-sound-o:before, -.icon-file-sound-o:before, -.oc-icon-file-audio-o:before, -.icon-file-audio-o:before {content:"\f1c7"} -.oc-icon-file-movie-o:before, -.icon-file-movie-o:before, -.oc-icon-file-video-o:before, -.icon-file-video-o:before {content:"\f1c8"} -.oc-icon-file-code-o:before, -.icon-file-code-o:before {content:"\f1c9"} -.oc-icon-vine:before, -.icon-vine:before {content:"\f1ca"} -.oc-icon-codepen:before, -.icon-codepen:before {content:"\f1cb"} -.oc-icon-jsfiddle:before, -.icon-jsfiddle:before {content:"\f1cc"} -.oc-icon-life-bouy:before, -.icon-life-bouy:before, -.oc-icon-life-buoy:before, -.icon-life-buoy:before, -.oc-icon-life-saver:before, -.icon-life-saver:before, -.oc-icon-support:before, -.icon-support:before, -.oc-icon-life-ring:before, -.icon-life-ring:before {content:"\f1cd"} -.oc-icon-circle-o-notch:before, -.icon-circle-o-notch:before {content:"\f1ce"} -.oc-icon-ra:before, -.icon-ra:before, -.oc-icon-resistance:before, -.icon-resistance:before, -.oc-icon-rebel:before, -.icon-rebel:before {content:"\f1d0"} -.oc-icon-ge:before, -.icon-ge:before, -.oc-icon-empire:before, -.icon-empire:before {content:"\f1d1"} -.oc-icon-git-square:before, -.icon-git-square:before {content:"\f1d2"} -.oc-icon-git:before, -.icon-git:before {content:"\f1d3"} -.oc-icon-y-combinator-square:before, -.icon-y-combinator-square:before, -.oc-icon-yc-square:before, -.icon-yc-square:before, -.oc-icon-hacker-news:before, -.icon-hacker-news:before {content:"\f1d4"} -.oc-icon-tencent-weibo:before, -.icon-tencent-weibo:before {content:"\f1d5"} -.oc-icon-qq:before, -.icon-qq:before {content:"\f1d6"} -.oc-icon-wechat:before, -.icon-wechat:before, -.oc-icon-weixin:before, -.icon-weixin:before {content:"\f1d7"} -.oc-icon-send:before, -.icon-send:before, -.oc-icon-paper-plane:before, -.icon-paper-plane:before {content:"\f1d8"} -.oc-icon-send-o:before, -.icon-send-o:before, -.oc-icon-paper-plane-o:before, -.icon-paper-plane-o:before {content:"\f1d9"} -.oc-icon-history:before, -.icon-history:before {content:"\f1da"} -.oc-icon-circle-thin:before, -.icon-circle-thin:before {content:"\f1db"} -.oc-icon-header:before, -.icon-header:before {content:"\f1dc"} -.oc-icon-paragraph:before, -.icon-paragraph:before {content:"\f1dd"} -.oc-icon-sliders:before, -.icon-sliders:before {content:"\f1de"} -.oc-icon-share-alt:before, -.icon-share-alt:before {content:"\f1e0"} -.oc-icon-share-alt-square:before, -.icon-share-alt-square:before {content:"\f1e1"} -.oc-icon-bomb:before, -.icon-bomb:before {content:"\f1e2"} -.oc-icon-soccer-ball-o:before, -.icon-soccer-ball-o:before, -.oc-icon-futbol-o:before, -.icon-futbol-o:before {content:"\f1e3"} -.oc-icon-tty:before, -.icon-tty:before {content:"\f1e4"} -.oc-icon-binoculars:before, -.icon-binoculars:before {content:"\f1e5"} -.oc-icon-plug:before, -.icon-plug:before {content:"\f1e6"} -.oc-icon-slideshare:before, -.icon-slideshare:before {content:"\f1e7"} -.oc-icon-twitch:before, -.icon-twitch:before {content:"\f1e8"} -.oc-icon-yelp:before, -.icon-yelp:before {content:"\f1e9"} -.oc-icon-newspaper-o:before, -.icon-newspaper-o:before {content:"\f1ea"} -.oc-icon-wifi:before, -.icon-wifi:before {content:"\f1eb"} -.oc-icon-calculator:before, -.icon-calculator:before {content:"\f1ec"} -.oc-icon-paypal:before, -.icon-paypal:before {content:"\f1ed"} -.oc-icon-google-wallet:before, -.icon-google-wallet:before {content:"\f1ee"} -.oc-icon-cc-visa:before, -.icon-cc-visa:before {content:"\f1f0"} -.oc-icon-cc-mastercard:before, -.icon-cc-mastercard:before {content:"\f1f1"} -.oc-icon-cc-discover:before, -.icon-cc-discover:before {content:"\f1f2"} -.oc-icon-cc-amex:before, -.icon-cc-amex:before {content:"\f1f3"} -.oc-icon-cc-paypal:before, -.icon-cc-paypal:before {content:"\f1f4"} -.oc-icon-cc-stripe:before, -.icon-cc-stripe:before {content:"\f1f5"} -.oc-icon-bell-slash:before, -.icon-bell-slash:before {content:"\f1f6"} -.oc-icon-bell-slash-o:before, -.icon-bell-slash-o:before {content:"\f1f7"} -.oc-icon-trash:before, -.icon-trash:before {content:"\f1f8"} -.oc-icon-copyright:before, -.icon-copyright:before {content:"\f1f9"} -.oc-icon-at:before, -.icon-at:before {content:"\f1fa"} -.oc-icon-eyedropper:before, -.icon-eyedropper:before {content:"\f1fb"} -.oc-icon-paint-brush:before, -.icon-paint-brush:before {content:"\f1fc"} -.oc-icon-birthday-cake:before, -.icon-birthday-cake:before {content:"\f1fd"} -.oc-icon-area-chart:before, -.icon-area-chart:before {content:"\f1fe"} -.oc-icon-pie-chart:before, -.icon-pie-chart:before {content:"\f200"} -.oc-icon-line-chart:before, -.icon-line-chart:before {content:"\f201"} -.oc-icon-lastfm:before, -.icon-lastfm:before {content:"\f202"} -.oc-icon-lastfm-square:before, -.icon-lastfm-square:before {content:"\f203"} -.oc-icon-toggle-off:before, -.icon-toggle-off:before {content:"\f204"} -.oc-icon-toggle-on:before, -.icon-toggle-on:before {content:"\f205"} -.oc-icon-bicycle:before, -.icon-bicycle:before {content:"\f206"} -.oc-icon-bus:before, -.icon-bus:before {content:"\f207"} -.oc-icon-ioxhost:before, -.icon-ioxhost:before {content:"\f208"} -.oc-icon-angellist:before, -.icon-angellist:before {content:"\f209"} -.oc-icon-cc:before, -.icon-cc:before {content:"\f20a"} -.oc-icon-shekel:before, -.icon-shekel:before, -.oc-icon-sheqel:before, -.icon-sheqel:before, -.oc-icon-ils:before, -.icon-ils:before {content:"\f20b"} -.oc-icon-meanpath:before, -.icon-meanpath:before {content:"\f20c"} -.oc-icon-buysellads:before, -.icon-buysellads:before {content:"\f20d"} -.oc-icon-connectdevelop:before, -.icon-connectdevelop:before {content:"\f20e"} -.oc-icon-dashcube:before, -.icon-dashcube:before {content:"\f210"} -.oc-icon-forumbee:before, -.icon-forumbee:before {content:"\f211"} -.oc-icon-leanpub:before, -.icon-leanpub:before {content:"\f212"} -.oc-icon-sellsy:before, -.icon-sellsy:before {content:"\f213"} -.oc-icon-shirtsinbulk:before, -.icon-shirtsinbulk:before {content:"\f214"} -.oc-icon-simplybuilt:before, -.icon-simplybuilt:before {content:"\f215"} -.oc-icon-skyatlas:before, -.icon-skyatlas:before {content:"\f216"} -.oc-icon-cart-plus:before, -.icon-cart-plus:before {content:"\f217"} -.oc-icon-cart-arrow-down:before, -.icon-cart-arrow-down:before {content:"\f218"} -.oc-icon-diamond:before, -.icon-diamond:before {content:"\f219"} -.oc-icon-ship:before, -.icon-ship:before {content:"\f21a"} -.oc-icon-user-secret:before, -.icon-user-secret:before {content:"\f21b"} -.oc-icon-motorcycle:before, -.icon-motorcycle:before {content:"\f21c"} -.oc-icon-street-view:before, -.icon-street-view:before {content:"\f21d"} -.oc-icon-heartbeat:before, -.icon-heartbeat:before {content:"\f21e"} -.oc-icon-venus:before, -.icon-venus:before {content:"\f221"} -.oc-icon-mars:before, -.icon-mars:before {content:"\f222"} -.oc-icon-mercury:before, -.icon-mercury:before {content:"\f223"} -.oc-icon-intersex:before, -.icon-intersex:before, -.oc-icon-transgender:before, -.icon-transgender:before {content:"\f224"} -.oc-icon-transgender-alt:before, -.icon-transgender-alt:before {content:"\f225"} -.oc-icon-venus-double:before, -.icon-venus-double:before {content:"\f226"} -.oc-icon-mars-double:before, -.icon-mars-double:before {content:"\f227"} -.oc-icon-venus-mars:before, -.icon-venus-mars:before {content:"\f228"} -.oc-icon-mars-stroke:before, -.icon-mars-stroke:before {content:"\f229"} -.oc-icon-mars-stroke-v:before, -.icon-mars-stroke-v:before {content:"\f22a"} -.oc-icon-mars-stroke-h:before, -.icon-mars-stroke-h:before {content:"\f22b"} -.oc-icon-neuter:before, -.icon-neuter:before {content:"\f22c"} -.oc-icon-genderless:before, -.icon-genderless:before {content:"\f22d"} -.oc-icon-facebook-official:before, -.icon-facebook-official:before {content:"\f230"} -.oc-icon-pinterest-p:before, -.icon-pinterest-p:before {content:"\f231"} -.oc-icon-whatsapp:before, -.icon-whatsapp:before {content:"\f232"} -.oc-icon-server:before, -.icon-server:before {content:"\f233"} -.oc-icon-user-plus:before, -.icon-user-plus:before {content:"\f234"} -.oc-icon-user-times:before, -.icon-user-times:before {content:"\f235"} -.oc-icon-hotel:before, -.icon-hotel:before, -.oc-icon-bed:before, -.icon-bed:before {content:"\f236"} -.oc-icon-viacoin:before, -.icon-viacoin:before {content:"\f237"} -.oc-icon-train:before, -.icon-train:before {content:"\f238"} -.oc-icon-subway:before, -.icon-subway:before {content:"\f239"} -.oc-icon-medium:before, -.icon-medium:before {content:"\f23a"} -.oc-icon-yc:before, -.icon-yc:before, -.oc-icon-y-combinator:before, -.icon-y-combinator:before {content:"\f23b"} -.oc-icon-optin-monster:before, -.icon-optin-monster:before {content:"\f23c"} -.oc-icon-opencart:before, -.icon-opencart:before {content:"\f23d"} -.oc-icon-expeditedssl:before, -.icon-expeditedssl:before {content:"\f23e"} -.oc-icon-battery-4:before, -.icon-battery-4:before, -.oc-icon-battery:before, -.icon-battery:before, -.oc-icon-battery-full:before, -.icon-battery-full:before {content:"\f240"} -.oc-icon-battery-3:before, -.icon-battery-3:before, -.oc-icon-battery-three-quarters:before, -.icon-battery-three-quarters:before {content:"\f241"} -.oc-icon-battery-2:before, -.icon-battery-2:before, -.oc-icon-battery-half:before, -.icon-battery-half:before {content:"\f242"} -.oc-icon-battery-1:before, -.icon-battery-1:before, -.oc-icon-battery-quarter:before, -.icon-battery-quarter:before {content:"\f243"} -.oc-icon-battery-0:before, -.icon-battery-0:before, -.oc-icon-battery-empty:before, -.icon-battery-empty:before {content:"\f244"} -.oc-icon-mouse-pointer:before, -.icon-mouse-pointer:before {content:"\f245"} -.oc-icon-i-cursor:before, -.icon-i-cursor:before {content:"\f246"} -.oc-icon-object-group:before, -.icon-object-group:before {content:"\f247"} -.oc-icon-object-ungroup:before, -.icon-object-ungroup:before {content:"\f248"} -.oc-icon-sticky-note:before, -.icon-sticky-note:before {content:"\f249"} -.oc-icon-sticky-note-o:before, -.icon-sticky-note-o:before {content:"\f24a"} -.oc-icon-cc-jcb:before, -.icon-cc-jcb:before {content:"\f24b"} -.oc-icon-cc-diners-club:before, -.icon-cc-diners-club:before {content:"\f24c"} -.oc-icon-clone:before, -.icon-clone:before {content:"\f24d"} -.oc-icon-balance-scale:before, -.icon-balance-scale:before {content:"\f24e"} -.oc-icon-hourglass-o:before, -.icon-hourglass-o:before {content:"\f250"} -.oc-icon-hourglass-1:before, -.icon-hourglass-1:before, -.oc-icon-hourglass-start:before, -.icon-hourglass-start:before {content:"\f251"} -.oc-icon-hourglass-2:before, -.icon-hourglass-2:before, -.oc-icon-hourglass-half:before, -.icon-hourglass-half:before {content:"\f252"} -.oc-icon-hourglass-3:before, -.icon-hourglass-3:before, -.oc-icon-hourglass-end:before, -.icon-hourglass-end:before {content:"\f253"} -.oc-icon-hourglass:before, -.icon-hourglass:before {content:"\f254"} -.oc-icon-hand-grab-o:before, -.icon-hand-grab-o:before, -.oc-icon-hand-rock-o:before, -.icon-hand-rock-o:before {content:"\f255"} -.oc-icon-hand-stop-o:before, -.icon-hand-stop-o:before, -.oc-icon-hand-paper-o:before, -.icon-hand-paper-o:before {content:"\f256"} -.oc-icon-hand-scissors-o:before, -.icon-hand-scissors-o:before {content:"\f257"} -.oc-icon-hand-lizard-o:before, -.icon-hand-lizard-o:before {content:"\f258"} -.oc-icon-hand-spock-o:before, -.icon-hand-spock-o:before {content:"\f259"} -.oc-icon-hand-pointer-o:before, -.icon-hand-pointer-o:before {content:"\f25a"} -.oc-icon-hand-peace-o:before, -.icon-hand-peace-o:before {content:"\f25b"} -.oc-icon-trademark:before, -.icon-trademark:before {content:"\f25c"} -.oc-icon-registered:before, -.icon-registered:before {content:"\f25d"} -.oc-icon-creative-commons:before, -.icon-creative-commons:before {content:"\f25e"} -.oc-icon-gg:before, -.icon-gg:before {content:"\f260"} -.oc-icon-gg-circle:before, -.icon-gg-circle:before {content:"\f261"} -.oc-icon-tripadvisor:before, -.icon-tripadvisor:before {content:"\f262"} -.oc-icon-odnoklassniki:before, -.icon-odnoklassniki:before {content:"\f263"} -.oc-icon-odnoklassniki-square:before, -.icon-odnoklassniki-square:before {content:"\f264"} -.oc-icon-get-pocket:before, -.icon-get-pocket:before {content:"\f265"} -.oc-icon-wikipedia-w:before, -.icon-wikipedia-w:before {content:"\f266"} -.oc-icon-safari:before, -.icon-safari:before {content:"\f267"} -.oc-icon-chrome:before, -.icon-chrome:before {content:"\f268"} -.oc-icon-firefox:before, -.icon-firefox:before {content:"\f269"} -.oc-icon-opera:before, -.icon-opera:before {content:"\f26a"} -.oc-icon-internet-explorer:before, -.icon-internet-explorer:before {content:"\f26b"} -.oc-icon-tv:before, -.icon-tv:before, -.oc-icon-television:before, -.icon-television:before {content:"\f26c"} -.oc-icon-contao:before, -.icon-contao:before {content:"\f26d"} -.oc-icon-500px:before, -.icon-500px:before {content:"\f26e"} -.oc-icon-amazon:before, -.icon-amazon:before {content:"\f270"} -.oc-icon-calendar-plus-o:before, -.icon-calendar-plus-o:before {content:"\f271"} -.oc-icon-calendar-minus-o:before, -.icon-calendar-minus-o:before {content:"\f272"} -.oc-icon-calendar-times-o:before, -.icon-calendar-times-o:before {content:"\f273"} -.oc-icon-calendar-check-o:before, -.icon-calendar-check-o:before {content:"\f274"} -.oc-icon-industry:before, -.icon-industry:before {content:"\f275"} -.oc-icon-map-pin:before, -.icon-map-pin:before {content:"\f276"} -.oc-icon-map-signs:before, -.icon-map-signs:before {content:"\f277"} -.oc-icon-map-o:before, -.icon-map-o:before {content:"\f278"} -.oc-icon-map:before, -.icon-map:before {content:"\f279"} -.oc-icon-commenting:before, -.icon-commenting:before {content:"\f27a"} -.oc-icon-commenting-o:before, -.icon-commenting-o:before {content:"\f27b"} -.oc-icon-houzz:before, -.icon-houzz:before {content:"\f27c"} -.oc-icon-vimeo:before, -.icon-vimeo:before {content:"\f27d"} -.oc-icon-black-tie:before, -.icon-black-tie:before {content:"\f27e"} -.oc-icon-fonticons:before, -.icon-fonticons:before {content:"\f280"} -.oc-icon-reddit-alien:before, -.icon-reddit-alien:before {content:"\f281"} -.oc-icon-edge:before, -.icon-edge:before {content:"\f282"} -.oc-icon-credit-card-alt:before, -.icon-credit-card-alt:before {content:"\f283"} -.oc-icon-codiepie:before, -.icon-codiepie:before {content:"\f284"} -.oc-icon-modx:before, -.icon-modx:before {content:"\f285"} -.oc-icon-fort-awesome:before, -.icon-fort-awesome:before {content:"\f286"} -.oc-icon-usb:before, -.icon-usb:before {content:"\f287"} -.oc-icon-product-hunt:before, -.icon-product-hunt:before {content:"\f288"} -.oc-icon-mixcloud:before, -.icon-mixcloud:before {content:"\f289"} -.oc-icon-scribd:before, -.icon-scribd:before {content:"\f28a"} -.oc-icon-pause-circle:before, -.icon-pause-circle:before {content:"\f28b"} -.oc-icon-pause-circle-o:before, -.icon-pause-circle-o:before {content:"\f28c"} -.oc-icon-stop-circle:before, -.icon-stop-circle:before {content:"\f28d"} -.oc-icon-stop-circle-o:before, -.icon-stop-circle-o:before {content:"\f28e"} -.oc-icon-shopping-bag:before, -.icon-shopping-bag:before {content:"\f290"} -.oc-icon-shopping-basket:before, -.icon-shopping-basket:before {content:"\f291"} -.oc-icon-hashtag:before, -.icon-hashtag:before {content:"\f292"} -.oc-icon-bluetooth:before, -.icon-bluetooth:before {content:"\f293"} -.oc-icon-bluetooth-b:before, -.icon-bluetooth-b:before {content:"\f294"} -.oc-icon-percent:before, -.icon-percent:before {content:"\f295"} -.oc-icon-gitlab:before, -.icon-gitlab:before {content:"\f296"} -.oc-icon-wpbeginner:before, -.icon-wpbeginner:before {content:"\f297"} -.oc-icon-wpforms:before, -.icon-wpforms:before {content:"\f298"} -.oc-icon-envira:before, -.icon-envira:before {content:"\f299"} -.oc-icon-universal-access:before, -.icon-universal-access:before {content:"\f29a"} -.oc-icon-wheelchair-alt:before, -.icon-wheelchair-alt:before {content:"\f29b"} -.oc-icon-question-circle-o:before, -.icon-question-circle-o:before {content:"\f29c"} -.oc-icon-blind:before, -.icon-blind:before {content:"\f29d"} -.oc-icon-audio-description:before, -.icon-audio-description:before {content:"\f29e"} -.oc-icon-volume-control-phone:before, -.icon-volume-control-phone:before {content:"\f2a0"} -.oc-icon-braille:before, -.icon-braille:before {content:"\f2a1"} -.oc-icon-assistive-listening-systems:before, -.icon-assistive-listening-systems:before {content:"\f2a2"} -.oc-icon-asl-interpreting:before, -.icon-asl-interpreting:before, -.oc-icon-american-sign-language-interpreting:before, -.icon-american-sign-language-interpreting:before {content:"\f2a3"} -.oc-icon-deafness:before, -.icon-deafness:before, -.oc-icon-hard-of-hearing:before, -.icon-hard-of-hearing:before, -.oc-icon-deaf:before, -.icon-deaf:before {content:"\f2a4"} -.oc-icon-glide:before, -.icon-glide:before {content:"\f2a5"} -.oc-icon-glide-g:before, -.icon-glide-g:before {content:"\f2a6"} -.oc-icon-signing:before, -.icon-signing:before, -.oc-icon-sign-language:before, -.icon-sign-language:before {content:"\f2a7"} -.oc-icon-low-vision:before, -.icon-low-vision:before {content:"\f2a8"} -.oc-icon-viadeo:before, -.icon-viadeo:before {content:"\f2a9"} -.oc-icon-viadeo-square:before, -.icon-viadeo-square:before {content:"\f2aa"} -.oc-icon-snapchat:before, -.icon-snapchat:before {content:"\f2ab"} -.oc-icon-snapchat-ghost:before, -.icon-snapchat-ghost:before {content:"\f2ac"} -.oc-icon-snapchat-square:before, -.icon-snapchat-square:before {content:"\f2ad"} -.oc-icon-pied-piper:before, -.icon-pied-piper:before {content:"\f2ae"} -.oc-icon-first-order:before, -.icon-first-order:before {content:"\f2b0"} -.oc-icon-yoast:before, -.icon-yoast:before {content:"\f2b1"} -.oc-icon-themeisle:before, -.icon-themeisle:before {content:"\f2b2"} -.oc-icon-google-plus-circle:before, -.icon-google-plus-circle:before, -.oc-icon-google-plus-official:before, -.icon-google-plus-official:before {content:"\f2b3"} -.oc-icon-fa:before, -.icon-fa:before, -.oc-icon-font-awesome:before, -.icon-font-awesome:before {content:"\f2b4"} -.oc-icon-handshake-o:before, -.icon-handshake-o:before {content:"\f2b5"} -.oc-icon-envelope-open:before, -.icon-envelope-open:before {content:"\f2b6"} -.oc-icon-envelope-open-o:before, -.icon-envelope-open-o:before {content:"\f2b7"} -.oc-icon-linode:before, -.icon-linode:before {content:"\f2b8"} -.oc-icon-address-book:before, -.icon-address-book:before {content:"\f2b9"} -.oc-icon-address-book-o:before, -.icon-address-book-o:before {content:"\f2ba"} -.oc-icon-vcard:before, -.icon-vcard:before, -.oc-icon-address-card:before, -.icon-address-card:before {content:"\f2bb"} -.oc-icon-vcard-o:before, -.icon-vcard-o:before, -.oc-icon-address-card-o:before, -.icon-address-card-o:before {content:"\f2bc"} -.oc-icon-user-circle:before, -.icon-user-circle:before {content:"\f2bd"} -.oc-icon-user-circle-o:before, -.icon-user-circle-o:before {content:"\f2be"} -.oc-icon-user-o:before, -.icon-user-o:before {content:"\f2c0"} -.oc-icon-id-badge:before, -.icon-id-badge:before {content:"\f2c1"} -.oc-icon-drivers-license:before, -.icon-drivers-license:before, -.oc-icon-id-card:before, -.icon-id-card:before {content:"\f2c2"} -.oc-icon-drivers-license-o:before, -.icon-drivers-license-o:before, -.oc-icon-id-card-o:before, -.icon-id-card-o:before {content:"\f2c3"} -.oc-icon-quora:before, -.icon-quora:before {content:"\f2c4"} -.oc-icon-free-code-camp:before, -.icon-free-code-camp:before {content:"\f2c5"} -.oc-icon-telegram:before, -.icon-telegram:before {content:"\f2c6"} -.oc-icon-thermometer-4:before, -.icon-thermometer-4:before, -.oc-icon-thermometer:before, -.icon-thermometer:before, -.oc-icon-thermometer-full:before, -.icon-thermometer-full:before {content:"\f2c7"} -.oc-icon-thermometer-3:before, -.icon-thermometer-3:before, -.oc-icon-thermometer-three-quarters:before, -.icon-thermometer-three-quarters:before {content:"\f2c8"} -.oc-icon-thermometer-2:before, -.icon-thermometer-2:before, -.oc-icon-thermometer-half:before, -.icon-thermometer-half:before {content:"\f2c9"} -.oc-icon-thermometer-1:before, -.icon-thermometer-1:before, -.oc-icon-thermometer-quarter:before, -.icon-thermometer-quarter:before {content:"\f2ca"} -.oc-icon-thermometer-0:before, -.icon-thermometer-0:before, -.oc-icon-thermometer-empty:before, -.icon-thermometer-empty:before {content:"\f2cb"} -.oc-icon-shower:before, -.icon-shower:before {content:"\f2cc"} -.oc-icon-bathtub:before, -.icon-bathtub:before, -.oc-icon-s15:before, -.icon-s15:before, -.oc-icon-bath:before, -.icon-bath:before {content:"\f2cd"} -.oc-icon-podcast:before, -.icon-podcast:before {content:"\f2ce"} -.oc-icon-window-maximize:before, -.icon-window-maximize:before {content:"\f2d0"} -.oc-icon-window-minimize:before, -.icon-window-minimize:before {content:"\f2d1"} -.oc-icon-window-restore:before, -.icon-window-restore:before {content:"\f2d2"} -.oc-icon-times-rectangle:before, -.icon-times-rectangle:before, -.oc-icon-window-close:before, -.icon-window-close:before {content:"\f2d3"} -.oc-icon-times-rectangle-o:before, -.icon-times-rectangle-o:before, -.oc-icon-window-close-o:before, -.icon-window-close-o:before {content:"\f2d4"} -.oc-icon-bandcamp:before, -.icon-bandcamp:before {content:"\f2d5"} -.oc-icon-grav:before, -.icon-grav:before {content:"\f2d6"} -.oc-icon-etsy:before, -.icon-etsy:before {content:"\f2d7"} -.oc-icon-imdb:before, -.icon-imdb:before {content:"\f2d8"} -.oc-icon-ravelry:before, -.icon-ravelry:before {content:"\f2d9"} -.oc-icon-eercast:before, -.icon-eercast:before {content:"\f2da"} -.oc-icon-microchip:before, -.icon-microchip:before {content:"\f2db"} -.oc-icon-snowflake-o:before, -.icon-snowflake-o:before {content:"\f2dc"} -.oc-icon-superpowers:before, -.icon-superpowers:before {content:"\f2dd"} -.oc-icon-wpexplorer:before, -.icon-wpexplorer:before {content:"\f2de"} -.oc-icon-meetup:before, -.icon-meetup:before {content:"\f2e0"} -.close {float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;font-family:sans-serif;opacity:0.2;filter:alpha(opacity=20)} +blockquote:after{content:""} +address{margin-bottom:20px;font-style:normal;line-height:1.42857143} +.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000;text-shadow:0 1px 0 #fff;font-family:sans-serif;opacity:0.2;filter:alpha(opacity=20)} .close:hover, -.close:focus {color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)} -button.close {padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none} -@font-face {font-family:'FontAwesome';src:url('../ui/font/fontawesome-webfont.eot?v=1.0.1');src:url('../ui/font/fontawesome-webfont.eot?#iefix&v=1.0.1') format('embedded-opentype'),url('../ui/font/fontawesome-webfont.woff?v=1.0.1') format('woff'),url('../ui/font/fontawesome-webfont.ttf?v=1.0.1') format('truetype'),url('../ui/font/fontawesome-webfont.svg#fontawesomeregular?v=1.0.1') format('svg');font-weight:normal;font-style:normal} +.close:focus{color:#000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)} +button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none} +@font-face{font-family:'Font Awesome 6 Free';font-style:normal;font-weight:400;font-display:block;src:url('../ui/font/fa-regular-400.woff2?v=2.0.0') format('woff2'),url('../ui/font/fa-regular-400.ttf?v=2.0.0') format('truetype')} +@font-face{font-family:'Font Awesome 6 Free';font-style:normal;font-weight:900;font-display:block;src:url('../ui/font/fa-solid-900.woff2?v=2.0.0') format('woff2'),url('../ui/font/fa-solid-900.ttf?v=2.0.0') format('truetype')} +@font-face{font-family:'Font Awesome 6 Brands';font-style:normal;font-weight:400;font-display:block;src:url('../ui/font/fa-brands-400.woff2?v=2.0.0') format('woff2'),url('../ui/font/fa-brands-400.ttf?v=2.0.0') format('truetype')} [class^="icon-"], -[class*=" icon-"] {font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0} -[class^="icon-"]:before, -[class*=" icon-"]:before {text-decoration:inherit;display:inline-block;speak:none} +[class*=" icon-"]{font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;display:inline;width:auto;height:auto;line-height:normal;vertical-align:baseline;background-image:none;background-position:0% 0%;background-repeat:repeat;margin-top:0} +[class^="icon-"]::before, +[class*=" icon-"]::before{text-decoration:inherit;display:inline-block} +[class^="icon-"].icon-border, +[class*=" icon-"].icon-border{border-color:#eee;border-radius:0.1em;border-style:solid;border-width:0.08em;padding:0.2em 0.25em 0.15em} [class^="icon-"].pull-left, -[class*=" icon-"].pull-left {margin-right:.3em} +[class*=" icon-"].pull-left{margin-right:.3em} [class^="icon-"].pull-right, -[class*=" icon-"].pull-right {margin-left:.3em} +[class*=" icon-"].pull-right{margin-left:.3em} +.far, +.icon-regular, +.wn-icon-regular, +.oc-icon-regular{font-family:'Font Awesome 6 Free';font-weight:400} +.fad, +.icon-solid, +.wn-icon-solid, +.oc-icon-solid{font-family:'Font Awesome 6 Free';font-weight:900} +.fab, +.icon-brands, +.wn-icon-brands, +.oc-icon-brands{font-family:'Font Awesome 6 Brands';font-weight:400} [class^="wn-icon-"]:before, [class*=" wn-icon-"]:before, [class^="oc-icon-"]:before, -[class*=" oc-icon-"]:before {display:inline-block;margin-right:8px;font-family:FontAwesome;font-weight:normal;font-style:normal;text-decoration:inherit;-webkit-font-smoothing:antialiased;vertical-align:baseline} +[class*=" oc-icon-"]:before{display:inline-block;margin-right:8px;font-family:"Font Awesome 6 Free";font-weight:900;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;vertical-align:baseline} [class^="wn-icon-"].empty:before, [class*=" wn-icon-"].empty:before, [class^="oc-icon-"].empty:before, -[class*=" oc-icon-"].empty:before {margin-right:0} -.icon-lg {font-size:1.33333333em;line-height:0.75em;vertical-align:-15%} -.icon-2x {font-size:2em} -.icon-3x {font-size:3em} -.icon-4x {font-size:4em} -.icon-5x {font-size:5em} -body {padding-top:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";background:#f3f3f3;color:#405261} +[class*=" oc-icon-"].empty:before{margin-right:0} +.icon-1x{font-size:1em} +.icon-2x{font-size:2em} +.icon-3x{font-size:3em} +.icon-4x{font-size:4em} +.icon-5x{font-size:5em} +.icon-6x{font-size:6em} +.icon-7x{font-size:7em} +.icon-8x{font-size:8em} +.icon-9x{font-size:9em} +.icon-10x{font-size:10em} +.icon-2xs{font-size:0.625em;line-height:0.1em;vertical-align:0.225em} +.icon-xs{font-size:0.75em;line-height:0.08333333em;vertical-align:0.125em} +.icon-sm{font-size:0.875em;line-height:0.07142857em;vertical-align:0.05357143em} +.icon-lg{font-size:1.25em;line-height:0.05em;vertical-align:-0.075em} +.icon-xl{font-size:1.5em;line-height:0.04166667em;vertical-align:-0.125em} +.icon-2xl{font-size:2em;line-height:0.03125em;vertical-align:-0.1875em} +.icon-ul{list-style-type:none;margin-left:2.5em;padding-left:0} +.icon-ul>li{position:relative} +.icon-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit} +.icon-fw{text-align:center;width:1.25em} +.icon-beat{animation-name:icon-beat;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,ease-in-out)} +.icon-bounce{animation-name:icon-beat;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(0.280,0.840,0.420,1))} +.icon-fade{animation-name:icon-fade;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(.4,0,.6,1))} +.icon-beat-fade{animation-name:icon-beat-fade;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,cubic-bezier(.4,0,.6,1))} +.icon-flip{animation-name:icon-flip;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,ease-in-out)} +.icon-shake{animation-name:icon-shake;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,1s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,ease-in-out)} +.icon-spin{animation-name:icon-spin;animation-delay:var(--icon-animation-delay,0);animation-direction:var(--icon-animation-direction,normal);animation-duration:var(--icon-animation-duration,2s);animation-iteration-count:var(--icon-animation-iteration-count,infinite);animation-timing-function:var(--icon-animation-timing,linear)} +.icon-spin-reverse{--icon-animation-direction:reverse} +@media (prefers-reduced-motion:reduce){.icon-beat,.icon-bounce,.icon-fade,.icon-beat-fade,.icon-flip,.icon-pulse,.icon-shake,.icon-spin,.icon-spin-pulse{animation-delay:-1ms;animation-duration:1ms;animation-iteration-count:1;transition-delay:0s;transition-duration:0s}} +@keyframes icon-beat{0%,90%{transform:scale(1)}45%{transform:scale(var(--icon-beat-scale,1.25))}} +@keyframes icon-bounce{0%{transform:scale(1,1) translateY(0)}10%{transform:scale(var(--#{$fa-css-prefix}-bounce-start-scale-x,1.1),var(--#{$fa-css-prefix}-bounce-start-scale-y,0.9)) translateY(0)}30%{transform:scale(var(--#{$fa-css-prefix}-bounce-jump-scale-x,0.9),var(--#{$fa-css-prefix}-bounce-jump-scale-y,1.1)) translateY(var(--#{$fa-css-prefix}-bounce-height,-0.5em))}50%{transform:scale(var(--#{$fa-css-prefix}-bounce-land-scale-x,1.05),var(--#{$fa-css-prefix}-bounce-land-scale-y,0.95)) translateY(0)}57%{transform:scale(1,1) translateY(var(--#{$fa-css-prefix}-bounce-rebound,-0.125em))}64%{transform:scale(1,1) translateY(0)}100%{transform:scale(1,1) translateY(0)}} +@keyframes icon-fade{50%{opacity:var(--icon-fade-opacity,0.4)}} +@keyframes icon-beat-fade{0%,100%{opacity:var(--icon-beat-fade-opacity,0.4);transform:scale(1)}50%{opacity:1;transform:scale(var(--icon-beat-fade-scale,1.125))}} +@keyframes icon-flip{50%{transform:rotate3d(var(--icon-flip-x,0),var(--icon-flip-y,1),var(--icon-flip-z,0),var(--icon-flip-angle,-180deg))}} +@keyframes icon-shake{0%{transform:rotate(-15deg)}4%{transform:rotate(15deg)}8%,24%{transform:rotate(-18deg)}12%,28%{transform:rotate(18deg)}16%{transform:rotate(-22deg)}20%{transform:rotate(22deg)}32%{transform:rotate(-12deg)}36%{transform:rotate(12deg)}40%,100%{transform:rotate(0deg)}} +@keyframes icon-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}} +.icon-rotate-90{transform:rotate(90deg)} +.icon-rotate-180{transform:rotate(180deg)} +.icon-rotate-270{transform:rotate(270deg)} +.icon-flip-horizontal{transform:scale(-1,1)} +.icon-flip-vertical{transform:scale(1,-1)} +.icon-flip-both, +.icon-flip-horizontal.icon-flip-vertical{transform:scale(-1,-1)} +.icon-rotate-by{transform:rotate(var(--icon-rotate-angle,none))} +.sr-only, +.icon-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} +.sr-only-focusable:not(:focus), +.icon-sr-only-focusable:not(:focus){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0} +body{padding-top:20px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";background:#f3f3f3;color:#405261} h1, h2, h3, h4, -h5 {font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-transform:uppercase} -h1 {font-weight:300;font-size:50px;margin-bottom:15px} -h1 i[class^="icon-"]:before {font-size:46px} -i[class^="icon-"].warning {color:#c84530} -h3 {font-size:24px;font-weight:300} -p.lead {font-size:16px;font-weight:300} -ul.indicators {list-style:none;padding:0;margin:0} +h5{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";text-transform:uppercase} +h1{font-weight:300;font-size:50px;margin-bottom:15px} +h1 i[class^="icon-"]:before{font-size:46px} +i[class^="icon-"].warning{color:#c84530} +h3{font-size:24px;font-weight:300} +p.lead{font-size:16px;font-weight:300} +ul.indicators{list-style:none;padding:0;margin:0} ul.indicators:before, -ul.indicators:after {content:" ";display:table} -ul.indicators:after {clear:both} +ul.indicators:after{content:" ";display:table} +ul.indicators:after{clear:both} ul.indicators:before, -ul.indicators:after {content:" ";display:table} -ul.indicators:after {clear:both} -ul.indicators li {float:left;margin-right:50px} -ul.indicators li:last-child {margin-right:0} -ul.indicators li h3 {font-weight:300;font-size:12px;line-height:100%;margin-bottom:7px} -ul.indicators li p {font-size:20px;font-weight:600;word-wrap:break-word}table.data-table {width:100%;font-size:12px;border-collapse:collapse;margin-bottom:20px} -table.data-table tr:first-child th {border-top:0} -table.data-table tr:last-child td {border-bottom:0} +ul.indicators:after{content:" ";display:table} +ul.indicators:after{clear:both} +ul.indicators li{float:left;margin-right:50px} +ul.indicators li:last-child{margin-right:0} +ul.indicators li h3{font-weight:300;font-size:12px;line-height:100%;margin-bottom:7px} +ul.indicators li p{font-size:20px;font-weight:600;word-wrap:break-word}table.data-table{width:100%;font-size:12px;border-collapse:collapse;margin-bottom:20px} +table.data-table tr:first-child th{border-top:0} +table.data-table tr:last-child td{border-bottom:0} table.data-table tr td:first-child, -table.data-table tr th:first-child {border-left:0} +table.data-table tr th:first-child{border-left:0} table.data-table tr td:last-child, -table.data-table tr th:last-child {border-right:0} +table.data-table tr th:last-child{border-right:0} table.data-table td, -table.data-table th {vertical-align:top;text-align:left;font-weight:300;border:1px solid #fff;padding:6px 8px} +table.data-table th{vertical-align:top;text-align:left;font-weight:300;border:1px solid #fff;padding:6px 8px} table.data-table td.right, -table.data-table th.right {text-align:right} +table.data-table th.right{text-align:right} table.data-table thead th, -table.data-table thead th {text-transform:uppercase;background:#7b8892;color:white} +table.data-table thead th{text-transform:uppercase;background:#7b8892;color:white} table.data-table tbody td, -table.data-table tbody th {background-color:white} +table.data-table tbody th{background-color:white} table.data-table tbody tr:nth-child(2n) td, -table.data-table tbody tr:nth-child(2n) th {background-color:#d8d9db}.exception-name-block {margin-bottom:15px} +table.data-table tbody tr:nth-child(2n) th{background-color:#d8d9db}.exception-name-block{margin-bottom:15px} .exception-name-block div, -.exception-name-block p {font-weight:300;padding:10px 15px} -.exception-name-block div {background:#c84530;color:white;position:relative} -.exception-name-block div:after {position:absolute;display:block;content:" ";bottom:-6px;left:20px;width:0;height:0;border-style:solid;border-width:8px 8px 0 8px;border-color:#c84530 transparent transparent transparent} -.exception-name-block p {background:#ebebeb;margin-bottom:0} -.exception-name-block p span {color:#899fb1} -.syntaxhighlighter {margin-bottom:30px;background:white;font:12px/170% Monaco,Menlo,'Ubuntu Mono','Droid Sans Mono','Courier New',monospace !important} -.syntaxhighlighter table {width:100%;table-layout:fixed} -.syntaxhighlighter table td {padding:5px 0} -.syntaxhighlighter table td.gutter {padding:5px 10px;width:35px;background:#7b8892;color:white} -.syntaxhighlighter table td.code {overflow-x:auto;width:100% !important} -.syntaxhighlighter table td.code .container {width:100% !important;padding:0} -.syntaxhighlighter table td.code .container div.line {white-space:nowrap;padding-left:10px} -.syntaxhighlighter table td.code .container div.line.highlighted {background:#c84530;color:white} -.syntaxhighlighter table td.code .container div.line code {font:12px/170% Monaco,Menlo,'Ubuntu Mono','Droid Sans Mono','Courier New',monospace !important} \ No newline at end of file +.exception-name-block p{font-weight:300;padding:10px 15px} +.exception-name-block div{background:#c84530;color:white;position:relative} +.exception-name-block div:after{position:absolute;display:block;content:" ";bottom:-6px;left:20px;width:0;height:0;border-style:solid;border-width:8px 8px 0 8px;border-color:#c84530 transparent transparent transparent} +.exception-name-block p{background:#ebebeb;margin-bottom:0} +.exception-name-block p span{color:#899fb1} +.syntaxhighlighter{margin-bottom:30px;background:white;font:12px/170% Monaco,Menlo,'Ubuntu Mono','Droid Sans Mono','Courier New',monospace !important} +.syntaxhighlighter table{width:100%;table-layout:fixed} +.syntaxhighlighter table td{padding:5px 0} +.syntaxhighlighter table td.gutter{padding:5px 10px;width:35px;background:#7b8892;color:white} +.syntaxhighlighter table td.code{overflow-x:auto;width:100% !important} +.syntaxhighlighter table td.code .container{width:100% !important;padding:0} +.syntaxhighlighter table td.code .container div.line{white-space:nowrap;padding-left:10px} +.syntaxhighlighter table td.code .container div.line.highlighted{background:#c84530;color:white} +.syntaxhighlighter table td.code .container div.line code{font:12px/170% Monaco,Menlo,'Ubuntu Mono','Droid Sans Mono','Courier New',monospace !important}.icon-chain-broken::before{content:"\f127"} +.icon-lock::before{content:"\f023"} +.icon-database::before{content:"\f1c0"} +.icon-power-off::before{content:"\f011"} +.icon-code-fork::before{content:"\e13b"} +.icon-wrench::before{content:"\f0ad"} \ No newline at end of file diff --git a/modules/system/assets/js/build/system.js b/modules/system/assets/js/build/system.js index e4d7627eb0..0972253699 100644 --- a/modules/system/assets/js/build/system.js +++ b/modules/system/assets/js/build/system.js @@ -1 +1 @@ -(self.webpackChunk_wintercms_wn_system_module=self.webpackChunk_wintercms_wn_system_module||[]).push([[290,450,988],{2026:function(t,e,n){"use strict";n(9529),n(6886);function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function o(t){for(var e=1;e{t&&this.doAjax().then((t=>{if(t.cancelled)return this.cancelled=!0,void this.complete();this.responseData=t,this.processUpdate(t).then((()=>{!1===t.X_WINTER_SUCCESS?this.processError(t):this.processResponse(t)}))}),(t=>{this.responseError=t,this.processError(t)}))})):this.doAjax().then((t=>{if(t.cancelled)return this.cancelled=!0,void this.complete();this.responseData=t,this.processUpdate(t).then((()=>{!1===t.X_WINTER_SUCCESS?this.processError(t):this.processResponse(t)}))}),(t=>{this.responseError=t,this.processError(t)})):this.cancelled=!0}else this.cancelled=!0}dependencies(){return["cookie","jsonParser"]}checkRequest(){if(this.element&&this.element instanceof Element==!1)throw new Error("The element provided must be an Element instance");if(void 0===this.handler)throw new Error("The AJAX handler name is not specified.");if(!this.handler.match(/^(?:\w+:{2})?on*/))throw new Error('Invalid AJAX handler name. The correct handler name format is: "onEvent".')}getFetch(){return this.fetchOptions=void 0!==this.options.fetchOptions&&"object"==typeof this.options.fetchOptions?this.options.fetchOptions:{method:"POST",headers:this.headers,body:this.data,redirect:"follow",mode:"same-origin"},this.snowboard.globalEvent("ajaxFetchOptions",this.fetchOptions,this),fetch(this.url,this.fetchOptions)}doClientValidation(){return!0!==this.options.browserValidate||!this.form||!1!==this.form.checkValidity()||(this.form.reportValidity(),!1)}doAjax(){if(!1===this.snowboard.globalEvent("ajaxBeforeSend",this))return Promise.resolve({cancelled:!0});const t=new Promise(((t,e)=>{this.getFetch().then((n=>{n.ok||406===n.status?n.headers.has("Content-Type")&&n.headers.get("Content-Type").includes("/json")?n.json().then((e=>{t(o(o({},e),{},{X_WINTER_SUCCESS:406!==n.status,X_WINTER_RESPONSE_CODE:n.status}))}),(t=>{e(this.renderError("Unable to parse JSON response: ".concat(t)))})):n.text().then((e=>{t(e)}),(t=>{e(this.renderError("Unable to process response: ".concat(t)))})):n.headers.has("Content-Type")&&n.headers.get("Content-Type").includes("/json")?n.json().then((t=>{e(this.renderError(t.message,t.exception,t.file,t.line,t.trace))}),(t=>{e(this.renderError("Unable to parse JSON response: ".concat(t)))})):n.text().then((t=>{e(this.renderError(t))}),(t=>{e(this.renderError("Unable to process response: ".concat(t)))}))}),(t=>{e(this.renderError("Unable to retrieve a response from the server: ".concat(t)))}))}));if(this.snowboard.globalEvent("ajaxStart",t,this),this.element){const e=new Event("ajaxPromise");e.promise=t,this.element.dispatchEvent(e)}return t}processUpdate(t){return new Promise(((e,n)=>{if("function"==typeof this.options.beforeUpdate&&!1===this.options.beforeUpdate.apply(this,[t]))return void n();const r={};if(Object.entries(t).forEach((t=>{const[e,n]=t;"X_WINTER"!==e.substr(0,8)&&(r[e]=n)})),0===Object.keys(r).length)return void(t.X_WINTER_ASSETS?this.processAssets(t.X_WINTER_ASSETS).then((()=>{e()}),(()=>{n()})):e());this.snowboard.globalPromiseEvent("ajaxBeforeUpdate",t,this).then((async()=>{t.X_WINTER_ASSETS&&await this.processAssets(t.X_WINTER_ASSETS),this.doUpdate(r).then((()=>{window.requestAnimationFrame((()=>e()))}),(()=>{n()}))}),(()=>{n()}))}))}doUpdate(t){return new Promise((e=>{const n=[];Object.entries(t).forEach((t=>{const[e,r]=t;let o=this.options.update&&this.options.update[e]?this.options.update[e]:e,i="replace";"@"===o.substr(0,1)?(i="append",o=o.substr(1)):"^"===o.substr(0,1)&&(i="prepend",o=o.substr(1));const s=document.querySelectorAll(o);s.length>0&&s.forEach((t=>{switch(i){case"append":t.innerHTML+=r;break;case"prepend":t.innerHTML=r+t.innerHTML;break;default:t.innerHTML=r}n.push(t),this.snowboard.globalEvent("ajaxUpdate",t,r,this);const e=new Event("ajaxUpdate");e.content=r,t.dispatchEvent(e)}))})),this.snowboard.globalEvent("ajaxUpdateComplete",n,this),e()}))}processResponse(t){if((!this.options.success||"function"!=typeof this.options.success||!1!==this.options.success(this.responseData,this))&&!1!==this.snowboard.globalEvent("ajaxSuccess",this.responseData,this)){if(this.element){const t=new Event("ajaxDone",{cancelable:!0});if(t.responseData=this.responseData,t.request=this,this.element.dispatchEvent(t),t.defaultPrevented)return}this.flash&&t.X_WINTER_FLASH_MESSAGES&&this.processFlashMessages(t.X_WINTER_FLASH_MESSAGES),this.redirect||t.X_WINTER_REDIRECT?this.processRedirect(this.redirect||t.X_WINTER_REDIRECT):this.complete()}}processError(t){if((!this.options.error||"function"!=typeof this.options.error||!1!==this.options.error(this.responseError,this))&&!1!==this.snowboard.globalEvent("ajaxError",this.responseError,this)){if(this.element){const t=new Event("ajaxFail",{cancelable:!0});if(t.responseError=this.responseError,t.request=this,this.element.dispatchEvent(t),t.defaultPrevented)return}t instanceof Error?this.processErrorMessage(t.message):(t.X_WINTER_ERROR_FIELDS&&this.processValidationErrors(t.X_WINTER_ERROR_FIELDS),t.X_WINTER_ERROR_MESSAGE&&this.processErrorMessage(t.X_WINTER_ERROR_MESSAGE)),this.complete()}}processRedirect(t){"function"==typeof this.options.handleRedirectResponse&&!1===this.options.handleRedirectResponse.apply(this,[t])||!1!==this.snowboard.globalEvent("ajaxRedirect",t,this)&&(window.addEventListener("popstate",(()=>{if(this.element){const t=document.createEvent("CustomEvent");t.eventName="ajaxRedirected",this.element.dispatchEvent(t)}}),{once:!0}),window.location.assign(t))}processErrorMessage(t){"function"==typeof this.options.handleErrorMessage&&!1===this.options.handleErrorMessage.apply(this,[t])||!1!==this.snowboard.globalEvent("ajaxErrorMessage",t,this)&&window.alert(t)}processFlashMessages(t){"function"==typeof this.options.handleFlashMessages&&!1===this.options.handleFlashMessages.apply(this,[t])||this.snowboard.globalEvent("ajaxFlashMessages",t,this)}processValidationErrors(t){"function"==typeof this.options.handleValidationErrors&&!1===this.options.handleValidationErrors.apply(this,[this.form,t])||this.snowboard.globalEvent("ajaxValidationErrors",this.form,t,this)}processAssets(t){return this.snowboard.globalPromiseEvent("ajaxLoadAssets",t)}async doConfirm(){if("function"==typeof this.options.handleConfirmMessage)return!1!==this.options.handleConfirmMessage.apply(this,[this.confirm]);if(0===this.snowboard.listensToEvent("ajaxConfirmMessage").length)return window.confirm(this.confirm);const t=this.snowboard.globalPromiseEvent("ajaxConfirmMessage",this.confirm,this);try{if(await t)return!0}catch(t){return!1}return!1}complete(){if(this.options.complete&&"function"==typeof this.options.complete&&this.options.complete(this.responseData,this),this.snowboard.globalEvent("ajaxDone",this.responseData,this),this.element){const t=new Event("ajaxAlways");t.request=this,t.responseData=this.responseData,t.responseError=this.responseError,this.element.dispatchEvent(t)}this.destruct()}get form(){return this.options.form?"string"==typeof this.options.form?document.querySelector(this.options.form):this.options.form:this.element?"FORM"===this.element.tagName?this.element:this.element.closest("form"):null}get context(){return{handler:this.handler,options:this.options}}get headers(){const t={"X-Requested-With":"XMLHttpRequest","X-WINTER-REQUEST-HANDLER":this.handler,"X-WINTER-REQUEST-PARTIALS":this.extractPartials(this.options.update||[])};return this.flash&&(t["X-WINTER-REQUEST-FLASH"]=1),this.xsrfToken&&(t["X-XSRF-TOKEN"]=this.xsrfToken),t}get loading(){return this.options.loading||!1}get url(){return this.options.url||window.location.href}get redirect(){return this.options.redirect&&this.options.redirect.length?this.options.redirect:null}get flash(){return this.options.flash||!1}get files(){return!0===this.options.files&&(void 0!==FormData||(this.snowboard.debug("This browser does not support file uploads"),!1))}get xsrfToken(){return this.snowboard.cookie().get("XSRF-TOKEN")}get data(){const t="object"==typeof this.options.data?this.options.data:{},e=new FormData(this.form||void 0);return Object.keys(t).length>0&&Object.entries(t).forEach((t=>{const[n,r]=t;e.append(n,r)})),e}get confirm(){return this.options.confirm||!1}extractPartials(t){return Object.keys(t).join("&")}renderError(t,e,n,r,o){const i=new Error(t);return i.exception=e||null,i.file=n||null,i.line=r||null,i.trace=o||[],i}}Snowboard.addPlugin("request",s)},8809:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});n(6886);class r extends window.Snowboard.Singleton{listens(){return{ajaxLoadAssets:"load"}}async load(t){if(t.js&&t.js.length>0)for(const e of t.js)try{await this.loadScript(e)}catch(t){return Promise.reject(t)}if(t.css&&t.css.length>0)for(const e of t.css)try{await this.loadStyle(e)}catch(t){return Promise.reject(t)}if(t.img&&t.img.length>0)for(const e of t.img)try{await this.loadImage(e)}catch(t){return Promise.reject(t)}return Promise.resolve()}loadScript(t){return new Promise(((e,n)=>{if(document.querySelector('script[src="'.concat(t,'"]')))return void e();const r=document.createElement("script");r.setAttribute("type","text/javascript"),r.setAttribute("src",t),r.addEventListener("load",(()=>{this.snowboard.globalEvent("assetLoader.loaded","script",t,r),e()})),r.addEventListener("error",(()=>{this.snowboard.globalEvent("assetLoader.error","script",t,r),n(new Error('Unable to load script file: "'.concat(t,'"')))})),document.body.append(r)}))}loadStyle(t){return new Promise(((e,n)=>{if(document.querySelector('link[rel="stylesheet"][href="'.concat(t,'"]')))return void e();const r=document.createElement("link");r.setAttribute("rel","stylesheet"),r.setAttribute("href",t),r.addEventListener("load",(()=>{this.snowboard.globalEvent("assetLoader.loaded","style",t,r),e()})),r.addEventListener("error",(()=>{this.snowboard.globalEvent("assetLoader.error","style",t,r),n(new Error('Unable to load stylesheet file: "'.concat(t,'"')))})),document.head.append(r)}))}loadImage(t){return new Promise(((e,n)=>{const r=new Image;r.addEventListener("load",(()=>{this.snowboard.globalEvent("assetLoader.loaded","image",t,r),e()})),r.addEventListener("error",(()=>{this.snowboard.globalEvent("assetLoader.error","image",t,r),n(new Error('Unable to load image file: "'.concat(t,'"')))})),r.src=t}))}}},9553:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});class r extends Snowboard.Singleton{dependencies(){return["request"]}listens(){return{ajaxStart:"ajaxStart",ajaxDone:"ajaxDone"}}ajaxStart(t,e){if(e.element)if("FORM"===e.element.tagName){const t=e.element.querySelectorAll("[data-attach-loading]");t.length>0&&t.forEach((t=>{t.classList.add(this.getLoadingClass(t))}))}else void 0!==e.element.dataset.attachLoading&&e.element.classList.add(this.getLoadingClass(e.element))}ajaxDone(t,e){if(e.element)if("FORM"===e.element.tagName){const t=e.element.querySelectorAll("[data-attach-loading]");t.length>0&&t.forEach((t=>{t.classList.remove(this.getLoadingClass(t))}))}else void 0!==e.element.dataset.attachLoading&&e.element.classList.remove(this.getLoadingClass(e.element))}getLoadingClass(t){return void 0!==t.dataset.attachLoading&&""!==t.dataset.attachLoading?t.dataset.attachLoading:"wn-loading"}}},5763:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});n(9529),n(5940);class r extends Snowboard.PluginBase{construct(t,e){if(t instanceof Snowboard.PluginBase==!1)throw new Error("You must provide a Snowboard plugin to enable data configuration");if(e instanceof HTMLElement==!1)throw new Error("Data configuration can only be extracted from HTML elements");this.instance=t,this.element=e,this.refresh()}get(t){return void 0===t?this.instanceConfig:void 0!==this.instanceConfig[t]?this.instanceConfig[t]:void 0}set(t,e,n){if(void 0===t)throw new Error("You must provide a configuration key to set");this.instanceConfig[t]=e,!0===n&&(this.element.dataset[t]=e)}refresh(){this.acceptedConfigs=this.getAcceptedConfigs(),this.instanceConfig=this.processConfig()}getAcceptedConfigs(){return void 0!==this.instance.acceptAllDataConfigs&&!0===this.instance.acceptAllDataConfigs||void 0!==this.instance.defaults&&"function"==typeof this.instance.defaults&&"object"==typeof this.instance.defaults()&&Object.keys(this.instance.defaults())}getDefaults(){return void 0!==this.instance.defaults&&"function"==typeof this.instance.defaults&&"object"==typeof this.instance.defaults()?this.instance.defaults():{}}processConfig(){const t=this.getDefaults();if(!1===this.acceptedConfigs)return t;for(const e in this.element.dataset)(!0===this.acceptedConfigs||this.acceptedConfigs.includes(e))&&(t[e]=this.coerceValue(this.element.dataset[e]));return t}coerceValue(t){const e=String(t);if("null"===e)return null;if("undefined"!==e){if(e.startsWith("base64:")){const t=e.replace(/^base64:/,""),n=atob(t);return this.coerceValue(n)}if(["true","yes"].includes(e.toLowerCase()))return!0;if(["false","no"].includes(e.toLowerCase()))return!1;if(/^[-+]?[0-9]+(\.[0-9]+)?$/.test(e))return Number(e);try{return this.snowboard.jsonParser().parse(e)}catch(t){return""===e||e}}}}},2270:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});class r extends Snowboard.PluginBase{construct(t,e,n){if(this.message=t,this.type=e||"default",this.duration=Number(n||7),this.duration<0)throw new Error("Flash duration must be a positive number, or zero");this.clear(),this.timer=null,this.flashTimer=null,this.create()}dependencies(){return["transition"]}destruct(){null!==this.timer&&window.clearTimeout(this.timer),this.flashTimer&&this.flashTimer.remove(),this.flash&&(this.flash.remove(),this.flash=null,this.flashTimer=null),super.destruct()}create(){this.snowboard.globalEvent("flash.create",this),this.flash=document.createElement("DIV"),this.flash.innerHTML=this.message,this.flash.classList.add("flash-message",this.type),this.flash.removeAttribute("data-control"),this.flash.addEventListener("click",(()=>this.remove())),this.flash.addEventListener("mouseover",(()=>this.stopTimer())),this.flash.addEventListener("mouseout",(()=>this.startTimer())),this.duration>0?(this.flashTimer=document.createElement("DIV"),this.flashTimer.classList.add("flash-timer"),this.flash.appendChild(this.flashTimer)):this.flash.classList.add("no-timer"),document.body.appendChild(this.flash),this.snowboard.transition(this.flash,"show",(()=>{this.startTimer()}))}remove(){this.snowboard.globalEvent("flash.remove",this),this.stopTimer(),this.snowboard.transition(this.flash,"hide",(()=>{this.flash.remove(),this.flash=null,this.destruct()}))}clear(){document.querySelectorAll("body > div.flash-message").forEach((t=>t.remove()))}startTimer(){0!==this.duration&&(this.timerTrans=this.snowboard.transition(this.flashTimer,"timeout",null,"".concat(this.duration,".0s"),!0),this.timer=window.setTimeout((()=>this.remove()),1e3*this.duration))}stopTimer(){this.timerTrans&&this.timerTrans.cancel(),this.timer&&window.clearTimeout(this.timer)}}},6277:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});n(1515);class r extends Snowboard.Singleton{dependencies(){return["request"]}listens(){return{ready:"ready",ajaxStart:"ajaxStart"}}ready(){this.counter=0,this.createStripe()}ajaxStart(t){this.show(),t.catch((()=>{this.hide()})).finally((()=>{this.hide()}))}createStripe(){this.indicator=document.createElement("DIV"),this.stripe=document.createElement("DIV"),this.stripeLoaded=document.createElement("DIV"),this.indicator.classList.add("stripe-loading-indicator","loaded"),this.stripe.classList.add("stripe"),this.stripeLoaded.classList.add("stripe-loaded"),this.indicator.appendChild(this.stripe),this.indicator.appendChild(this.stripeLoaded),document.body.appendChild(this.indicator)}show(){this.counter+=1;const t=this.stripe.cloneNode(!0);this.indicator.appendChild(t),this.stripe.remove(),this.stripe=t,this.counter>1||(this.indicator.classList.remove("loaded"),document.body.classList.add("wn-loading"))}hide(t){this.counter-=1,!0===t&&(this.counter=0),this.counter<=0&&(this.indicator.classList.add("loaded"),document.body.classList.remove("wn-loading"))}}},8032:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});class r extends Snowboard.Singleton{listens(){return{ready:"ready"}}ready(){let t=!1;if(document.querySelectorAll('link[rel="stylesheet"]').forEach((e=>{e.href.endsWith("/modules/system/assets/css/snowboard.extras.css")&&(t=!0)})),!t){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",this.snowboard.url().to("/modules/system/assets/css/snowboard.extras.css")),document.head.appendChild(t)}}}},8269:function(t,e,n){"use strict";n.d(e,{Z:function(){return r}});n(6886);class r extends Snowboard.PluginBase{construct(t,e,n,r,o){if(t instanceof HTMLElement==!1)throw new Error("A HTMLElement must be provided for transitioning");if(this.element=t,"string"!=typeof e)throw new Error("Transition name must be specified as a string");if(this.transition=e,n&&"function"!=typeof n)throw new Error("Callback must be a valid function");this.callback=n,this.duration=r?this.parseDuration(r):null,this.trailTo=!0===o,this.doTransition()}eventClasses(){for(var t=arguments.length,e=new Array(t),n=0;n{const[n,r]=t;-1!==e.indexOf(n)&&o.push(r)})),o}doTransition(){null!==this.duration&&(this.element.style.transitionDuration=this.duration),this.resetClasses(),this.eventClasses("in","active").forEach((t=>{this.element.classList.add(t)})),window.requestAnimationFrame((()=>{"0s"!==window.getComputedStyle(this.element)["transition-duration"]?(this.element.addEventListener("transitionend",(()=>this.onTransitionEnd()),{once:!0}),window.requestAnimationFrame((()=>{this.element.classList.remove(this.eventClasses("in")[0]),this.element.classList.add(this.eventClasses("out")[0])}))):(this.resetClasses(),this.callback&&this.callback.apply(this.element),this.destruct())}))}onTransitionEnd(){this.eventClasses("active",this.trailTo?"":"out").forEach((t=>{this.element.classList.remove(t)})),this.callback&&this.callback.apply(this.element),null!==this.duration&&(this.element.style.transitionDuration=null),this.destruct()}cancel(){this.element.removeEventListener("transitionend",(()=>this.onTransitionEnd),{once:!0}),this.resetClasses(),null!==this.duration&&(this.element.style.transitionDuration=null),this.destruct()}resetClasses(){this.eventClasses().forEach((t=>{this.element.classList.remove(t)}))}parseDuration(t){const e=/^([0-9]+(\.[0-9]+)?)(m?s)?$/.exec(t),n=Number(e[1]),r="s"===e[3]?"sec":"msec";return"".concat("sec"===r?1e3*n:Math.floor(n),"ms")}}},1705:function(t,e,n){"use strict";n.d(e,{Z:function(){return p}});n(6886),n(9529);class r{constructor(t){this.snowboard=t}construct(){}dependencies(){return[]}listens(){return{}}destruct(){this.detach(),delete this.snowboard}destructor(){this.destruct()}}class o extends r{}class i{constructor(t,e,n){this.name=t,this.snowboard=e,this.instance=n,this.instances=[],this.singleton=n.prototype instanceof o,this.initialised=n.prototype instanceof r,this.mocks={},this.originalFunctions={}}hasMethod(t){return!this.isFunction()&&"function"==typeof this.instance.prototype[t]}callMethod(){if(this.isFunction())return null;for(var t=arguments.length,e=new Array(t),n=0;n!this.snowboard.getPluginNames().includes(t)));throw new Error('The "'.concat(this.name,'" plugin requires the following plugins: ').concat(t.join(", ")))}if(this.isSingleton())return 0===this.instances.length&&this.initialiseSingleton(...n),Object.keys(this.mocks).length>0&&(Object.entries(this.originalFunctions).forEach((t=>{const[e,n]=t;this.instances[0][e]=n})),Object.entries(this.mocks).forEach((e=>{const[n,r]=e;this.instances[0][n]=function(){for(var e=arguments.length,n=new Array(e),o=0;o0&&(Object.entries(this.originalFunctions).forEach((t=>{const[e,n]=t;this.instance.prototype[e]=n})),Object.entries(this.mocks).forEach((e=>{const[n,r]=e;this.instance.prototype[n]=function(){for(var e=arguments.length,n=new Array(e),o=0;othis.instances.splice(this.instances.indexOf(o),1),o.construct(...n),this.instances.push(o),o}getInstances(){return this.isFunction()?[]:this.instances}isFunction(){return"function"==typeof this.instance&&this.instance.prototype instanceof r==!1}isSingleton(){return this.instance.prototype instanceof o==!0}isInitialised(){return this.initialised}initialiseSingleton(){if(!this.isSingleton())return;for(var t=arguments.length,e=new Array(t),n=0;nthis.instances.splice(this.instances.indexOf(r),1),r.construct(...e),this.instances.push(r),this.initialised=!0}getDependencies(){return this.isFunction()||"function"!=typeof this.instance.prototype.dependencies?[]:this.instance.prototype.dependencies().map((t=>t.toLowerCase()))}dependenciesFulfilled(){const t=this.getDependencies();let e=!0;return t.forEach((t=>{this.snowboard.hasPlugin(t)||(e=!1)})),e}mock(t,e){var n=this;if(!this.isFunction()){if(!this.instance.prototype[t])throw new Error('Function "'.concat(t,'" does not exist and cannot be mocked'));this.mocks[t]=e,this.originalFunctions[t]=this.instance.prototype[t],this.isSingleton()&&0===this.instances.length&&(this.initialiseSingleton(),this.instances[0][t]=function(){for(var t=arguments.length,r=new Array(t),o=0;o{const[e,n]=t;void 0!==this.defaults[e]&&(this.defaults[e]=n)}))}getDefaults(){const t={};return Object.entries(this.defaults).forEach((e=>{const[n,r]=e;null!==this.defaults[n]&&(t[n]=r)})),t}get(t){if(void 0===t){const t=s.Z.get();return Object.entries(t).forEach((e=>{const[n,r]=e;this.snowboard.globalEvent("cookie.get",n,r,(e=>{t[n]=e}))})),t}let e=s.Z.get(t);return this.snowboard.globalEvent("cookie.get",t,e,(t=>{e=t})),e}set(t,e,n){let r=e;return this.snowboard.globalEvent("cookie.set",t,e,(t=>{r=t})),s.Z.set(t,r,c(c({},this.getDefaults()),n))}remove(t,e){s.Z.remove(t,c(c({},this.getDefaults()),e))}}class h extends o{construct(){window.wnJSON=t=>this.parse(t),window.ocJSON=window.wnJSON}parse(t){const e=this.parseString(t);return JSON.parse(e)}parseString(t){let e=t.trim();if(!e.length)throw new Error("Broken JSON object.");let n="",r=null,o=null,i="";for(;e&&","===e[0];)e=e.substr(1);if('"'===e[0]||"'"===e[0]){if(e[e.length-1]!==e[0])throw new Error("Invalid string JSON object.");i='"';for(let t=1;t="0"&&t[e]<="9"){n="";for(let r=e;r="0"&&t[r]<="9"))return{originLength:n.length,body:n};n+=t[r]}throw new Error("Broken JSON number body near ".concat(n))}if("{"===t[e]||"["===t[e]){const r=[t[e]];n=t[e];for(let o=e+1;o=0?e-5:0,50)))}parseKey(t,e,n){let r="";for(let o=e;o="a"&&t[0]<="z"||t[0]>="A"&&t[0]<="Z"||"_"===t[0]||(t[0]>="0"&&t[0]<="9"||("$"===t[0]||t.charCodeAt(0)>255)))}isBlankChar(t){return" "===t||"\n"===t||"\t"===t}}class f extends o{construct(){window.wnSanitize=t=>this.sanitize(t),window.ocSanitize=window.wnSanitize}sanitize(t,e){const n=(new DOMParser).parseFromString(t,"text/html"),r=void 0===e||"boolean"!=typeof e||e;return this.sanitizeNode(n.getRootNode()),r?n.body.innerHTML:n.innerHTML}sanitizeNode(t){if("SCRIPT"===t.tagName)return void t.remove();this.trimAttributes(t);Array.from(t.children).forEach((t=>{this.sanitizeNode(t)}))}trimAttributes(t){if(t.attributes)for(let e=0;e{this.autoInitSingletons&&this.initialiseSingletons(),this.globalEvent("ready"),this.domReady=!0}))}initialiseSingletons(){Object.values(this.plugins).forEach((t=>{t.isSingleton()&&t.dependenciesFulfilled()&&t.initialiseSingleton()}))}addPlugin(t,e){var n=this;const o=t.toLowerCase();if(this.hasPlugin(o))throw new Error('A plugin called "'.concat(t,'" is already registered.'));if("function"!=typeof e&&e instanceof r==!1)throw new Error("The provided plugin must extend the PluginBase class, or must be a callback function.");if(void 0!==this[t]||void 0!==this[o])throw new Error("The given name is already in use for a property or method of the Snowboard class.");this.plugins[o]=new i(o,this,e);const s=function(){return n.plugins[o].getInstance(...arguments)};this[t]=s,this[o]=s,this.debug('Plugin "'.concat(t,'" registered')),Object.values(this.getPlugins()).forEach((t=>{if(t.isSingleton()&&!t.isInitialised()&&t.dependenciesFulfilled()&&t.hasMethod("listens")&&Object.keys(t.callMethod("listens")).includes("ready")&&this.domReady){const e=t.callMethod("listens").ready;t.callMethod(e)}}))}removePlugin(t){const e=t.toLowerCase();this.hasPlugin(e)?(this.plugins[e].getInstances().forEach((t=>{t.destruct()})),delete this.plugins[e],delete this[e],delete this[t],this.debug('Plugin "'.concat(t,'" removed'))):this.debug('Plugin "'.concat(t,'" already removed'))}hasPlugin(t){const e=t.toLowerCase();return void 0!==this.plugins[e]}getPlugins(){return this.plugins}getPluginNames(){return Object.keys(this.plugins)}getPlugin(t){if(!this.hasPlugin(t))throw new Error('No plugin called "'.concat(t,'" has been registered.'));return this.plugins[t]}listensToEvent(t){const e=[];return Object.entries(this.plugins).forEach((n=>{const[r,o]=n;if(o.isFunction())return;if(!o.dependenciesFulfilled())return;if(!o.hasMethod("listens"))return;"string"==typeof o.callMethod("listens")[t]&&e.push(r)})),e}ready(t){this.domReady&&t(),this.on("ready",t)}on(t,e){this.listeners[t]||(this.listeners[t]=[]),this.listeners[t].includes(e)||this.listeners[t].push(e)}off(t,e){if(!this.listeners[t])return;const n=this.listeners[t].indexOf(e);-1!==n&&this.listeners[t].splice(n,1)}globalEvent(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r{const r=this.getPlugin(e);if(r.isFunction())return;r.isSingleton()&&0===r.getInstances().length&&r.initialiseSingleton();const o=r.callMethod("listens")[t];r.getInstances().forEach((r=>{if(!i){if(!r[o])throw new Error('Missing "'.concat(o,'" method in "').concat(e,'" plugin'));try{!1===r[o](...n)&&(i=!0,this.debug('Global event "'.concat(t,'" cancelled by "').concat(e,'" plugin')))}catch(n){this.error('Error thrown in "'.concat(t,'" event by "').concat(e,'" plugin.'),n)}}}))})),!i&&this.listeners[t]&&this.listeners[t].length>0&&(this.debug("Found ".concat(this.listeners[t].length,' ad-hoc listener(s) for global event "').concat(t,'"')),this.listeners[t].forEach((e=>{if(!i)try{!1===e(...n)&&(i=!0,this.debug('Global event "'.concat(t," cancelled by an ad-hoc listener.")))}catch(e){this.error('Error thrown in "'.concat(t,'" event by an ad-hoc listener.'),e)}}))),!i}globalPromiseEvent(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r{const r=this.getPlugin(e);if(r.isFunction())return;r.isSingleton()&&0===r.getInstances().length&&r.initialiseSingleton();const o=r.callMethod("listens")[t];r.getInstances().forEach((r=>{if(!r[o])throw new Error('Missing "'.concat(o,'" method in "').concat(e,'" plugin'));try{const t=r[o](...n);if(t instanceof Promise==!1)return;i.push(t)}catch(n){this.error('Error thrown in "'.concat(t,'" promise event by "').concat(e,'" plugin.'),n)}}))})),this.listeners[t]&&this.listeners[t].length>0&&(this.debug("Found ".concat(this.listeners[t].length,' ad-hoc listener(s) for global promise event "').concat(t,'"')),this.listeners[t].forEach((e=>{try{const t=e(...n);if(t instanceof Promise==!1)return;i.push(t)}catch(e){this.error('Error thrown in "'.concat(t,'" promise event by an ad-hoc listener.'),e)}}))),0===i.length?Promise.resolve():Promise.all(i)}logMessage(t,e,n){console.groupCollapsed("%c[Snowboard]","color: ".concat(t,"; font-weight: ").concat(e?"bold":"normal",";"),n);for(var r=arguments.length,o=new Array(r>3?r-3:0),i=3;i{t+=1,console.log("%c".concat(t,":"),"color: rgb(88, 88, 88); font-weight: normal;",e)})),console.groupEnd(),console.groupCollapsed("%cTrace","color: rgb(45, 167, 199); font-weight: bold;"),console.trace(),console.groupEnd()}else console.trace();console.groupEnd()}log(t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;r{t.addPlugin("assetLoader",c.Z),t.addPlugin("dataConfig",l.Z),t.addPlugin("extrasStyles",a.Z),t.addPlugin("transition",o.Z),t.addPlugin("flash",r.Z),t.addPlugin("attachLoading",i.Z),t.addPlugin("stripeLoader",s.Z)})(window.Snowboard)},2165:function(t,e,n){"use strict";var r=n(1705);(t=>{const e=new r.Z(!0,!0);t.snowboard=e,t.Snowboard=e,t.SnowBoard=e})(window)},7111:function(t,e,n){var r=n(6733),o=n(9821),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a function")}},7988:function(t,e,n){var r=n(2359),o=n(9821),i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not a constructor")}},8505:function(t,e,n){var r=n(6733),o=String,i=TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw i("Can't set "+o(t)+" as a prototype")}},9736:function(t,e,n){var r=n(95),o=n(2391),i=n(1787).f,s=r("unscopables"),a=Array.prototype;null==a[s]&&i(a,s,{configurable:!0,value:o(null)}),t.exports=function(t){a[s][t]=!0}},6637:function(t,e,n){"use strict";var r=n(966).charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},1176:function(t,e,n){var r=n(5052),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw i(o(t)+" is not an object")}},9540:function(t,e,n){var r=n(905),o=n(3231),i=n(9646),s=function(t){return function(e,n,s){var a,c=r(e),l=i(c),u=o(s,l);if(t&&n!=n){for(;l>u;)if((a=c[u++])!=a)return!0}else for(;l>u;u++)if((t||u in c)&&c[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}},7079:function(t,e,n){var r=n(5968),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},1589:function(t,e,n){var r=n(1601),o=n(6733),i=n(7079),s=n(95)("toStringTag"),a=Object,c="Arguments"==i(function(){return arguments}());t.exports=r?i:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=a(t),s))?n:c?i(e):"Object"==(r=i(e))&&o(e.callee)?"Arguments":r}},7081:function(t,e,n){var r=n(8270),o=n(4826),i=n(7933),s=n(1787);t.exports=function(t,e,n){for(var a=o(e),c=s.f,l=i.f,u=0;u0&&r[0]<4?1:+(r[0]+r[1])),!o&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(o=+r[1]),t.exports=o},3837:function(t){t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},3103:function(t,e,n){var r=n(9859),o=n(7933).f,i=n(5762),s=n(4768),a=n(8400),c=n(7081),l=n(6541);t.exports=function(t,e){var n,u,h,f,d,p=t.target,g=t.global,v=t.stat;if(n=g?r:v?r[p]||a(p,{}):(r[p]||{}).prototype)for(u in e){if(f=e[u],h=t.dontCallGetSet?(d=o(n,u))&&d.value:n[u],!l(g?u:p+(v?".":"#")+u,t.forced)&&void 0!==h){if(typeof f==typeof h)continue;c(f,h)}(t.sham||h&&h.sham)&&i(f,"sham",!0),s(n,u,f,t)}}},4229:function(t){t.exports=function(t){try{return!!t()}catch(t){return!0}}},4954:function(t,e,n){"use strict";n(7950);var r=n(5968),o=n(4768),i=n(3466),s=n(4229),a=n(95),c=n(5762),l=a("species"),u=RegExp.prototype;t.exports=function(t,e,n,h){var f=a(t),d=!s((function(){var e={};return e[f]=function(){return 7},7!=""[t](e)})),p=d&&!s((function(){var e=!1,n=/a/;return"split"===t&&((n={}).constructor={},n.constructor[l]=function(){return n},n.flags="",n[f]=/./[f]),n.exec=function(){return e=!0,null},n[f](""),!e}));if(!d||!p||n){var g=r(/./[f]),v=e(f,""[t],(function(t,e,n,o,s){var a=r(t),c=e.exec;return c===i||c===u.exec?d&&!s?{done:!0,value:g(e,n,o)}:{done:!0,value:a(n,e,o)}:{done:!1}}));o(String.prototype,t,v[0]),o(u,f,v[1])}h&&c(u[f],"sham",!0)}},3171:function(t,e,n){var r=n(7188),o=Function.prototype,i=o.apply,s=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(i):function(){return s.apply(i,arguments)})},7188:function(t,e,n){var r=n(4229);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},266:function(t,e,n){var r=n(7188),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},1805:function(t,e,n){var r=n(7400),o=n(8270),i=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,a=o(i,"name"),c=a&&"something"===function(){}.name,l=a&&(!r||r&&s(i,"name").configurable);t.exports={EXISTS:a,PROPER:c,CONFIGURABLE:l}},5968:function(t,e,n){var r=n(7188),o=Function.prototype,i=o.bind,s=o.call,a=r&&i.bind(s,s);t.exports=r?function(t){return t&&a(t)}:function(t){return t&&function(){return s.apply(t,arguments)}}},1333:function(t,e,n){var r=n(9859),o=n(6733),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},5300:function(t,e,n){var r=n(7111);t.exports=function(t,e){var n=t[e];return null==n?void 0:r(n)}},17:function(t,e,n){var r=n(5968),o=n(2991),i=Math.floor,s=r("".charAt),a=r("".replace),c=r("".slice),l=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,u=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,h,f){var d=n+t.length,p=r.length,g=u;return void 0!==h&&(h=o(h),g=l),a(f,g,(function(o,a){var l;switch(s(a,0)){case"$":return"$";case"&":return t;case"`":return c(e,0,n);case"'":return c(e,d);case"<":l=h[c(a,1,-1)];break;default:var u=+a;if(0===u)return o;if(u>p){var f=i(u/10);return 0===f?o:f<=p?void 0===r[f-1]?s(a,1):r[f-1]+s(a,1):o}l=r[u-1]}return void 0===l?"":l}))}},9859:function(t,e,n){var r=function(t){return t&&t.Math==Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||function(){return this}()||Function("return this")()},8270:function(t,e,n){var r=n(5968),o=n(2991),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},5977:function(t){t.exports={}},3777:function(t,e,n){var r=n(1333);t.exports=r("document","documentElement")},4394:function(t,e,n){var r=n(7400),o=n(4229),i=n(2635);t.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},9337:function(t,e,n){var r=n(5968),o=n(4229),i=n(7079),s=Object,a=r("".split);t.exports=o((function(){return!s("z").propertyIsEnumerable(0)}))?function(t){return"String"==i(t)?a(t,""):s(t)}:s},8511:function(t,e,n){var r=n(5968),o=n(6733),i=n(5353),s=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return s(t)}),t.exports=i.inspectSource},6407:function(t,e,n){var r,o,i,s=n(8694),a=n(9859),c=n(5968),l=n(5052),u=n(5762),h=n(8270),f=n(5353),d=n(4399),p=n(5977),g="Object already initialized",v=a.TypeError,b=a.WeakMap;if(s||f.state){var m=f.state||(f.state=new b),y=c(m.get),w=c(m.has),E=c(m.set);r=function(t,e){if(w(m,t))throw new v(g);return e.facade=t,E(m,t,e),e},o=function(t){return y(m,t)||{}},i=function(t){return w(m,t)}}else{var x=d("state");p[x]=!0,r=function(t,e){if(h(t,x))throw new v(g);return e.facade=t,u(t,x,e),e},o=function(t){return h(t,x)?t[x]:{}},i=function(t){return h(t,x)}}t.exports={set:r,get:o,has:i,enforce:function(t){return i(t)?o(t):r(t,{})},getterFor:function(t){return function(e){var n;if(!l(e)||(n=o(e)).type!==t)throw v("Incompatible receiver, "+t+" required");return n}}}},6733:function(t){t.exports=function(t){return"function"==typeof t}},2359:function(t,e,n){var r=n(5968),o=n(4229),i=n(6733),s=n(1589),a=n(1333),c=n(8511),l=function(){},u=[],h=a("Reflect","construct"),f=/^\s*(?:class|function)\b/,d=r(f.exec),p=!f.exec(l),g=function(t){if(!i(t))return!1;try{return h(l,u,t),!0}catch(t){return!1}},v=function(t){if(!i(t))return!1;switch(s(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return p||!!d(f,c(t))}catch(t){return!0}};v.sham=!0,t.exports=!h||o((function(){var t;return g(g.call)||!g(Object)||!g((function(){t=!0}))||t}))?v:g},6541:function(t,e,n){var r=n(4229),o=n(6733),i=/#|\.prototype\./,s=function(t,e){var n=c[a(t)];return n==u||n!=l&&(o(e)?r(e):!!e)},a=s.normalize=function(t){return String(t).replace(i,".").toLowerCase()},c=s.data={},l=s.NATIVE="N",u=s.POLYFILL="P";t.exports=s},5052:function(t,e,n){var r=n(6733);t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},4231:function(t){t.exports=!1},9395:function(t,e,n){var r=n(1333),o=n(6733),i=n(1321),s=n(6969),a=Object;t.exports=s?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return o(e)&&i(e.prototype,a(t))}},693:function(t,e,n){"use strict";var r,o,i,s=n(4229),a=n(6733),c=n(2391),l=n(7567),u=n(4768),h=n(95),f=n(4231),d=h("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(o=l(l(i)))!==Object.prototype&&(r=o):p=!0),null==r||s((function(){var t={};return r[d].call(t)!==t}))?r={}:f&&(r=c(r)),a(r[d])||u(r,d,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:p}},5495:function(t){t.exports={}},9646:function(t,e,n){var r=n(4237);t.exports=function(t){return r(t.length)}},6039:function(t,e,n){var r=n(4229),o=n(6733),i=n(8270),s=n(7400),a=n(1805).CONFIGURABLE,c=n(8511),l=n(6407),u=l.enforce,h=l.get,f=Object.defineProperty,d=s&&!r((function(){return 8!==f((function(){}),"length",{value:8}).length})),p=String(String).split("String"),g=t.exports=function(t,e,n){"Symbol("===String(e).slice(0,7)&&(e="["+String(e).replace(/^Symbol\(([^)]*)\)/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!i(t,"name")||a&&t.name!==e)&&f(t,"name",{value:e,configurable:!0}),d&&n&&i(n,"arity")&&t.length!==n.arity&&f(t,"length",{value:n.arity});try{n&&i(n,"constructor")&&n.constructor?s&&f(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var r=u(t);return i(r,"source")||(r.source=p.join("string"==typeof e?e:"")),t};Function.prototype.toString=g((function(){return o(this)&&h(this).source||c(this)}),"toString")},917:function(t){var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},3839:function(t,e,n){var r=n(6358),o=n(4229);t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol();return!String(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},8694:function(t,e,n){var r=n(9859),o=n(6733),i=n(8511),s=r.WeakMap;t.exports=o(s)&&/native code/.test(i(s))},6485:function(t,e,n){"use strict";var r=n(7111),o=function(t){var e,n;this.promise=new t((function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r})),this.resolve=r(e),this.reject=r(n)};t.exports.f=function(t){return new o(t)}},2391:function(t,e,n){var r,o=n(1176),i=n(219),s=n(3837),a=n(5977),c=n(3777),l=n(2635),u=n(4399),h=u("IE_PROTO"),f=function(){},d=function(t){return"